Show current network name in main window title too
[quassel.git] / src / qtui / titlesetter.cpp
index b381fd9..297b4ce 100644 (file)
@@ -21,6 +21,7 @@
 #include "titlesetter.h"
 
 #include "abstractitemview.h"
+#include "client.h"
 #include "mainwin.h"
 
 TitleSetter::TitleSetter(MainWin *parent)
@@ -32,18 +33,28 @@ TitleSetter::TitleSetter(MainWin *parent)
 
 void TitleSetter::currentChanged(const QModelIndex &current, const QModelIndex &previous) {
   Q_UNUSED(previous);
-  changeWindowTitle(current.sibling(current.row(), 0).data().toString());
+  changeWindowTitle(current.sibling(current.row(), 0));
 }
 
 void TitleSetter::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight) {
   QItemSelectionRange changedArea(topLeft, bottomRight);
   QModelIndex currentTopicIndex = selectionModel()->currentIndex().sibling(selectionModel()->currentIndex().row(), 0);
   if(changedArea.contains(currentTopicIndex))
-    changeWindowTitle(currentTopicIndex.data().toString());
+    changeWindowTitle(currentTopicIndex);
 };
 
-void TitleSetter::changeWindowTitle(QString title) {
+void TitleSetter::changeWindowTitle(const QModelIndex &index) {
+  BufferId id = index.data(NetworkModel::BufferIdRole).value<BufferId>();
+  if(!id.isValid())
+    return;
+
+  QString title;
+  if(Client::networkModel()->bufferType(id) == BufferInfo::StatusBuffer)
+    title = index.data().toString();
+  else
+    title = QString("%1 (%2)").arg(index.data().toString(), Client::networkModel()->networkName(id));
   QString newTitle = QString("%1 - %2").arg("Quassel IRC").arg(title);
+
   _mainWin->setWindowTitle(newTitle);
   _mainWin->setWindowIconText(newTitle);
 }