From f54e03d1799f3f2408af3ec6b067470da44d8c68 Mon Sep 17 00:00:00 2001 From: doitux Date: Sun, 5 Apr 2009 12:32:16 +0000 Subject: [PATCH] serverlist gui added --- .../table/default/handranking_template.xcf | Bin 0 -> 100926 bytes docs/gui_skinnig_howto.txt | 9 +- pokerth_game.pro | 13 ++- src/gui/qt/guiwrapper.cpp | 63 +------------- src/gui/qt/guiwrapper.h | 3 + src/gui/qt/serverlistdialog.ui | 80 ++++++++++++++++++ .../serverlistdialog/serverlistdialogimpl.cpp | 65 ++++++++++++++ .../serverlistdialog/serverlistdialogimpl.h | 52 ++++++++++++ src/gui/qt/startwindow/startwindowimpl.cpp | 6 ++ src/gui/qt/startwindow/startwindowimpl.h | 6 +- 10 files changed, 226 insertions(+), 71 deletions(-) create mode 100644 data/gfx/gui/table/default/handranking_template.xcf create mode 100644 src/gui/qt/serverlistdialog.ui create mode 100644 src/gui/qt/serverlistdialog/serverlistdialogimpl.cpp create mode 100644 src/gui/qt/serverlistdialog/serverlistdialogimpl.h diff --git a/data/gfx/gui/table/default/handranking_template.xcf b/data/gfx/gui/table/default/handranking_template.xcf new file mode 100644 index 0000000000000000000000000000000000000000..e5de5cf61d5ac89246072c290af316133729421c GIT binary patch literal 100926 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 z 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 T=GPSdX6rxvVy(p-#IHXApdxoK literal 0 HcmV?d00001 diff --git a/docs/gui_skinnig_howto.txt b/docs/gui_skinnig_howto.txt index 548fab62..068c86c2 100644 --- a/docs/gui_skinnig_howto.txt +++ b/docs/gui_skinnig_howto.txt @@ -36,13 +36,8 @@ TODO: Edit this. When your style is ready to distribute you should complete the style information StyleDescription, StyleMaintainerEMail and Preview. The best way for Preview will be a screenshot of the style running in PokerTH. -Next step is editing the copyright.txt. Here you need to change "Maintainer" to your name and "EMail" to your valid mail address. -Please read the copyright declaration carefully. If you edited a free licenced gfx file you need to add the source address of the file -and corresponding licence information. - -If you style is ready to be shipped please pack the whole directory into a zip archive and send it to anybody you like. If you like your -style to be added into skin gallery on http://www.pokerth.net please send the archive to webmaster@pokerth.net. We cannot promise that -every style will be added, but if everything works fine and the legal issues are also clear there should be no problem. +If you style is ready to be shipped please pack the whole directory into a zip archive. If you like your style to be added into +skin gallery on http://www.pokerth.net please send a link to the address where you have hosted your archive to webmaster@pokerth.net. We cannot promise that every style will be added, but if everything works fine and the legal issues are also clear there should be no problem. +++++++++++++++++++++++++ diff --git a/pokerth_game.pro b/pokerth_game.pro index 7e6c5de7..4a8765c6 100644 --- a/pokerth_game.pro +++ b/pokerth_game.pro @@ -52,6 +52,7 @@ INCLUDEPATH += . \ src/gui/qt/settingsdialog/manualblindsorderdialog \ src/gui/qt/startnetworkgamedialog \ src/gui/qt/startwindow \ + src/gui/qt/serverlistdialog \ src/gui/qt/styles \ src/gui/qt/changehumanplayernamedialog \ src/gui/qt/changecompleteblindsdialog \ @@ -92,6 +93,7 @@ DEPENDPATH += . \ src/gui/qt/settingsdialog/manualblindsorderdialog \ src/gui/qt/startnetworkgamedialog \ src/gui/qt/startwindow \ + src/gui/qt/serverlistdialog \ src/gui/qt/styles \ src/gui/qt/changehumanplayernamedialog \ src/gui/qt/changecompleteblindsdialog \ @@ -190,7 +192,8 @@ HEADERS += \ src/gui/qt/qttools/qttoolswrapper.h \ src/gui/qt/qttools/qthelper/qthelper.h \ src/gui/generic/serverguiwrapper.h \ - src/gui/qt/gametable/mychancelabel.h + src/gui/qt/gametable/mychancelabel.h \ + src/gui/qt/serverlistdialog/serverlistdialogimpl.h FORMS += \ src/gui/qt/gametable.ui \ @@ -208,7 +211,8 @@ FORMS += \ src/gui/qt/changecompleteblindsdialog.ui \ src/gui/qt/gamelobbydialog.ui \ src/gui/qt/mymessagedialog.ui \ - src/gui/qt/manualblindsorderdialog.ui + src/gui/qt/manualblindsorderdialog.ui \ + src/gui/qt/serverlistdialog.ui SOURCES += \ src/pokerth.cpp \ @@ -253,7 +257,8 @@ SOURCES += \ src/gui/qt/timeoutmsgbox/timeoutmsgboximpl.cpp \ src/net/common/net_helper_client.cpp \ src/core/common/loghelper_client.cpp \ - src/gui/qt/gametable/mychancelabel.cpp + src/gui/qt/gametable/mychancelabel.cpp \ + src/gui/qt/serverlistdialog/serverlistdialogimpl.cpp TRANSLATIONS = \ ts/pokerth_bg.ts \ @@ -277,7 +282,7 @@ TRANSLATIONS = \ ts/pokerth_START_HERE.ts win32 { - QTPLUGIN += qjpeg qgif + QTPLUGIN += qjpeg qgif DEFINES += CURL_STATICLIB DEPENDPATH += src/net/win32/ src/core/win32 INCLUDEPATH += ../boost/ ../SDL/include ../SDL_mixer diff --git a/src/gui/qt/guiwrapper.cpp b/src/gui/qt/guiwrapper.cpp index 88cb8fa6..b3ebb693 100644 --- a/src/gui/qt/guiwrapper.cpp +++ b/src/gui/qt/guiwrapper.cpp @@ -123,8 +123,11 @@ void GuiWrapper::logPlayerWinGame(std::string playerName, int gameID) { myLog->s void GuiWrapper::flushLogAtGame(int gameID) { myLog->signalFlushLogAtGame(gameID); } void GuiWrapper::flushLogAtHand() { myLog->signalFlushLogAtHand(); } -////////// this is for startwindow //////////////////// + void GuiWrapper::SignalNetClientConnect(int actionID) { myStartWindow->signalNetClientConnect(actionID); } +void GuiWrapper::SignalNetClientServerListAdd(unsigned serverId) { myStartWindow->signalNetClientServerListAdd(serverId); } +void GuiWrapper::SignalNetClientServerListShow() { myStartWindow->signalNetClientServerListShow(); } +void GuiWrapper::SignalNetClientServerListClear() { myStartWindow->signalNetClientServerListClear(); } void GuiWrapper::SignalNetClientGameInfo(int actionID) { myStartWindow->signalNetClientGameInfo(actionID); } void GuiWrapper::SignalNetClientError(int errorID, int osErrorID) { myStartWindow->signalNetClientError(errorID, osErrorID); } void GuiWrapper::SignalNetClientNotification(int notificationId) { myStartWindow->signalNetClientNotification(notificationId); } @@ -176,61 +179,3 @@ void GuiWrapper::SignalIrcPlayerLeft(const std::string &nickName) { myStartWindo void GuiWrapper::SignalIrcChatMsg(const std::string &nickName, const std::string &msg) { myStartWindow->signalIrcChatMessage(QString::fromUtf8(nickName.c_str()), QString::fromUtf8(msg.c_str())); } void GuiWrapper::SignalIrcError(int errorCode) { myStartWindow->signalIrcError(errorCode); } void GuiWrapper::SignalIrcServerError(int errorCode) {myStartWindow->signalIrcServerError(errorCode); } - -////////// this is for startwindow //////////////////// - - -//TEMPORARELY UNTIL STARTWINDOW REFACTORING IS OVER TODO - -// void GuiWrapper::SignalNetClientConnect(int actionID) { myW->signalNetClientConnect(actionID); } -// void GuiWrapper::SignalNetClientGameInfo(int actionID) { myW->signalNetClientGameInfo(actionID); } -// void GuiWrapper::SignalNetClientError(int errorID, int osErrorID) { myW->signalNetClientError(errorID, osErrorID); } -// void GuiWrapper::SignalNetClientNotification(int notificationId) { myW->signalNetClientNotification(notificationId); } -// void GuiWrapper::SignalNetClientStatsUpdate(const ServerStats &stats) { myW->signalNetClientStatsUpdate(stats); } -// void GuiWrapper::SignalNetClientShowTimeoutDialog(NetTimeoutReason reason, unsigned remainingSec) { myW->signalNetClientShowTimeoutDialog(reason, remainingSec); } -// void GuiWrapper::SignalNetClientRemovedFromGame(int notificationId) { myW->signalNetClientRemovedFromGame(notificationId); } -// void GuiWrapper::SignalNetClientSelfJoined(unsigned playerId, const string &playerName, PlayerRights rights) { myW->signalNetClientSelfJoined(playerId, QString::fromUtf8(playerName.c_str()), rights); } -// void GuiWrapper::SignalNetClientPlayerJoined(unsigned playerId, const string &playerName, PlayerRights rights) { myW->signalNetClientPlayerJoined(playerId, QString::fromUtf8(playerName.c_str()), rights); } -// void GuiWrapper::SignalNetClientPlayerChanged(unsigned playerId, const string &newPlayerName) -// { -// myW->signalNetClientPlayerChanged(playerId, QString::fromUtf8(newPlayerName.c_str())); -// } -// void GuiWrapper::SignalNetClientPlayerLeft(unsigned playerId, const string &playerName) -// { -// QString tmpName(QString::fromUtf8(playerName.c_str())); -// myW->signalNetClientPlayerLeft(playerId, tmpName); -// if (!playerName.empty() && playerName[0] != '#') -// myLog->signalLogPlayerLeftMsg(tmpName); -// } -// void GuiWrapper::SignalNetClientNewGameAdmin(unsigned playerId, const string &playerName) { -// -// myW->signalNetClientNewGameAdmin(playerId, QString::fromUtf8(playerName.c_str())); -// if (!playerName.empty() && playerName[0] != '#') -// myLog->signalLogNewGameAdminMsg(QString::fromUtf8(playerName.c_str())); -// -// } -// -// void GuiWrapper::SignalNetClientGameListNew(unsigned gameId) { myW->signalNetClientGameListNew(gameId); } -// void GuiWrapper::SignalNetClientGameListRemove(unsigned gameId) { myW->signalNetClientGameListRemove(gameId); } -// void GuiWrapper::SignalNetClientGameListUpdateMode(unsigned gameId, GameMode mode) { myW->signalNetClientGameListUpdateMode(gameId, mode); } -// void GuiWrapper::SignalNetClientGameListUpdateAdmin(unsigned gameId, unsigned adminPlayerId) {myW->signalNetClientGameListUpdateAdmin(gameId, adminPlayerId); } -// void GuiWrapper::SignalNetClientGameListPlayerJoined(unsigned gameId, unsigned playerId) { myW->signalNetClientGameListPlayerJoined(gameId, playerId); } -// void GuiWrapper::SignalNetClientGameListPlayerLeft(unsigned gameId, unsigned playerId) { myW->signalNetClientGameListPlayerLeft(gameId, playerId); } -// -// void GuiWrapper::SignalNetClientGameStart(boost::shared_ptr game) { myW->signalNetClientGameStart(game); } -// void GuiWrapper::SignalNetClientWaitDialog() { myW->signalShowClientDialog(); } -// void GuiWrapper::SignalNetClientChatMsg(const string &playerName, const string &msg) { myW->signalNetClientChatMsg(QString::fromUtf8(playerName.c_str()), QString::fromUtf8(msg.c_str())); } -// void GuiWrapper::SignalNetServerSuccess(int /*actionID*/) { } -// void GuiWrapper::SignalNetServerError(int errorID, int osErrorID) { myW->signalNetServerError(errorID, osErrorID); } -// -// void GuiWrapper::SignalIrcConnect(const string &server) { myW->signalIrcConnect(QString::fromUtf8(server.c_str())); } -// void GuiWrapper::SignalIrcSelfJoined(const string &nickName, const string &channel) { myW->signalIrcSelfJoined(QString::fromUtf8(nickName.c_str()), QString::fromUtf8(channel.c_str())); } -// void GuiWrapper::SignalIrcPlayerJoined(const string &nickName) { myW->signalIrcPlayerJoined(QString::fromUtf8(nickName.c_str())); } -// void GuiWrapper::SignalIrcPlayerChanged(const string &oldNick, const string &newNick) { myW->signalIrcPlayerChanged(QString::fromUtf8(oldNick.c_str()), QString::fromUtf8(newNick.c_str())); } -// void GuiWrapper::SignalIrcPlayerKicked(const std::string &nickName, const std::string &byWhom, const std::string &reason) { myW->signalIrcPlayerKicked(QString::fromUtf8(nickName.c_str()), QString::fromUtf8(byWhom.c_str()), QString::fromUtf8(reason.c_str())); } -// void GuiWrapper::SignalIrcPlayerLeft(const std::string &nickName) { myW->signalIrcPlayerLeft(QString::fromUtf8(nickName.c_str())); } -// void GuiWrapper::SignalIrcChatMsg(const std::string &nickName, const std::string &msg) { myW->signalIrcChatMessage(QString::fromUtf8(nickName.c_str()), QString::fromUtf8(msg.c_str())); } -// void GuiWrapper::SignalIrcError(int errorCode) { myW->signalIrcError(errorCode); } -// void GuiWrapper::SignalIrcServerError(int errorCode) {myW->signalIrcServerError(errorCode); } - -//TEMPORARELY UNTIL STARTWINDOW REFACTORING IS OVER TODO \ No newline at end of file diff --git a/src/gui/qt/guiwrapper.h b/src/gui/qt/guiwrapper.h index e539e596..4aebbeaa 100644 --- a/src/gui/qt/guiwrapper.h +++ b/src/gui/qt/guiwrapper.h @@ -113,6 +113,9 @@ public: void flushLogAtHand(); void SignalNetClientConnect(int actionID); + void SignalNetClientServerListAdd(unsigned serverId); + void SignalNetClientServerListShow(); + void SignalNetClientServerListClear(); void SignalNetClientGameInfo(int actionID); void SignalNetClientError(int errorID, int osErrorID); void SignalNetClientNotification(int notificationId); diff --git a/src/gui/qt/serverlistdialog.ui b/src/gui/qt/serverlistdialog.ui new file mode 100644 index 00000000..4f0a6749 --- /dev/null +++ b/src/gui/qt/serverlistdialog.ui @@ -0,0 +1,80 @@ + + ServerListDialog + + + + 0 + 0 + 400 + 300 + + + + Dialog + + + + + + + Servername + + + + + Country + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + true + + + + + + + + + buttonBox + accepted() + ServerListDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + ServerListDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/gui/qt/serverlistdialog/serverlistdialogimpl.cpp b/src/gui/qt/serverlistdialog/serverlistdialogimpl.cpp new file mode 100644 index 00000000..13819fca --- /dev/null +++ b/src/gui/qt/serverlistdialog/serverlistdialogimpl.cpp @@ -0,0 +1,65 @@ +/*************************************************************************** + * Copyright (C) 2006 by FThauer FHammer * + * f.thauer@web.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "serverlistdialogimpl.h" +#include "configfile.h" +#include "startwindowimpl.h" +#include "serverdata.h" +#include "session.h" + +serverListDialogImpl::serverListDialogImpl(startWindowImpl *sw, QMainWindow *parent, ConfigFile *c) + : QDialog(parent), myConfig(c), mySw(sw) +{ +#ifdef __APPLE__ + setWindowModality(Qt::ApplicationModal); + setWindowFlags(Qt::WindowSystemMenuHint | Qt::CustomizeWindowHint | Qt::Dialog); +#endif + setupUi(this); + + + connect( buttonBox, SIGNAL( accepted() ), this, SLOT( connectToServer() )); + +} + +void serverListDialogImpl::exec() { + + QDialog::exec(); +} + +void serverListDialogImpl::clearList() +{ + treeWidget_serverList->clear(); +} + +void serverListDialogImpl::addServerItem(unsigned serverId) +{ + ServerInfo info = mySw->getSession()->getClientServerInfo(serverId); + QTreeWidgetItem *item = new QTreeWidgetItem(treeWidget_serverList); + item->setData(0, Qt::DisplayRole, QString::fromUtf8(info.name.c_str())); + item->setData(0, Qt::UserRole, serverId); + item->setData(1, Qt::DisplayRole, QString::fromUtf8(info.country.c_str())); +} + +void serverListDialogImpl::connectToServer() +{ + QTreeWidgetItem *item = treeWidget_serverList->currentItem(); + if (item) { +// mySw->getSession()->connect(item->data(0, Qt::UserRole)) TODO + } +} diff --git a/src/gui/qt/serverlistdialog/serverlistdialogimpl.h b/src/gui/qt/serverlistdialog/serverlistdialogimpl.h new file mode 100644 index 00000000..8426d4f2 --- /dev/null +++ b/src/gui/qt/serverlistdialog/serverlistdialogimpl.h @@ -0,0 +1,52 @@ +/*************************************************************************** + * Copyright (C) 2006 by FThauer FHammer * + * f.thauer@web.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef SERVERLISTDIALOGIMPL_H +#define SERVERLISTDIALOGIMPL_H + +#include "ui_serverlistdialog.h" + +#include +#include + + +class ConfigFile; +class startWindowImpl; + +class serverListDialogImpl: public QDialog, public Ui::ServerListDialog { +Q_OBJECT +public: + serverListDialogImpl(startWindowImpl *sw, QMainWindow *parent = 0, ConfigFile* = 0 ); + +public slots: + + void exec(); + void clearList(); + void addServerItem(unsigned); + void connectToServer(); + +private: + + ConfigFile *myConfig; + startWindowImpl *mySw; + +}; + +#endif +void exec(); \ No newline at end of file diff --git a/src/gui/qt/startwindow/startwindowimpl.cpp b/src/gui/qt/startwindow/startwindowimpl.cpp index d01b44dd..2ecdf2ca 100644 --- a/src/gui/qt/startwindow/startwindowimpl.cpp +++ b/src/gui/qt/startwindow/startwindowimpl.cpp @@ -47,6 +47,7 @@ #include "timeoutmsgboximpl.h" #include "lobbychat.h" #include "chat.h" +#include "serverlistdialogimpl.h" using namespace std; @@ -98,6 +99,7 @@ startWindowImpl::startWindowImpl(ConfigFile *c) myGameLobbyDialog->setMyW(myGuiInterface->getMyW()); myTimeoutDialog = new timeoutMsgBoxImpl(this); + myServerListDialog = new serverListDialogImpl(this, this, myConfig); connect( actionStart_Local_Game, SIGNAL( triggered() ), this, SLOT( callNewGameDialog() ) ); connect( pushButtonStart_Local_Game, SIGNAL( clicked() ), this, SLOT( callNewGameDialog() ) ); @@ -118,6 +120,10 @@ startWindowImpl::startWindowImpl(ConfigFile *c) connect(this, SIGNAL(signalNetClientGameInfo(int)), myStartNetworkGameDialog, SLOT(refresh(int))); connect(this, SIGNAL(signalNetClientGameInfo(int)), myGameLobbyDialog, SLOT(refresh(int))); + connect(this, SIGNAL(signalNetClientServerListShow()), myServerListDialog, SLOT(exec())); + connect(this, SIGNAL(signalNetClientServerListClear()), myServerListDialog, SLOT(clearList())); + connect(this, SIGNAL(signalNetClientServerListAdd(unsigned serverId)), myServerListDialog, SLOT(addServerItem(serverId))); + connect(this, SIGNAL(signalNetClientSelfJoined(unsigned, QString, int)), myStartNetworkGameDialog, SLOT(joinedNetworkGame(unsigned, QString, int))); connect(this, SIGNAL(signalNetClientPlayerJoined(unsigned, QString, int)), myStartNetworkGameDialog, SLOT(addConnectedPlayer(unsigned, QString, int))); connect(this, SIGNAL(signalNetClientPlayerChanged(unsigned, QString)), myStartNetworkGameDialog, SLOT(updatePlayer(unsigned, QString))); diff --git a/src/gui/qt/startwindow/startwindowimpl.h b/src/gui/qt/startwindow/startwindowimpl.h index dd9b345a..53c92409 100644 --- a/src/gui/qt/startwindow/startwindowimpl.h +++ b/src/gui/qt/startwindow/startwindowimpl.h @@ -42,7 +42,7 @@ class startNetworkGameDialogImpl; class changeHumanPlayerNameDialogImpl; class gameLobbyDialogImpl; class timeoutMsgBoxImpl; - +class serverListDialogImpl; class startWindowImpl: public QMainWindow, public Ui::startWindow { Q_OBJECT @@ -57,6 +57,9 @@ signals: void signalShowClientDialog(); void signalNetClientConnect(int actionID); + void signalNetClientServerListShow(); + void signalNetClientServerListClear(); + void signalNetClientServerListAdd(unsigned serverId); void signalNetClientGameInfo(int actionID); void signalNetClientError(int errorID, int osErrorID); void signalNetClientNotification(int notificationId); @@ -135,6 +138,7 @@ private: gameLobbyDialogImpl *myGameLobbyDialog; timeoutMsgBoxImpl *myTimeoutDialog; startWindowImpl *myStartWindow; + serverListDialogImpl *myServerListDialog; friend class GuiWrapper;