: QSortFilterProxyModel(model),
_config(0),
_sortOrder(Qt::AscendingOrder),
+ _showServerQueries(false),
_editMode(false),
- _enableEditMode(tr("Show / Hide buffers"), this)
+ _enableEditMode(tr("Show / Hide Chats"), this)
{
setConfig(config);
setSourceModel(model);
_enableEditMode.setChecked(_editMode);
connect(&_enableEditMode, SIGNAL(toggled(bool)), this, SLOT(enableEditMode(bool)));
+ BufferSettings defaultSettings;
+ defaultSettings.notify("ServerNoticesTarget", this, SLOT(showServerQueriesChanged()));
+ showServerQueriesChanged();
}
void BufferViewFilter::setConfig(BufferViewConfig *config) {
emit configChanged();
}
+void BufferViewFilter::showServerQueriesChanged() {
+ BufferSettings bufferSettings;
+
+ bool showQueries = (bufferSettings.serverNoticesTarget() & BufferSettings::DefaultBuffer);
+ if(_showServerQueries != showQueries) {
+ _showServerQueries = showQueries;
+ invalidate();
+ }
+}
+
QList<QAction *> BufferViewFilter::actions(const QModelIndex &index) {
Q_UNUSED(index)
QList<QAction *> actionList;
int allowedBufferTypes = config()->allowedBufferTypes();
if(!config()->networkId().isValid())
allowedBufferTypes &= ~BufferInfo::StatusBuffer;
- if(!(allowedBufferTypes & sourceModel()->data(source_bufferIndex, NetworkModel::BufferTypeRole).toInt()))
+ int bufferType = sourceModel()->data(source_bufferIndex, NetworkModel::BufferTypeRole).toInt();
+ if(!(allowedBufferTypes & bufferType))
return false;
+ if(bufferType & BufferInfo::QueryBuffer && !_showServerQueries && sourceModel()->data(source_bufferIndex, Qt::DisplayRole).toString().contains('.')) {
+ return false;
+ }
+
// the following dynamic filters may not trigger if the buffer is currently selected.
QModelIndex currentIndex = Client::bufferModel()->standardSelectionModel()->currentIndex();
if(bufferId == Client::bufferModel()->data(currentIndex, NetworkModel::BufferIdRole).value<BufferId>())
return QString::compare(Client::networkModel()->data(leftIndex, Qt::DisplayRole).toString(), Client::networkModel()->data(rightIndex, Qt::DisplayRole).toString(), Qt::CaseInsensitive) < 0;
}
+