modernize: Use auto where the type is clear from context
[quassel.git] / src / qtui / settingspages / bufferviewsettingspage.cpp
index f2ef7a1..b922705 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2013 by the Quassel Project                        *
+ *   Copyright (C) 2005-2018 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 #include "bufferviewsettingspage.h"
 
 #include <QMessageBox>
+#include <utility>
 
-#include "client.h"
-#include "iconloader.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)
+    : SettingsPage(tr("Interface"), tr("Custom Chat Lists"), parent)
 {
     ui.setupUi(this);
-    ui.renameBufferView->setIcon(SmallIcon("edit-rename"));
-    ui.addBufferView->setIcon(SmallIcon("list-add"));
-    ui.deleteBufferView->setIcon(SmallIcon("edit-delete"));
+    //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(icon::get("edit-rename"));
+    ui.addBufferView->setIcon(icon::get("list-add"));
+    ui.deleteBufferView->setIcon(icon::get("edit-delete"));
 
     reset();
 
@@ -60,8 +62,10 @@ BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent)
     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.showSearch, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
 
     connect(ui.networkSelector, SIGNAL(currentIndexChanged(int)), this, SLOT(enableStatusBuffers(int)));
 }
@@ -200,7 +204,7 @@ void BufferViewSettingsPage::coreConnectionStateChanged(bool state)
 
 void BufferViewSettingsPage::addBufferView(BufferViewConfig *config)
 {
-    QListWidgetItem *item = new QListWidgetItem(config->bufferViewName(), ui.bufferViewList);
+    auto *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()));
@@ -219,7 +223,7 @@ void BufferViewSettingsPage::addBufferView(int bufferViewId)
 
 void BufferViewSettingsPage::bufferViewDeleted()
 {
-    BufferViewConfig *config = static_cast<BufferViewConfig *>(sender());
+    auto *config = static_cast<BufferViewConfig *>(sender());
     QObject *obj;
     for (int i = 0; i < ui.bufferViewList->count(); i++) {
         obj = ui.bufferViewList->item(i)->data(Qt::UserRole).value<QObject *>();
@@ -237,7 +241,7 @@ 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;
@@ -274,11 +278,11 @@ int BufferViewSettingsPage::listPos(BufferViewConfig *config)
 BufferViewConfig *BufferViewSettingsPage::bufferView(int listPos)
 {
     if (listPos < ui.bufferViewList->count() && listPos >= 0) {
-        QObject *obj = ui.bufferViewList->item(listPos)->data(Qt::UserRole).value<QObject *>();
+        auto *obj = ui.bufferViewList->item(listPos)->data(Qt::UserRole).value<QObject *>();
         return qobject_cast<BufferViewConfig *>(obj);
     }
     else {
-        return 0;
+        return nullptr;
     }
 }
 
@@ -299,7 +303,7 @@ bool BufferViewSettingsPage::selectBufferViewById(int bufferViewId)
 
 void BufferViewSettingsPage::updateBufferView()
 {
-    BufferViewConfig *config = qobject_cast<BufferViewConfig *>(sender());
+    auto *config = qobject_cast<BufferViewConfig *>(sender());
     if (!config)
         return;
 
@@ -381,7 +385,7 @@ void BufferViewSettingsPage::on_deleteBufferView_clicked()
 
     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;
@@ -395,7 +399,7 @@ void BufferViewSettingsPage::on_deleteBufferView_clicked()
                     break;
                 }
                 else {
-                    iter++;
+                    ++iter;
                 }
             }
             delete config;
@@ -435,6 +439,8 @@ void BufferViewSettingsPage::loadConfig(BufferViewConfig *config)
     ui.addNewBuffersAutomatically->setChecked(config->addNewBuffersAutomatically());
     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++) {
@@ -476,7 +482,9 @@ void BufferViewSettingsPage::saveConfig(BufferViewConfig *config)
     config->setAddNewBuffersAutomatically(ui.addNewBuffersAutomatically->isChecked());
     config->setSortAlphabetically(ui.sortAlphabetically->isChecked());
     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)
@@ -517,7 +525,7 @@ bool BufferViewSettingsPage::testHasChanged()
         }
         else {
             changed = true;
-            iter++;
+            ++iter;
         }
     }
     return changed;
@@ -532,7 +540,7 @@ 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;
@@ -545,7 +553,7 @@ BufferViewConfig *BufferViewSettingsPage::cloneConfig(BufferViewConfig *config)
 
     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);
@@ -566,7 +574,7 @@ BufferViewConfig *BufferViewSettingsPage::configForDisplay(BufferViewConfig *con
 /**************************************************************************
  * 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);