From 9f04fc149ccf80b18cc2baf1f3fa427323f0fc57 Mon Sep 17 00:00:00 2001 From: doitux Date: Sun, 28 Mar 2010 22:17:18 +0000 Subject: [PATCH] GUI: next steps for extended info msg box system, new info msg about intive-only game type handling --- docs/infomessage-id-desc.txt | 2 + pokerth_game.pro | 48 +++++++++--------- .../gamelobbydialog/gamelobbydialogimpl.cpp | 40 ++++++++++++--- .../qt/gamelobbydialog/gamelobbydialogimpl.h | 3 ++ src/gui/qt/gametable/gametableimpl.cpp | 2 +- .../mymessagedialog/mymessagedialogimpl.cpp | 5 +- .../qt/mymessagedialog/mymessagedialogimpl.h | 2 +- src/gui/qt/resources/ktip.png | Bin 0 -> 4823 bytes src/gui/qt/resources/pokerth.qrc | 1 + 9 files changed, 65 insertions(+), 38 deletions(-) create mode 100644 docs/infomessage-id-desc.txt create mode 100644 src/gui/qt/resources/ktip.png diff --git a/docs/infomessage-id-desc.txt b/docs/infomessage-id-desc.txt new file mode 100644 index 00000000..6cb09731 --- /dev/null +++ b/docs/infomessage-id-desc.txt @@ -0,0 +1,2 @@ +1: leave lobby during online game: Question(Do you really wanna leave?) +2: join invite only game: Info(You can invite people with right click ...) diff --git a/pokerth_game.pro b/pokerth_game.pro index 13e0b90a..6c9aaaff 100644 --- a/pokerth_game.pro +++ b/pokerth_game.pro @@ -9,7 +9,6 @@ CONFIG += qt \ rtti \ stl \ warn_on - include(src/third_party/qtsingleapplication/qtsingleapplication.pri) # ####Uncomment this for RELEASE on Linux/Unix/BSD (only for static Qt) @@ -95,7 +94,7 @@ DEPENDPATH += . \ src/gui/qt/serverlistdialog \ src/gui/qt/styles \ src/gui/qt/changehumanplayernamedialog \ - src/gui/qt/internetgamelogindialog \ + src/gui/qt/internetgamelogindialog \ src/gui/qt/changecompleteblindsdialog \ src/gui/qt/mymessagedialog \ src/gui/qt/gamelobbydialog \ @@ -299,23 +298,21 @@ win32 { ../curl/include \ ../zlib LIBPATH += ../boost/stage/lib \ - ../GnuTLS/lib \ - ../gsasl/lib \ - ../curl/lib \ - ../SDL/lib \ - ../SDL_mixer/lib \ - ../zlib + ../GnuTLS/lib \ + ../gsasl/lib \ + ../curl/lib \ + ../SDL/lib \ + ../SDL_mixer/lib \ + ../zlib LIBS += -lpokerth_lib \ - -lpokerth_db \ + -lpokerth_db \ -lpokerth_protocol - debug:LIBPATH += Debug/lib - release:LIBPATH += Release/lib - win32-msvc2008 { - LIBS += -llibgnutls-openssl-26 \ - -llibgcrypt-11 \ - -llibgsasl-7 \ - -llibcurl - } + debug:LIBPATH += Debug/lib + release:LIBPATH += Release/lib + win32-msvc2008:LIBS += -llibgnutls-openssl-26 \ + -llibgcrypt-11 \ + -llibgsasl-7 \ + -llibcurl win32-g++ { LIBS += -lgnutls-openssl \ -lgnutls \ @@ -402,18 +399,18 @@ unix:!mac { UNAME = $$system(uname -s) BSD = $$find(UNAME, "BSD") kFreeBSD = $$find(UNAME, "kFreeBSD") - LIBS += -lpokerth_lib \ - -lpokerth_db \ + LIBS += -lpokerth_lib \ + -lpokerth_db \ -lpokerth_protocol LIBS += $$BOOST_LIBS LIBS += -lSDL_mixer \ -lcurl \ - -lgsasl + -lgsasl !isEmpty( BSD ) && isEmpty( kFreeBSD ):LIBS += -lcrypto else:LIBS += -lgnutls-openssl \ -lgcrypt TARGETDEPS += ./lib/libpokerth_lib.a \ - ./lib/libpokerth_db.a \ + ./lib/libpokerth_db.a \ ./lib/libpokerth_protocol.a # #### My release static libs @@ -443,8 +440,8 @@ mac { # QMAKE_MAC_SDK=/Developer/SDKs/MacOSX10.4u.sdk/ LIBPATH += lib LIBS += -lpokerth_lib \ - -lpokerth_db \ - -lpokerth_protocol + -lpokerth_db \ + -lpokerth_protocol # QT dynamic linked framework (see also mac_post_make.sh) LIBS += -framework \ @@ -465,13 +462,13 @@ mac { LIBS += /usr/local/lib/libboost_regex.a LIBS += /usr/local/lib/libboost_system.a LIBS += /usr/local/lib/libboost_iostreams.a - LIBS += /usr/local/lib/libgsasl.a + LIBS += /usr/local/lib/libgsasl.a # libraries installed on every mac LIBS += -lcrypto \ -lssl \ -lz \ - -lcurl \ + -lcurl \ -framework \ Carbon @@ -482,3 +479,4 @@ mac { INCLUDEPATH += /Library/Frameworks/SDL.framework/Headers INCLUDEPATH += /Library/Frameworks/SDL_mixer.framework/Headers } +OTHER_FILES += docs/infomessage-id-desc.txt diff --git a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp index 9f04892a..104a7124 100644 --- a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp +++ b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp @@ -18,9 +18,10 @@ #include "configfile.h" #include "gamedata.h" #include +#include "mymessagedialogimpl.h" gameLobbyDialogImpl::gameLobbyDialogImpl(startWindowImpl *parent, ConfigFile *c) - : QDialog(parent), myW(NULL), myStartWindow(parent), myConfig(c), currentGameName(""), myPlayerId(0), myCurrentGameId(0), isGameAdministrator(false), inGame(false), guestMode(false), blinkingButtonAnimationState(true), myChat(NULL), keyUpCounter(0) + : QDialog(parent), myW(NULL), myStartWindow(parent), myConfig(c), currentGameName(""), myPlayerId(0), myCurrentGameId(0), isGameAdministrator(false), inGame(false), guestMode(false), blinkingButtonAnimationState(true), myChat(NULL), keyUpCounter(0), infoMsgToShowId(0) { #ifdef __APPLE__ @@ -46,7 +47,9 @@ gameLobbyDialogImpl::gameLobbyDialogImpl(startWindowImpl *parent, ConfigFile *c) waitStartGameMsgBoxTimer->setSingleShot(TRUE); blinkingButtonAnimationTimer = new QTimer(this); blinkingButtonAnimationTimer->setInterval(1000); - + showInfoMsgBoxTimer = new QTimer(this); + showInfoMsgBoxTimer->setSingleShot(TRUE); + //fetch button colors for blinking groupBox_GameInfo->setEnabled(true); pushButton_StartGame->setEnabled(true); @@ -98,6 +101,7 @@ gameLobbyDialogImpl::gameLobbyDialogImpl(startWindowImpl *parent, ConfigFile *c) connect( lineEdit_ChatInput, SIGNAL( textEdited (QString) ), myChat, SLOT( setChatTextEdited() ) ); connect( waitStartGameMsgBoxTimer, SIGNAL(timeout()), this, SLOT( showWaitStartGameMsgBox() )); connect( blinkingButtonAnimationTimer, SIGNAL(timeout()), this, SLOT( blinkingStartButtonAnimation() )); + connect( showInfoMsgBoxTimer, SIGNAL(timeout()), this, SLOT( showInfoMsgBox() )); connect( comboBox_gameListFilter, SIGNAL(currentIndexChanged(int)), this, SLOT(changeGameListFilter(int))); connect( treeWidget_NickList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT( showNickListContextMenu(QPoint) ) ); connect( nickListInviteAction, SIGNAL(triggered()), this, SLOT( invitePlayerToCurrentGame() )); @@ -746,13 +750,20 @@ void gameLobbyDialogImpl::blinkingStartButtonAnimation() { void gameLobbyDialogImpl::joinedNetworkGame(unsigned playerId, QString playerName, bool isGameAdmin) { - // Update dialog - inGame = true; - joinedGameDialogUpdate(); + // Update dialog + inGame = true; + joinedGameDialogUpdate(); - myPlayerId = playerId; - isGameAdministrator = isGameAdmin; - addConnectedPlayer(playerId, playerName, isGameAdmin); + myPlayerId = playerId; + isGameAdministrator = isGameAdmin; + addConnectedPlayer(playerId, playerName, isGameAdmin); + + //show msgBox about invite only game + assert(mySession); + if(mySession->getClientGameInfo(mySession->getClientCurrentGameId()).data.gameType == GAME_TYPE_INVITE_ONLY) { + infoMsgToShowId = 2; + showInfoMsgBoxTimer->start(1000); + } } @@ -1314,3 +1325,16 @@ void gameLobbyDialogImpl::invitePlayerToCurrentGame() { qDebug() << "invitePlayer"; } + +void gameLobbyDialogImpl::showInfoMsgBox() +{ + switch(infoMsgToShowId) { + case 2: { + myMessageDialogImpl dialog(myConfig, this); + dialog.exec(2, tr("You've entered a game with invite-only type.\nYou can invite other players with right-click on their nick in the left available players list."), tr("PokerTH - Info Message"), QPixmap(":/gfx/ktip.png"), QDialogButtonBox::Ok); + } + break; + default:; + break; + } +} diff --git a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.h b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.h index 3d492f5c..643d0ec0 100644 --- a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.h +++ b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.h @@ -104,6 +104,7 @@ public slots: void guestUserMode(); void showNickListContextMenu(QPoint); void invitePlayerToCurrentGame(); + void showInfoMsgBox(); private: @@ -123,6 +124,7 @@ private: QMessageBox *waitStartGameMsgBox; QTimer *waitStartGameMsgBoxTimer; QTimer *blinkingButtonAnimationTimer; + QTimer *showInfoMsgBoxTimer; bool blinkingButtonAnimationState; QColor defaultStartButtonColor; QColor defaultStartButtonTextColor; @@ -135,6 +137,7 @@ private: MyGameListSortFilterProxyModel *myGameListSortFilterProxyModel; QMenu *nickListContextMenu; QAction *nickListInviteAction; + int infoMsgToShowId; protected: diff --git a/src/gui/qt/gametable/gametableimpl.cpp b/src/gui/qt/gametable/gametableimpl.cpp index 11b06df9..eac8574a 100755 --- a/src/gui/qt/gametable/gametableimpl.cpp +++ b/src/gui/qt/gametable/gametableimpl.cpp @@ -3075,7 +3075,7 @@ void gameTableImpl::leaveCurrentNetworkGame() { myStartWindow->getSession()->sendLeaveCurrentGame(); } else { - if (dialog.exec(1, tr("Attention! Do you really want to leave the current game\nand go back to the lobby?"), "PokerTH - Internet Game Message", QPixmap(":/gfx/logoChip3D.png")) == QDialog::Accepted ) { + if (dialog.exec(1, tr("Attention! Do you really want to leave the current game\nand go back to the lobby?"), tr("PokerTH - Internet Game Message"), QPixmap(":/gfx/logoChip3D.png"), QDialogButtonBox::Ok) == QDialog::Accepted ) { assert(myStartWindow->getSession()); myStartWindow->getSession()->sendLeaveCurrentGame(); } diff --git a/src/gui/qt/mymessagedialog/mymessagedialogimpl.cpp b/src/gui/qt/mymessagedialog/mymessagedialogimpl.cpp index 31eeca13..aac1b089 100644 --- a/src/gui/qt/mymessagedialog/mymessagedialogimpl.cpp +++ b/src/gui/qt/mymessagedialog/mymessagedialogimpl.cpp @@ -39,7 +39,7 @@ myMessageDialogImpl::myMessageDialogImpl(ConfigFile *c, QWidget *parent) setupUi(this); } -int myMessageDialogImpl::exec(int messageId, QString msg, QString title, QPixmap pix) +int myMessageDialogImpl::exec(int messageId, QString msg, QString title, QPixmap pix, QDialogButtonBox::StandardButtons buttons) { bool show = false; bool found = false; @@ -71,6 +71,7 @@ int myMessageDialogImpl::exec(int messageId, QString msg, QString title, QPixmap setWindowTitle(title); label_icon->setPixmap(pix.scaled(50,50,Qt::KeepAspectRatio,Qt::SmoothTransformation)); label->setText(msg); + buttonBox->setStandardButtons(buttons); return QDialog::exec(); } @@ -92,7 +93,6 @@ void myMessageDialogImpl::reject() void myMessageDialogImpl::writeConfig() { - qDebug() << "jo1"; if(checkBox->isChecked()) { list::iterator it1; @@ -101,7 +101,6 @@ void myMessageDialogImpl::writeConfig() QString tmpString = QString::fromUtf8(it1->c_str()); if(QString("%1").arg(currentMsgId) == tmpString.split(",").at(1)) { - qDebug() << "jo2" << QString("0,%1").arg(currentMsgId).toUtf8().constData(); (*it1) = QString("0,%1").arg(currentMsgId).toUtf8().constData(); break; } diff --git a/src/gui/qt/mymessagedialog/mymessagedialogimpl.h b/src/gui/qt/mymessagedialog/mymessagedialogimpl.h index f1ec575e..49c93897 100644 --- a/src/gui/qt/mymessagedialog/mymessagedialogimpl.h +++ b/src/gui/qt/mymessagedialog/mymessagedialogimpl.h @@ -33,7 +33,7 @@ public: public slots: bool checkIfMesssageWillBeDisplayed(int id); - int exec(int messageId, QString msg, QString title, QPixmap pix); + int exec(int messageId, QString msg, QString title, QPixmap pix, QDialogButtonBox::StandardButtons buttons); void accept(); void reject(); void writeConfig(); diff --git a/src/gui/qt/resources/ktip.png b/src/gui/qt/resources/ktip.png new file mode 100644 index 0000000000000000000000000000000000000000..8c004b76cfddc6670be441001c2107ed5b5fcfed GIT binary patch literal 4823 zcmV;|5-9D7P)F59e5@bn4 zK~#9!?OF?vmeqNF&iO9?ZI|6;7nVCLAmJj&9SVqe!FY-BlF_lv1&vLcj_E`*Nje%c zb~?3`@EO)pT(!^|M_A#4NGi9icE9lSv4ZCIj>FUShD^&<~`KUYOfUk z=LiU%!YscFmx+L_gq5C)fi zod6>Oz`1@=1P}ofeF(n@cqNFS2vO>R=zI&J`)!Zc)cmJ2|Hk{RaZ42uXCeXK&#p6QDB?}v=?1W*a-QU^qHpQwGX^0Eh(ba@j!P0s01+X)LVPVs-H6&Z z0onI^tWh)Wb60-%KL8w-sc}XSKv4(D{Wk9?yO)hvWl5oPJTBB5LW`~srRw~2^nh|s!UI?Hdro7atNBN9rVC;{X= zFYd>K-ckMyYvM}S;}&Y?hl8btfx9U!c^mYf1~&jBXsfA^Y7j9I9uXl)C=&8OIghCO zJwzYz#zrNLqDD!54I#h0bxr2SzYMKPAaSX}64puq|p0L1d z0k9B&FP%|{Pne?Ww8z127tmeU9BmcbkjDCdpSD(ae$hyYatxkGRj zn1n+(F%(6bq_Tujg9x-50A@P`A|aIlOD4e_2RPpPov@>IBB`L}v=ZR`9IJwUT*vDh zDe4?N>4OJ*!8nm%ByaKtoU0Ai0^T`N2<$_rrSl_FFC>n{&#a-=i zT6F?IOWzQs6ryrnhqrDaI&KGuqMg4&6G+G6+HlW;fV|ZwLGk{uDY1spE ze;sD$cVRV+rQkL47XzHRkc1%U26|rsYUcpSaVm-g)z|Zc6DhzoEYku_$E|3Mwj@xu zLxNqal+^bUKm`bP3QUqo;PK$(13{1pTA#Ys8aMY4fNa$j;C13l;2b=YA*8@%-aD>} z6n9jF3LgN)eL&a;1QNaKIx6a7CJ0P{Ys;XXBh=Nupd!u^fZGh%^+0Ji(ET*v9n!Ot zqeyVlU@{ewWD^OX)O8iYAWdoDR9yk&-}O9|P_j?R;v>L>blx_F%}T2j$iJ_KAG;24 zo0Ns4Bby+&Mg?GmNI?W-d_`LML$dvfh%m3eKQQTHNzzk*0G480Gb0Q$Hbrn}uIi@77t_2Y0)IcN(goGkXSAMmGX^RS` zWrC@n!EJ>olxd+A!B6NI}m6 z6(qR&c`cz1;5E7x`!q~t3W-oWhxK}1UODQ+WV_n0PJdZfqIbR5{yGnWn4zd zY;j>36$pReK*YF~ent_;B{B+%6h#J@o+e8g9)QTmKX!hQ3gSmHE#){K69D+f76D+@ z>jDg!SoR!R=6axU8sq5*FmKFkYeO^N3!A{DFFJBTW$`nF8JNiHqN-tth?p6%xmE!Y zzz8BJ69K$>ZIB6gf(cD&WZtxFalvsdNdt9nD!kesa7|uNp_Isw06(^7?lP%sTa@1^nO|+Hs zA=${}w((tq84OGXT{|sJKtgt^I`sZ#dNqsSK@mnE5(v`z1nr1By3*MpjuQ-N!t4^w zz9BTuD-0oF==7+SU?xd*Zz}~LK{gq#s2Twb_&^dM0{t0&6e#DzqTcKfq&lD>jN>OC za)ywgAPfORNZ=;=bZwvr(D#;Vg%SztLQ-sX2;fP)snqLLkl?AAJuCo;vBvR%&TDAW zw8KUPfkvo+N+p~s4R{Pg1_(l@ftpl#(plwiJU>+x0;qFsWgI!-`4D~p5s-})pa@X4 zpg}vYoY6Q{ta?^n-zD2Bx0!3k;33>4Wj@IRe&J?0}7x4(-s4YAsk6UTnztM2vMEwFi+s;vHZ*B zI28~W1rPzM9wf%-J-n8=iTuapzH;8!$Ur%7z=zfWqXLr#@)@)AT)?esqqi^3RD}R{ z6rN!mABj={G8H1JhES292*|0lbw(Nmd~Dm9P zT_*7D;I+@%RryTNX~e^fi#<^>3sI6Jlobg!b4=Dt=H0<3FMCKcQkpVyTnN)Y-u8-Y@`KL>aOLxL)jc9TkrsM7gUqyyp9 zgop~TfzAVlFt8Y`@iGL~xI26Prh!-GbU5)9bil@HQO@lZ*=|JnBBFvk!p@OzSs;cc zA?Q_rt=c3@7$OuIA3rEXm1A_pYcweX7c)CVL4Z0}@Phrr19qHLa!BQmn2h&~8OfY+zdE7hP1B})SK2!N-Q6NU%_O@z6x*ha_m zhi5(|)*G<_OGNR=p3nJ+>aW9|S0BUEoAzPX{=<*7v`qXeeurh@cUXV>U&wv`YCINs zL9Hm4mLOtGgrQ`9kZc36!8<_asZS)YQ1Iudn~z--iH0!Y>it^9-K7b9M9r6~#ru3q}e*0)hZS zBJ=^ZjUJr$iWG3E1_i*JDhpNo%r@CXe1PLoILLV){XHH;IRQ5{4=l@2H|ILE%$SF< zW5=PpyPI`%bU0uC`k$|V<&{^1-;)5d{_a_P^jFLA2syfkh?pu$UbFB*pe#pc51^#x6l*N72K2mAZ8+p0i-T0eLm;_o-%-EYkiKV>X@j?$tWNg|3~ z9T5TvdPX=gNtX4-imqi|3rz-u{>VHDwS1H7gdy?|L*kVp-|Yd^l`K9UJsk~rw;gDj zbun=h!gd_&+4BL8A3sjw4B}^nVzIDz@#5ESx#gDr=bwM!^!%;x@o$6Kb=C});H#Nq zU&L&CIZL{YEaAlG`#kB&!%e!@NF-yxQD9a=jkU}NP$Fw8eoRUvDDr`feB6?mpGK~* z0BfIo5u4u6V)mTb`0`iQVB(}nIDEJr5vgX=rcEFPVEgv%$Y!%r9cvC8IP@qgmW?W{ z#veie;rj~ygI(W&WjDApth94JbBik?*SUbD+_5}G&Zm-uRBU;YY=V^GCiNd#5_qQK z%m6U~ksqSJ*C*MRi2#O<&Z$_x@z?m5U+;$FxH#{;IcOR&f;vJDlP6C_TkCtccMaW6VVzj!euhgnF!+JFJXJ}21mdG-5}RTQO}o9&NJ+5pN=g%JMf#fEZl^P z@#Du~`SRu1zi&Urjhg_!$w$NR;V6|#NT*Un&h$7XrcL_{f*=Iv*6}G*rtUB)@CmKV zO&z^t9_joR9;v%>)?#q+*O3S>XHftalJn{mnH*shb%A`pgLik2Mj}+1=KPY3EFZfWUqC-is$5e;m1Nj;enFwqw&=Fjm$E={%)EXV1V<_zYV1(yjl^ z!eF-WOHW7wO1TnVdn<=uJeR@#(nu6p24NWD=+UF->g+^kS7#jQS+izh#rZ3+?x}Uy z{?0qG{2kYUZQE#UY{G#92k_`)kHya!WBpa^0@YvE(rsO2ZuB?L{^>vdtncneH*~EU zHqyuJ*(u8LF<<}{w*o9~Ve*tIuroF;z3g&qd2I`katw5ih;GIaWYTO${u|!u73jKcU|L6dU#S&WEcFAbsaQk6|WXDjRU;BkGpq)r57mHYZ z$t8Gs^DEfBd$&xRcraSEY8BS5T{~zJJWJN_hPw3vxQ1jL7r}F;PQmEW%^20(Ou1c- zy8#%(k@j{J={|^njnDonc08Rtransform-rotate.png player_play.png logoChip3D.png + ktip.png cflags/ad.png