chat-blinking if invisible and message received

This commit is contained in:
doitux
2007-05-25 10:49:26 +00:00
parent 2333079b13
commit 654ce481ca
10 changed files with 192 additions and 66 deletions
+2
View File
@@ -111,6 +111,7 @@ HEADERS += src/game.h \
src/engine/network_engine/clientturn.h \
src/gui/qt/mainwindow/mainwindowimpl.h \
src/gui/qt/mainwindow/mycardspixmaplabel.h \
src/gui/qt/mainwindow/myrighttabwidget.h \
src/gui/qt/mainwindow/startsplash/startsplash.h \
src/gui/qt/mainwindow/log/log.h \
src/gui/qt/mainwindow/chat/chat.h \
@@ -199,6 +200,7 @@ SOURCES += src/game.cpp \
src/gui/qt/guiwrapper.cpp \
src/gui/qt/mainwindow/mainwindowimpl.cpp \
src/gui/qt/mainwindow/mycardspixmaplabel.cpp \
src/gui/qt/mainwindow/myrighttabwidget.cpp \
src/gui/qt/mainwindow/startsplash/startsplash.cpp \
src/gui/qt/mainwindow/log/log.cpp \
src/gui/qt/mainwindow/chat/chat.cpp \
+35 -1
View File
@@ -1800,10 +1800,19 @@
</layout>
</item>
<item row="0" column="0" >
<widget class="QTabWidget" name="tabWidget" >
<widget class="MyRightTabWidget" name="tabWidget" >
<property name="palette" >
<palette>
<active>
<colorrole role="WindowText" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>240</red>
<green>240</green>
<blue>240</blue>
</color>
</brush>
</colorrole>
<colorrole role="Button" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
@@ -1815,6 +1824,15 @@
</colorrole>
</active>
<inactive>
<colorrole role="WindowText" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>240</red>
<green>240</green>
<blue>240</blue>
</color>
</brush>
</colorrole>
<colorrole role="Button" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
@@ -1826,6 +1844,15 @@
</colorrole>
</inactive>
<disabled>
<colorrole role="WindowText" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>128</red>
<green>128</green>
<blue>128</blue>
</color>
</brush>
</colorrole>
<colorrole role="Button" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
@@ -5831,6 +5858,13 @@
</property>
</action>
</widget>
<customwidgets>
<customwidget>
<class>MyRightTabWidget</class>
<extends>QTabWidget</extends>
<header>myrighttabwidget.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>spinBox_set</tabstop>
</tabstops>
+15 -2
View File
@@ -26,7 +26,6 @@ using namespace std;
Chat::Chat(mainWindowImpl* w, ConfigFile *c) : myW(w), myConfig(c)
{
myW->setChat(this);
}
@@ -43,4 +42,18 @@ void Chat::sendMessage() {
myW->lineEdit_ChatInput->setText("");
}
void Chat::receiveMessage(std::string message) { myW->textBrowser_Chat->append(QString::fromUtf8(message.c_str())); }
void Chat::receiveMessage(std::string message) {
myW->textBrowser_Chat->append(QString::fromUtf8(message.c_str()));
checkInvisible();
}
void Chat::checkInvisible() {
switch (myW->tabWidget->currentIndex()) {
case 1: { myW->tabWidget->stopBlinkChatTab(); }
break;
default: { myW->tabWidget->startBlinkChatTab(); }
}
}
+5 -1
View File
@@ -27,6 +27,7 @@
#include <QtCore>
class mainWindowImpl;
class Chat : public QObject
@@ -42,12 +43,15 @@ public slots:
void sendMessage();
void receiveMessage(std::string);
void checkInvisible();
private:
mainWindowImpl *myW;
ConfigFile *myConfig;
friend class GuiWrapper;
};
+11 -5
View File
@@ -558,7 +558,7 @@ mainWindowImpl::mainWindowImpl(ConfigFile *c, QMainWindow *parent)
connect ( horizontalSlider_speed, SIGNAL( valueChanged(int)), this, SLOT ( setGameSpeed(int) ) );
connect ( pushButton_break, SIGNAL( clicked()), this, SLOT ( breakButtonClicked() ) ); // auch wieder starten!!!!
connect( tabWidget, SIGNAL( currentChanged(int) ), this, SLOT( setChatFocus() ) );
connect( tabWidget, SIGNAL( currentChanged(int) ), this, SLOT( tabSwitchAction() ) );
connect( lineEdit_ChatInput, SIGNAL( returnPressed () ), this, SLOT( sendChatMessage() ) );
//Nachrichten Thread-Save
@@ -2457,7 +2457,7 @@ void mainWindowImpl::keyPressEvent ( QKeyEvent * event ) {
if (event->key() == Qt::Key_F10) { switchLeftToolBox(); }
if (event->key() == Qt::Key_F11) { switchRightToolBox(); }
// if (event->key() == Qt::Key_F) { switchFullscreen(); } //f
// if (event->key() == Qt::Key_S) { showMyCards(); } //f
// if (event->key() == Qt::Key_S) { myChat->checkInvisible(); } //f
if (event->key() == 16777249) {
pushButton_break->click();
ctrlPressed = TRUE;
@@ -2511,11 +2511,17 @@ void mainWindowImpl::blinkingStartButtonAnimationAction() {
void mainWindowImpl::sendChatMessage() { myChat->sendMessage(); }
void mainWindowImpl::setChatFocus() {
void mainWindowImpl::tabSwitchAction() {
if(tabWidget->currentIndex() == 1) lineEdit_ChatInput->setFocus();
else lineEdit_ChatInput->clearFocus();
switch(tabWidget->currentIndex()) {
case 1: { lineEdit_ChatInput->setFocus();
myChat->checkInvisible();
}
break;
default: { lineEdit_ChatInput->clearFocus(); }
}
}
void mainWindowImpl::closeEvent(QCloseEvent *event) {
+1 -1
View File
@@ -237,7 +237,7 @@ public slots:
void paintStartSplash();
void sendChatMessage();
void setChatFocus();
void tabSwitchAction();
void networkError(int, int);
void networkStart(boost::shared_ptr<Game> game);
@@ -0,0 +1,48 @@
//
// C++ Implementation: MyRightTabWidget
//
// Description:
//
//
// Author: FThauer FHammer <f.thauer@web.de>, (C) 2007
//
// Copyright: See COPYING file that comes with this distribution
//
//
#include "myrighttabwidget.h"
// using namespace std;
MyRightTabWidget::MyRightTabWidget(QGroupBox *parent)
: QTabWidget(parent), chatBlinkTimer(0), myTabBar(0)
{
// fadeOutTimer = new QTimer;
// connect(flipCardsTimer, SIGNAL(timeout()), this, SLOT(nextFlipCardsFrame()));
myTabBar = this->tabBar();
chatBlinkTimer = new QTimer;
connect(chatBlinkTimer, SIGNAL(timeout()), this, SLOT( blinkChatTab() ));
}
MyRightTabWidget::~MyRightTabWidget()
{
}
void MyRightTabWidget::startBlinkChatTab() { chatBlinkTimer->start(500); }
void MyRightTabWidget::stopBlinkChatTab() { chatBlinkTimer->stop(); }
void MyRightTabWidget::blinkChatTab() {
if(myTabBar->tabTextColor(1).red() == 240) myTabBar->setTabTextColor(1, QColor(113,162,0));
else myTabBar->setTabTextColor(1, QColor(240,240,240));
}
void MyRightTabWidget::paintEvent(QPaintEvent * event) {
QTabWidget::paintEvent(event);
}
+44
View File
@@ -0,0 +1,44 @@
//
// C++ Interface: MyRightTabWidget
//
// Description:
//
//
// Author: FThauer FHammer <f.thauer@web.de>, (C) 2007
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef MYRIGHTTABWIDGET_H
#define MYRIGHTTABWIDGET_H
#include <QtGui>
#include <QtCore>
#include <iostream>
class MyRightTabWidget : public QTabWidget
{
Q_OBJECT
public:
MyRightTabWidget(QGroupBox*);
~MyRightTabWidget();
void paintEvent(QPaintEvent * event);
void startBlinkChatTab();
void stopBlinkChatTab();
public slots:
void blinkChatTab();
private:
QTimer *chatBlinkTimer;
QTabBar *myTabBar;
};
#endif
+24 -53
View File
@@ -12,61 +12,32 @@
<property name="windowTitle" >
<string>Please select an avatar</string>
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>9</number>
<widget class="QListWidget" name="listWidget" >
<property name="geometry" >
<rect>
<x>9</x>
<y>9</y>
<width>460</width>
<height>220</height>
</rect>
</property>
<property name="spacing" >
<number>6</number>
</widget>
<widget class="QDialogButtonBox" name="buttonBox" >
<property name="geometry" >
<rect>
<x>9</x>
<y>235</y>
<width>460</width>
<height>28</height>
</rect>
</property>
<item row="0" column="0" >
<widget class="QListWidget" name="listWidget" >
<property name="horizontalScrollBarPolicy" >
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="iconSize" >
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="flow" >
<enum>QListView::TopToBottom</enum>
</property>
<property name="isWrapping" stdset="0" >
<bool>true</bool>
</property>
<property name="resizeMode" >
<enum>QListView::Adjust</enum>
</property>
<property name="layoutMode" >
<enum>QListView::Batched</enum>
</property>
<property name="gridSize" >
<size>
<width>70</width>
<height>70</height>
</size>
</property>
<property name="viewMode" >
<enum>QListView::IconMode</enum>
</property>
<property name="wordWrap" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QDialogButtonBox" name="buttonBox" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons" >
<set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons" >
<set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
</property>
</widget>
</widget>
<resources/>
<connections>
@@ -31,10 +31,14 @@ selectAvatarDialogImpl::selectAvatarDialogImpl(QWidget *parent, ConfigFile *c)
// listWidget->setViewMode(QListView::IconMode);
// listWidget->setIconSize(QSize(50,50));
// listWidget->setSpacing(20);
// listWidget->setDragEnabled(FALSE);
// listWidget->setResizeMode(QListView::Adjust);
// listWidget->setLayoutDirection(Qt::LeftToRight);
listWidget->setViewMode(QListView::IconMode);
listWidget->setIconSize(QSize(50, 50));
// listWidget->setFlow(QListView::TopToBottom);
// listWidget->setWrapping(true);
listWidget->setSpacing(20);
listWidget->setDragEnabled(FALSE);
listWidget->setResizeMode(QListView::Adjust);
int i;
for (i=0; i<30; i++) {