diff -r 0730c68fdf97 -r 773beead236f qmlfrontend/rooms_model.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qmlfrontend/rooms_model.h Fri May 24 23:39:51 2019 +0200 @@ -0,0 +1,69 @@ +/* + * 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 + */ + +/** + * @file + * @brief RoomsListModel class definition + */ + +#ifndef HEDGEWARS_ROOMSLISTMODEL_H +#define HEDGEWARS_ROOMSLISTMODEL_H + +#include +#include + +class RoomsListModel : public QAbstractTableModel { + Q_OBJECT + public: + // if you add a column here, also incr. c_nColumns in constructor + // also adjust header in constructor to changes + enum Column { + StateColumn, + NameColumn, + PlayerCountColumn, + TeamCountColumn, + OwnerColumn, + MapColumn, + SchemeColumn, + WeaponsColumn + }; + + explicit RoomsListModel(QObject *parent = 0); + + QVariant headerData(int section, Qt::Orientation orientation, + int role) const override; + int rowCount(const QModelIndex &parent) const override; + int columnCount(const QModelIndex &parent) const override; + QVariant data(const QModelIndex &index, int role) const override; + + public slots: + void setRoomsList(const QStringList &rooms); + void addRoom(const QStringList &info); + void removeRoom(const QString &name); + void updateRoom(const QString &name, const QStringList &info); + int rowOfRoom(const QString &name); + + private: + const int c_nColumns; + QList m_data; + QStringList m_headerData; + // MapModel * m_staticMapModel; + // MapModel * m_missionMapModel; +}; + +#endif // HEDGEWARS_ROOMSLISTMODEL_H