QTfrontend/ui/page/pageroomslist.cpp
author Wuzzy <Wuzzy2@mail.ru>
Wed, 25 Oct 2017 23:09:41 +0200
changeset 12768 ad67a3804981
parent 12241 a0ed4caa6d35
child 12902 fc47fc4af6bd
permissions -rw-r--r--
Fix sometimes ammo schemes not being saved after changing before an ammo scheme got deleted in session This was because the bool isDeleting is not initialized, so its initial value is unpredictable. Which means there's chance it starts with true, confusing the frontend.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
47a8c19ecb60 more copyright fixes
sheepluva
parents: 10803
diff changeset
     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
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
    31
#include <QSplitter>
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    32
6987
e34415c77342 allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents: 6977
diff changeset
    33
#include <QSortFilterProxyModel>
e34415c77342 allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents: 6977
diff changeset
    34
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
    35
#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
    36
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    37
#include "ammoSchemeModel.h"
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    38
#include "hwconsts.h"
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    39
#include "chatwidget.h"
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    40
#include "roomnameprompt.h"
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    41
#include "lineeditcursor.h"
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    42
#include "pageroomslist.h"
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    43
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
    44
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
    45
{
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
    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
    47
}
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
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
    50
{
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
    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
    52
}
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
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
    54
QLayout * PageRoomsList::bodyLayoutDefinition()
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
    55
{
9999
8f2dc49262c3 style tweaks
sheepluva
parents: 9998
diff changeset
    56
    // TODO move stylesheet stuff into css/qt.css
8f2dc49262c3 style tweaks
sheepluva
parents: 9998
diff changeset
    57
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    58
    QVBoxLayout * pageLayout = new QVBoxLayout();
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    59
    pageLayout->setSpacing(0);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    60
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    61
    QGridLayout * topLayout = new QGridLayout();
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    62
    topLayout->setSpacing(0);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    63
    pageLayout->addLayout(topLayout, 0);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    64
9997
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    65
    // State button
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    66
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    67
    QPushButton * btnState = new QPushButton(tr("Room state"));
9999
8f2dc49262c3 style tweaks
sheepluva
parents: 9998
diff changeset
    68
    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
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    69
    btnState->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    70
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    71
    // State menu
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    72
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    73
    QMenu * stateMenu = new QMenu(btnState);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    74
    showGamesInLobby = new QAction(QAction::tr("Show games in lobby"), stateMenu);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    75
    showGamesInLobby->setCheckable(true);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    76
    showGamesInLobby->setChecked(true);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    77
    showGamesInProgress = new QAction(QAction::tr("Show games in-progress"), stateMenu);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    78
    showGamesInProgress->setCheckable(true);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    79
    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
    80
    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
    81
    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
    82
    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
    83
    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
    84
    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
    85
    showJoinRestricted->setChecked(true);
9997
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    86
    stateMenu->addAction(showGamesInLobby);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    87
    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
    88
    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
    89
    stateMenu->addAction(showJoinRestricted);
9997
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    90
    btnState->setMenu(stateMenu);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
    91
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    92
    // 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
    93
    QLabel * lblDesc = new QLabel(tr("Search for a room:"));
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    94
    lblDesc->setObjectName("lblDesc");
9999
8f2dc49262c3 style tweaks
sheepluva
parents: 9998
diff changeset
    95
    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
    96
    lblDesc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    97
    lblDesc->setFixedHeight(24);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    98
    lblDesc->setMinimumWidth(0);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
    99
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   100
    // Search text box
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   101
    QWidget * searchContainer = new QWidget();
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   102
    searchContainer->setFixedHeight(24);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   103
    searchContainer->setObjectName("searchContainer");
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   104
    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
   105
    searchContainer->setFixedWidth(200);
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   106
    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
   107
    searchText->setFixedWidth(200);
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   108
    searchText->setMaxLength(60);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   109
    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
   110
    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
   111
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   112
    // Corner widget
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   113
    QLabel * corner = new QLabel();
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   114
    corner->setPixmap(QPixmap(QString::fromUtf8(":/res/inverse-corner-bl.png")));
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   115
    corner->setFixedSize(10, 10);
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
    const QIcon& lp = QIcon(":/res/new.png");
8637
bf63104605fe caught two frontend warnings
koda
parents: 8488
diff changeset
   118
    //QSize sz = lp.actualSize(QSize(65535, 65535));
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   119
    BtnCreate = new QPushButton();
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   120
    BtnCreate->setText(tr("Create room"));
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   121
    BtnCreate->setIcon(lp);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   122
    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
   123
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   124
    BtnJoin = new QPushButton(tr("Join room"));
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   125
    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
   126
    BtnJoin->setEnabled(false);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   127
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   128
    // Add widgets to top layout
9997
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
   129
    topLayout->addWidget(btnState, 1, 0);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
   130
    topLayout->addWidget(lblDesc, 1, 1);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
   131
    topLayout->addWidget(searchContainer, 1, 2);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
   132
    topLayout->addWidget(corner, 1, 3, Qt::AlignBottom);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
   133
    topLayout->addWidget(BtnCreate, 0, 5, 2, 1);
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
   134
    topLayout->addWidget(BtnJoin, 0, 6, 2, 1);
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   135
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   136
    // Top layout stretch
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   137
    topLayout->setRowStretch(0, 1);
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   138
    topLayout->setRowStretch(1, 0);
9997
879fc2f86c36 move room state filter
sheepluva
parents: 9738
diff changeset
   139
    topLayout->setColumnStretch(4, 1);
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   140
9031
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   141
    // Rooms list and chat with splitter
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   142
    m_splitter = new QSplitter();
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   143
    m_splitter->setChildrenCollapsible(false);
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   144
    pageLayout->addWidget(m_splitter, 100);
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   145
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   146
    // Room list
9031
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   147
    QWidget * roomsListWidget = new QWidget(this);
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   148
    m_splitter->setOrientation(Qt::Vertical);
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   149
    m_splitter->addWidget(roomsListWidget);
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   150
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   151
    QVBoxLayout * roomsLayout = new QVBoxLayout(roomsListWidget);
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   152
    roomsLayout->setMargin(0);
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   153
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   154
    roomsList = new RoomTableView(this);
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   155
    roomsList->setSelectionBehavior(QAbstractItemView::SelectRows);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   156
    roomsList->verticalHeader()->setVisible(false);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   157
    roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   158
    roomsList->setAlternatingRowColors(true);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   159
    roomsList->setShowGrid(false);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   160
    roomsList->setSelectionMode(QAbstractItemView::SingleSelection);
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   161
    roomsList->setStyleSheet("QTableView { border-top-left-radius: 0px; }");
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   162
    roomsList->setFocusPolicy(Qt::NoFocus);
9031
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   163
    roomsLayout->addWidget(roomsList, 200);
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   164
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   165
    // Lobby chat
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   166
8179
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7794
diff changeset
   167
    chatWidget = new HWChatWidget(this, false);
9031
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   168
    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
   169
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
   170
    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
   171
}
6009
14f6fc9869f2 code cleanup/etc
sheepluva
parents: 5602
diff changeset
   172
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
   173
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
   174
{
6172
809e1076ffe2 fix lobby layout issues
sheepluva
parents: 6165
diff changeset
   175
    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
   176
11824
7642955690bc Tweak sizes and icons of most footer buttons of frontend
Wuzzy <almikes@aol.com>
parents: 11046
diff changeset
   177
    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
   178
    BtnAdmin->setMinimumSize(180, 50);
12241
a0ed4caa6d35 Apply minimal padding to all text buttons in frontend
Wuzzy <almikes@aol.com>
parents: 11824
diff changeset
   179
    BtnAdmin->setStyleSheet("padding: 5px 10px");
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   180
    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
   181
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
   182
    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
   183
}
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
   184
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
   185
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
   186
{
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
   187
    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
   188
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   189
    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
   190
    connect(BtnJoin, SIGNAL(clicked()), this, SLOT(onJoinClick()));
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   191
    connect(searchText, SIGNAL(moveUp()), this, SLOT(moveSelectionUp()));
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   192
    connect(searchText, SIGNAL(moveDown()), this, SLOT(moveSelectionDown()));
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   193
    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
   194
    connect(roomsList, SIGNAL(doubleClicked (const QModelIndex &)), this, SLOT(onJoinClick()));
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   195
    connect(roomsList, SIGNAL(clicked (const QModelIndex &)), searchText, SLOT(setFocus()));
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   196
    connect(showGamesInLobby, SIGNAL(triggered()), this, SLOT(onFilterChanged()));
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   197
    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
   198
    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
   199
    connect(showJoinRestricted, SIGNAL(triggered()), this, SLOT(onFilterChanged()));
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   200
    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
   201
    connect(this, SIGNAL(askJoinConfirmation (const QString &)), this, SLOT(onJoinConfirmation(const QString &)), Qt::QueuedConnection);
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   202
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   203
    // Set focus on search box
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   204
    connect(this, SIGNAL(pageEnter()), searchText, SLOT(setFocus()));
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   205
6996
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   206
    // sorting
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   207
    connect(roomsList->horizontalHeader(), SIGNAL(sortIndicatorChanged(int, Qt::SortOrder)),
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   208
            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
   209
}
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
   210
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   211
void PageRoomsList::moveSelectionUp()
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   212
{
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
   213
    roomsList->moveUp();
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   214
}
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   215
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   216
void PageRoomsList::moveSelectionDown()
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   217
{
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
   218
    roomsList->moveDown();
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   219
}
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   220
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   221
void PageRoomsList::roomSelectionChanged(const QModelIndex & current, const QModelIndex & previous)
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   222
{
9031
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   223
    Q_UNUSED(previous);
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   224
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   225
    BtnJoin->setEnabled(current.isValid());
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   226
}
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
   227
8179
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7794
diff changeset
   228
PageRoomsList::PageRoomsList(QWidget* parent) :
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   229
    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
   230
{
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   231
    roomsModel = NULL;
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   232
    stateFilteredModel = NULL;
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
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
    initPage();
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   235
}
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   236
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
   237
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
   238
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
   239
{
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
   240
    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
   241
}
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
   242
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
   243
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
   244
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
   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
    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
   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
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
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
   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
    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
   252
}
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
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   255
void PageRoomsList::setAdmin(bool flag)
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   256
{
5283
koda
parents: 5281
diff changeset
   257
    BtnAdmin->setVisible(flag);
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   258
}
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   259
6732
c906dc78091f Start switching to rooms list model. To be continued.
unc0rr
parents: 6700
diff changeset
   260
/*
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   261
void PageRoomsList::setRoomsList(const QStringList & list)
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   262
{
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   263
    QBrush red(QColor(255, 0, 0));
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   264
    QBrush orange(QColor(127, 127, 0));
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   265
    QBrush yellow(QColor(255, 255, 0));
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   266
    QBrush green(QColor(0, 255, 0));
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   267
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   268
    listFromServer = list;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   269
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   270
    QString selection = "";
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   271
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   272
    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
   273
        selection = item->text();
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   274
5283
koda
parents: 5281
diff changeset
   275
    roomsList->clear();
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   276
    roomsList->setColumnCount(7);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   277
    roomsList->setHorizontalHeaderLabels(
6732
c906dc78091f Start switching to rooms list model. To be continued.
unc0rr
parents: 6700
diff changeset
   278
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
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   281
    // set minimum sizes
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   282
//  roomsList->horizontalHeader()->resizeSection(0, 200);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   283
//  roomsList->horizontalHeader()->resizeSection(1, 50);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   284
//  roomsList->horizontalHeader()->resizeSection(2, 50);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   285
//  roomsList->horizontalHeader()->resizeSection(3, 100);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   286
//  roomsList->horizontalHeader()->resizeSection(4, 100);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   287
//  roomsList->horizontalHeader()->resizeSection(5, 100);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   288
//  roomsList->horizontalHeader()->resizeSection(6, 100);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   289
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   290
    // set resize modes
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   291
//  roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   292
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   293
    bool gameCanBeJoined = true;
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   294
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   295
    if (list.size() % 8)
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   296
        return;
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
    roomsList->setRowCount(list.size() / 8);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   299
    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
   300
    {
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   301
        // if we are joining a game
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   302
        // 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
   303
        if (gameInLobby)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   304
        {
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   305
            if (gameInLobbyName == list[i + 1])
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   306
            {
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   307
                gameCanBeJoined = list[i].compare("True");
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
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   310
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   311
        // check filter settings
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   312
#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
   313
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   314
        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
   315
        {
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   316
            NO_FILTER_MATCH;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   317
        }
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   318
        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
   319
        {
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   320
            NO_FILTER_MATCH;
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 (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
   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 (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
   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
        }
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   330
        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
   331
        if (!found)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   332
        {
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   333
            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
   334
            {
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   335
                QString compString = list[i + a];
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   336
                if (a == 5 && compString == "+rnd+")
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
                    compString = "Random Map";
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   339
                }
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   340
                else if (a == 5 && compString == "+maze+")
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   341
                {
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   342
                    compString = "Random Maze";
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   343
                }
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   344
                else if (a == 5 && compString == "+drawn+")
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 = "Drawn Map";
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   347
                }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   348
                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
   349
                {
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   350
                    found = true;
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   351
                    break;
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   352
                }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   353
            }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   354
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   355
        if (!searchText->text().isEmpty() && !found)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   356
        {
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   357
            NO_FILTER_MATCH;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   358
        }
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   359
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   360
        QTableWidgetItem * item;
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   361
        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
   362
        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
   363
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   364
        // 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
   365
        if(list[i].compare("True"))
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   366
        {
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   367
            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
   368
            item->setToolTip(tr("Waiting..."));
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   369
            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
   370
        }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   371
        else
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   372
        {
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   373
            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
   374
            item->setToolTip(tr("In progress..."));
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   375
            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
   376
        }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   377
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   378
        roomsList->setItem(r, 0, item);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   379
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   380
        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
   381
        item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   382
        item->setTextAlignment(Qt::AlignCenter);
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   383
        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
   384
        roomsList->setItem(r, 1, item);
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
        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
   387
        item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   388
        item->setTextAlignment(Qt::AlignCenter);
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   389
        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
   390
        //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
   391
        //if(list[i + 3].toInt() >= cMaxTeams)
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   392
        //    item->setForeground(red);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   393
        roomsList->setItem(r, 2, item);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   394
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   395
        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
   396
        item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   397
        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
   398
        roomsList->setItem(r, 3, item);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   399
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   400
        if(list[i + 5] == "+rnd+")
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   401
        {
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   402
            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
   403
// 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
   404
//            item->setIcon(QIcon(":/res/mapRandom.png"));
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   405
        }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   406
        else if (list[i+5] == "+maze+")
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
            item = new QTableWidgetItem(tr("Random Maze"));
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   409
// 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
   410
//            item->setIcon(QIcon(":/res/mapMaze.png"));
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   411
        }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   412
        else
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
            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
   415
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   416
            // 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
   417
            // not perfect but a start
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   418
            if(!mapList->contains(list[i + 5]))
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
                item->setForeground(red);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   421
                item->setIcon(QIcon(":/res/mapMissing.png"));
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   422
            }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   423
            else
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   424
            {
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   425
                // todo: mission icon?
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   426
// 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
   427
//               item->setIcon(QIcon(":/res/mapCustom.png"));
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   428
            }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   429
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   430
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   431
        item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   432
        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
   433
        roomsList->setItem(r, 4, item);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   434
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   435
        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
   436
        item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   437
        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
   438
        roomsList->setItem(r, 5, item);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   439
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   440
        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
   441
        item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
6699
83dd3447a212 exploit the new setWhatsThis feature in our desktop frontend
koda
parents: 6616
diff changeset
   442
        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
   443
        roomsList->setItem(r, 6, item);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   444
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   445
        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
   446
            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
   447
    }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   448
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   449
    roomsList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   450
    roomsList->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   451
    roomsList->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   452
    roomsList->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   453
    roomsList->horizontalHeader()->setResizeMode(4, QHeaderView::ResizeToContents);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   454
    roomsList->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   455
    roomsList->horizontalHeader()->setResizeMode(6, QHeaderView::ResizeToContents);
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
    // 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
   458
    if (gameInLobby)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   459
    {
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   460
        gameInLobby = false;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   461
        if (gameCanBeJoined)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   462
        {
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   463
            emit askForJoinRoom(gameInLobbyName);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   464
        }
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   465
        else
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   466
        {
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   467
            emit askJoinConfirmation(gameInLobbyName);
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   468
        }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   469
    }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   470
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   471
//  roomsList->resizeColumnsToContents();
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   472
}
6732
c906dc78091f Start switching to rooms list model. To be continued.
unc0rr
parents: 6700
diff changeset
   473
*/
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   474
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   475
void PageRoomsList::onCreateClick()
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   476
{
9541
312bb4384f33 - Frontend finally learns how to create passworded room
unc0rr
parents: 9080
diff changeset
   477
    RoomNamePrompt prompt(this, m_gameSettings->value("frontend/lastroomname", QString()).toString());
312bb4384f33 - Frontend finally learns how to create passworded room
unc0rr
parents: 9080
diff changeset
   478
    if(prompt.exec())
312bb4384f33 - Frontend finally learns how to create passworded room
unc0rr
parents: 9080
diff changeset
   479
        onRoomNameChosen(prompt.getRoomName(), prompt.getPassword());
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   480
}
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   481
9541
312bb4384f33 - Frontend finally learns how to create passworded room
unc0rr
parents: 9080
diff changeset
   482
void PageRoomsList::onRoomNameChosen(const QString & roomName, const QString & password)
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   483
{
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   484
    if (!roomName.trimmed().isEmpty())
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   485
    {
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   486
        m_gameSettings->setValue("frontend/lastroomname", roomName);
9541
312bb4384f33 - Frontend finally learns how to create passworded room
unc0rr
parents: 9080
diff changeset
   487
        emit askForCreateRoom(roomName, password);
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   488
    }
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   489
    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
   490
    {
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   491
        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
   492
    }
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   493
}
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   494
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   495
void PageRoomsList::onJoinClick()
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   496
{
6736
efad396abee9 Bring back functionality to "Join" button
unc0rr
parents: 6735
diff changeset
   497
    QModelIndexList mdl = roomsList->selectionModel()->selectedRows();
efad396abee9 Bring back functionality to "Join" button
unc0rr
parents: 6735
diff changeset
   498
efad396abee9 Bring back functionality to "Join" button
unc0rr
parents: 6735
diff changeset
   499
    if(mdl.size() != 1)
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   500
    {
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
   501
        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
   502
        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
   503
        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
   504
        roomNameMsg.setText(QMessageBox::tr("Please select room from the list"));
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
   505
        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
   506
        roomNameMsg.exec();
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   507
        return;
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   508
    }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   509
6736
efad396abee9 Bring back functionality to "Join" button
unc0rr
parents: 6735
diff changeset
   510
    bool gameInLobby = roomsList->model()->index(mdl[0].row(), 0).data().toString().compare("True");
efad396abee9 Bring back functionality to "Join" button
unc0rr
parents: 6735
diff changeset
   511
    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
   512
6736
efad396abee9 Bring back functionality to "Join" button
unc0rr
parents: 6735
diff changeset
   513
    if (!gameInLobby)
efad396abee9 Bring back functionality to "Join" button
unc0rr
parents: 6735
diff changeset
   514
        emit askJoinConfirmation(roomName);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6227
diff changeset
   515
    else
9549
ac5c1f691ce2 Allow user to enter password for the room he joins
unc0rr
parents: 9541
diff changeset
   516
        emit askForJoinRoom(roomName, QString());
5078
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
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   519
void PageRoomsList::onRefreshClick()
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   520
{
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   521
    emit askForRoomList();
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   522
}
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   523
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   524
void PageRoomsList::onJoinConfirmation(const QString & room)
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   525
{
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
   526
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
   527
    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
   528
    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
   529
    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
   530
    reallyJoinMsg.setText(QMessageBox::tr("The game you are trying to join has started.\nDo you still want to join the room?"));
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
   531
    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
   532
    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
   533
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
   534
    if (reallyJoinMsg.exec() == QMessageBox::Ok)
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   535
    {
9549
ac5c1f691ce2 Allow user to enter password for the room he joins
unc0rr
parents: 9541
diff changeset
   536
        emit askForJoinRoom(room, QString());
5078
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   537
    }
3527f0e7bb21 Removing pages.cpp and splitting it up into various files.
Zorg <zorgiepoo@gmail.com>
parents:
diff changeset
   538
}
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
   539
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
   540
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
   541
{
8729
b19be476a2fa Call steps on focus instead. fix typo
nemo
parents: 8637
diff changeset
   542
    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
   543
}
6227
ce60b734fff1 update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents: 6180
diff changeset
   544
ce60b734fff1 update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents: 6180
diff changeset
   545
void PageRoomsList::setUser(const QString & nickname)
ce60b734fff1 update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents: 6180
diff changeset
   546
{
ce60b734fff1 update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents: 6180
diff changeset
   547
    chatWidget->setUser(nickname);
ce60b734fff1 update name autocompletion after nick change (since own nick isn't suggested)
sheepluva
parents: 6180
diff changeset
   548
}
6735
050237b1500f Setup rooms list headers
unc0rr
parents: 6732
diff changeset
   549
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   550
void PageRoomsList::setModel(RoomsListModel * model)
6735
050237b1500f Setup rooms list headers
unc0rr
parents: 6732
diff changeset
   551
{
6996
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   552
    // filter chain:
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   553
    // model -> stateFilteredModel -> schemeFilteredModel ->
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   554
    // -> weaponsFilteredModel -> roomsModel (search filter+sorting)
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   555
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   556
    if (roomsModel == NULL)
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   557
    {
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   558
        roomsModel = new QSortFilterProxyModel(this);
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   559
        roomsModel->setDynamicSortFilter(true);
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   560
        roomsModel->setSortCaseSensitivity(Qt::CaseInsensitive);
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   561
        roomsModel->sort(RoomsListModel::StateColumn, Qt::AscendingOrder);
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   562
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   563
        stateFilteredModel = new QSortFilterProxyModel(this);
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   564
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   565
        stateFilteredModel->setDynamicSortFilter(true);
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   566
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   567
        roomsModel->setFilterKeyColumn(-1); // search in all columns
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   568
        stateFilteredModel->setFilterKeyColumn(RoomsListModel::StateColumn);
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   569
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   570
        roomsModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   571
9702
27006953d901 - Column for script in rooms list
unc0rr
parents: 9549
diff changeset
   572
        roomsModel->setSourceModel(stateFilteredModel);
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   573
6996
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   574
        // let the table view display the last model in the filter chain
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   575
        roomsList->setModel(roomsModel);
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   576
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   577
        // When the data changes
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   578
        connect(roomsModel, SIGNAL(layoutChanged()), roomsList, SLOT(repaint()));
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   579
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   580
        // When a selection changes
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   581
        connect(roomsList->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(roomSelectionChanged(const QModelIndex &, const QModelIndex &)));
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   582
    }
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   583
6996
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   584
    stateFilteredModel->setSourceModel(model);
6735
050237b1500f Setup rooms list headers
unc0rr
parents: 6732
diff changeset
   585
050237b1500f Setup rooms list headers
unc0rr
parents: 6732
diff changeset
   586
    QHeaderView * h = roomsList->horizontalHeader();
6987
e34415c77342 allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents: 6977
diff changeset
   587
7011
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   588
    h->setSortIndicatorShown(true);
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   589
    h->setSortIndicator(RoomsListModel::StateColumn, Qt::AscendingOrder);
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   590
    h->setResizeMode(RoomsListModel::NameColumn, QHeaderView::Stretch);
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   591
6996
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   592
    if (!restoreHeaderState())
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   593
    {
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   594
        h->resizeSection(RoomsListModel::PlayerCountColumn, 32);
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   595
        h->resizeSection(RoomsListModel::TeamCountColumn, 32);
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   596
        h->resizeSection(RoomsListModel::OwnerColumn, 100);
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   597
        h->resizeSection(RoomsListModel::MapColumn, 100);
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   598
        h->resizeSection(RoomsListModel::SchemeColumn, 100);
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   599
        h->resizeSection(RoomsListModel::WeaponsColumn, 100);
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   600
    }
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   601
9702
27006953d901 - Column for script in rooms list
unc0rr
parents: 9549
diff changeset
   602
    // hide column used for filtering
27006953d901 - Column for script in rooms list
unc0rr
parents: 9549
diff changeset
   603
    roomsList->hideColumn(RoomsListModel::StateColumn);
7011
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   604
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   605
    // save header state on change
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   606
    connect(roomsList->horizontalHeader(), SIGNAL(sortIndicatorChanged(int, Qt::SortOrder)),
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   607
            this, SLOT(saveHeaderState()));
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   608
    connect(roomsList->horizontalHeader(), SIGNAL(sectionResized(int, int, int)),
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   609
            this, SLOT(saveHeaderState()));
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   610
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   611
    roomsList->repaint();
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   612
}
6977
6a2ecad333da adjust column widths
sheepluva
parents: 6952
diff changeset
   613
6987
e34415c77342 allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents: 6977
diff changeset
   614
e34415c77342 allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents: 6977
diff changeset
   615
void PageRoomsList::onSortIndicatorChanged(int logicalIndex, Qt::SortOrder order)
e34415c77342 allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents: 6977
diff changeset
   616
{
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   617
    if (roomsModel == NULL)
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   618
        return;
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   619
7011
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   620
    if (logicalIndex == 0)
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   621
    {
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   622
        roomsModel->sort(0, Qt::AscendingOrder);
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   623
        return;
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   624
    }
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   625
6989
4c35e9cf6057 make column sorting three-state: asc -> dsc -> off/default (= by room state)
sheepluva
parents: 6988
diff changeset
   626
    // 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
   627
    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
   628
        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
   629
            RoomsListModel::StateColumn, Qt::AscendingOrder);
6989
4c35e9cf6057 make column sorting three-state: asc -> dsc -> off/default (= by room state)
sheepluva
parents: 6988
diff changeset
   630
    else
4c35e9cf6057 make column sorting three-state: asc -> dsc -> off/default (= by room state)
sheepluva
parents: 6988
diff changeset
   631
        roomsModel->sort(logicalIndex, order);
6987
e34415c77342 allow custom sorting of roomslist (by clicking on header sections)
sheepluva
parents: 6977
diff changeset
   632
}
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   633
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   634
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   635
void PageRoomsList::onFilterChanged()
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   636
{
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   637
    if (roomsModel == NULL)
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   638
        return;
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   639
9702
27006953d901 - Column for script in rooms list
unc0rr
parents: 9549
diff changeset
   640
    roomsModel->setFilterFixedString(searchText->text());
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   641
8453
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   642
    bool stateLobby = showGamesInLobby->isChecked();
06541556df53 Reorganized layout and appearance of rooms list page.
dag10
parents: 8179
diff changeset
   643
    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
   644
    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
   645
    bool stateJoinRestricted = showJoinRestricted->isChecked();
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   646
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
   647
    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
   648
    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
   649
        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
   650
    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
   651
        filter = "";
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   652
    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
   653
    {
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
   654
        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
   655
        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
   656
        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
   657
        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
   658
        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
   659
        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
   660
        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
   661
        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
   662
        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
   663
    }
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
   664
    //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
   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
    stateFilteredModel->setFilterRegExp(filter);
6995
6b44c0f11476 roomslist: reimplement filters
sheepluva
parents: 6993
diff changeset
   667
}
6996
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   668
8179
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7794
diff changeset
   669
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
   670
{
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7794
diff changeset
   671
    m_gameSettings = settings;
a1ffcb559f99 Refactor: get rid of excessive QSettings instances on the same poor hedgewars.ini file
unc0rr
parents: 7794
diff changeset
   672
}
6996
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   673
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   674
bool PageRoomsList::restoreHeaderState()
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   675
{
9031
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   676
    if (m_gameSettings->contains("frontend/roomslist_splitter"))
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   677
    {
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   678
        m_splitter->restoreState(QByteArray::fromBase64(
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   679
            (m_gameSettings->value("frontend/roomslist_splitter").toByteArray())));
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   680
    }
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   681
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   682
    if (m_gameSettings->contains("frontend/roomslist_header"))
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   683
    {
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   684
        return roomsList->horizontalHeader()->restoreState(QByteArray::fromBase64(
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   685
            (m_gameSettings->value("frontend/roomslist_header").toByteArray())));
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   686
    } else return false;
6996
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   687
}
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   688
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   689
void PageRoomsList::saveHeaderState()
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   690
{
7003
e118ee168577 tweak how the header customization is stored in the settings file
sheepluva
parents: 6996
diff changeset
   691
    m_gameSettings->setValue("frontend/roomslist_header",
7011
f6f09a0954ea small tweaks/fixes to room list header saving and restore...
sheepluva
parents: 7003
diff changeset
   692
        QString(roomsList->horizontalHeader()->saveState().toBase64()));
9031
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   693
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   694
    m_gameSettings->setValue("frontend/roomslist_splitter",
9477443dd583 Rooms list/chat splitter from issue 612
unc0rr
parents: 8731
diff changeset
   695
        QString(m_splitter->saveState().toBase64()));
6996
a0052cd32508 rooms list
sheepluva
parents: 6995
diff changeset
   696
}