X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingsdlg.cpp;h=56c3cdc38d275810187bce24b3720cdc4853beb3;hp=82548b3ab2ff6e3ce4475766ec69b20ab755e5bc;hb=f9efdde7f3a6004af8f834c409cfa6ae1d877692;hpb=12028f7dfb31ebf5694f5dae95bfc31bcde83b43 diff --git a/src/qtui/settingsdlg.cpp b/src/qtui/settingsdlg.cpp index 82548b3a..56c3cdc3 100644 --- a/src/qtui/settingsdlg.cpp +++ b/src/qtui/settingsdlg.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 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 * @@ -18,49 +18,32 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#include +#include "settingsdlg.h" + #include #include -#include "settingsdlg.h" - #include "client.h" +#include "icon.h" SettingsDlg::SettingsDlg(QWidget *parent) - : QDialog(parent), - _currentPage(0) + : QDialog(parent) { ui.setupUi(this); setModal(true); setAttribute(Qt::WA_DeleteOnClose, true); - setWindowIcon(QIcon::fromTheme("configure")); + setWindowIcon(icon::get("configure")); updateGeometry(); ui.settingsTree->setRootIsDecorated(false); - connect(ui.settingsTree, SIGNAL(itemSelectionChanged()), this, SLOT(itemSelected())); - connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *))); + connect(ui.settingsTree, &QTreeWidget::itemSelectionChanged, this, &SettingsDlg::itemSelected); + connect(ui.buttonBox, &QDialogButtonBox::clicked, this, &SettingsDlg::buttonClicked); - connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), SLOT(coreConnectionStateChanged())); + connect(Client::instance(), &Client::coreConnectionStateChanged, this, &SettingsDlg::coreConnectionStateChanged); setButtonStates(); - - // Some settings panes can take a good bit of space. To avoid squashing the settings tree, try - // to resize the dialog. If needed, it can always be resized by the user to take less space. - // - // Only try to resize if the sizes are valid. This shouldn't happen.. but better to be safe. - // See http://www.qtcentre.org/threads/3427-invalid-sizeHint() - if (ui.settingsTree->sizeHint().isValid() && ui.settingsTree->size().isValid()) { - // Find out how much width would make the settings tree happy - int wantedExtraWidth = ui.settingsTree->sizeHint().width() - - ui.settingsTree->size().width(); - // If more space is needed, try to resize to allow for it. Qt should keep the dialog within - // the bounds of the screen. - if (wantedExtraWidth > 0) { - this->resize(this->width() + wantedExtraWidth, this->height()); - } - } } @@ -79,7 +62,7 @@ void SettingsDlg::coreConnectionStateChanged() void SettingsDlg::setItemState(QTreeWidgetItem *item) { - SettingsPage *sp = qobject_cast(item->data(0, SettingsPageRole).value()); + auto *sp = qobject_cast(item->data(0, SettingsPageRole).value()); Q_ASSERT(sp); bool disabledDueToConnection = !Client::isConnected() && sp->needsCoreConnection(); bool disabledDueToOwnChoice = !sp->isSelectable(); @@ -92,7 +75,7 @@ void SettingsDlg::registerSettingsPage(SettingsPage *sp) sp->setParent(ui.settingsStack); ui.settingsStack->addWidget(sp); - connect(sp, SIGNAL(changed(bool)), this, SLOT(setButtonStates())); + connect(sp, &SettingsPage::changed, this, &SettingsDlg::setButtonStates); QTreeWidgetItem *cat; QList cats = ui.settingsTree->findItems(sp->category(), Qt::MatchExactly); @@ -112,7 +95,6 @@ void SettingsDlg::registerSettingsPage(SettingsPage *sp) item = new QTreeWidgetItem(cat, QStringList(sp->title())); item->setData(0, SettingsPageRole, QVariant::fromValue(sp)); - ui.settingsTree->setMinimumWidth(ui.settingsTree->header()->sectionSizeHint(0) + 5); pageIsLoaded[sp] = false; if (!ui.settingsTree->selectedItems().count()) ui.settingsTree->setCurrentItem(item); @@ -124,7 +106,7 @@ void SettingsDlg::registerSettingsPage(SettingsPage *sp) void SettingsDlg::selectPage(SettingsPage *sp) { if (!sp) { - _currentPage = 0; + _currentPage = nullptr; ui.settingsStack->setCurrentIndex(0); ui.pageTitle->setText(tr("Settings")); return; @@ -135,7 +117,7 @@ void SettingsDlg::selectPage(SettingsPage *sp) pageIsLoaded[sp] = true; } - if (sp != currentPage() && currentPage() != 0 && currentPage()->hasChanged()) { + if (sp != currentPage() && currentPage() != nullptr && currentPage()->hasChanged()) { int ret = QMessageBox::warning(this, tr("Save changes"), tr("There are unsaved changes on the current configuration page. Would you like to apply your changes now?"), QMessageBox::Discard|QMessageBox::Save|QMessageBox::Cancel, QMessageBox::Cancel); @@ -168,7 +150,7 @@ void SettingsDlg::selectPage(SettingsPage *sp) void SettingsDlg::itemSelected() { QList items = ui.settingsTree->selectedItems(); - SettingsPage *sp = 0; + SettingsPage *sp = nullptr; if (!items.isEmpty()) { sp = qobject_cast(items[0]->data(0, SettingsPageRole).value()); }