diff -r f93658732448 -r 0bc5f618ca7c QTfrontend/model/gameSchemeModel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/QTfrontend/model/gameSchemeModel.h Wed Mar 14 15:19:08 2018 +0100 @@ -0,0 +1,80 @@ +/* + * Hedgewars, a free turn based strategy game + * Copyright (c) 2004-2015 Andrey Korotaev + * + * 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; version 2 of the License + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _GAME_SCHEME_MODEL_INCLUDED +#define _GAME_SCHEME_MODEL_INCLUDED + +#include +#include +#include +#include + +class GameSchemeModel : public QAbstractTableModel +{ + Q_OBJECT + + public: + GameSchemeModel(QObject * parent, const QString & fileName); + + QVariant headerData(int section, Qt::Orientation orientation, int role) const; + int rowCount(const QModelIndex & parent) const; + int columnCount(const QModelIndex & parent) const; + bool hasScheme(QString name); + Qt::ItemFlags flags(const QModelIndex & index) const; + bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole); + bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex()); + bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex()); + QVariant data(const QModelIndex &index, int role) const; + + int numberOfDefaultSchemes; + QStringList predefSchemesNames; + QStringList spNames; + + public slots: + void Save(); + +// signals: +// void dataChanged(const QModelIndex & topLeft, const QModelIndex & bottomRight); + + protected: + QList< QList > schemes; + + private: + QSettings fileConfig; +}; + +class NetGameSchemeModel : public QAbstractTableModel +{ + Q_OBJECT + + public: + NetGameSchemeModel(QObject * parent); + + QVariant headerData(int section, Qt::Orientation orientation, int role) const; + int rowCount(const QModelIndex & parent) const; + int columnCount(const QModelIndex & parent) const; + QVariant data(const QModelIndex &index, int role) const; + + public slots: + void setNetSchemeConfig(QStringList cfg); + + private: + QList netScheme; +}; + +#endif // _GAME_SCHEME_MODEL_INCLUDED