improved minimize to tray behavior with win versions of quasselclient
authorAlexander von Renteln <phon@quassel-irc.org>
Tue, 5 Feb 2008 16:14:56 +0000 (16:14 +0000)
committerAlexander von Renteln <phon@quassel-irc.org>
Tue, 5 Feb 2008 16:14:56 +0000 (16:14 +0000)
errors (e.g. ERR_NOSUCHNICK) are now displayed in the user buffer

src/client/client.cpp
src/core/ircserverhandler.cpp
src/qtui/mainwin.cpp
version.inc

index 804f827..e09684b 100644 (file)
@@ -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());
index 1753880..dba9f85 100644 (file)
@@ -156,9 +156,10 @@ void IrcServerHandler::defaultHandler(QString cmd, QString prefix, QList<QByteAr
         break;
       // Server error messages, display them in red. First param will be appended.
       case 401: case 402: case 403: case 404: case 406: case 408: case 415: case 421: case 442:
-      { QString p = params.takeFirst();
-        emit displayMsg(Message::Error, "", params.join(" ") + " " + p, prefix);
-        break;
+      { QString channelName = params.takeFirst();
+      emit displayMsg(Message::Error, "", params.join(" ") + " " + channelName, prefix);
+      emit displayMsg(Message::Error, channelName, params.join(" ") + " " + channelName, prefix);
+      break;
       }
       // Server error messages which will be displayed with a colon between the first param and the rest
       case 413: case 414: case 423: case 441: case 444: case 461:
index 3d4c12d..d1d3fdf 100644 (file)
@@ -254,6 +254,7 @@ void MainWin::setupSystray() {
   systrayMenu->addAction(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();
+    }
   }
 }
 
index ec76ab4..078c3ff 100644 (file)
@@ -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;