Allow compiling without the network module

This commit is contained in:
GriffinR
2025-08-07 15:02:02 -04:00
parent 6f4f393a88
commit e6a20c76bb
7 changed files with 34 additions and 3 deletions

View File

@@ -26,10 +26,14 @@
});
*/
#if __has_include(<QNetworkAccessManager>)
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QDateTime>
#endif
#ifdef QT_NETWORK_LIB
class NetworkReplyData : public QObject
{
@@ -84,4 +88,6 @@ private:
const QNetworkRequest getRequest(const QUrl &url);
};
#endif // QT_NETWORK_LIB
#endif // NETWORK_H

View File

@@ -331,8 +331,11 @@ private:
QPointer<FilterChildrenProxyModel> layoutListProxyModel = nullptr;
QPointer<LayoutTreeModel> layoutTreeModel = nullptr;
#ifdef QT_NETWORK_LIB
QPointer<UpdatePromoter> updatePromoter = nullptr;
QPointer<NetworkAccessManager> networkAccessManager = nullptr;
#endif
QPointer<AboutPorymap> aboutWindow = nullptr;
QPointer<WildMonChart> wildMonChart = nullptr;
QPointer<WildMonSearch> wildMonSearch = nullptr;

View File

@@ -1,6 +1,8 @@
#ifndef UPDATEPROMOTER_H
#define UPDATEPROMOTER_H
#ifdef QT_NETWORK_LIB
#include "network.h"
#include <QDialog>
@@ -47,4 +49,6 @@ signals:
void changedPreferences();
};
#endif // QT_NETWORK_LIB
#endif // UPDATEPROMOTER_H

View File

@@ -4,7 +4,7 @@
#
#-------------------------------------------------
QT += core gui network
QT += core gui
qtHaveModule(charts) {
QT += charts
@@ -16,6 +16,11 @@ qtHaveModule(qml) {
} else {
warning("Qt module 'qml' not found, disabling plug-in features.")
}
qtHaveModule(network) {
QT += network
} else {
warning("Qt module 'network' not found, disabling network features.")
}
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

View File

@@ -1,3 +1,4 @@
#ifdef QT_NETWORK_LIB
#include "network.h"
#include "config.h"
@@ -148,3 +149,5 @@ void NetworkAccessManager::processReply(QNetworkReply * reply, NetworkReplyData
cacheEntry->data = data->m_body = reply->readAll();
}
#endif // QT_NETWORK_LIB

View File

@@ -51,9 +51,11 @@
// We only publish release binaries for Windows and macOS.
// This is relevant for the update promoter, which alerts users of a new release.
#ifdef QT_NETWORK_LIB
#if defined(Q_OS_WIN) || defined(Q_OS_MACOS)
#define RELEASE_PLATFORM
#endif
#endif
@@ -155,11 +157,14 @@ void MainWindow::initWindow() {
this->initMapList();
this->initShortcuts();
QStringList missingModules;
#ifndef RELEASE_PLATFORM
ui->actionCheck_for_Updates->setVisible(false);
#endif
QStringList missingModules;
#ifndef QT_NETWORK_LIB
missingModules.append(" 'network'");
#endif
#ifndef QT_CHARTS_LIB
ui->pushButton_SummaryChart->setVisible(false);
@@ -2970,8 +2975,10 @@ void MainWindow::on_actionPreferences_triggered() {
void MainWindow::togglePreferenceSpecificUi() {
ui->actionOpen_Project_in_Text_Editor->setEnabled(!porymapConfig.textEditorOpenFolder.isEmpty());
#ifdef QT_NETWORK_LIB
if (this->updatePromoter)
this->updatePromoter->updatePreferences();
#endif
}
void MainWindow::openProjectSettingsEditor(int tab) {

View File

@@ -1,3 +1,4 @@
#ifdef QT_NETWORK_LIB
#include "updatepromoter.h"
#include "ui_updatepromoter.h"
#include "log.h"
@@ -188,3 +189,5 @@ void UpdatePromoter::dialogButtonClicked(QAbstractButton *button) {
QDesktopServices::openUrl(this->downloadUrl);
}
}
#endif // QT_NETWORK_LIB