diff -r e985ebb67fdd -r 9528f8d06962 src/configwindow.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/configwindow.h Sat Jun 06 22:26:05 2015 +0300 @@ -0,0 +1,81 @@ +/* + * ZCinema: Zandronum demo launcher + * Copyright (C) 2013-2015 Teemu Piippo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include +#include "main.h" +#include "types.h" + +// +// ------------------------------------------------------------------------------------------------- +// +// A ZandronumVersion represented in the config window. +// + +struct VersionGuiEntry +{ + class QTableWidgetItem* labelItem; + class QTableWidgetItem* pathItem; + QString name; + bool isRelease; + + ZandronumVersion toNonGuiVersion() const; +}; + +// +// ------------------------------------------------------------------------------------------------- +// + +class ConfigWindow : public QDialog +{ + Q_OBJECT + +public: + enum + { + LabelColumn, + PathColumn, + }; + + typedef QMap VersionEntryMap; + + ConfigWindow (QWidget* parent = NULL, Qt::WindowFlags f = 0); + virtual ~ConfigWindow(); + +public slots: + void addWadPath(); + void findWadPath(); + void removeCurrentWadPath(); + void buttonPressed (class QAbstractButton* btn); + void newVersion(); + void removeCurrentVersion(); + void editExePressed(); + void clearExePathsClicked(); + +private: + class Ui_ConfigBox& ui; + QList m_versionEntries; + VersionEntryMap m_versionEntryMap; + + void addWadPath (QString path); + VersionGuiEntry* addVersion (const ZandronumVersion& version); + VersionGuiEntry* currentVersionEntry(); + void initFromSettings(); + void removeVersion (VersionGuiEntry* entry); + void saveSettings(); +}; \ No newline at end of file