23 #include "application.h"
24 #include "configuration/doomseekerconfig.h"
25 #include "doomseekerconfigurationdialog.h"
26 #include "gui/configuration/cfgappearance.h"
27 #include "gui/configuration/cfgautoupdates.h"
28 #include "gui/configuration/cfgcustomservers.h"
29 #include "gui/configuration/cfgfilepaths.h"
30 #include "gui/configuration/cfgip2c.h"
31 #include "gui/configuration/cfgquery.h"
32 #include "gui/configuration/cfgserverpasswords.h"
33 #include "gui/configuration/cfgwadalias.h"
34 #include "gui/configuration/cfgwadseekerappearance.h"
35 #include "gui/configuration/cfgwadseekergeneral.h"
36 #include "gui/configuration/cfgwadseekeridgames.h"
37 #include "gui/configuration/cfgwadseekersites.h"
38 #include "gui/configuration/engineconfigpage.h"
39 #include "gui/mainwindow.h"
41 #include "plugins/engineplugin.h"
42 #include "plugins/pluginloader.h"
43 #include "qtmetapointer.h"
44 #include "updater/updatechannel.h"
45 #include <QStandardItem>
48 DoomseekerConfigurationDialog::DoomseekerConfigurationDialog(QWidget *parent)
51 this->bAppearanceChanged =
false;
52 this->bCustomServersChanged =
false;
53 this->bRestartNeeded =
false;
62 connect(configPage, SIGNAL(appearanceChanged()),
63 SLOT(appearanceChangedSlot()));
64 connect(configPage, SIGNAL(restartNeeded()),
65 SLOT(restartNeededSlot()));
71 bool DoomseekerConfigurationDialog::addEngineConfiguration(
ConfigPage *configPage)
73 if (enginesRoot !=
nullptr)
78 void DoomseekerConfigurationDialog::appearanceChangedSlot()
80 this->bAppearanceChanged =
true;
81 emit appearanceChanged();
84 void DoomseekerConfigurationDialog::restartNeededSlot()
86 this->bRestartNeeded =
true;
89 void DoomseekerConfigurationDialog::appendFilePathsConfigurationBoxes()
95 void DoomseekerConfigurationDialog::appendWadseekerConfigurationBoxes()
104 void DoomseekerConfigurationDialog::doSaveSettings()
106 bCustomServersChanged = customServersCfgBox->
allowSave();
107 if (gConfig.saveToFile())
108 gLog << tr(
"Settings saved!");
110 gLog << tr(
"Settings save failed!");
113 void DoomseekerConfigurationDialog::initOptionsList()
115 enginesRoot =
addLabel(
nullptr, tr(
"Games"));
116 enginesRoot->setIcon(QIcon(
":/icons/joystick.png"));
119 #ifdef WITH_AUTOUPDATES
130 appendFilePathsConfigurationBoxes();
131 appendWadseekerConfigurationBoxes();
136 bool DoomseekerConfigurationDialog::isOpen()
138 if (gApp->mainWindow() ==
nullptr)
140 for (QObject *obj : gApp->mainWindow()->children())
142 if (qobject_cast<DoomseekerConfigurationDialog *>(obj) !=
nullptr)
148 void DoomseekerConfigurationDialog::openConfiguration(QWidget *parent,
const EnginePlugin *openPlugin)
153 if (mainWindow !=
nullptr)
154 mainWindow->connect(&configDialog, SIGNAL(appearanceChanged()), SLOT(updateDynamicAppearance()));
156 configDialog.initOptionsList();
158 for (
unsigned i = 0; i < gPlugins->numPlugins(); ++i)
164 configDialog.addEngineConfiguration(configPage);
167 bool bLookupHostsSettingBefore = gConfig.doomseeker.bLookupHosts;
171 if (mainWindow !=
nullptr)
172 mainWindow->stopAutoRefreshTimer();
175 configDialog.showPluginConfiguration(openPlugin);
180 if (mainWindow !=
nullptr)
186 if (updateChannelBefore != updateChannelAfter
187 || updateModeBefore != gConfig.autoUpdates.updateMode)
189 if (mainWindow !=
nullptr)
190 mainWindow->abortAutoUpdater();
191 gConfig.autoUpdates.bPerformUpdateOnNextRun =
false;
192 gConfig.saveToFile();
195 if (mainWindow !=
nullptr)
196 mainWindow->
finishConfiguration(configDialog, !bLookupHostsSettingBefore && gConfig.doomseeker.bLookupHosts);
199 void DoomseekerConfigurationDialog::showPluginConfiguration(
const EnginePlugin *plugin)
202 for (
int i = 0; i < enginesRoot->rowCount(); ++i)
204 QStandardItem *page = enginesRoot->child(i);
206 void *pointer = metaPointer;
209 if (engineConfig->plugin() == plugin)