23 #include "doomseekerconfigurationdialog.h"
24 #include "configuration/doomseekerconfig.h"
25 #include "gui/configuration/cfgappearance.h"
26 #include "gui/configuration/cfgautoupdates.h"
27 #include "gui/configuration/cfgcustomservers.h"
28 #include "gui/configuration/cfgfilepaths.h"
29 #include "gui/configuration/cfgip2country.h"
30 #include "gui/configuration/cfgquery.h"
31 #include "gui/configuration/cfgserverpasswords.h"
32 #include "gui/configuration/cfgwadalias.h"
33 #include "gui/configuration/cfgwadseekerappearance.h"
34 #include "gui/configuration/cfgwadseekergeneral.h"
35 #include "gui/configuration/cfgwadseekeridgames.h"
36 #include "gui/configuration/cfgwadseekersites.h"
37 #include "gui/configuration/engineconfigurationbasebox.h"
38 #include "gui/mainwindow.h"
39 #include "plugins/engineplugin.h"
40 #include "plugins/pluginloader.h"
41 #include "updater/updatechannel.h"
42 #include "application.h"
44 #include "qtmetapointer.h"
45 #include <QStandardItem>
48 DoomseekerConfigurationDialog::DoomseekerConfigurationDialog(QWidget* parent)
51 this->bAppearanceChanged =
false;
52 this->bCustomServersChanged =
false;
61 connect(pConfigurationBox, SIGNAL( appearanceChanged() ),
62 SLOT( appearanceChangedSlot() ) );
68 bool DoomseekerConfigurationDialog::addEngineConfiguration(
ConfigurationBaseBox* pConfigurationBox)
70 if (enginesRoot != NULL)
77 void DoomseekerConfigurationDialog::appearanceChangedSlot()
79 this->bAppearanceChanged =
true;
82 void DoomseekerConfigurationDialog::appendFilePathsConfigurationBoxes()
88 void DoomseekerConfigurationDialog::appendWadseekerConfigurationBoxes()
90 QStandardItem* wadseekerRoot =
addLabel(NULL, tr(
"Wadseeker"));
91 wadseekerRoot->setIcon(QIcon(
":/icons/get-wad.png"));
108 void DoomseekerConfigurationDialog::doSaveSettings()
110 bCustomServersChanged = customServersCfgBox->
allowSave();
111 if (gConfig.saveToFile())
113 gLog << tr(
"Settings saved!");
117 gLog << tr(
"Settings save failed!");
121 void DoomseekerConfigurationDialog::initOptionsList()
123 enginesRoot =
addLabel(NULL, tr(
"Engines"));
124 enginesRoot->setIcon(QIcon(
":/icons/joystick.png"));
132 #ifdef WITH_AUTOUPDATES
139 customServersCfgBox = pConfigBox;
150 appendFilePathsConfigurationBoxes();
151 appendWadseekerConfigurationBoxes();
156 void DoomseekerConfigurationDialog::openConfiguration(
const EnginePlugin *openPlugin)
161 configDialog.initOptionsList();
163 for(
unsigned i = 0; i < gPlugins->numPlugins(); ++i)
169 configDialog.addEngineConfiguration(pConfigurationBox);
172 bool bLookupHostsSettingBefore = gConfig.doomseeker.bLookupHosts;
176 mw->stopAutoRefreshTimer();
179 configDialog.showPluginConfiguration(openPlugin);
189 if (updateChannelBefore != updateChannelAfter
190 || updateModeBefore != gConfig.autoUpdates.updateMode)
192 mw->abortAutoUpdater();
193 gConfig.autoUpdates.bPerformUpdateOnNextRun =
false;
194 gConfig.saveToFile();
197 mw->
finishConfiguration(configDialog, !bLookupHostsSettingBefore && gConfig.doomseeker.bLookupHosts);
200 void DoomseekerConfigurationDialog::showPluginConfiguration(
const EnginePlugin *plugin)
203 for(
int i = 0;i < enginesRoot->rowCount();++i)
205 QStandardItem *page = enginesRoot->child(i);
206 QtMetaPointer metaPointer = qVariantValue<QtMetaPointer>(page->data());
207 void* pointer = metaPointer;
210 if(engineConfig->
plugin() == plugin)
212 switchToItem(page->index());
QTreeView * optionsTree()
Returns pointer to the tree widget that contains configuration sections list.
static UpdateChannel fromName(const QString &name)
Creates object from its internal name.
const EnginePlugin * plugin() const
Parent plugin handled by this page.
void finishConfiguration(DoomseekerConfigurationDialog &, bool)
QStandardItem * addConfigurationBox(QStandardItem *rootItem, ConfigurationBaseBox *pConfigurationBox, int position=-1)
Adds a new configuration box to the options tree view.
virtual ConfigurationBaseBox * configuration(QWidget *parent) const
Engine's configuration widget.
QStandardItem * addLabel(QStandardItem *rootItem, const QString &label, int position=-1)
Adds a label node to the options tree view.
Base for configuration pages for plugins; provides some default behavior.
bool allowSave()
Does this page allow to save the new settings?
virtual QStandardItem * addConfigurationBox(QStandardItem *rootItem, ConfigurationBaseBox *pConfigurationBox, int position=-1)
Adds a new configuration box to the options tree view.
Base class for configuration pages.
void initAutoRefreshTimer()