From 28fc9bfe81feab904fdce65d433d5f072ee5c81e Mon Sep 17 00:00:00 2001 From: Alexander von Renteln Date: Tue, 5 Feb 2008 16:14:56 +0000 Subject: [PATCH] improved minimize to tray behavior with win versions of quasselclient errors (e.g. ERR_NOSUCHNICK) are now displayed in the user buffer --- src/client/client.cpp | 19 ++++++++++++++++--- src/core/ircserverhandler.cpp | 7 ++++--- src/qtui/mainwin.cpp | 15 +++++++++++++-- version.inc | 2 +- 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/client/client.cpp b/src/client/client.cpp index 804f8276..e09684b6 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -380,9 +380,22 @@ void Client::networkDestroyed() { } void Client::recvMessage(const Message &msg) { - Buffer *b = buffer(msg.bufferInfo()); - b->appendMsg(msg); - networkModel()->updateBufferActivity(msg); + if(msg.type() == Message::Error) { + Buffer *b = buffer(msg.bufferInfo().bufferId()); + if(b) { + b->appendMsg(msg); + networkModel()->updateBufferActivity(msg); + } else { + //TODO: display message in the status buffer + b = buffer(msg.bufferInfo()); + b->appendMsg(msg); + networkModel()->updateBufferActivity(msg); + } + } else { + Buffer *b = buffer(msg.bufferInfo()); + b->appendMsg(msg); + networkModel()->updateBufferActivity(msg); + } if(msg.type() == Message::Plain || msg.type() == Message::Notice || msg.type() == Message::Action) { const Network *net = network(msg.bufferInfo().networkId()); diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index 17538801..dba9f85f 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -156,9 +156,10 @@ void IrcServerHandler::defaultHandler(QString cmd, QString prefix, QListaddAction(ui.actionQuit); systray->setContextMenu(systrayMenu); + // systray->setContextMenuPolicy(); systray->show(); connect(systray, SIGNAL(activated( QSystemTrayIcon::ActivationReason )), @@ -324,10 +325,20 @@ void MainWin::closeEvent(QCloseEvent *event) void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReason) { if (activationReason == QSystemTrayIcon::Trigger) { - if (isHidden()) + if(isHidden()) { show(); - else + if(isMinimized()) { + if(isMaximized()) { + showMaximized(); + } else { + showNormal(); + } + } + raise(); + activateWindow(); + } else { hide(); + } } } diff --git a/version.inc b/version.inc index ec76ab43..078c3ffe 100644 --- a/version.inc +++ b/version.inc @@ -5,7 +5,7 @@ quasselVersion = "0.2.0-pre"; quasselDate = "2008-02-05"; - quasselBuild = 465; + quasselBuild = 466; //! Minimum client build number the core needs clientBuildNeeded = 464; -- 2.20.1