qa: Replace deprecated qVariantFromValue() by QVariant::fromValue()
[quassel.git] / src / qtui / settingspages / bufferviewsettingspage.cpp
index 06b341f..233016b 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2016 by the Quassel Project                        *
+ *   Copyright (C) 2005-2019 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 
 #include "bufferviewsettingspage.h"
 
-#include <QIcon>
+#include <algorithm>
+#include <utility>
+
 #include <QMessageBox>
 
-#include "client.h"
-#include "network.h"
+#include "buffermodel.h"
 #include "bufferviewconfig.h"
 #include "bufferviewfilter.h"
-#include "buffermodel.h"
+#include "client.h"
 #include "clientbufferviewmanager.h"
+#include "icon.h"
+#include "network.h"
 #include "networkmodel.h"
 #include "util.h"
 
-BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent)
-    : SettingsPage(tr("Interface"), tr("Custom Chat Lists"), parent),
-    _ignoreWidgetChanges(false),
-    _useBufferViewHint(false),
-    _bufferViewHint(0)
+BufferViewSettingsPage::BufferViewSettingsPage(QWidget* parent)
+    : SettingsPage(tr("Interface"), tr("Custom Chat Lists"), parent)
 {
     ui.setupUi(this);
-    //Hide the hide inactive networks feature on older cores (which won't save the setting)
-    if (!(Client::coreFeatures() & Quassel::HideInactiveNetworks))
+    // Hide the hide inactive networks feature on older cores (which won't save the setting)
+    if (!Client::isCoreFeatureEnabled(Quassel::Feature::HideInactiveNetworks))
         ui.hideInactiveNetworks->hide();
 
-    ui.renameBufferView->setIcon(QIcon::fromTheme("edit-rename"));
-    ui.addBufferView->setIcon(QIcon::fromTheme("list-add"));
-    ui.deleteBufferView->setIcon(QIcon::fromTheme("edit-delete"));
+    ui.renameBufferView->setIcon(icon::get("edit-rename"));
+    ui.addBufferView->setIcon(icon::get("list-add"));
+    ui.deleteBufferView->setIcon(icon::get("edit-delete"));
 
     reset();
 
@@ -53,47 +53,48 @@ BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent)
     ui.settingsGroupBox->setEnabled(false);
     ui.bufferViewPreview->setEnabled(false);
 
-    coreConnectionStateChanged(Client::isConnected()); // need a core connection!
-    connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), this, SLOT(coreConnectionStateChanged(bool)));
-    connect(ui.bufferViewList->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
-        this, SLOT(bufferViewSelectionChanged(const QItemSelection &, const QItemSelection &)));
-
-    connect(ui.onlyStatusBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-    connect(ui.onlyChannelBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-    connect(ui.onlyQueryBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-    connect(ui.addNewBuffersAutomatically, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-    connect(ui.sortAlphabetically, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-    connect(ui.hideInactiveBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-    connect(ui.hideInactiveNetworks, 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)));
+    coreConnectionStateChanged(Client::isConnected());  // need a core connection!
+    connect(Client::instance(), &Client::coreConnectionStateChanged, this, &BufferViewSettingsPage::coreConnectionStateChanged);
+    connect(ui.bufferViewList->selectionModel(),
+            &QItemSelectionModel::selectionChanged,
+            this,
+            &BufferViewSettingsPage::bufferViewSelectionChanged);
+
+    connect(ui.onlyStatusBuffers, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged);
+    connect(ui.onlyChannelBuffers, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged);
+    connect(ui.onlyQueryBuffers, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged);
+    connect(ui.addNewBuffersAutomatically, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged);
+    connect(ui.sortAlphabetically, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged);
+    connect(ui.hideInactiveBuffers, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged);
+    connect(ui.hideInactiveNetworks, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged);
+    connect(ui.networkSelector, selectOverload<int>(&QComboBox::currentIndexChanged), this, &BufferViewSettingsPage::widgetHasChanged);
+    connect(ui.minimumActivitySelector, selectOverload<int>(&QComboBox::currentIndexChanged), this, &BufferViewSettingsPage::widgetHasChanged);
+    connect(ui.showSearch, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged);
+
+    connect(ui.networkSelector, selectOverload<int>(&QComboBox::currentIndexChanged), this, &BufferViewSettingsPage::enableStatusBuffers);
 }
 
-
 BufferViewSettingsPage::~BufferViewSettingsPage()
 {
     reset();
 }
 
-
 void BufferViewSettingsPage::reset()
 {
     ui.bufferViewList->clear();
     ui.deleteBufferView->setEnabled(false);
 
-    QHash<BufferViewConfig *, BufferViewConfig *>::iterator changedConfigIter = _changedBufferViews.begin();
-    QHash<BufferViewConfig *, BufferViewConfig *>::iterator changedConfigIterEnd = _changedBufferViews.end();
-    BufferViewConfig *config;
+    QHash<BufferViewConfig*, BufferViewConfig*>::iterator changedConfigIter = _changedBufferViews.begin();
+    QHash<BufferViewConfig*, BufferViewConfig*>::iterator changedConfigIterEnd = _changedBufferViews.end();
+    BufferViewConfigconfig;
     while (changedConfigIter != changedConfigIterEnd) {
         config = changedConfigIter.value();
         changedConfigIter = _changedBufferViews.erase(changedConfigIter);
         config->deleteLater();
     }
 
-    QList<BufferViewConfig *>::iterator newConfigIter = _newBufferViews.begin();
-    QList<BufferViewConfig *>::iterator newConfigIterEnd = _newBufferViews.end();
+    QList<BufferViewConfig*>::iterator newConfigIter = _newBufferViews.begin();
+    QList<BufferViewConfig*>::iterator newConfigIterEnd = _newBufferViews.end();
     while (newConfigIter != newConfigIterEnd) {
         config = *newConfigIter;
         newConfigIter = _newBufferViews.erase(newConfigIter);
@@ -107,7 +108,6 @@ void BufferViewSettingsPage::reset()
     setChangedState(false);
 }
 
-
 void BufferViewSettingsPage::load()
 {
     bool useBufferViewHint = _useBufferViewHint;
@@ -117,8 +117,8 @@ void BufferViewSettingsPage::load()
     if (!Client::bufferViewManager())
         return;
 
-    const QList<BufferViewConfig *> bufferViewConfigs = Client::bufferViewManager()->bufferViewConfigs();
-    foreach(BufferViewConfig *bufferViewConfig, bufferViewConfigs) {
+    const QList<BufferViewConfig*> bufferViewConfigs = Client::bufferViewManager()->bufferViewConfigs();
+    foreach (BufferViewConfig* bufferViewConfig, bufferViewConfigs) {
         addBufferView(bufferViewConfig);
     }
 
@@ -126,12 +126,12 @@ void BufferViewSettingsPage::load()
     // load network selector
     ui.networkSelector->clear();
     ui.networkSelector->addItem(tr("All"));
-    ui.networkSelector->setItemData(0, qVariantFromValue<NetworkId>(NetworkId()));
-    const Network *net;
-    foreach(NetworkId netId, Client::networkIds()) {
+    ui.networkSelector->setItemData(0, QVariant::fromValue(NetworkId()));
+    const Networknet;
+    foreach (NetworkId netId, Client::networkIds()) {
         net = Client::network(netId);
         ui.networkSelector->addItem(net->networkName());
-        ui.networkSelector->setItemData(ui.networkSelector->count() - 1, qVariantFromValue<NetworkId>(net->networkId()));
+        ui.networkSelector->setItemData(ui.networkSelector->count() - 1, QVariant::fromValue(net->networkId()));
     }
     _ignoreWidgetChanges = false;
 
@@ -139,12 +139,11 @@ void BufferViewSettingsPage::load()
         ui.bufferViewList->setCurrentRow(0);
 }
 
-
 void BufferViewSettingsPage::save()
 {
     setEnabled(false);
 
-    BufferViewConfig *currentConfig = bufferView(ui.bufferViewList->currentRow());
+    BufferViewConfigcurrentConfig = bufferView(ui.bufferViewList->currentRow());
     if (currentConfig) {
         _useBufferViewHint = true;
         _bufferViewHint = currentConfig->bufferViewId();
@@ -154,7 +153,7 @@ void BufferViewSettingsPage::save()
     QVariantList deleteConfigs;
     QVariantList changedConfigs;
 
-    foreach(int bufferId, _deleteBufferViews) {
+    foreach (int bufferId, _deleteBufferViews) {
         deleteConfigs << bufferId;
     }
     _deleteBufferViews.clear();
@@ -162,8 +161,8 @@ void BufferViewSettingsPage::save()
         Client::bufferViewManager()->requestDeleteBufferViews(deleteConfigs);
     }
 
-    QHash<BufferViewConfig *, BufferViewConfig *>::iterator changedConfigIter = _changedBufferViews.begin();
-    QHash<BufferViewConfig *, BufferViewConfig *>::iterator changedConfigIterEnd = _changedBufferViews.end();
+    QHash<BufferViewConfig*, BufferViewConfig*>::iterator changedConfigIter = _changedBufferViews.begin();
+    QHash<BufferViewConfig*, BufferViewConfig*>::iterator changedConfigIterEnd = _changedBufferViews.end();
     BufferViewConfig *config, *changedConfig;
     while (changedConfigIter != changedConfigIterEnd) {
         config = changedConfigIter.key();
@@ -173,8 +172,8 @@ void BufferViewSettingsPage::save()
         changedConfig->deleteLater();
     }
 
-    QList<BufferViewConfig *>::iterator newConfigIter = _newBufferViews.begin();
-    QList<BufferViewConfig *>::iterator newConfigIterEnd = _newBufferViews.end();
+    QList<BufferViewConfig*>::iterator newConfigIter = _newBufferViews.begin();
+    QList<BufferViewConfig*>::iterator newConfigIterEnd = _newBufferViews.end();
     while (newConfigIter != newConfigIterEnd) {
         config = *newConfigIter;
         newConfigIter = _newBufferViews.erase(newConfigIter);
@@ -189,30 +188,30 @@ void BufferViewSettingsPage::save()
     setEnabled(true);
 }
 
-
 void BufferViewSettingsPage::coreConnectionStateChanged(bool state)
 {
     setEnabled(state);
     if (state) {
         load();
-        connect(Client::bufferViewManager(), SIGNAL(bufferViewConfigAdded(int)), this, SLOT(addBufferView(int)));
+        connect(Client::bufferViewManager(),
+                selectOverload<int>(&BufferViewManager::bufferViewConfigAdded),
+                this,
+                selectOverload<int>(&BufferViewSettingsPage::addBufferView));
     }
     else {
         reset();
     }
 }
 
-
-void BufferViewSettingsPage::addBufferView(BufferViewConfig *config)
+void BufferViewSettingsPage::addBufferView(BufferViewConfig* config)
 {
-    QListWidgetItem *item = new QListWidgetItem(config->bufferViewName(), ui.bufferViewList);
-    item->setData(Qt::UserRole, qVariantFromValue<QObject *>(qobject_cast<QObject *>(config)));
-    connect(config, SIGNAL(updatedRemotely()), this, SLOT(updateBufferView()));
-    connect(config, SIGNAL(destroyed()), this, SLOT(bufferViewDeleted()));
+    auto* item = new QListWidgetItem(config->bufferViewName(), ui.bufferViewList);
+    item->setData(Qt::UserRole, QVariant::fromValue(qobject_cast<QObject*>(config)));
+    connect(config, &SyncableObject::updatedRemotely, this, &BufferViewSettingsPage::updateBufferView);
+    connect(config, &QObject::destroyed, this, &BufferViewSettingsPage::bufferViewDeleted);
     ui.deleteBufferView->setEnabled(ui.bufferViewList->count() > 1);
 }
 
-
 void BufferViewSettingsPage::addBufferView(int bufferViewId)
 {
     // we are informed about a new bufferview from Client::bufferViewManager()
@@ -221,15 +220,14 @@ void BufferViewSettingsPage::addBufferView(int bufferViewId)
     selectBufferViewById(bufferViewId);
 }
 
-
 void BufferViewSettingsPage::bufferViewDeleted()
 {
-    BufferViewConfig *config = static_cast<BufferViewConfig *>(sender());
-    QObject *obj;
+    auto* config = static_cast<BufferViewConfig*>(sender());
+    QObjectobj;
     for (int i = 0; i < ui.bufferViewList->count(); i++) {
-        obj = ui.bufferViewList->item(i)->data(Qt::UserRole).value<QObject *>();
-        if (config == static_cast<BufferViewConfig *>(obj)) {
-            QListWidgetItem *item = ui.bufferViewList->takeItem(i);
+        obj = ui.bufferViewList->item(i)->data(Qt::UserRole).value<QObject*>();
+        if (config == static_cast<BufferViewConfig*>(obj)) {
+            QListWidgetItemitem = ui.bufferViewList->takeItem(i);
             delete item;
             break;
         }
@@ -237,12 +235,11 @@ void BufferViewSettingsPage::bufferViewDeleted()
     ui.deleteBufferView->setEnabled(ui.bufferViewList->count() > 1);
 }
 
-
-void BufferViewSettingsPage::newBufferView(const QString &bufferViewName)
+void BufferViewSettingsPage::newBufferView(const QString& bufferViewName)
 {
     // id's of newly created bufferviews are negative (-1, -2... -n)
     int fakeId = -1 * (_newBufferViews.count() + 1);
-    BufferViewConfig *config = new BufferViewConfig(fakeId);
+    auto* config = new BufferViewConfig(fakeId);
     config->setBufferViewName(bufferViewName);
     config->setInitialized();
     QList<BufferId> bufferIds;
@@ -252,47 +249,44 @@ void BufferViewSettingsPage::newBufferView(const QString &bufferViewName)
         }
         else {
             bufferIds = Client::networkModel()->allBufferIds();
-            qSort(bufferIds);
+            std::sort(bufferIds.begin(), bufferIds.end());
             config->setProperty("OriginalBufferList", toVariantList<BufferId>(bufferIds));
         }
     }
-    config->initSetBufferList(bufferIds);
+    config->setBufferList(bufferIds);
 
     _newBufferViews << config;
     addBufferView(config);
     ui.bufferViewList->setCurrentRow(listPos(config));
 }
 
-
-int BufferViewSettingsPage::listPos(BufferViewConfig *config)
+int BufferViewSettingsPage::listPos(BufferViewConfig* config)
 {
-    QObject *obj;
+    QObjectobj;
     for (int i = 0; i < ui.bufferViewList->count(); i++) {
-        obj = ui.bufferViewList->item(i)->data(Qt::UserRole).value<QObject *>();
-        if (config == qobject_cast<BufferViewConfig *>(obj))
+        obj = ui.bufferViewList->item(i)->data(Qt::UserRole).value<QObject*>();
+        if (config == qobject_cast<BufferViewConfig*>(obj))
             return i;
     }
     return -1;
 }
 
-
-BufferViewConfig *BufferViewSettingsPage::bufferView(int listPos)
+BufferViewConfig* BufferViewSettingsPage::bufferView(int listPos)
 {
     if (listPos < ui.bufferViewList->count() && listPos >= 0) {
-        QObject *obj = ui.bufferViewList->item(listPos)->data(Qt::UserRole).value<QObject *>();
-        return qobject_cast<BufferViewConfig *>(obj);
+        auto* obj = ui.bufferViewList->item(listPos)->data(Qt::UserRole).value<QObject*>();
+        return qobject_cast<BufferViewConfig*>(obj);
     }
     else {
-        return 0;
+        return nullptr;
     }
 }
 
-
 bool BufferViewSettingsPage::selectBufferViewById(int bufferViewId)
 {
-    BufferViewConfig *config;
+    BufferViewConfigconfig;
     for (int i = 0; i < ui.bufferViewList->count(); i++) {
-        config = qobject_cast<BufferViewConfig *>(ui.bufferViewList->item(i)->data(Qt::UserRole).value<QObject *>());
+        config = qobject_cast<BufferViewConfig*>(ui.bufferViewList->item(i)->data(Qt::UserRole).value<QObject*>());
         if (config && config->bufferViewId() == bufferViewId) {
             ui.bufferViewList->setCurrentRow(i);
             return true;
@@ -301,10 +295,9 @@ bool BufferViewSettingsPage::selectBufferViewById(int bufferViewId)
     return false;
 }
 
-
 void BufferViewSettingsPage::updateBufferView()
 {
-    BufferViewConfig *config = qobject_cast<BufferViewConfig *>(sender());
+    auto* config = qobject_cast<BufferViewConfig*>(sender());
     if (!config)
         return;
 
@@ -318,7 +311,6 @@ void BufferViewSettingsPage::updateBufferView()
         loadConfig(config);
 }
 
-
 void BufferViewSettingsPage::enableStatusBuffers(int networkIdx)
 {
     // we don't show a status buffer if we show multiple networks as selecting
@@ -326,25 +318,23 @@ void BufferViewSettingsPage::enableStatusBuffers(int networkIdx)
     ui.onlyStatusBuffers->setEnabled(networkIdx != 0);
 }
 
-
 void BufferViewSettingsPage::on_addBufferView_clicked()
 {
     if (!Client::bufferViewManager())
         return;
 
     QStringList existing;
-    foreach(BufferViewConfig *bufferConfig, Client::bufferViewManager()->bufferViewConfigs()) {
+    foreach (BufferViewConfig* bufferConfig, Client::bufferViewManager()->bufferViewConfigs()) {
         existing << bufferConfig->bufferViewName();
     }
 
     BufferViewEditDlg dlg(QString(), existing, this);
     if (dlg.exec() == QDialog::Accepted) {
         newBufferView(dlg.bufferViewName());
-        changed();
+        setChangedState(true);
     }
 }
 
-
 void BufferViewSettingsPage::on_renameBufferView_clicked()
 {
     if (ui.bufferViewList->selectedItems().isEmpty())
@@ -353,47 +343,48 @@ void BufferViewSettingsPage::on_renameBufferView_clicked()
     if (!Client::bufferViewManager())
         return;
 
-    BufferViewConfig *config = bufferView(ui.bufferViewList->currentRow());
+    BufferViewConfigconfig = bufferView(ui.bufferViewList->currentRow());
     if (!config)
         return;
 
     QStringList existing;
-    foreach(BufferViewConfig *bufferConfig, Client::bufferViewManager()->bufferViewConfigs()) {
+    foreach (BufferViewConfig* bufferConfig, Client::bufferViewManager()->bufferViewConfigs()) {
         existing << bufferConfig->bufferViewName();
     }
 
     BufferViewEditDlg dlg(config->bufferViewName(), existing, this);
     if (dlg.exec() == QDialog::Accepted) {
-        BufferViewConfig *changedConfig = cloneConfig(config);
+        BufferViewConfigchangedConfig = cloneConfig(config);
         changedConfig->setBufferViewName(dlg.bufferViewName());
         ui.bufferViewList->item(listPos(config))->setText(dlg.bufferViewName());
-        changed();
+        setChangedState(true);
     }
 }
 
-
 void BufferViewSettingsPage::on_deleteBufferView_clicked()
 {
     if (ui.bufferViewList->selectedItems().isEmpty())
         return;
 
-    QListWidgetItem *currentItem = ui.bufferViewList->item(ui.bufferViewList->currentRow());
+    QListWidgetItemcurrentItem = ui.bufferViewList->item(ui.bufferViewList->currentRow());
     QString viewName = currentItem->text();
     int viewId = bufferView(ui.bufferViewList->currentRow())->bufferViewId();
-    int ret = QMessageBox::question(this, tr("Delete Chat List?"),
-        tr("Do you really want to delete the chat list \"%1\"?").arg(viewName),
-        QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
+    int ret = QMessageBox::question(this,
+                                    tr("Delete Chat List?"),
+                                    tr("Do you really want to delete the chat list \"%1\"?").arg(viewName),
+                                    QMessageBox::Yes | QMessageBox::No,
+                                    QMessageBox::No);
 
     if (ret == QMessageBox::Yes) {
         ui.bufferViewList->removeItemWidget(currentItem);
-        BufferViewConfig *config = qobject_cast<BufferViewConfig *>(currentItem->data(Qt::UserRole).value<QObject *>());
+        auto* config = qobject_cast<BufferViewConfig*>(currentItem->data(Qt::UserRole).value<QObject*>());
         delete currentItem;
         if (viewId >= 0) {
             _deleteBufferViews << viewId;
-            changed();
+            setChangedState(true);
         }
         else if (config) {
-            QList<BufferViewConfig *>::iterator iter = _newBufferViews.begin();
+            QList<BufferViewConfig*>::iterator iter = _newBufferViews.begin();
             while (iter != _newBufferViews.end()) {
                 if (*iter == config) {
                     iter = _newBufferViews.erase(iter);
@@ -410,8 +401,7 @@ void BufferViewSettingsPage::on_deleteBufferView_clicked()
     }
 }
 
-
-void BufferViewSettingsPage::bufferViewSelectionChanged(const QItemSelection &current, const QItemSelection &previous)
+void BufferViewSettingsPage::bufferViewSelectionChanged(const QItemSelection& current, const QItemSelection& previous)
 {
     Q_UNUSED(previous)
 
@@ -427,8 +417,7 @@ void BufferViewSettingsPage::bufferViewSelectionChanged(const QItemSelection &cu
     }
 }
 
-
-void BufferViewSettingsPage::loadConfig(BufferViewConfig *config)
+void BufferViewSettingsPage::loadConfig(BufferViewConfig* config)
 {
     if (!config)
         return;
@@ -441,6 +430,7 @@ void BufferViewSettingsPage::loadConfig(BufferViewConfig *config)
     ui.sortAlphabetically->setChecked(config->sortAlphabetically());
     ui.hideInactiveBuffers->setChecked(config->hideInactiveBuffers());
     ui.hideInactiveNetworks->setChecked(config->hideInactiveNetworks());
+    ui.showSearch->setChecked(config->showSearch());
 
     int networkIndex = 0;
     for (int i = 0; i < ui.networkSelector->count(); i++) {
@@ -464,8 +454,7 @@ void BufferViewSettingsPage::loadConfig(BufferViewConfig *config)
     _ignoreWidgetChanges = false;
 }
 
-
-void BufferViewSettingsPage::saveConfig(BufferViewConfig *config)
+void BufferViewSettingsPage::saveConfig(BufferViewConfig* config)
 {
     if (!config)
         return;
@@ -484,6 +473,7 @@ void BufferViewSettingsPage::saveConfig(BufferViewConfig *config)
     config->setHideInactiveBuffers(ui.hideInactiveBuffers->isChecked());
     config->setHideInactiveNetworks(ui.hideInactiveNetworks->isChecked());
     config->setNetworkId(ui.networkSelector->itemData(ui.networkSelector->currentIndex()).value<NetworkId>());
+    config->setShowSearch(ui.showSearch->isChecked());
 
     int minimumActivity = 0;
     if (ui.minimumActivitySelector->currentIndex() > 0)
@@ -495,10 +485,9 @@ void BufferViewSettingsPage::saveConfig(BufferViewConfig *config)
         Client::networkModel()->sortBufferIds(bufferIds);
 
     if (!_newBufferViews.contains(config) || config->addNewBuffersAutomatically())
-        config->initSetBufferList(bufferIds);
+        config->setBufferList(bufferIds);
 }
 
-
 void BufferViewSettingsPage::widgetHasChanged()
 {
     if (_ignoreWidgetChanges)
@@ -506,7 +495,6 @@ void BufferViewSettingsPage::widgetHasChanged()
     setChangedState(testHasChanged());
 }
 
-
 bool BufferViewSettingsPage::testHasChanged()
 {
     saveConfig(cloneConfig(bufferView(ui.bufferViewList->currentRow())));
@@ -515,8 +503,8 @@ bool BufferViewSettingsPage::testHasChanged()
         return true;
 
     bool changed = false;
-    QHash<BufferViewConfig *, BufferViewConfig *>::iterator iter = _changedBufferViews.begin();
-    QHash<BufferViewConfig *, BufferViewConfig *>::iterator iterEnd = _changedBufferViews.end();
+    QHash<BufferViewConfig*, BufferViewConfig*>::iterator iter = _changedBufferViews.begin();
+    QHash<BufferViewConfig*, BufferViewConfig*>::iterator iterEnd = _changedBufferViews.end();
     while (iter != iterEnd) {
         if (&(iter.key()) == &(iter.value())) {
             iter.value()->deleteLater();
@@ -530,8 +518,7 @@ bool BufferViewSettingsPage::testHasChanged()
     return changed;
 }
 
-
-BufferViewConfig *BufferViewSettingsPage::cloneConfig(BufferViewConfig *config)
+BufferViewConfig* BufferViewSettingsPage::cloneConfig(BufferViewConfig* config)
 {
     if (!config || config->bufferViewId() < 0)
         return config;
@@ -539,20 +526,20 @@ BufferViewConfig *BufferViewSettingsPage::cloneConfig(BufferViewConfig *config)
     if (_changedBufferViews.contains(config))
         return _changedBufferViews[config];
 
-    BufferViewConfig *changedConfig = new BufferViewConfig(-1, this);
+    auto* changedConfig = new BufferViewConfig(-1, this);
     changedConfig->fromVariantMap(config->toVariantMap());
     changedConfig->setInitialized();
     _changedBufferViews[config] = changedConfig;
-    connect(config, SIGNAL(bufferAdded(const BufferId &, int)), changedConfig, SLOT(addBuffer(const BufferId &, int)));
-    connect(config, SIGNAL(bufferMoved(const BufferId &, int)), changedConfig, SLOT(moveBuffer(const BufferId &, int)));
-    connect(config, SIGNAL(bufferRemoved(const BufferId &)), changedConfig, SLOT(removeBuffer(const BufferId &)));
-//   connect(config, SIGNAL(addBufferRequested(const BufferId &, int)), changedConfig, SLOT(addBuffer(const BufferId &, int)));
-//   connect(config, SIGNAL(moveBufferRequested(const BufferId &, int)), changedConfig, SLOT(moveBuffer(const BufferId &, int)));
-//   connect(config, SIGNAL(removeBufferRequested(const BufferId &)), changedConfig, SLOT(removeBuffer(const BufferId &)));
+    connect(config, &BufferViewConfig::bufferAdded, changedConfig, &BufferViewConfig::addBuffer);
+    connect(config, &BufferViewConfig::bufferMoved, changedConfig, &BufferViewConfig::moveBuffer);
+    connect(config, &BufferViewConfig::bufferRemoved, changedConfig, &BufferViewConfig::removeBuffer);
+    // connect(config, &BufferViewConfig::addBufferRequested, changedConfig, &BufferViewConfig::addBuffer);
+    // connect(config, &BufferViewConfig::moveBufferRequested, changedConfig, &BufferViewConfig::moveBuffer);
+    // connect(config, &BufferViewconfig::removeBufferRequested, changedConfig, &BufferViewConfig::removeBuffer);
 
     changedConfig->setProperty("OriginalBufferList", toVariantList<BufferId>(config->bufferList()));
     // if this is the currently displayed view we have to change the config of the preview filter
-    BufferViewFilter *filter = qobject_cast<BufferViewFilter *>(ui.bufferViewPreview->model());
+    auto* filter = qobject_cast<BufferViewFilter*>(ui.bufferViewPreview->model());
     if (filter && filter->config() == config)
         filter->setConfig(changedConfig);
     ui.bufferViewPreview->setConfig(changedConfig);
@@ -560,8 +547,7 @@ BufferViewConfig *BufferViewSettingsPage::cloneConfig(BufferViewConfig *config)
     return changedConfig;
 }
 
-
-BufferViewConfig *BufferViewSettingsPage::configForDisplay(BufferViewConfig *config)
+BufferViewConfig* BufferViewSettingsPage::configForDisplay(BufferViewConfig* config)
 {
     if (_changedBufferViews.contains(config))
         return _changedBufferViews[config];
@@ -569,26 +555,26 @@ BufferViewConfig *BufferViewSettingsPage::configForDisplay(BufferViewConfig *con
         return config;
 }
 
-
 /**************************************************************************
  * BufferViewEditDlg
  *************************************************************************/
-BufferViewEditDlg::BufferViewEditDlg(const QString &old, const QStringList &exist, QWidget *parent) : QDialog(parent), existing(exist)
+BufferViewEditDlg::BufferViewEditDlg(const QString& old, QStringList exist, QWidget* parent)
+    : QDialog(parent)
+    , existing(std::move(exist))
 {
     ui.setupUi(this);
 
     if (old.isEmpty()) {
         // new buffer
         setWindowTitle(tr("Add Chat List"));
-        on_bufferViewEdit_textChanged(""); // disable ok button
+        on_bufferViewEdit_textChanged("");  // disable ok button
     }
     else {
         ui.bufferViewEdit->setText(old);
     }
 }
 
-
-void BufferViewEditDlg::on_bufferViewEdit_textChanged(const QString &text)
+void BufferViewEditDlg::on_bufferViewEdit_textChanged(const QString& text)
 {
     ui.buttonBox->button(QDialogButtonBox::Ok)->setDisabled(text.isEmpty() || existing.contains(text));
 }