X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fbufferviewsettingspage.cpp;fp=src%2Fqtui%2Fsettingspages%2Fbufferviewsettingspage.cpp;h=f4b7fb904213ea84a357403bbb8aec3190a77736;hp=029f12016568a4d594105897637da41575fade37;hb=c1cf157116de7fc3da96203aa6f03c38c7ebb650;hpb=30b159cb876a9495de42e9a3e70ca050516f0805 diff --git a/src/qtui/settingspages/bufferviewsettingspage.cpp b/src/qtui/settingspages/bufferviewsettingspage.cpp index 029f1201..f4b7fb90 100644 --- a/src/qtui/settingspages/bufferviewsettingspage.cpp +++ b/src/qtui/settingspages/bufferviewsettingspage.cpp @@ -20,9 +20,10 @@ #include "bufferviewsettingspage.h" -#include #include +#include + #include "buffermodel.h" #include "bufferviewconfig.h" #include "bufferviewfilter.h" @@ -33,11 +34,11 @@ #include "networkmodel.h" #include "util.h" -BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent) +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) + // Hide the hide inactive networks feature on older cores (which won't save the setting) if (!Client::isCoreFeatureEnabled(Quassel::Feature::HideInactiveNetworks)) ui.hideInactiveNetworks->hide(); @@ -51,10 +52,12 @@ BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent) ui.settingsGroupBox->setEnabled(false); ui.bufferViewPreview->setEnabled(false); - coreConnectionStateChanged(Client::isConnected()); // need a core connection! + 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.bufferViewList->selectionModel(), + &QItemSelectionModel::selectionChanged, + this, + &BufferViewSettingsPage::bufferViewSelectionChanged); connect(ui.onlyStatusBuffers, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged); connect(ui.onlyChannelBuffers, &QAbstractButton::clicked, this, &BufferViewSettingsPage::widgetHasChanged); @@ -70,29 +73,27 @@ BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent) connect(ui.networkSelector, selectOverload(&QComboBox::currentIndexChanged), this, &BufferViewSettingsPage::enableStatusBuffers); } - BufferViewSettingsPage::~BufferViewSettingsPage() { reset(); } - void BufferViewSettingsPage::reset() { ui.bufferViewList->clear(); ui.deleteBufferView->setEnabled(false); - QHash::iterator changedConfigIter = _changedBufferViews.begin(); - QHash::iterator changedConfigIterEnd = _changedBufferViews.end(); - BufferViewConfig *config; + QHash::iterator changedConfigIter = _changedBufferViews.begin(); + QHash::iterator changedConfigIterEnd = _changedBufferViews.end(); + BufferViewConfig* config; while (changedConfigIter != changedConfigIterEnd) { config = changedConfigIter.value(); changedConfigIter = _changedBufferViews.erase(changedConfigIter); config->deleteLater(); } - QList::iterator newConfigIter = _newBufferViews.begin(); - QList::iterator newConfigIterEnd = _newBufferViews.end(); + QList::iterator newConfigIter = _newBufferViews.begin(); + QList::iterator newConfigIterEnd = _newBufferViews.end(); while (newConfigIter != newConfigIterEnd) { config = *newConfigIter; newConfigIter = _newBufferViews.erase(newConfigIter); @@ -106,7 +107,6 @@ void BufferViewSettingsPage::reset() setChangedState(false); } - void BufferViewSettingsPage::load() { bool useBufferViewHint = _useBufferViewHint; @@ -116,8 +116,8 @@ void BufferViewSettingsPage::load() if (!Client::bufferViewManager()) return; - const QList bufferViewConfigs = Client::bufferViewManager()->bufferViewConfigs(); - foreach(BufferViewConfig *bufferViewConfig, bufferViewConfigs) { + const QList bufferViewConfigs = Client::bufferViewManager()->bufferViewConfigs(); + foreach (BufferViewConfig* bufferViewConfig, bufferViewConfigs) { addBufferView(bufferViewConfig); } @@ -126,8 +126,8 @@ void BufferViewSettingsPage::load() ui.networkSelector->clear(); ui.networkSelector->addItem(tr("All")); ui.networkSelector->setItemData(0, qVariantFromValue(NetworkId())); - const Network *net; - foreach(NetworkId netId, Client::networkIds()) { + const Network* net; + foreach (NetworkId netId, Client::networkIds()) { net = Client::network(netId); ui.networkSelector->addItem(net->networkName()); ui.networkSelector->setItemData(ui.networkSelector->count() - 1, qVariantFromValue(net->networkId())); @@ -138,12 +138,11 @@ void BufferViewSettingsPage::load() ui.bufferViewList->setCurrentRow(0); } - void BufferViewSettingsPage::save() { setEnabled(false); - BufferViewConfig *currentConfig = bufferView(ui.bufferViewList->currentRow()); + BufferViewConfig* currentConfig = bufferView(ui.bufferViewList->currentRow()); if (currentConfig) { _useBufferViewHint = true; _bufferViewHint = currentConfig->bufferViewId(); @@ -153,7 +152,7 @@ void BufferViewSettingsPage::save() QVariantList deleteConfigs; QVariantList changedConfigs; - foreach(int bufferId, _deleteBufferViews) { + foreach (int bufferId, _deleteBufferViews) { deleteConfigs << bufferId; } _deleteBufferViews.clear(); @@ -161,8 +160,8 @@ void BufferViewSettingsPage::save() Client::bufferViewManager()->requestDeleteBufferViews(deleteConfigs); } - QHash::iterator changedConfigIter = _changedBufferViews.begin(); - QHash::iterator changedConfigIterEnd = _changedBufferViews.end(); + QHash::iterator changedConfigIter = _changedBufferViews.begin(); + QHash::iterator changedConfigIterEnd = _changedBufferViews.end(); BufferViewConfig *config, *changedConfig; while (changedConfigIter != changedConfigIterEnd) { config = changedConfigIter.key(); @@ -172,8 +171,8 @@ void BufferViewSettingsPage::save() changedConfig->deleteLater(); } - QList::iterator newConfigIter = _newBufferViews.begin(); - QList::iterator newConfigIterEnd = _newBufferViews.end(); + QList::iterator newConfigIter = _newBufferViews.begin(); + QList::iterator newConfigIterEnd = _newBufferViews.end(); while (newConfigIter != newConfigIterEnd) { config = *newConfigIter; newConfigIter = _newBufferViews.erase(newConfigIter); @@ -188,31 +187,30 @@ void BufferViewSettingsPage::save() setEnabled(true); } - void BufferViewSettingsPage::coreConnectionStateChanged(bool state) { setEnabled(state); if (state) { load(); - connect(Client::bufferViewManager(), selectOverload(&BufferViewManager::bufferViewConfigAdded), - this, selectOverload(&BufferViewSettingsPage::addBufferView)); + connect(Client::bufferViewManager(), + selectOverload(&BufferViewManager::bufferViewConfigAdded), + this, + selectOverload(&BufferViewSettingsPage::addBufferView)); } else { reset(); } } - -void BufferViewSettingsPage::addBufferView(BufferViewConfig *config) +void BufferViewSettingsPage::addBufferView(BufferViewConfig* config) { - auto *item = new QListWidgetItem(config->bufferViewName(), ui.bufferViewList); - item->setData(Qt::UserRole, qVariantFromValue(qobject_cast(config))); + auto* item = new QListWidgetItem(config->bufferViewName(), ui.bufferViewList); + item->setData(Qt::UserRole, qVariantFromValue(qobject_cast(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 +219,14 @@ void BufferViewSettingsPage::addBufferView(int bufferViewId) selectBufferViewById(bufferViewId); } - void BufferViewSettingsPage::bufferViewDeleted() { - auto *config = static_cast(sender()); - QObject *obj; + auto* config = static_cast(sender()); + QObject* obj; for (int i = 0; i < ui.bufferViewList->count(); i++) { - obj = ui.bufferViewList->item(i)->data(Qt::UserRole).value(); - if (config == static_cast(obj)) { - QListWidgetItem *item = ui.bufferViewList->takeItem(i); + obj = ui.bufferViewList->item(i)->data(Qt::UserRole).value(); + if (config == static_cast(obj)) { + QListWidgetItem* item = ui.bufferViewList->takeItem(i); delete item; break; } @@ -237,12 +234,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); - auto *config = new BufferViewConfig(fakeId); + auto* config = new BufferViewConfig(fakeId); config->setBufferViewName(bufferViewName); config->setInitialized(); QList bufferIds; @@ -263,36 +259,33 @@ void BufferViewSettingsPage::newBufferView(const QString &bufferViewName) ui.bufferViewList->setCurrentRow(listPos(config)); } - -int BufferViewSettingsPage::listPos(BufferViewConfig *config) +int BufferViewSettingsPage::listPos(BufferViewConfig* config) { - QObject *obj; + QObject* obj; for (int i = 0; i < ui.bufferViewList->count(); i++) { - obj = ui.bufferViewList->item(i)->data(Qt::UserRole).value(); - if (config == qobject_cast(obj)) + obj = ui.bufferViewList->item(i)->data(Qt::UserRole).value(); + if (config == qobject_cast(obj)) return i; } return -1; } - -BufferViewConfig *BufferViewSettingsPage::bufferView(int listPos) +BufferViewConfig* BufferViewSettingsPage::bufferView(int listPos) { if (listPos < ui.bufferViewList->count() && listPos >= 0) { - auto *obj = ui.bufferViewList->item(listPos)->data(Qt::UserRole).value(); - return qobject_cast(obj); + auto* obj = ui.bufferViewList->item(listPos)->data(Qt::UserRole).value(); + return qobject_cast(obj); } else { return nullptr; } } - bool BufferViewSettingsPage::selectBufferViewById(int bufferViewId) { - BufferViewConfig *config; + BufferViewConfig* config; for (int i = 0; i < ui.bufferViewList->count(); i++) { - config = qobject_cast(ui.bufferViewList->item(i)->data(Qt::UserRole).value()); + config = qobject_cast(ui.bufferViewList->item(i)->data(Qt::UserRole).value()); if (config && config->bufferViewId() == bufferViewId) { ui.bufferViewList->setCurrentRow(i); return true; @@ -301,10 +294,9 @@ bool BufferViewSettingsPage::selectBufferViewById(int bufferViewId) return false; } - void BufferViewSettingsPage::updateBufferView() { - auto *config = qobject_cast(sender()); + auto* config = qobject_cast(sender()); if (!config) return; @@ -318,7 +310,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,14 +317,13 @@ 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(); } @@ -344,7 +334,6 @@ void BufferViewSettingsPage::on_addBufferView_clicked() } } - void BufferViewSettingsPage::on_renameBufferView_clicked() { if (ui.bufferViewList->selectedItems().isEmpty()) @@ -353,47 +342,48 @@ void BufferViewSettingsPage::on_renameBufferView_clicked() if (!Client::bufferViewManager()) return; - BufferViewConfig *config = bufferView(ui.bufferViewList->currentRow()); + BufferViewConfig* config = 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); + BufferViewConfig* changedConfig = cloneConfig(config); changedConfig->setBufferViewName(dlg.bufferViewName()); ui.bufferViewList->item(listPos(config))->setText(dlg.bufferViewName()); setChangedState(true); } } - void BufferViewSettingsPage::on_deleteBufferView_clicked() { if (ui.bufferViewList->selectedItems().isEmpty()) return; - QListWidgetItem *currentItem = ui.bufferViewList->item(ui.bufferViewList->currentRow()); + QListWidgetItem* currentItem = 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); - auto *config = qobject_cast(currentItem->data(Qt::UserRole).value()); + auto* config = qobject_cast(currentItem->data(Qt::UserRole).value()); delete currentItem; if (viewId >= 0) { _deleteBufferViews << viewId; setChangedState(true); } else if (config) { - QList::iterator iter = _newBufferViews.begin(); + QList::iterator iter = _newBufferViews.begin(); while (iter != _newBufferViews.end()) { if (*iter == config) { iter = _newBufferViews.erase(iter); @@ -410,8 +400,7 @@ void BufferViewSettingsPage::on_deleteBufferView_clicked() } } - -void BufferViewSettingsPage::bufferViewSelectionChanged(const QItemSelection ¤t, const QItemSelection &previous) +void BufferViewSettingsPage::bufferViewSelectionChanged(const QItemSelection& current, const QItemSelection& previous) { Q_UNUSED(previous) @@ -427,8 +416,7 @@ void BufferViewSettingsPage::bufferViewSelectionChanged(const QItemSelection &cu } } - -void BufferViewSettingsPage::loadConfig(BufferViewConfig *config) +void BufferViewSettingsPage::loadConfig(BufferViewConfig* config) { if (!config) return; @@ -465,8 +453,7 @@ void BufferViewSettingsPage::loadConfig(BufferViewConfig *config) _ignoreWidgetChanges = false; } - -void BufferViewSettingsPage::saveConfig(BufferViewConfig *config) +void BufferViewSettingsPage::saveConfig(BufferViewConfig* config) { if (!config) return; @@ -500,7 +487,6 @@ void BufferViewSettingsPage::saveConfig(BufferViewConfig *config) config->initSetBufferList(bufferIds); } - void BufferViewSettingsPage::widgetHasChanged() { if (_ignoreWidgetChanges) @@ -508,7 +494,6 @@ void BufferViewSettingsPage::widgetHasChanged() setChangedState(testHasChanged()); } - bool BufferViewSettingsPage::testHasChanged() { saveConfig(cloneConfig(bufferView(ui.bufferViewList->currentRow()))); @@ -517,8 +502,8 @@ bool BufferViewSettingsPage::testHasChanged() return true; bool changed = false; - QHash::iterator iter = _changedBufferViews.begin(); - QHash::iterator iterEnd = _changedBufferViews.end(); + QHash::iterator iter = _changedBufferViews.begin(); + QHash::iterator iterEnd = _changedBufferViews.end(); while (iter != iterEnd) { if (&(iter.key()) == &(iter.value())) { iter.value()->deleteLater(); @@ -532,8 +517,7 @@ bool BufferViewSettingsPage::testHasChanged() return changed; } - -BufferViewConfig *BufferViewSettingsPage::cloneConfig(BufferViewConfig *config) +BufferViewConfig* BufferViewSettingsPage::cloneConfig(BufferViewConfig* config) { if (!config || config->bufferViewId() < 0) return config; @@ -541,7 +525,7 @@ BufferViewConfig *BufferViewSettingsPage::cloneConfig(BufferViewConfig *config) if (_changedBufferViews.contains(config)) return _changedBufferViews[config]; - auto *changedConfig = new BufferViewConfig(-1, this); + auto* changedConfig = new BufferViewConfig(-1, this); changedConfig->fromVariantMap(config->toVariantMap()); changedConfig->setInitialized(); _changedBufferViews[config] = changedConfig; @@ -554,7 +538,7 @@ BufferViewConfig *BufferViewSettingsPage::cloneConfig(BufferViewConfig *config) changedConfig->setProperty("OriginalBufferList", toVariantList(config->bufferList())); // if this is the currently displayed view we have to change the config of the preview filter - auto *filter = qobject_cast(ui.bufferViewPreview->model()); + auto* filter = qobject_cast(ui.bufferViewPreview->model()); if (filter && filter->config() == config) filter->setConfig(changedConfig); ui.bufferViewPreview->setConfig(changedConfig); @@ -562,8 +546,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]; @@ -571,26 +554,26 @@ BufferViewConfig *BufferViewSettingsPage::configForDisplay(BufferViewConfig *con return config; } - /************************************************************************** * BufferViewEditDlg *************************************************************************/ -BufferViewEditDlg::BufferViewEditDlg(const QString &old, QStringList exist, QWidget *parent) : QDialog(parent), existing(std::move(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)); }