separate status buffer item is now only available when the view is restricted to...
[quassel.git] / src / qtui / settingspages / bufferviewsettingspage.cpp
index f8133de..f0a8230 100644 (file)
@@ -61,6 +61,8 @@ BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent)
   connect(ui.hideInactiveBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.networkSelector, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged()));
   connect(ui.minimumActivitySelector, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged()));
+
+  connect(ui.networkSelector, SIGNAL(currentIndexChanged(int)), this, SLOT(enableStatusBuffers(int)));
 }
 
 BufferViewSettingsPage::~BufferViewSettingsPage() {
@@ -221,9 +223,10 @@ void BufferViewSettingsPage::newBufferView(const QString &bufferViewName) {
   config->setInitialized();
   QList<BufferId> bufferIds;
   if(config->addNewBuffersAutomatically()) {
-    bufferIds = Client::networkModel()->allBufferIds();
     if(config->sortAlphabetically())
-      qSort(bufferIds.begin(), bufferIds.end(), bufferIdLessThan);
+      bufferIds = Client::networkModel()->allBufferIdsSorted();
+    else
+      bufferIds = Client::networkModel()->allBufferIds();
   }
   config->initSetBufferList(bufferIds);
 
@@ -278,6 +281,12 @@ void BufferViewSettingsPage::updateBufferView() {
     loadConfig(config);
 }
 
+void BufferViewSettingsPage::enableStatusBuffers(int networkIdx) {
+  // we don't show a status buffer if we show multiple networks as selecting
+  // the network is the same as selecting the status buffer.
+  ui.onlyStatusBuffers->setEnabled(networkIdx != 0);
+}
+
 void BufferViewSettingsPage::on_addBufferView_clicked() {
   if(!Client::bufferViewManager())
     return;
@@ -427,9 +436,10 @@ void BufferViewSettingsPage::saveConfig(BufferViewConfig *config) {
   if(_newBufferViews.contains(config)) {
     QList<BufferId> bufferIds;
     if(config->addNewBuffersAutomatically()) {
-      bufferIds = Client::networkModel()->allBufferIds();
       if(config->sortAlphabetically())
-       qSort(bufferIds.begin(), bufferIds.end(), bufferIdLessThan);
+       bufferIds = Client::networkModel()->allBufferIdsSorted();
+      else
+       bufferIds = Client::networkModel()->allBufferIds();
     }
     config->initSetBufferList(bufferIds);
   }