diff --git a/messagelist/src/utils/aggregationcombobox.cpp b/messagelist/src/utils/aggregationcombobox.cpp index 40ed7d2b..5577229c 100644 --- a/messagelist/src/utils/aggregationcombobox.cpp +++ b/messagelist/src/utils/aggregationcombobox.cpp @@ -1,141 +1,141 @@ /* Copyright 2009 James Bendig This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License or (at your option) version 3 or any later version accepted by the membership of KDE e.V. (or its successor approved by the membership of KDE e.V.), which shall act as a proxy defined in Section 14 of version 3 of the license. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "aggregationcombobox.h" #include "aggregationcombobox_p.h" #include "core/aggregation.h" #include "core/manager.h" #include "messagelistsettings.h" #include "storagemodel.h" using namespace MessageList::Core; using namespace MessageList::Utils; AggregationComboBox::AggregationComboBox(QWidget *parent) - : KComboBox(parent) + : QComboBox(parent) , d(new AggregationComboBoxPrivate(this)) { if (Manager::instance()) { d->slotLoadAggregations(); } else { setEnabled(false); } } AggregationComboBox::~AggregationComboBox() { delete d; } QString AggregationComboBox::currentAggregation() const { return itemData(currentIndex()).toString(); } void AggregationComboBox::writeDefaultConfig() const { KConfigGroup group(MessageListSettings::self()->config(), "MessageListView::StorageModelAggregations"); const QString aggregationID = currentAggregation(); group.writeEntry(QStringLiteral("DefaultSet"), aggregationID); if (Manager::instance()) { Manager::instance()->aggregationsConfigurationCompleted(); } } void AggregationComboBox::writeStorageModelConfig(MessageList::Core::StorageModel *storageModel, bool isPrivateSetting) const { writeStorageModelConfig(storageModel->id(), isPrivateSetting); } void AggregationComboBox::writeStorageModelConfig(const QString &id, bool isPrivateSetting) const { if (Manager::instance()) { // message list aggregation QString aggregationID; if (isPrivateSetting) { aggregationID = currentAggregation(); } else { // explicitly use default aggregation id when using default aggregation. aggregationID = Manager::instance()->defaultAggregation()->id(); } Manager::instance()->saveAggregationForStorageModel(id, aggregationID, isPrivateSetting); Manager::instance()->aggregationsConfigurationCompleted(); } } void AggregationComboBox::readStorageModelConfig(const QString &id, bool &isPrivateSetting) { if (Manager::instance()) { const Aggregation *aggregation = Manager::instance()->aggregationForStorageModel(id, &isPrivateSetting); d->setCurrentAggregation(aggregation); } } void AggregationComboBox::readStorageModelConfig(MessageList::Core::StorageModel *storageModel, bool &isPrivateSetting) { readStorageModelConfig(storageModel->id(), isPrivateSetting); } void AggregationComboBox::readStorageModelConfig(const Akonadi::Collection &col, bool &isPrivateSetting) { if (col.isValid()) { readStorageModelConfig(QString::number(col.id()), isPrivateSetting); } } void AggregationComboBox::selectDefault() { if (Manager::instance()) { const Aggregation *defaultAggregation = Manager::instance()->defaultAggregation(); d->setCurrentAggregation(defaultAggregation); } } void AggregationComboBox::slotLoadAggregations() { d->slotLoadAggregations(); } void AggregationComboBoxPrivate::slotLoadAggregations() { if (!Manager::instance()) { return; } q->clear(); // Get all message list aggregations and sort them into alphabetical order. QList< Aggregation * > aggregations = Manager::instance()->aggregations().values(); std::sort(aggregations.begin(), aggregations.end(), MessageList::Core::Aggregation::compareName); for (const Aggregation *aggregation : qAsConst(aggregations)) { q->addItem(aggregation->name(), QVariant(aggregation->id())); } } void AggregationComboBoxPrivate::setCurrentAggregation(const Aggregation *aggregation) { Q_ASSERT(aggregation != nullptr); const QString aggregationID = aggregation->id(); const int aggregationIndex = q->findData(QVariant(aggregationID)); q->setCurrentIndex(aggregationIndex); } #include "moc_aggregationcombobox.cpp" diff --git a/messagelist/src/utils/aggregationcombobox.h b/messagelist/src/utils/aggregationcombobox.h index 72986a70..0748122b 100644 --- a/messagelist/src/utils/aggregationcombobox.h +++ b/messagelist/src/utils/aggregationcombobox.h @@ -1,65 +1,65 @@ /* Copyright 2009 James Bendig This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License or (at your option) version 3 or any later version accepted by the membership of KDE e.V. (or its successor approved by the membership of KDE e.V.), which shall act as a proxy defined in Section 14 of version 3 of the license. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef MESSAGELIST_UTILS_AGGREGATIONCOMBOBOX_H #define MESSAGELIST_UTILS_AGGREGATIONCOMBOBOX_H #include -#include +#include #include namespace MessageList { namespace Core { class Aggregation; class StorageModel; } namespace Utils { class AggregationComboBoxPrivate; /** - * A specialized KComboBox that lists all message list aggregations. + * A specialized QComboBox that lists all message list aggregations. */ -class MESSAGELIST_EXPORT AggregationComboBox : public KComboBox +class MESSAGELIST_EXPORT AggregationComboBox : public QComboBox { Q_OBJECT public: explicit AggregationComboBox(QWidget *parent); ~AggregationComboBox(); QString currentAggregation() const; void writeDefaultConfig() const; void writeStorageModelConfig(MessageList::Core::StorageModel *storageModel, bool isPrivateSetting) const; void writeStorageModelConfig(const QString &id, bool isPrivateSetting) const; void readStorageModelConfig(MessageList::Core::StorageModel *storageModel, bool &isPrivateSetting); void readStorageModelConfig(const Akonadi::Collection &col, bool &isPrivateSetting); void readStorageModelConfig(const QString &id, bool &isPrivateSetting); public Q_SLOTS: void selectDefault(); void slotLoadAggregations(); private: AggregationComboBoxPrivate *const d; }; } // namespace Utils } // namespace MessageList #endif //!__MESSAGELIST_UTILS_AGGREGATIONCOMBOBOX_H diff --git a/messageviewer/src/ui/settings.ui b/messageviewer/src/ui/settings.ui index 63dff324..ae42428d 100644 --- a/messageviewer/src/ui/settings.ui +++ b/messageviewer/src/ui/settings.ui @@ -1,261 +1,261 @@ /* Copyright (C) 2009 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.net Copyright (c) 2009 Andras Mantia <andras@kdab.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ Settings 0 0 482 456 Viewer settings Qt::Vertical QSizePolicy::Fixed 20 24 0 0 O&verride character encoding: overrideCharacterEncoding - + 0 0 2 30 Enable access key Reduce font size for &quoted text Show &expand/collapse quote marks Qt::Horizontal QSizePolicy::Fixed 24 20 false Automatic collapse &level: kcfg_CollapseQuoteLevelSpin false 1 3 3 Qt::Horizontal 40 20 Qt::Horizontal 40 20 Qt::Vertical 20 40 &Minimum font size: kcfg_MinimumFontSize - KComboBox + QComboBox QComboBox
kcombobox.h
kcfg_AccessKeyEnabled kcfg_ShrinkQuotes kcfg_ShowExpandQuotesMark kcfg_CollapseQuoteLevelSpin overrideCharacterEncoding kcfg_MinimumFontSize kcfg_ShowExpandQuotesMark toggled(bool) collapseQuoteLevelLabel setEnabled(bool) 94 125 138 153 kcfg_ShowExpandQuotesMark toggled(bool) kcfg_CollapseQuoteLevelSpin setEnabled(bool) 179 125 228 153
diff --git a/messageviewer/src/widgets/configurewidget.cpp b/messageviewer/src/widgets/configurewidget.cpp index 1ababa31..6394ffcb 100644 --- a/messageviewer/src/widgets/configurewidget.cpp +++ b/messageviewer/src/widgets/configurewidget.cpp @@ -1,122 +1,122 @@ /* Copyright (C) 2009 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.net Copyright (c) 2009 Andras Mantia This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "configurewidget.h" #include "messageviewer_debug.h" #include "ui_settings.h" #include "utils/messageviewerutil.h" #include "settings/messageviewersettings.h" #include #include "MessageCore/MessageCoreSettings" #include using namespace MessageViewer; class MessageViewer::ConfigureWidgetPrivate { public: ConfigureWidgetPrivate() { } ~ConfigureWidgetPrivate() { delete mSettingsUi; mSettingsUi = nullptr; } Ui_Settings *mSettingsUi = nullptr; }; ConfigureWidget::ConfigureWidget(QWidget *parent) : QWidget(parent) , d(new MessageViewer::ConfigureWidgetPrivate) { d->mSettingsUi = new Ui_Settings; d->mSettingsUi->setupUi(this); layout()->setContentsMargins(0, 0, 0, 0); QStringList encodings = MimeTreeParser::NodeHelper::supportedEncodings(false); encodings.prepend(i18n("Auto")); d->mSettingsUi->overrideCharacterEncoding->addItems(encodings); d->mSettingsUi->overrideCharacterEncoding->setCurrentIndex(0); d->mSettingsUi->overrideCharacterEncoding->setWhatsThis( MessageCore::MessageCoreSettings::self()->overrideCharacterEncodingItem()->whatsThis()); d->mSettingsUi->kcfg_ShrinkQuotes->setWhatsThis( MessageViewer::MessageViewerSettings::self()->shrinkQuotesItem()->whatsThis()); d->mSettingsUi->kcfg_ShowExpandQuotesMark->setWhatsThis( MessageViewer::MessageViewerSettings::self()->showExpandQuotesMarkItem()->whatsThis()); - connect(d->mSettingsUi->overrideCharacterEncoding, QOverload::of(&KComboBox::currentIndexChanged), this, + connect(d->mSettingsUi->overrideCharacterEncoding, QOverload::of(&QComboBox::currentIndexChanged), this, &ConfigureWidget::settingsChanged); } ConfigureWidget::~ConfigureWidget() { delete d; } void ConfigureWidget::readConfig() { readCurrentOverrideCodec(); d->mSettingsUi->kcfg_CollapseQuoteLevelSpin->setEnabled( MessageViewer::MessageViewerSettings::self()->showExpandQuotesMark()); } void ConfigureWidget::writeConfig() { MessageCore::MessageCoreSettings::self()->setOverrideCharacterEncoding( d->mSettingsUi->overrideCharacterEncoding->currentIndex() == 0 ? QString() : MimeTreeParser::NodeHelper::encodingForName(d->mSettingsUi->overrideCharacterEncoding-> currentText())); } void ConfigureWidget::readCurrentOverrideCodec() { const QString ¤tOverrideEncoding = MessageCore::MessageCoreSettings::self()->overrideCharacterEncoding(); if (currentOverrideEncoding.isEmpty()) { d->mSettingsUi->overrideCharacterEncoding->setCurrentIndex(0); return; } QStringList encodings = MimeTreeParser::NodeHelper::supportedEncodings(false); encodings.prepend(i18n("Auto")); QStringList::ConstIterator it(encodings.constBegin()); const QStringList::ConstIterator end(encodings.constEnd()); int i = 0; for (; it != end; ++it) { if (MimeTreeParser::NodeHelper::encodingForName(*it) == currentOverrideEncoding) { d->mSettingsUi->overrideCharacterEncoding->setCurrentIndex(i); break; } ++i; } if (i == encodings.size()) { // the current value of overrideCharacterEncoding is an unknown encoding => reset to Auto qCWarning(MESSAGEVIEWER_LOG) << "Unknown override character encoding" << currentOverrideEncoding << ". Resetting to Auto."; d->mSettingsUi->overrideCharacterEncoding->setCurrentIndex(0); MessageCore::MessageCoreSettings::self()->setOverrideCharacterEncoding(QString()); } }