From: Marcus Eggenberger Date: Mon, 5 Jan 2009 17:50:38 +0000 (+0100) Subject: separate status buffer item is now only available when the view is restricted to... X-Git-Tag: 0.4.0~262 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=83072dd24a252b6f4baa2b40e91018929a607088 separate status buffer item is now only available when the view is restricted to one network --- diff --git a/src/qtui/settingspages/bufferviewsettingspage.cpp b/src/qtui/settingspages/bufferviewsettingspage.cpp index e8392920..f0a8230f 100644 --- a/src/qtui/settingspages/bufferviewsettingspage.cpp +++ b/src/qtui/settingspages/bufferviewsettingspage.cpp @@ -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() { @@ -279,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; diff --git a/src/qtui/settingspages/bufferviewsettingspage.h b/src/qtui/settingspages/bufferviewsettingspage.h index 66764cb2..b684de08 100644 --- a/src/qtui/settingspages/bufferviewsettingspage.h +++ b/src/qtui/settingspages/bufferviewsettingspage.h @@ -50,6 +50,8 @@ private slots: void newBufferView(const QString &bufferViewName); void updateBufferView(); + void enableStatusBuffers(int networkIdx); + void on_addBufferView_clicked(); void on_renameBufferView_clicked(); void on_deleteBufferView_clicked(); diff --git a/src/qtui/settingspages/bufferviewsettingspage.ui b/src/qtui/settingspages/bufferviewsettingspage.ui index 6bba3c2c..a7e5d3d8 100644 --- a/src/qtui/settingspages/bufferviewsettingspage.ui +++ b/src/qtui/settingspages/bufferviewsettingspage.ui @@ -111,6 +111,10 @@ + + This option is not available when all Networks are visible. +In this mode no separate status buffer is displayed. + Status Buffers diff --git a/src/uisupport/bufferviewfilter.cpp b/src/uisupport/bufferviewfilter.cpp index 0cd749aa..4d4d47d4 100644 --- a/src/uisupport/bufferviewfilter.cpp +++ b/src/uisupport/bufferviewfilter.cpp @@ -281,7 +281,10 @@ bool BufferViewFilter::filterAcceptBuffer(const QModelIndex &source_bufferIndex) if(config()->networkId().isValid() && config()->networkId() != source_bufferIndex.data(NetworkModel::NetworkIdRole).value()) return false; - if(!(config()->allowedBufferTypes() & (BufferInfo::Type)source_bufferIndex.data(NetworkModel::BufferTypeRole).toInt())) + int allowedBufferTypes = config()->allowedBufferTypes(); + if(!config()->networkId().isValid()) + allowedBufferTypes &= ~BufferInfo::StatusBuffer; + if(!(allowedBufferTypes & source_bufferIndex.data(NetworkModel::BufferTypeRole).toInt())) return false; // the following dynamic filters may not trigger if the buffer is currently selected.