/***************************************************************************
- * 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();
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)));
}
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()));
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 *>();
{
// 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;
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;
}
}
void BufferViewSettingsPage::updateBufferView()
{
- BufferViewConfig *config = qobject_cast<BufferViewConfig *>(sender());
+ auto *config = qobject_cast<BufferViewConfig *>(sender());
if (!config)
return;
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;
break;
}
else {
- iter++;
+ ++iter;
}
}
delete 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++) {
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)
}
else {
changed = true;
- iter++;
+ ++iter;
}
}
return changed;
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;
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);
/**************************************************************************
* 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);