urls are now properly identified if the topic is scrolled
[quassel.git] / src / qtui / mainwin.cpp
index 36644da..4d8a943 100644 (file)
@@ -25,6 +25,7 @@
 #include "bufferviewconfig.h"
 #include "bufferviewfilter.h"
 #include "bufferviewmanager.h"
+#include "channellistdlg.h"
 #include "client.h"
 #include "clientbacklogmanager.h"
 #include "coreconnectdlg.h"
@@ -36,6 +37,7 @@
 #include "signalproxy.h"
 #include "topicwidget.h"
 #include "inputwidget.h"
+#include "irclistmodel.h"
 #include "verticaldock.h"
 #include "uisettings.h"
 #include "qtuisettings.h"
@@ -72,6 +74,7 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent)
     offlineTrayIcon(":/icons/quassel-icon-offline.png"),
     trayIconActive(false),
     timer(new QTimer(this)),
+    channelListDlg(new ChannelListDlg(this)),
     settingsDlg(new SettingsDlg(this)),
     debugConsole(new DebugConsole(this))
 {
@@ -159,7 +162,7 @@ void MainWin::setupMenus() {
   connect(ui.actionQuit, SIGNAL(triggered()), QCoreApplication::instance(), SLOT(quit()));
   //connect(ui.actionNetworkList, SIGNAL(triggered()), this, SLOT(showServerList()));
   connect(ui.actionSettingsDlg, SIGNAL(triggered()), this, SLOT(showSettingsDlg()));
-  connect(ui.actionDebug_Console, SIGNAL(triggered()), this, SLOT(showDebugConsole()));
+  // connect(ui.actionDebug_Console, SIGNAL(triggered()), this, SLOT(showDebugConsole()));
   connect(ui.actionAboutQuassel, SIGNAL(triggered()), this, SLOT(showAboutDlg()));
   connect(ui.actionAboutQt, SIGNAL(triggered()), QApplication::instance(), SLOT(aboutQt()));
 
@@ -191,6 +194,8 @@ void MainWin::addBufferView(BufferViewConfig *config) {
   view->setFilteredModel(Client::bufferModel(), config);
   view->show();
 
+  connect(&view->showChannelList, SIGNAL(triggered()), this, SLOT(showChannelList()));
+  
   Client::bufferModel()->synchronizeView(view);
 
   dock->setWidget(view);
@@ -496,6 +501,16 @@ void MainWin::coreConnectionDlgFinished(int /*code*/) {
   //exit(1);
 }
 
+void MainWin::showChannelList(NetworkId netId) {
+  if(!netId.isValid()) {
+    QAction *action = qobject_cast<QAction *>(sender());
+    if(action)
+      netId = action->data().value<NetworkId>();
+  }
+  channelListDlg->setNetwork(netId);
+  channelListDlg->show();
+}
+
 void MainWin::showSettingsDlg() {
   settingsDlg->show();
 }
@@ -520,7 +535,7 @@ void MainWin::closeEvent(QCloseEvent *event) {
 }
 
 void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReason) {
-  if (activationReason == QSystemTrayIcon::Trigger) {
+  if(activationReason == QSystemTrayIcon::Trigger) {
     toggleVisibility();
   }
 }
@@ -528,11 +543,12 @@ void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReas
 void MainWin::toggleVisibility() {
   if(isHidden() /*|| !isActiveWindow()*/) {
     show();
-    if(isMinimized())
-      if (isMaximized())
+    if(isMinimized()) {
+      if(isMaximized())
         showMaximized();
       else
         showNormal();
+    }
 
     raise();
     activateWindow();
@@ -570,7 +586,7 @@ void MainWin::receiveMessage(const Message &msg) {
 #ifndef SPUTDEV
     if(uiSettings.value("DisplayPopupMessages", QVariant(true)).toBool()) {
       // FIXME don't invoke style engine for this!
-      QString text = QtUi::style()->styleString(Message::mircToInternal(msg.text())).text;
+      QString text = QtUi::style()->styleString(Message::mircToInternal(msg.contents())).plainText;
       displayTrayIconMessage(title, text);
     }
 #endif