QTfrontend/ui/page/pagenetgame.cpp
changeset 8453 06541556df53
parent 8434 4821897a0f10
child 8488 e72f3398a28b
equal deleted inserted replaced
8452:170afc3ac39f 8453:06541556df53
    20 #include <QHBoxLayout>
    20 #include <QHBoxLayout>
    21 #include <QPushButton>
    21 #include <QPushButton>
    22 #include <QAction>
    22 #include <QAction>
    23 #include <QMenu>
    23 #include <QMenu>
    24 #include <QMessageBox>
    24 #include <QMessageBox>
       
    25 #include <QSettings>
    25 
    26 
    26 #include "pagenetgame.h"
    27 #include "pagenetgame.h"
    27 #include "gamecfgwidget.h"
    28 #include "gamecfgwidget.h"
    28 #include "teamselect.h"
    29 #include "teamselect.h"
    29 #include "chatwidget.h"
    30 #include "chatwidget.h"
    54     leRoomName->setFixedHeight(30);
    55     leRoomName->setFixedHeight(30);
    55     leRoomName->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    56     leRoomName->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    56     roomConfigLayout->addWidget(leRoomName, 100);
    57     roomConfigLayout->addWidget(leRoomName, 100);
    57 
    58 
    58     QLabel * lblRoomName = new QLabel(tr("Room name: "), leRoomName);
    59     QLabel * lblRoomName = new QLabel(tr("Room name: "), leRoomName);
    59     lblRoomName->setStyleSheet("font: 12px; font-weight: bold;");
    60     lblRoomName->setFont(QFont("Arial", 12, QFont::Black));
    60     lblRoomName->setStyleSheet(QString("font: 12px; font-weight: bold; background: none; margin-left: -%1px; margin-top: 8px;").arg(lblRoomName->width() - 20));
    61     QFontMetrics lblMetrics(lblRoomName->font());
    61     leRoomName->setStyleSheet(QString("font: 12px; border-right: 0; padding-left: %1px; padding-bottom: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px;").arg(lblRoomName->width() - 14));
    62     int lblRoomNameWidth = lblMetrics.width(lblRoomName->text());
       
    63     lblRoomName->setStyleSheet(QString("background: none; margin-left: -%1px; margin-top: 6px;").arg(lblRoomNameWidth + 12));
       
    64     leRoomName->setFont(QFont("Arial", 12, QFont::Normal));
       
    65     leRoomName->setStyleSheet(QString("HistoryLineEdit, QLabel { border-right: 0; padding-left: %1px; padding-bottom: 2px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; }").arg(lblRoomNameWidth + 16));
    62 
    66 
    63     BtnUpdate = new QPushButton();
    67     BtnUpdate = new QPushButton();
    64     BtnUpdate->setEnabled(false);
    68     BtnUpdate->setEnabled(false);
    65     BtnUpdate->setText(tr("Update"));
    69     BtnUpdate->setText(tr("Update"));
    66     BtnUpdate->setFixedHeight(leRoomName->height() - 0);
    70     BtnUpdate->setFixedHeight(leRoomName->height() - 0);
   186 {
   190 {
   187     int oldHeight = event->oldSize().height();
   191     int oldHeight = event->oldSize().height();
   188     int newHeight = event->size().height();
   192     int newHeight = event->size().height();
   189 
   193 
   190     if (newHeight < cutoffHeight && oldHeight >= cutoffHeight)
   194     if (newHeight < cutoffHeight && oldHeight >= cutoffHeight)
       
   195     {
   191         pGameCFG->setTabbed(true);
   196         pGameCFG->setTabbed(true);
       
   197     }
   192     else if (newHeight >= cutoffHeight && oldHeight < cutoffHeight)
   198     else if (newHeight >= cutoffHeight && oldHeight < cutoffHeight)
       
   199     {
   193         pGameCFG->setTabbed(false);
   200         pGameCFG->setTabbed(false);
       
   201     }
   194 }
   202 }
   195 
   203 
   196 void PageNetGame::displayError(const QString & message)
   204 void PageNetGame::displayError(const QString & message)
   197 {
   205 {
   198     chatWidget->displayError(message);
   206     chatWidget->displayError(message);
   225 
   233 
   226 void PageNetGame::onUpdateClick()
   234 void PageNetGame::onUpdateClick()
   227 {
   235 {
   228     if (!leRoomName->text().trimmed().isEmpty())
   236     if (!leRoomName->text().trimmed().isEmpty())
   229     {
   237     {
   230         emit askForUpdateRoomName(leRoomName->text());
   238         m_gameSettings->setValue("frontend/lastroomname", leRoomName->text());
   231         leRoomName->rememberCurrentText();
   239         leRoomName->rememberCurrentText();
   232         BtnUpdate->setEnabled(false);
   240         BtnUpdate->setEnabled(false);
       
   241         emit askForUpdateRoomName(leRoomName->text());
   233     }
   242     }
   234     else
   243     else
   235     {
   244     {
   236         leRoomName->clear();
   245         leRoomName->clear();
   237         QMessageBox roomMsg(this);
   246         QMessageBox roomMsg(this);
   238         roomMsg.setIcon(QMessageBox::Warning);
   247         roomMsg.setIcon(QMessageBox::Warning);
   239         roomMsg.setWindowTitle(QMessageBox::tr("Netgame - Error"));
   248         roomMsg.setWindowTitle(QMessageBox::tr("Netgame - Error"));
   240         roomMsg.setText(QMessageBox::tr("Please enter room name"));
   249         roomMsg.setText(QMessageBox::tr("Please enter room name"));
   241         roomMsg.setWindowModality(Qt::WindowModal);
   250         roomMsg.setWindowModality(Qt::WindowModal);
   242         roomMsg.exec();
   251         roomMsg.exec();
       
   252         leRoomName->setFocus();
   243     }
   253     }
   244 }
   254 }
   245 
   255 
   246 
   256 
   247 void PageNetGame::setRoomName(const QString & roomName)
   257 void PageNetGame::setRoomName(const QString & roomName)
   257     BtnMaster->setVisible(isMaster);
   267     BtnMaster->setVisible(isMaster);
   258     BtnStart->setVisible(isMaster);
   268     BtnStart->setVisible(isMaster);
   259     BtnUpdate->setVisible(isMaster);
   269     BtnUpdate->setVisible(isMaster);
   260     leRoomName->setVisible(isMaster);
   270     leRoomName->setVisible(isMaster);
   261     lblRoomNameReadOnly->setVisible(!isMaster);
   271     lblRoomNameReadOnly->setVisible(!isMaster);
       
   272     pGameCFG->setMaster(isMaster);
       
   273     repaint();
   262 }
   274 }
   263 
   275 
   264 void PageNetGame::setUser(const QString & nickname)
   276 void PageNetGame::setUser(const QString & nickname)
   265 {
   277 {
   266     chatWidget->setUser(nickname);
   278     chatWidget->setUser(nickname);
   267 }
   279 }
       
   280 
       
   281 void PageNetGame::setSettings(QSettings *settings)
       
   282 {
       
   283     m_gameSettings = settings;
       
   284 }