author | sheepluva |
Sun, 08 Dec 2019 02:09:19 +0100 | |
branch | hedgeroid |
changeset 15520 | de08a3ae4f8d |
parent 13206 | 25502e6b3e08 |
permissions | -rw-r--r-- |
5205
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
1 |
/* |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
2 |
* Hedgewars, a free turn based strategy game |
11046 | 3 |
* Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com> |
5205
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
4 |
* |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
6 |
* it under the terms of the GNU General Public License as published by |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
7 |
* the Free Software Foundation; version 2 of the License |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
8 |
* |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
12 |
* GNU General Public License for more details. |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
13 |
* |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
15 |
* along with this program; if not, write to the Free Software |
10108
c68cf030eded
update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents:
9998
diff
changeset
|
16 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
5205
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
17 |
*/ |
5204 | 18 |
|
19 |
#ifndef PAGE_ROOMLIST_H |
|
20 |
#define PAGE_ROOMLIST_H |
|
21 |
||
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
22 |
#include <QTableView> |
5205
78138ae93820
some headers cleanup and rename of stats and playrecord pages for consistency
koda
parents:
5204
diff
changeset
|
23 |
#include "AbstractPage.h" |
5204 | 24 |
|
25 |
class HWChatWidget; |
|
13202
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
11046
diff
changeset
|
26 |
class GameSchemeModel; |
6732
c906dc78091f
Start switching to rooms list model. To be continued.
unc0rr
parents:
6700
diff
changeset
|
27 |
class QTableView; |
6993
47830cf50574
room list: replace magic table column indexes with enum. makes future changes to the room list format way easier.
sheepluva
parents:
6987
diff
changeset
|
28 |
class RoomsListModel; |
6987
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6952
diff
changeset
|
29 |
class QSortFilterProxyModel; |
9031 | 30 |
class QSplitter; |
6987
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6952
diff
changeset
|
31 |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
32 |
class RoomTableView : public QTableView |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
33 |
{ |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
34 |
friend class PageRoomsList; |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
35 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
36 |
public: |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
37 |
RoomTableView(QWidget* parent = 0) : QTableView(parent){} |
8623 | 38 |
void moveUp(); |
39 |
void moveDown(); |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
40 |
}; |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
41 |
|
5204 | 42 |
class PageRoomsList : public AbstractPage |
43 |
{ |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
44 |
Q_OBJECT |
5204 | 45 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
46 |
public: |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
7769
diff
changeset
|
47 |
PageRoomsList(QWidget* parent); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
48 |
void displayError(const QString & message); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
49 |
void displayNotice(const QString & message); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
50 |
void displayWarning(const QString & message); |
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
7769
diff
changeset
|
51 |
void setSettings(QSettings * settings); |
5204 | 52 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
53 |
QLineEdit * searchText; |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
54 |
RoomTableView * roomsList; |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
55 |
QPushButton * BtnCreate; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
56 |
QPushButton * BtnJoin; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
57 |
QPushButton * BtnAdmin; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
58 |
QComboBox * CBState; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
59 |
HWChatWidget * chatWidget; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
60 |
QLabel * lblCount; |
5204 | 61 |
|
6993
47830cf50574
room list: replace magic table column indexes with enum. makes future changes to the room list format way easier.
sheepluva
parents:
6987
diff
changeset
|
62 |
void setModel(RoomsListModel * model); |
6735 | 63 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
64 |
public slots: |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
65 |
void setAdmin(bool); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
66 |
void setUser(const QString & nickname); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
67 |
void updateNickCounter(int cnt); |
5204 | 68 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
69 |
signals: |
9541
312bb4384f33
- Frontend finally learns how to create passworded room
unc0rr
parents:
9080
diff
changeset
|
70 |
void askForCreateRoom(const QString &, const QString &); |
9549 | 71 |
void askForJoinRoom(const QString &, const QString &); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
72 |
void askForRoomList(); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
73 |
void askJoinConfirmation(const QString &); |
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6009
diff
changeset
|
74 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
75 |
protected: |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
76 |
QLayout * bodyLayoutDefinition(); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
77 |
QLayout * footerLayoutDefinition(); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
78 |
void connectSignals(); |
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6009
diff
changeset
|
79 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
80 |
private slots: |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
81 |
void onCreateClick(); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
82 |
void onJoinClick(); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
83 |
void onRefreshClick(); |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
84 |
void onJoinConfirmation(const QString &); |
6987
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6952
diff
changeset
|
85 |
void onSortIndicatorChanged(int logicalIndex, Qt::SortOrder order); |
6995 | 86 |
void onFilterChanged(); |
9541
312bb4384f33
- Frontend finally learns how to create passworded room
unc0rr
parents:
9080
diff
changeset
|
87 |
void onRoomNameChosen(const QString &, const QString &password); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
88 |
void roomSelectionChanged(const QModelIndex &, const QModelIndex &); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
89 |
void moveSelectionUp(); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
90 |
void moveSelectionDown(); |
5204 | 91 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
92 |
private: |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
93 |
QSettings * m_gameSettings; |
6987
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6952
diff
changeset
|
94 |
QSortFilterProxyModel * roomsModel; |
6995 | 95 |
QSortFilterProxyModel * stateFilteredModel; |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
96 |
QAction * showGamesInLobby; |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
97 |
QAction * showGamesInProgress; |
10743
1d16c5414fee
Intent is to allow filtering by arbitrary flag combinations. This isn't actually working yet. No idea why. It seems it should. Tired though, so will look at it tomorrow.
nemo
parents:
10108
diff
changeset
|
98 |
QAction * showPassword; |
1d16c5414fee
Intent is to allow filtering by arbitrary flag combinations. This isn't actually working yet. No idea why. It seems it should. Tired though, so will look at it tomorrow.
nemo
parents:
10108
diff
changeset
|
99 |
QAction * showJoinRestricted; |
9031 | 100 |
QSplitter * m_splitter; |
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6009
diff
changeset
|
101 |
|
13202
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
11046
diff
changeset
|
102 |
GameSchemeModel * gameSchemeModel; |
6042
8b5345758f62
some more cleanups/refactoring/blahblah, some button positions may are a bit off atm. also I added a new picture for one of the buttons
sheepluva
parents:
6009
diff
changeset
|
103 |
|
6996 | 104 |
bool restoreHeaderState(); |
5204 | 105 |
}; |
106 |
||
107 |
#endif |