author | unC0Rr |
Wed, 20 Nov 2024 21:37:47 +0100 | |
branch | transitional_engine |
changeset 16067 | d903f8d2395a |
parent 15900 | fc3cb23fd26f |
permissions | -rw-r--r-- |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
1 |
/* |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
2 |
* Hedgewars, a free turn based strategy game |
11046 | 3 |
* Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com> |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
4 |
* |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
6 |
* it under the terms of the GNU General Public License as published by |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
7 |
* the Free Software Foundation; version 2 of the License |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
8 |
* |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
12 |
* GNU General Public License for more details. |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
13 |
* |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
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:
9999
diff
changeset
|
16 |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
17 |
*/ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
18 |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
19 |
#include <QVBoxLayout> |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
20 |
#include <QHBoxLayout> |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
21 |
#include <QGridLayout> |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
22 |
#include <QPushButton> |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
23 |
#include <QComboBox> |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
24 |
#include <QLabel> |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
25 |
#include <QLineEdit> |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
26 |
#include <QMessageBox> |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
27 |
#include <QHeaderView> |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
28 |
#include <QGroupBox> |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
29 |
#include <QMenu> |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
30 |
#include <QDebug> |
9031 | 31 |
#include <QSplitter> |
13198
ceae8e01af98
Fix frontend from messing with legacy schemes.ini, just read it, never write
Wuzzy <Wuzzy2@mail.ru>
parents:
13197
diff
changeset
|
32 |
#include <QSettings> |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
33 |
|
6987
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6977
diff
changeset
|
34 |
#include <QSortFilterProxyModel> |
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6977
diff
changeset
|
35 |
|
6993
47830cf50574
room list: replace magic table column indexes with enum. makes future changes to the room list format way easier.
sheepluva
parents:
6991
diff
changeset
|
36 |
#include "roomslistmodel.h" |
47830cf50574
room list: replace magic table column indexes with enum. makes future changes to the room list format way easier.
sheepluva
parents:
6991
diff
changeset
|
37 |
|
13197
0bc5f618ca7c
Rename the misleadingly-named AmmoSchemeModel to GameSchemeModel
Wuzzy <Wuzzy2@mail.ru>
parents:
12897
diff
changeset
|
38 |
#include "gameSchemeModel.h" |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
39 |
#include "hwconsts.h" |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
40 |
#include "chatwidget.h" |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
41 |
#include "roomnameprompt.h" |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
42 |
#include "lineeditcursor.h" |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
43 |
#include "pageroomslist.h" |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
44 |
|
8731
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
45 |
void RoomTableView::moveDown() |
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
46 |
{ |
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
47 |
setCurrentIndex(moveCursor(QAbstractItemView::MoveDown, Qt::NoModifier)); |
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
48 |
} |
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
49 |
|
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
50 |
void RoomTableView::moveUp() |
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
51 |
{ |
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
52 |
setCurrentIndex(moveCursor(QAbstractItemView::MoveUp, Qt::NoModifier)); |
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
53 |
} |
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
54 |
|
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
|
55 |
QLayout * PageRoomsList::bodyLayoutDefinition() |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
56 |
{ |
9999 | 57 |
// TODO move stylesheet stuff into css/qt.css |
58 |
||
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
59 |
QVBoxLayout * pageLayout = new QVBoxLayout(); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
60 |
pageLayout->setSpacing(0); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
61 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
62 |
QGridLayout * topLayout = new QGridLayout(); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
63 |
topLayout->setSpacing(0); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
64 |
pageLayout->addLayout(topLayout, 0); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
65 |
|
9997 | 66 |
// State button |
67 |
||
68 |
QPushButton * btnState = new QPushButton(tr("Room state")); |
|
9999 | 69 |
btnState->setStyleSheet("QPushButton { background-color: #F6CB1C; border-color: #F6CB1C; color: #130F2A; padding: 1px 3px 3px 3px; margin: 0px; border-bottom: none; border-radius: 0px; border-top-left-radius: 10px; } QPushButton:hover { background-color: #FFEB3C; border-color: #F6CB1C; color: #000000 } QPushButton:pressed { background-color: #FFEB3C; border-color: #F6CB1C; color: #000000; }"); |
9997 | 70 |
btnState->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); |
71 |
||
72 |
// State menu |
|
73 |
||
74 |
QMenu * stateMenu = new QMenu(btnState); |
|
75 |
showGamesInLobby = new QAction(QAction::tr("Show games in lobby"), stateMenu); |
|
76 |
showGamesInLobby->setCheckable(true); |
|
77 |
showGamesInLobby->setChecked(true); |
|
78 |
showGamesInProgress = new QAction(QAction::tr("Show games in-progress"), stateMenu); |
|
79 |
showGamesInProgress->setCheckable(true); |
|
80 |
showGamesInProgress->setChecked(true); |
|
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
|
81 |
showPassword = new QAction(QAction::tr("Show password protected"), stateMenu); |
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
|
82 |
showPassword->setCheckable(true); |
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
|
83 |
showPassword->setChecked(true); |
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
|
84 |
showJoinRestricted = new QAction(QAction::tr("Show join restricted"), stateMenu); |
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
|
85 |
showJoinRestricted->setCheckable(true); |
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
|
86 |
showJoinRestricted->setChecked(true); |
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
87 |
showIncompatible = new QAction(QAction::tr("Show incompatible"), stateMenu); |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
88 |
showIncompatible->setCheckable(true); |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
89 |
showIncompatible->setChecked(true); |
9997 | 90 |
stateMenu->addAction(showGamesInLobby); |
91 |
stateMenu->addAction(showGamesInProgress); |
|
10803
df39aa3f6d4d
merge 0.9.21, hopefully without screwing anything up due to this having been left for a while + parallel commits that occurred...
nemo
parents:
10750
diff
changeset
|
92 |
stateMenu->addAction(showPassword); |
df39aa3f6d4d
merge 0.9.21, hopefully without screwing anything up due to this having been left for a while + parallel commits that occurred...
nemo
parents:
10750
diff
changeset
|
93 |
stateMenu->addAction(showJoinRestricted); |
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
94 |
stateMenu->addAction(showIncompatible); |
9997 | 95 |
btnState->setMenu(stateMenu); |
96 |
||
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
97 |
// Help/prompt message at top |
8488
e72f3398a28b
Removed in-lineedit labels such as "search:" and "room name:" due to size issues with localization and platform differences.
dag10
parents:
8453
diff
changeset
|
98 |
QLabel * lblDesc = new QLabel(tr("Search for a room:")); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
99 |
lblDesc->setObjectName("lblDesc"); |
9999 | 100 |
lblDesc->setStyleSheet("#lblDesc { color: #130F2A; background: #F6CB1C; border: solid 4px #F6CB1C; padding: 5px 10px 3px 6px;}"); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
101 |
lblDesc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
102 |
lblDesc->setFixedHeight(24); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
103 |
lblDesc->setMinimumWidth(0); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
104 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
105 |
// Search text box |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
106 |
QWidget * searchContainer = new QWidget(); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
107 |
searchContainer->setFixedHeight(24); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
108 |
searchContainer->setObjectName("searchContainer"); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
109 |
searchContainer->setStyleSheet("#searchContainer { background: #F6CB1C; border-top-right-radius: 10px; padding: 3px; }"); |
8488
e72f3398a28b
Removed in-lineedit labels such as "search:" and "room name:" due to size issues with localization and platform differences.
dag10
parents:
8453
diff
changeset
|
110 |
searchContainer->setFixedWidth(200); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
111 |
searchText = new LineEditCursor(searchContainer); |
8488
e72f3398a28b
Removed in-lineedit labels such as "search:" and "room name:" due to size issues with localization and platform differences.
dag10
parents:
8453
diff
changeset
|
112 |
searchText->setFixedWidth(200); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
113 |
searchText->setMaxLength(60); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
114 |
searchText->setFixedHeight(22); |
8488
e72f3398a28b
Removed in-lineedit labels such as "search:" and "room name:" due to size issues with localization and platform differences.
dag10
parents:
8453
diff
changeset
|
115 |
searchText->setStyleSheet("LineEditCursor { border-width: 0px; border-radius: 6px; margin-top: 3px; margin-right: 3px; padding-left: 4px; padding-bottom: 2px; background-color: rgb(23, 11, 54); } LineEditCursor:hover, LineEditCursor:focus { background-color: rgb(13, 5, 68); }"); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
116 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
117 |
// Corner widget |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
118 |
QLabel * corner = new QLabel(); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
119 |
corner->setPixmap(QPixmap(QString::fromUtf8(":/res/inverse-corner-bl.png"))); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
120 |
corner->setFixedSize(10, 10); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
121 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
122 |
const QIcon& lp = QIcon(":/res/new.png"); |
8637 | 123 |
//QSize sz = lp.actualSize(QSize(65535, 65535)); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
124 |
BtnCreate = new QPushButton(); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
125 |
BtnCreate->setText(tr("Create room")); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
126 |
BtnCreate->setIcon(lp); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
127 |
BtnCreate->setStyleSheet("padding: 4px 8px; margin-bottom: 6px;"); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
128 |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
129 |
BtnJoin = new QPushButton(tr("Join room")); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
130 |
BtnJoin->setStyleSheet("padding: 4px 8px; margin-bottom: 6px; margin-left: 6px;"); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
131 |
BtnJoin->setEnabled(false); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
132 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
133 |
// Add widgets to top layout |
9997 | 134 |
topLayout->addWidget(btnState, 1, 0); |
135 |
topLayout->addWidget(lblDesc, 1, 1); |
|
136 |
topLayout->addWidget(searchContainer, 1, 2); |
|
137 |
topLayout->addWidget(corner, 1, 3, Qt::AlignBottom); |
|
138 |
topLayout->addWidget(BtnCreate, 0, 5, 2, 1); |
|
139 |
topLayout->addWidget(BtnJoin, 0, 6, 2, 1); |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
140 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
141 |
// Top layout stretch |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
142 |
topLayout->setRowStretch(0, 1); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
143 |
topLayout->setRowStretch(1, 0); |
9997 | 144 |
topLayout->setColumnStretch(4, 1); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
145 |
|
9031 | 146 |
// Rooms list and chat with splitter |
147 |
m_splitter = new QSplitter(); |
|
148 |
m_splitter->setChildrenCollapsible(false); |
|
149 |
pageLayout->addWidget(m_splitter, 100); |
|
150 |
||
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
151 |
// Room list |
9031 | 152 |
QWidget * roomsListWidget = new QWidget(this); |
153 |
m_splitter->setOrientation(Qt::Vertical); |
|
154 |
m_splitter->addWidget(roomsListWidget); |
|
155 |
||
156 |
QVBoxLayout * roomsLayout = new QVBoxLayout(roomsListWidget); |
|
157 |
roomsLayout->setMargin(0); |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
158 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
159 |
roomsList = new RoomTableView(this); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
160 |
roomsList->setSelectionBehavior(QAbstractItemView::SelectRows); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
161 |
roomsList->verticalHeader()->setVisible(false); |
12897
fc47fc4af6bd
Finish porting. Seems to work, but no thorough testing has been performed
unc0rr
parents:
12236
diff
changeset
|
162 |
roomsList->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); |
13325 | 163 |
roomsList->horizontalHeader()->stretchLastSection(); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
164 |
roomsList->setAlternatingRowColors(true); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
165 |
roomsList->setShowGrid(false); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
166 |
roomsList->setSelectionMode(QAbstractItemView::SingleSelection); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
167 |
roomsList->setStyleSheet("QTableView { border-top-left-radius: 0px; }"); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
168 |
roomsList->setFocusPolicy(Qt::NoFocus); |
9031 | 169 |
roomsLayout->addWidget(roomsList, 200); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
170 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
171 |
// Lobby chat |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
172 |
|
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
7794
diff
changeset
|
173 |
chatWidget = new HWChatWidget(this, false); |
9031 | 174 |
m_splitter->addWidget(chatWidget); |
6146
c7c2dd71ced4
server lobby: don't stretch buttons right of the roomlist - instead let the roomlist use all the available space
sheepluva
parents:
6060
diff
changeset
|
175 |
|
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
|
176 |
return pageLayout; |
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
|
177 |
} |
6009 | 178 |
|
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
|
179 |
QLayout * PageRoomsList::footerLayoutDefinition() |
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
|
180 |
{ |
6172 | 181 |
QHBoxLayout * bottomLayout = new QHBoxLayout(); |
5259
926958e3e87b
display player count below and with label, just because it's funny to mess with unC0Rr's code and make him cry :P
sheepluva
parents:
5204
diff
changeset
|
182 |
|
11819
7642955690bc
Tweak sizes and icons of most footer buttons of frontend
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
183 |
BtnAdmin = addButton(tr("Admin features"), bottomLayout, 0, false, Qt::AlignBottom); |
7642955690bc
Tweak sizes and icons of most footer buttons of frontend
Wuzzy <almikes@aol.com>
parents:
11046
diff
changeset
|
184 |
BtnAdmin->setMinimumSize(180, 50); |
12236
a0ed4caa6d35
Apply minimal padding to all text buttons in frontend
Wuzzy <almikes@aol.com>
parents:
11819
diff
changeset
|
185 |
BtnAdmin->setStyleSheet("padding: 5px 10px"); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
186 |
BtnAdmin->setWhatsThis(tr("Open server administration page")); |
5259
926958e3e87b
display player count below and with label, just because it's funny to mess with unC0Rr's code and make him cry :P
sheepluva
parents:
5204
diff
changeset
|
187 |
|
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
|
188 |
return bottomLayout; |
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
|
189 |
} |
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
|
190 |
|
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
|
191 |
void PageRoomsList::connectSignals() |
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
|
192 |
{ |
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
|
193 |
connect(chatWidget, SIGNAL(nickCountUpdate(const int)), this, SLOT(updateNickCounter(const int))); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
194 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
195 |
connect(BtnCreate, SIGNAL(clicked()), this, SLOT(onCreateClick())); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
196 |
connect(BtnJoin, SIGNAL(clicked()), this, SLOT(onJoinClick())); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
197 |
connect(searchText, SIGNAL(moveUp()), this, SLOT(moveSelectionUp())); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
198 |
connect(searchText, SIGNAL(moveDown()), this, SLOT(moveSelectionDown())); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
199 |
connect(searchText, SIGNAL(returnPressed()), this, SLOT(onJoinClick())); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
200 |
connect(roomsList, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(onJoinClick())); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
201 |
connect(roomsList, SIGNAL(clicked (const QModelIndex &)), searchText, SLOT(setFocus())); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
202 |
connect(showGamesInLobby, SIGNAL(triggered()), this, SLOT(onFilterChanged())); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
203 |
connect(showGamesInProgress, SIGNAL(triggered()), this, SLOT(onFilterChanged())); |
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
|
204 |
connect(showPassword, SIGNAL(triggered()), this, SLOT(onFilterChanged())); |
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
|
205 |
connect(showJoinRestricted, SIGNAL(triggered()), this, SLOT(onFilterChanged())); |
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
206 |
connect(showIncompatible, SIGNAL(triggered()), this, SLOT(onFilterChanged())); |
6995 | 207 |
connect(searchText, SIGNAL(textChanged (const QString &)), this, SLOT(onFilterChanged())); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
208 |
connect(this, SIGNAL(askJoinConfirmation (const QString &)), this, SLOT(onJoinConfirmation(const QString &)), Qt::QueuedConnection); |
6995 | 209 |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
210 |
// Set focus on search box |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
211 |
connect(this, SIGNAL(pageEnter()), searchText, SLOT(setFocus())); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
212 |
|
6996 | 213 |
// sorting |
6995 | 214 |
connect(roomsList->horizontalHeader(), SIGNAL(sortIndicatorChanged(int, Qt::SortOrder)), |
215 |
this, SLOT(onSortIndicatorChanged(int, Qt::SortOrder))); |
|
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
|
216 |
} |
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
|
217 |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
218 |
void PageRoomsList::moveSelectionUp() |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
219 |
{ |
8731
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
220 |
roomsList->moveUp(); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
221 |
} |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
222 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
223 |
void PageRoomsList::moveSelectionDown() |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
224 |
{ |
8731
924840dad6a0
fix compilation with clang. fixes issue 553 - thanks to julien for reporting and to drew for the first part of the fix
sheepluva
parents:
8729
diff
changeset
|
225 |
roomsList->moveDown(); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
226 |
} |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
227 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
228 |
void PageRoomsList::roomSelectionChanged(const QModelIndex & current, const QModelIndex & previous) |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
229 |
{ |
9031 | 230 |
Q_UNUSED(previous); |
231 |
||
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
232 |
BtnJoin->setEnabled(current.isValid()); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
233 |
} |
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
|
234 |
|
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
7794
diff
changeset
|
235 |
PageRoomsList::PageRoomsList(QWidget* parent) : |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
236 |
AbstractPage(parent) |
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
|
237 |
{ |
6995 | 238 |
roomsModel = NULL; |
239 |
stateFilteredModel = NULL; |
|
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
240 |
versionFilteredModel = NULL; |
6995 | 241 |
|
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
|
242 |
initPage(); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
243 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
244 |
|
6180
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
245 |
|
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
246 |
void PageRoomsList::displayError(const QString & message) |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
247 |
{ |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
248 |
chatWidget->displayError(message); |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
249 |
} |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
250 |
|
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
251 |
|
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
252 |
void PageRoomsList::displayNotice(const QString & message) |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
253 |
{ |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
254 |
chatWidget->displayNotice(message); |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
255 |
} |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
256 |
|
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
257 |
void PageRoomsList::displayWarning(const QString & message) |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
258 |
{ |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
259 |
chatWidget->displayWarning(message); |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
260 |
} |
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
261 |
|
0992fc5a4ad9
some changes to the css... display:none; works now (e.g. you can use it for user join/leave messages that are not your friends)
sheepluva
parents:
6172
diff
changeset
|
262 |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
263 |
void PageRoomsList::setAdmin(bool flag) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
264 |
{ |
5283 | 265 |
BtnAdmin->setVisible(flag); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
266 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
267 |
|
6732
c906dc78091f
Start switching to rooms list model. To be continued.
unc0rr
parents:
6700
diff
changeset
|
268 |
/* |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
269 |
void PageRoomsList::setRoomsList(const QStringList & list) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
270 |
{ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
271 |
QBrush red(QColor(255, 0, 0)); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
272 |
QBrush orange(QColor(127, 127, 0)); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
273 |
QBrush yellow(QColor(255, 255, 0)); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
274 |
QBrush green(QColor(0, 255, 0)); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
275 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
276 |
listFromServer = list; |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
277 |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
278 |
QString selection = ""; |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
279 |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
280 |
if(QTableWidgetItem *item = roomsList->item(roomsList->currentRow(), 0)) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
281 |
selection = item->text(); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
282 |
|
5283 | 283 |
roomsList->clear(); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
284 |
roomsList->setColumnCount(7); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
285 |
roomsList->setHorizontalHeaderLabels( |
6732
c906dc78091f
Start switching to rooms list model. To be continued.
unc0rr
parents:
6700
diff
changeset
|
286 |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
287 |
); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
288 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
289 |
// set minimum sizes |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
290 |
// roomsList->horizontalHeader()->resizeSection(0, 200); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
291 |
// roomsList->horizontalHeader()->resizeSection(1, 50); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
292 |
// roomsList->horizontalHeader()->resizeSection(2, 50); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
293 |
// roomsList->horizontalHeader()->resizeSection(3, 100); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
294 |
// roomsList->horizontalHeader()->resizeSection(4, 100); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
295 |
// roomsList->horizontalHeader()->resizeSection(5, 100); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
296 |
// roomsList->horizontalHeader()->resizeSection(6, 100); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
297 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
298 |
// set resize modes |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
299 |
// roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
300 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
301 |
bool gameCanBeJoined = true; |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
302 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
303 |
if (list.size() % 8) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
304 |
return; |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
305 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
306 |
roomsList->setRowCount(list.size() / 8); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
307 |
for(int i = 0, r = 0; i < list.size(); i += 8, r++) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
308 |
{ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
309 |
// if we are joining a game |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
310 |
// TODO: Should NOT be done here |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
311 |
if (gameInLobby) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
312 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
313 |
if (gameInLobbyName == list[i + 1]) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
314 |
{ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
315 |
gameCanBeJoined = list[i].compare("True"); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
316 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
317 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
318 |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
319 |
// check filter settings |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
320 |
#define NO_FILTER_MATCH roomsList->setRowCount(roomsList->rowCount() - 1); --r; continue |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
321 |
|
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
322 |
if (list[i].compare("True") && CBState->currentIndex() == 2) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
323 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
324 |
NO_FILTER_MATCH; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
325 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
326 |
if (list[i].compare("False") && CBState->currentIndex() == 1) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
327 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
328 |
NO_FILTER_MATCH; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
329 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
330 |
if (CBRules->currentIndex() != 0 && list[i + 6].compare(CBRules->currentText())) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
331 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
332 |
NO_FILTER_MATCH; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
333 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
334 |
if (CBWeapons->currentIndex() != 0 && list[i + 7].compare(CBWeapons->currentText())) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
335 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
336 |
NO_FILTER_MATCH; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
337 |
} |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
338 |
bool found = list[i + 1].contains(searchText->text(), Qt::CaseInsensitive); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
339 |
if (!found) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
340 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
341 |
for (int a = 4; a <= 7; ++a) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
342 |
{ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
343 |
QString compString = list[i + a]; |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
344 |
if (a == 5 && compString == "+rnd+") |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
345 |
{ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
346 |
compString = "Random Map"; |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
347 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
348 |
else if (a == 5 && compString == "+maze+") |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
349 |
{ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
350 |
compString = "Random Maze"; |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
351 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
352 |
else if (a == 5 && compString == "+drawn+") |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
353 |
{ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
354 |
compString = "Drawn Map"; |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
355 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
356 |
if (compString.contains(searchText->text(), Qt::CaseInsensitive)) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
357 |
{ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
358 |
found = true; |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
359 |
break; |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
360 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
361 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
362 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
363 |
if (!searchText->text().isEmpty() && !found) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
364 |
{ |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
365 |
NO_FILTER_MATCH; |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
366 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
367 |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
368 |
QTableWidgetItem * item; |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
369 |
item = new QTableWidgetItem(list[i + 1]); // room name |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
370 |
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
371 |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
372 |
// pick appropriate room icon and tooltip (game in progress yes/no; later maybe locked rooms etc.) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
373 |
if(list[i].compare("True")) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
374 |
{ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
375 |
item->setIcon(QIcon(":/res/iconTime.png"));// game is in lobby |
6699
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
376 |
item->setToolTip(tr("Waiting...")); |
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
377 |
item->setWhatsThis(tr("This game is in lobby: you may join and start playing once the game starts.")); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
378 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
379 |
else |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
380 |
{ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
381 |
item->setIcon(QIcon(":/res/iconDamage.png"));// game has started |
6699
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
382 |
item->setToolTip(tr("In progress...")); |
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
383 |
item->setWhatsThis(tr("This game is in progress: you may join and spectate now but you'll have to wait for the game to end to start playing.")); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
384 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
385 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
386 |
roomsList->setItem(r, 0, item); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
387 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
388 |
item = new QTableWidgetItem(list[i + 2]); // number of clients |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
389 |
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
390 |
item->setTextAlignment(Qt::AlignCenter); |
6699
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
391 |
item->setWhatsThis(tr("There are %1 clients connected to this room.", "", list[i + 2].toInt()).arg(list[i + 2])); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
392 |
roomsList->setItem(r, 1, item); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
393 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
394 |
item = new QTableWidgetItem(list[i + 3]); // number of teams |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
395 |
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
396 |
item->setTextAlignment(Qt::AlignCenter); |
6699
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
397 |
item->setWhatsThis(tr("There are %1 teams participating in this room.", "", list[i + 3].toInt()).arg(list[i + 3])); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
398 |
//Should we highlight "full" games? Might get misinterpreted |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
399 |
//if(list[i + 3].toInt() >= cMaxTeams) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
400 |
// item->setForeground(red); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
401 |
roomsList->setItem(r, 2, item); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
402 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
403 |
item = new QTableWidgetItem(list[i + 4].left(15)); // name of host |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
404 |
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); |
6699
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
405 |
item->setWhatsThis(tr("%1 is the host. He may adjust settings and start the game.").arg(list[i + 4])); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
406 |
roomsList->setItem(r, 3, item); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
407 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
408 |
if(list[i + 5] == "+rnd+") |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
409 |
{ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
410 |
item = new QTableWidgetItem(tr("Random Map")); // selected map (is randomized) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
411 |
// FIXME - need real icons. Disabling until then |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
412 |
// item->setIcon(QIcon(":/res/mapRandom.png")); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
413 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
414 |
else if (list[i+5] == "+maze+") |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
415 |
{ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
416 |
item = new QTableWidgetItem(tr("Random Maze")); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
417 |
// FIXME - need real icons. Disabling until then |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
418 |
// item->setIcon(QIcon(":/res/mapMaze.png")); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
419 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
420 |
else |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
421 |
{ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
422 |
item = new QTableWidgetItem(list[i + 5]); // selected map |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
423 |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
424 |
// check to see if we've got this map |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
425 |
// not perfect but a start |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
426 |
if(!mapList->contains(list[i + 5])) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
427 |
{ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
428 |
item->setForeground(red); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
429 |
item->setIcon(QIcon(":/res/mapMissing.png")); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
430 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
431 |
else |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
432 |
{ |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
433 |
// todo: mission icon? |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
434 |
// FIXME - need real icons. Disabling until then |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
435 |
// item->setIcon(QIcon(":/res/mapCustom.png")); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
436 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
437 |
} |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
438 |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
439 |
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); |
6699
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
440 |
item->setWhatsThis(tr("Games may be played on precreated or randomized maps.")); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
441 |
roomsList->setItem(r, 4, item); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
442 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
443 |
item = new QTableWidgetItem(list[i + 6].left(24)); // selected game scheme |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
444 |
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); |
6699
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
445 |
item->setWhatsThis(tr("The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.")); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
446 |
roomsList->setItem(r, 5, item); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
447 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
448 |
item = new QTableWidgetItem(list[i + 7].left(24)); // selected weapon scheme |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
449 |
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); |
6699
83dd3447a212
exploit the new setWhatsThis feature in our desktop frontend
koda
parents:
6616
diff
changeset
|
450 |
item->setWhatsThis(tr("The Weapon Scheme defines available weapons and their ammunition count.")); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
451 |
roomsList->setItem(r, 6, item); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
452 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
453 |
if(!list[i + 1].compare(selection) && !selection.isEmpty()) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
454 |
roomsList->selectionModel()->setCurrentIndex(roomsList->model()->index(r, 0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
455 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
456 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
457 |
roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
458 |
roomsList->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
459 |
roomsList->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
460 |
roomsList->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
461 |
roomsList->horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
462 |
roomsList->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
463 |
roomsList->horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
464 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
465 |
// TODO: Should NOT be done here |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
466 |
if (gameInLobby) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
467 |
{ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
468 |
gameInLobby = false; |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
469 |
if (gameCanBeJoined) |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
470 |
{ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
471 |
emit askForJoinRoom(gameInLobbyName); |
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
472 |
} |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
473 |
else |
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
474 |
{ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
475 |
emit askJoinConfirmation(gameInLobbyName); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
476 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
477 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
478 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
479 |
// roomsList->resizeColumnsToContents(); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
480 |
} |
6732
c906dc78091f
Start switching to rooms list model. To be continued.
unc0rr
parents:
6700
diff
changeset
|
481 |
*/ |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
482 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
483 |
void PageRoomsList::onCreateClick() |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
484 |
{ |
9541
312bb4384f33
- Frontend finally learns how to create passworded room
unc0rr
parents:
9080
diff
changeset
|
485 |
RoomNamePrompt prompt(this, m_gameSettings->value("frontend/lastroomname", QString()).toString()); |
312bb4384f33
- Frontend finally learns how to create passworded room
unc0rr
parents:
9080
diff
changeset
|
486 |
if(prompt.exec()) |
312bb4384f33
- Frontend finally learns how to create passworded room
unc0rr
parents:
9080
diff
changeset
|
487 |
onRoomNameChosen(prompt.getRoomName(), prompt.getPassword()); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
488 |
} |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
489 |
|
9541
312bb4384f33
- Frontend finally learns how to create passworded room
unc0rr
parents:
9080
diff
changeset
|
490 |
void PageRoomsList::onRoomNameChosen(const QString & roomName, const QString & password) |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
491 |
{ |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
492 |
if (!roomName.trimmed().isEmpty()) |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
493 |
{ |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
494 |
m_gameSettings->setValue("frontend/lastroomname", roomName); |
9541
312bb4384f33
- Frontend finally learns how to create passworded room
unc0rr
parents:
9080
diff
changeset
|
495 |
emit askForCreateRoom(roomName, password); |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
496 |
} |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
497 |
else |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
498 |
{ |
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
499 |
onCreateClick(); |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
500 |
} |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
501 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
502 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
503 |
void PageRoomsList::onJoinClick() |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
504 |
{ |
6736 | 505 |
QModelIndexList mdl = roomsList->selectionModel()->selectedRows(); |
506 |
||
507 |
if(mdl.size() != 1) |
|
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
508 |
{ |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
509 |
QMessageBox roomNameMsg(this); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
510 |
roomNameMsg.setIcon(QMessageBox::Warning); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
511 |
roomNameMsg.setWindowTitle(QMessageBox::tr("Room Name - Error")); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
512 |
roomNameMsg.setText(QMessageBox::tr("Please select room from the list")); |
14857
b9437746bffb
Frontend: Force plain text mode for many message windows
Wuzzy <Wuzzy2@mail.ru>
parents:
13325
diff
changeset
|
513 |
roomNameMsg.setTextFormat(Qt::PlainText); |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
514 |
roomNameMsg.setWindowModality(Qt::WindowModal); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
515 |
roomNameMsg.exec(); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
516 |
return; |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
517 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
518 |
|
6736 | 519 |
bool gameInLobby = roomsList->model()->index(mdl[0].row(), 0).data().toString().compare("True"); |
520 |
QString roomName = roomsList->model()->index(mdl[0].row(), 1).data().toString(); |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
521 |
|
6736 | 522 |
if (!gameInLobby) |
523 |
emit askJoinConfirmation(roomName); |
|
6616
f77bb02b669f
astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents:
6227
diff
changeset
|
524 |
else |
9549 | 525 |
emit askForJoinRoom(roomName, QString()); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
526 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
527 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
528 |
void PageRoomsList::onRefreshClick() |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
529 |
{ |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
530 |
emit askForRoomList(); |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
531 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
532 |
|
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
533 |
void PageRoomsList::onJoinConfirmation(const QString & room) |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
534 |
{ |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
535 |
|
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
536 |
QMessageBox reallyJoinMsg(this); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
537 |
reallyJoinMsg.setIcon(QMessageBox::Question); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
538 |
reallyJoinMsg.setWindowTitle(QMessageBox::tr("Room Name - Are you sure?")); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
539 |
reallyJoinMsg.setText(QMessageBox::tr("The game you are trying to join has started.\nDo you still want to join the room?")); |
14857
b9437746bffb
Frontend: Force plain text mode for many message windows
Wuzzy <Wuzzy2@mail.ru>
parents:
13325
diff
changeset
|
540 |
reallyJoinMsg.setTextFormat(Qt::PlainText); |
7794
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
541 |
reallyJoinMsg.setWindowModality(Qt::WindowModal); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
542 |
reallyJoinMsg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); |
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
543 |
|
ab7b94c03bc9
QMessageBox overhaul: unify buttons, style and appearance of info dialogs, fixing a few typos and return values along the way
koda
parents:
7769
diff
changeset
|
544 |
if (reallyJoinMsg.exec() == QMessageBox::Ok) |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
545 |
{ |
9549 | 546 |
emit askForJoinRoom(room, QString()); |
5078
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
547 |
} |
3527f0e7bb21
Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff
changeset
|
548 |
} |
5259
926958e3e87b
display player count below and with label, just because it's funny to mess with unC0Rr's code and make him cry :P
sheepluva
parents:
5204
diff
changeset
|
549 |
|
926958e3e87b
display player count below and with label, just because it's funny to mess with unC0Rr's code and make him cry :P
sheepluva
parents:
5204
diff
changeset
|
550 |
void PageRoomsList::updateNickCounter(int cnt) |
926958e3e87b
display player count below and with label, just because it's funny to mess with unC0Rr's code and make him cry :P
sheepluva
parents:
5204
diff
changeset
|
551 |
{ |
8729 | 552 |
setDefaultDescription(tr("%1 players online", 0, cnt).arg(cnt)); |
5259
926958e3e87b
display player count below and with label, just because it's funny to mess with unC0Rr's code and make him cry :P
sheepluva
parents:
5204
diff
changeset
|
553 |
} |
6227
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6180
diff
changeset
|
554 |
|
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6180
diff
changeset
|
555 |
void PageRoomsList::setUser(const QString & nickname) |
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6180
diff
changeset
|
556 |
{ |
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6180
diff
changeset
|
557 |
chatWidget->setUser(nickname); |
ce60b734fff1
update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents:
6180
diff
changeset
|
558 |
} |
6735 | 559 |
|
6995 | 560 |
void PageRoomsList::setModel(RoomsListModel * model) |
6735 | 561 |
{ |
6996 | 562 |
// filter chain: |
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
563 |
// model -> versionFilteredModel -> stateFilteredModel -> schemeFilteredModel -> |
6996 | 564 |
// -> weaponsFilteredModel -> roomsModel (search filter+sorting) |
565 |
||
6995 | 566 |
if (roomsModel == NULL) |
567 |
{ |
|
568 |
roomsModel = new QSortFilterProxyModel(this); |
|
569 |
roomsModel->setDynamicSortFilter(true); |
|
570 |
roomsModel->setSortCaseSensitivity(Qt::CaseInsensitive); |
|
571 |
roomsModel->sort(RoomsListModel::StateColumn, Qt::AscendingOrder); |
|
572 |
||
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
573 |
versionFilteredModel = new QSortFilterProxyModel(this); |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
574 |
versionFilteredModel->setDynamicSortFilter(true); |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
575 |
versionFilteredModel->setFilterKeyColumn(RoomsListModel::VersionColumn); |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
576 |
versionFilteredModel->setFilterRole(Qt::UserRole); |
6995 | 577 |
|
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
578 |
stateFilteredModel = new QSortFilterProxyModel(this); |
6995 | 579 |
stateFilteredModel->setDynamicSortFilter(true); |
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
580 |
stateFilteredModel->setFilterKeyColumn(RoomsListModel::StateColumn); |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
581 |
stateFilteredModel->setSourceModel(versionFilteredModel); |
6995 | 582 |
|
583 |
roomsModel->setFilterKeyColumn(-1); // search in all columns |
|
584 |
||
585 |
roomsModel->setFilterCaseSensitivity(Qt::CaseInsensitive); |
|
586 |
||
9702 | 587 |
roomsModel->setSourceModel(stateFilteredModel); |
6995 | 588 |
|
6996 | 589 |
// let the table view display the last model in the filter chain |
590 |
roomsList->setModel(roomsModel); |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
591 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
592 |
// When the data changes |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
593 |
connect(roomsModel, SIGNAL(layoutChanged()), roomsList, SLOT(repaint())); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
594 |
|
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
595 |
// When a selection changes |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
596 |
connect(roomsList->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(roomSelectionChanged(const QModelIndex &, const QModelIndex &))); |
6995 | 597 |
} |
598 |
||
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
599 |
versionFilteredModel->setSourceModel(model); |
6735 | 600 |
|
601 |
QHeaderView * h = roomsList->horizontalHeader(); |
|
6987
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6977
diff
changeset
|
602 |
|
7011
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
603 |
h->setSortIndicatorShown(true); |
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
604 |
h->setSortIndicator(RoomsListModel::StateColumn, Qt::AscendingOrder); |
12897
fc47fc4af6bd
Finish porting. Seems to work, but no thorough testing has been performed
unc0rr
parents:
12236
diff
changeset
|
605 |
h->setSectionResizeMode(RoomsListModel::NameColumn, QHeaderView::Stretch); |
7011
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
606 |
|
13201
25502e6b3e08
While the intent was good, saving column width/sort was unfortunately not handling the addition of new columns and old configs were losing columns. If this is restored, it should have some check on column with invalidation of config.
nemo
parents:
13198
diff
changeset
|
607 |
h->resizeSection(RoomsListModel::PlayerCountColumn, 32); |
25502e6b3e08
While the intent was good, saving column width/sort was unfortunately not handling the addition of new columns and old configs were losing columns. If this is restored, it should have some check on column with invalidation of config.
nemo
parents:
13198
diff
changeset
|
608 |
h->resizeSection(RoomsListModel::TeamCountColumn, 32); |
25502e6b3e08
While the intent was good, saving column width/sort was unfortunately not handling the addition of new columns and old configs were losing columns. If this is restored, it should have some check on column with invalidation of config.
nemo
parents:
13198
diff
changeset
|
609 |
h->resizeSection(RoomsListModel::OwnerColumn, 100); |
25502e6b3e08
While the intent was good, saving column width/sort was unfortunately not handling the addition of new columns and old configs were losing columns. If this is restored, it should have some check on column with invalidation of config.
nemo
parents:
13198
diff
changeset
|
610 |
h->resizeSection(RoomsListModel::MapColumn, 100); |
25502e6b3e08
While the intent was good, saving column width/sort was unfortunately not handling the addition of new columns and old configs were losing columns. If this is restored, it should have some check on column with invalidation of config.
nemo
parents:
13198
diff
changeset
|
611 |
h->resizeSection(RoomsListModel::SchemeColumn, 100); |
25502e6b3e08
While the intent was good, saving column width/sort was unfortunately not handling the addition of new columns and old configs were losing columns. If this is restored, it should have some check on column with invalidation of config.
nemo
parents:
13198
diff
changeset
|
612 |
h->resizeSection(RoomsListModel::WeaponsColumn, 100); |
6996 | 613 |
|
9702 | 614 |
// hide column used for filtering |
615 |
roomsList->hideColumn(RoomsListModel::StateColumn); |
|
7011
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
616 |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
617 |
roomsList->repaint(); |
6995 | 618 |
} |
6977 | 619 |
|
6987
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6977
diff
changeset
|
620 |
|
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6977
diff
changeset
|
621 |
void PageRoomsList::onSortIndicatorChanged(int logicalIndex, Qt::SortOrder order) |
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6977
diff
changeset
|
622 |
{ |
6995 | 623 |
if (roomsModel == NULL) |
624 |
return; |
|
625 |
||
7011
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
626 |
if (logicalIndex == 0) |
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
627 |
{ |
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
628 |
roomsModel->sort(0, Qt::AscendingOrder); |
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
629 |
return; |
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
630 |
} |
f6f09a0954ea
small tweaks/fixes to room list header saving and restore...
sheepluva
parents:
7003
diff
changeset
|
631 |
|
6989
4c35e9cf6057
make column sorting three-state: asc -> dsc -> off/default (= by room state)
sheepluva
parents:
6988
diff
changeset
|
632 |
// three state sorting: asc -> dsc -> default (by room state) |
4c35e9cf6057
make column sorting three-state: asc -> dsc -> off/default (= by room state)
sheepluva
parents:
6988
diff
changeset
|
633 |
if ((order == Qt::AscendingOrder) && (logicalIndex == roomsModel->sortColumn())) |
6993
47830cf50574
room list: replace magic table column indexes with enum. makes future changes to the room list format way easier.
sheepluva
parents:
6991
diff
changeset
|
634 |
roomsList->horizontalHeader()->setSortIndicator( |
47830cf50574
room list: replace magic table column indexes with enum. makes future changes to the room list format way easier.
sheepluva
parents:
6991
diff
changeset
|
635 |
RoomsListModel::StateColumn, Qt::AscendingOrder); |
6989
4c35e9cf6057
make column sorting three-state: asc -> dsc -> off/default (= by room state)
sheepluva
parents:
6988
diff
changeset
|
636 |
else |
4c35e9cf6057
make column sorting three-state: asc -> dsc -> off/default (= by room state)
sheepluva
parents:
6988
diff
changeset
|
637 |
roomsModel->sort(logicalIndex, order); |
6987
e34415c77342
allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents:
6977
diff
changeset
|
638 |
} |
6995 | 639 |
|
640 |
||
641 |
void PageRoomsList::onFilterChanged() |
|
642 |
{ |
|
643 |
if (roomsModel == NULL) |
|
644 |
return; |
|
645 |
||
9702 | 646 |
roomsModel->setFilterFixedString(searchText->text()); |
6995 | 647 |
|
8453
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
648 |
bool stateLobby = showGamesInLobby->isChecked(); |
06541556df53
Reorganized layout and appearance of rooms list page.
dag10
parents:
8179
diff
changeset
|
649 |
bool stateProgress = showGamesInProgress->isChecked(); |
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
|
650 |
bool statePassword = showPassword->isChecked(); |
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
|
651 |
bool stateJoinRestricted = showJoinRestricted->isChecked(); |
15900
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
652 |
bool stateIncompatible = showIncompatible->isChecked(); |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
653 |
|
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
654 |
if (!stateIncompatible) |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
655 |
versionFilteredModel->setFilterFixedString(*cProtoVer); |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
656 |
else |
fc3cb23fd26f
Allow to see rooms of incompatible versions in the lobby
S.D.
parents:
14857
diff
changeset
|
657 |
versionFilteredModel->setFilterFixedString(""); |
6995 | 658 |
|
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
|
659 |
QString filter; |
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
|
660 |
if (!stateLobby && !stateProgress) |
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
|
661 |
filter = "O_o"; |
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
|
662 |
else if (stateLobby && stateProgress && statePassword && stateJoinRestricted) |
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
|
663 |
filter = ""; |
6995 | 664 |
else |
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
|
665 |
{ |
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
|
666 |
QString exclude = "[^"; |
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
|
667 |
if (!stateProgress) exclude += "g"; |
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
|
668 |
if (!statePassword) exclude += "p"; |
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
|
669 |
if (!stateJoinRestricted) exclude += "j"; |
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
|
670 |
exclude += "]*"; |
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
|
671 |
if (stateProgress && statePassword && stateJoinRestricted) exclude = ".*"; |
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
|
672 |
filter = "^" + exclude; |
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
|
673 |
if (!stateLobby) filter += "g" + exclude; |
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
|
674 |
filter += "$"; |
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
|
675 |
} |
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
|
676 |
//qDebug() << filter; |
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
|
677 |
|
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
|
678 |
stateFilteredModel->setFilterRegExp(filter); |
6995 | 679 |
} |
6996 | 680 |
|
8179
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
7794
diff
changeset
|
681 |
void PageRoomsList::setSettings(QSettings *settings) |
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
7794
diff
changeset
|
682 |
{ |
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
7794
diff
changeset
|
683 |
m_gameSettings = settings; |
a1ffcb559f99
Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents:
7794
diff
changeset
|
684 |
} |