diff --git a/pokerth_game.pro b/pokerth_game.pro index 938f5987..dd3a8410 100644 --- a/pokerth_game.pro +++ b/pokerth_game.pro @@ -29,6 +29,7 @@ INCLUDEPATH += . \ src/core \ src/gui/qt/sound \ src/gui/qt/qttools \ + src/gui/qt/chattools \ src/gui/qt/qttools/qthelper \ src/gui/qt/mainwindow \ src/gui/qt/mainwindow/startsplash \ @@ -62,6 +63,7 @@ DEPENDPATH += . \ src/gui/qt \ src/net/common \ src/gui/qt/sound \ + src/gui/qt/chattools \ src/gui/qt/mainwindow \ src/gui/qt/mainwindow/startsplash \ src/gui/qt/mainwindow/log \ @@ -130,6 +132,7 @@ HEADERS += \ src/engine/network_engine/clienthand.h \ src/engine/network_engine/clientplayer.h \ src/engine/network_engine/clientbero.h \ + src/gui/qt/chattools/chattools.h \ src/gui/qt/sound/sdlplayer.h \ src/gui/qt/mainwindow/mainwindowimpl.h \ src/gui/qt/mainwindow/mycardspixmaplabel.h \ @@ -157,7 +160,6 @@ HEADERS += \ src/gui/qt/changehumanplayernamedialog/changehumanplayernamedialogimpl.h \ src/gui/qt/changecompleteblindsdialog/changecompleteblindsdialogimpl.h \ src/gui/qt/gamelobbydialog/gamelobbydialogimpl.h \ - src/gui/qt/gamelobbydialog/mychatinputlineedit.h \ src/gui/qt/gamelobbydialog/lobbychat/lobbychat.h \ src/gui/qttoolsinterface.h \ src/gui/qt/qttools/qttoolswrapper.h \ @@ -182,6 +184,7 @@ FORMS += \ SOURCES += \ src/pokerth.cpp \ + src/gui/qt/chattools/chattools.cpp \ src/gui/qt/sound/sdlplayer.cpp \ src/gui/qt/guiwrapper.cpp \ src/gui/qt/qttools/qttoolswrapper.cpp \ @@ -211,7 +214,6 @@ SOURCES += \ src/gui/qt/changehumanplayernamedialog/changehumanplayernamedialogimpl.cpp \ src/gui/qt/changecompleteblindsdialog/changecompleteblindsdialogimpl.cpp \ src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp \ - src/gui/qt/gamelobbydialog/mychatinputlineedit.cpp \ src/gui/qt/gamelobbydialog/lobbychat/lobbychat.cpp TRANSLATIONS = \ diff --git a/src/gui/qt/chattools/chattools.cpp b/src/gui/qt/chattools/chattools.cpp new file mode 100644 index 00000000..6290e5fb --- /dev/null +++ b/src/gui/qt/chattools/chattools.cpp @@ -0,0 +1,110 @@ +/*************************************************************************** + * 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 "chattools.h" +#include + +using namespace std; + + +ChatTools::ChatTools(QLineEdit* l, QTreeWidget *t, QStringList *s) : nickAutoCompletitionCounter(0), myLineEdit(l), myNickTreeWidget(t), myNickStringList(s) +{ + +} + +ChatTools::~ChatTools() +{ + +} + +void ChatTools::fillChatLinesHistory(QString fillString) { + + chatLinesHistory << fillString; + if(chatLinesHistory.size() > 50) chatLinesHistory.removeFirst(); + + +} + +void ChatTools::showChatHistoryIndex(int index) { + + if(index <= chatLinesHistory.size()) { + +// cout << chatLinesHistory.size() << " : " << index << endl; + if(index > 0) + myLineEdit->setText(chatLinesHistory.at(chatLinesHistory.size()-(index))); + else + myLineEdit->setText(""); + } +} + +void ChatTools::nickAutoCompletition() { + + QString myChatString = myLineEdit->text(); + QStringList myChatStringList = myChatString.split(" "); + + QStringList matchStringList; + + if(nickAutoCompletitionCounter == 0) { + + if(myNickTreeWidget) { + QTreeWidgetItemIterator it(myNickTreeWidget); + while (*it) { + if ((*it)->text(0).startsWith(myChatStringList.last(), Qt::CaseInsensitive) && myChatStringList.last() != "") + matchStringList << (*it)->text(0); + ++it; + } + } + + if(myNickStringList) { + //TODO code for static nickList + } + } + +// QStringList::const_iterator constIterator; +// for (constIterator = matchStringList.constBegin(); constIterator != matchStringList.constEnd(); ++constIterator) { +// cout << (*constIterator).toLocal8Bit().constData() << endl; +// } + + if(!matchStringList.isEmpty() || nickAutoCompletitionCounter > 0) { + + myChatStringList.removeLast(); + + if(nickAutoCompletitionCounter == 0) { + //first one + lastChatString = myChatStringList.join(" "); + lastMatchStringList = matchStringList; + } + + if(nickAutoCompletitionCounter == lastMatchStringList.size()) nickAutoCompletitionCounter = 0; + +// cout << nickAutoCompletitionCounter << "\n"; + + if(lastChatString == "") + myLineEdit->setText(lastMatchStringList.at(nickAutoCompletitionCounter)+": "); + else + myLineEdit->setText(lastChatString+" "+lastMatchStringList.at(nickAutoCompletitionCounter)+" "); + + nickAutoCompletitionCounter++; + } +} + +void ChatTools::setChatTextEdited() { + + nickAutoCompletitionCounter = 0; +} diff --git a/src/gui/qt/chattools/chattools.h b/src/gui/qt/chattools/chattools.h new file mode 100644 index 00000000..c3e5b85b --- /dev/null +++ b/src/gui/qt/chattools/chattools.h @@ -0,0 +1,57 @@ +/*************************************************************************** + * 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 CHATTOOLS_H +#define CHATTOOLS_H + +#include +#include +#include + +class ChatTools : public QObject +{ +Q_OBJECT + +public: + ChatTools(QLineEdit* l, QTreeWidget *t = NULL, QStringList *s = NULL); + + ~ChatTools(); + +public slots: + + void fillChatLinesHistory(QString fillString); + void showChatHistoryIndex(int index); + int getChatLinesHistorySize() { return chatLinesHistory.size(); } + + void nickAutoCompletition(); + void setChatTextEdited(); + +private: + QStringList chatLinesHistory; + QString lastChatString; + QStringList lastMatchStringList; + int nickAutoCompletitionCounter; + + QLineEdit* myLineEdit; + QTreeWidget *myNickTreeWidget; + QStringList *myNickStringList; +// friend class GuiWrapper; +}; + +#endif diff --git a/src/gui/qt/gamelobbydialog.ui b/src/gui/qt/gamelobbydialog.ui index 5344afd2..56939f55 100644 --- a/src/gui/qt/gamelobbydialog.ui +++ b/src/gui/qt/gamelobbydialog.ui @@ -454,20 +454,13 @@ - + - - - MyChatInputLineEdit - QLineEdit -
mychatinputlineedit.h
-
-
treeWidget_GameList pushButton_CreateGame diff --git a/src/gui/qt/gamelobbydialog/lobbychat/lobbychat.cpp b/src/gui/qt/gamelobbydialog/lobbychat/lobbychat.cpp index 05ea43b6..f4c1cff8 100644 --- a/src/gui/qt/gamelobbydialog/lobbychat/lobbychat.cpp +++ b/src/gui/qt/gamelobbydialog/lobbychat/lobbychat.cpp @@ -25,18 +25,14 @@ #include "gamelobbydialogimpl.h" #include "session.h" #include "configfile.h" +#include "chattools.h" using namespace std; -LobbyChat::LobbyChat(gameLobbyDialogImpl* l, ConfigFile *c) : myLobby(l), myConfig(c), nickAutoCompletitionCounter(0), chatTextEdited(FALSE) +LobbyChat::LobbyChat(gameLobbyDialogImpl* l, ConfigFile *c) : myLobby(l), myConfig(c) { - -// chatInputCompleter = new QCompleter(myLobby->treeWidget_NickList->model()); -// // chatInputCompleter->setCaseSensitivity(Qt::CaseInsensitive); -// // chatInputCompleter->setCompletionMode(QCompleter::PopupCompletion); -// // myLobby->lineEdit_ChatInput->setCompleter(chatInputCompleter); - + myChatTools = new ChatTools(myLobby->lineEdit_ChatInput, myLobby->treeWidget_NickList); } LobbyChat::~LobbyChat() @@ -236,72 +232,8 @@ void LobbyChat::chatServerError(int errorCode) // myLobby->textBrowser_ChatDisplay->append(errorMsg); } -void LobbyChat::fillChatLinesHistory(QString fillString) { - - chatLinesHistory << fillString; - if(chatLinesHistory.size() > 50) chatLinesHistory.removeFirst(); - - -} - -void LobbyChat::showChatHistoryIndex(int index) { - - if(index <= chatLinesHistory.size()) { - -// cout << chatLinesHistory.size() << " : " << index << endl; - if(index > 0) - myLobby->lineEdit_ChatInput->setText(chatLinesHistory.at(chatLinesHistory.size()-(index))); - else - myLobby->lineEdit_ChatInput->setText(""); - } -} - -void LobbyChat::nickAutoCompletition() { - - QString myChatString = myLobby->lineEdit_ChatInput->text(); - QStringList myChatStringList = myChatString.split(" "); - - QStringList matchStringList; - - if(nickAutoCompletitionCounter == 0) { - QTreeWidgetItemIterator it(myLobby->treeWidget_NickList); - while (*it) { - if ((*it)->text(0).startsWith(myChatStringList.last(), Qt::CaseInsensitive) && myChatStringList.last() != "") - matchStringList << (*it)->text(0); - ++it; - } - } - -// QStringList::const_iterator constIterator; -// for (constIterator = matchStringList.constBegin(); constIterator != matchStringList.constEnd(); ++constIterator) { -// cout << (*constIterator).toLocal8Bit().constData() << endl; -// } - - if(!matchStringList.isEmpty() || nickAutoCompletitionCounter > 0) { - - myChatStringList.removeLast(); - - if(nickAutoCompletitionCounter == 0) { - //first one - lastChatString = myChatStringList.join(" "); - lastMatchStringList = matchStringList; - } - - if(nickAutoCompletitionCounter == lastMatchStringList.size()) nickAutoCompletitionCounter = 0; - -// cout << nickAutoCompletitionCounter << "\n"; - - if(lastChatString == "") - myLobby->lineEdit_ChatInput->setText(lastMatchStringList.at(nickAutoCompletitionCounter)+": "); - else - myLobby->lineEdit_ChatInput->setText(lastChatString+" "+lastMatchStringList.at(nickAutoCompletitionCounter)+" "); - - nickAutoCompletitionCounter++; - } -} - -void LobbyChat::setChatTextEdited() { - - chatTextEdited = TRUE; - nickAutoCompletitionCounter = 0; -} +void LobbyChat::fillChatLinesHistory(QString fillString) { myChatTools->fillChatLinesHistory(fillString); } +int LobbyChat::getChatLinesHistorySize() { return myChatTools->getChatLinesHistorySize(); } +void LobbyChat::showChatHistoryIndex(int index) { myChatTools->showChatHistoryIndex(index); } +void LobbyChat::nickAutoCompletition() { myChatTools->nickAutoCompletition(); } +void LobbyChat::setChatTextEdited() { myChatTools->setChatTextEdited(); } diff --git a/src/gui/qt/gamelobbydialog/lobbychat/lobbychat.h b/src/gui/qt/gamelobbydialog/lobbychat/lobbychat.h index 3d1473f5..4b49bc24 100644 --- a/src/gui/qt/gamelobbydialog/lobbychat/lobbychat.h +++ b/src/gui/qt/gamelobbydialog/lobbychat/lobbychat.h @@ -27,6 +27,7 @@ class gameLobbyDialogImpl; class Session; class ConfigFile; +class ChatTools; class LobbyChat : public QObject { @@ -53,12 +54,12 @@ public slots: void chatError(int errorCode); void chatServerError(int errorCode); + ChatTools* getMyChatTools() const { return myChatTools; } + void fillChatLinesHistory(QString fillString); void showChatHistoryIndex(int index); - - int getChatLinesHistorySize() { return chatLinesHistory.size(); } + int getChatLinesHistorySize(); void nickAutoCompletition(); - void setChatTextEdited(); private: @@ -66,16 +67,7 @@ private: ConfigFile *myConfig; QString myNick; - - QStringList chatLinesHistory; - QCompleter *chatInputCompleter; - - QString lastChatString; - QStringList lastMatchStringList; - int nickAutoCompletitionCounter; - - bool chatTextEdited; - + ChatTools *myChatTools; // friend class GuiWrapper; }; diff --git a/src/gui/qt/gamelobbydialog/mychatinputlineedit.cpp b/src/gui/qt/gamelobbydialog/mychatinputlineedit.cpp deleted file mode 100644 index b2cf0650..00000000 --- a/src/gui/qt/gamelobbydialog/mychatinputlineedit.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// C++ Implementation: mycardspixmaplabel -// -// Description: -// -// -// Author: FThauer FHammer , (C) 2007 -// -// Copyright: See COPYING file that comes with this distribution -// -// -#include "mychatinputlineedit.h" - -using namespace std; - -MyChatInputLineEdit::MyChatInputLineEdit(QGroupBox* parent) - : QLineEdit(parent) -{ - -} - - -MyChatInputLineEdit::~MyChatInputLineEdit() -{ -} - -// void MyChatInputLineEdit::keyPressEvent( QKeyEvent * event ) { -// -// if (event->key() == Qt::Key_Tab && this->hasSelectedText()) { } -// -// QLineEdit::keyPressEvent(event); -// } diff --git a/src/gui/qt/gamelobbydialog/mychatinputlineedit.h b/src/gui/qt/gamelobbydialog/mychatinputlineedit.h deleted file mode 100644 index 711b4cb5..00000000 --- a/src/gui/qt/gamelobbydialog/mychatinputlineedit.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// C++ Interface: MyChatInputLineEdit -// -// Description: -// -// -// Author: FThauer FHammer , (C) 2007 -// -// Copyright: See COPYING file that comes with this distribution -// -// -#ifndef MYCHATINPUTLINEEDIT_H -#define MYCHATINPUTLINEEDIT_H - -#include -#include - -class MyChatInputLineEdit : public QLineEdit -{ -Q_OBJECT -public: - MyChatInputLineEdit(QGroupBox*); - - ~MyChatInputLineEdit(); - - -public slots: - -// void keyPressEvent( QKeyEvent * event ); - -private: - -// QTimer *chatBlinkTimer; -// QTabBar *myTabBar; - -}; - -#endif