diff options
| author | Méven Car <[email protected]> | 2023-08-23 18:56:41 +0200 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2023-08-23 18:56:41 +0200 |
| commit | ae1980442d70aa04b1699fbba1c3503fdab58e6d (patch) | |
| tree | 88b89a59585d93b680b6af0c0825576d11ae7555 /src/settings/general/previewssettingspage.cpp | |
| parent | 21cd9da8fd128723d73745606724f6f77625aac0 (diff) | |
| parent | d27ee07de7558470ef7b497fbe3d3504ce7cad07 (diff) | |
Merge branch 'master' into kf6
Diffstat (limited to 'src/settings/general/previewssettingspage.cpp')
| -rw-r--r-- | src/settings/general/previewssettingspage.cpp | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/src/settings/general/previewssettingspage.cpp b/src/settings/general/previewssettingspage.cpp deleted file mode 100644 index dd1ce942e..000000000 --- a/src/settings/general/previewssettingspage.cpp +++ /dev/null @@ -1,179 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2006 Peter Penz <[email protected]> - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#include "previewssettingspage.h" - -#include "dolphin_generalsettings.h" -#include "settings/servicemodel.h" - -#include <KIO/PreviewJob> -#include <KLocalizedString> -#include <KPluginMetaData> - -#include <QHBoxLayout> -#include <QLabel> -#include <QListView> -#include <QScroller> -#include <QShowEvent> -#include <QSortFilterProxyModel> -#include <QSpinBox> - -// default settings -namespace -{ -const int DefaultMaxLocalPreviewSize = 0; // 0 MB -const int DefaultMaxRemotePreviewSize = 0; // 0 MB -} - -PreviewsSettingsPage::PreviewsSettingsPage(QWidget *parent) - : SettingsPageBase(parent) - , m_initialized(false) - , m_listView(nullptr) - , m_enabledPreviewPlugins() - , m_localFileSizeBox(nullptr) - , m_remoteFileSizeBox(nullptr) -{ - QVBoxLayout *topLayout = new QVBoxLayout(this); - - QLabel *showPreviewsLabel = new QLabel(i18nc("@title:group", "Show previews in the view for:"), this); - - m_listView = new QListView(this); - QScroller::grabGesture(m_listView->viewport(), QScroller::TouchGesture); - - ServiceModel *serviceModel = new ServiceModel(this); - QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this); - proxyModel->setSourceModel(serviceModel); - proxyModel->setSortRole(Qt::DisplayRole); - proxyModel->setSortCaseSensitivity(Qt::CaseInsensitive); - - m_listView->setModel(proxyModel); - m_listView->setVerticalScrollMode(QListView::ScrollPerPixel); - m_listView->setUniformItemSizes(true); - - QLabel *localFileSizeLabel = new QLabel(i18n("Skip previews for local files above:"), this); - - m_localFileSizeBox = new QSpinBox(this); - m_localFileSizeBox->setSingleStep(1); - m_localFileSizeBox->setSuffix(i18nc("Mebibytes; used as a suffix in a spinbox showing e.g. '3 MiB'", " MiB")); - m_localFileSizeBox->setRange(0, 9999999); /* MB */ - m_localFileSizeBox->setSpecialValueText(i18n("No limit")); - - QHBoxLayout *localFileSizeBoxLayout = new QHBoxLayout(); - localFileSizeBoxLayout->addWidget(localFileSizeLabel); - localFileSizeBoxLayout->addStretch(0); - localFileSizeBoxLayout->addWidget(m_localFileSizeBox); - - QLabel *remoteFileSizeLabel = new QLabel(i18nc("@label", "Skip previews for remote files above:"), this); - - m_remoteFileSizeBox = new QSpinBox(this); - m_remoteFileSizeBox->setSingleStep(1); - m_remoteFileSizeBox->setSuffix(i18nc("Mebibytes; used as a suffix in a spinbox showing e.g. '3 MiB'", " MiB")); - m_remoteFileSizeBox->setRange(0, 9999999); /* MB */ - m_remoteFileSizeBox->setSpecialValueText(i18n("No previews")); - - QHBoxLayout *remoteFileSizeBoxLayout = new QHBoxLayout(); - remoteFileSizeBoxLayout->addWidget(remoteFileSizeLabel); - remoteFileSizeBoxLayout->addStretch(0); - remoteFileSizeBoxLayout->addWidget(m_remoteFileSizeBox); - - topLayout->addWidget(showPreviewsLabel); - topLayout->addWidget(m_listView); - topLayout->addLayout(localFileSizeBoxLayout); - topLayout->addLayout(remoteFileSizeBoxLayout); - - loadSettings(); - - connect(m_listView, &QListView::clicked, this, &PreviewsSettingsPage::changed); - connect(m_localFileSizeBox, &QSpinBox::valueChanged, this, &PreviewsSettingsPage::changed); - connect(m_remoteFileSizeBox, &QSpinBox::valueChanged, this, &PreviewsSettingsPage::changed); -} - -PreviewsSettingsPage::~PreviewsSettingsPage() -{ -} - -void PreviewsSettingsPage::applySettings() -{ - const QAbstractItemModel *model = m_listView->model(); - const int rowCount = model->rowCount(); - if (rowCount > 0) { - m_enabledPreviewPlugins.clear(); - for (int i = 0; i < rowCount; ++i) { - const QModelIndex index = model->index(i, 0); - const bool checked = model->data(index, Qt::CheckStateRole).value<Qt::CheckState>() == Qt::Checked; - if (checked) { - const QString enabledPlugin = model->data(index, Qt::UserRole).toString(); - m_enabledPreviewPlugins.append(enabledPlugin); - } - } - } - - KConfigGroup globalConfig(KSharedConfig::openConfig(), QStringLiteral("PreviewSettings")); - globalConfig.writeEntry("Plugins", m_enabledPreviewPlugins); - - if (!m_localFileSizeBox->value()) { - globalConfig.deleteEntry("MaximumSize", KConfigBase::Normal | KConfigBase::Global); - } else { - const qulonglong maximumLocalSize = static_cast<qulonglong>(m_localFileSizeBox->value()) * 1024 * 1024; - globalConfig.writeEntry("MaximumSize", maximumLocalSize, KConfigBase::Normal | KConfigBase::Global); - } - - const qulonglong maximumRemoteSize = static_cast<qulonglong>(m_remoteFileSizeBox->value()) * 1024 * 1024; - globalConfig.writeEntry("MaximumRemoteSize", maximumRemoteSize, KConfigBase::Normal | KConfigBase::Global); - - globalConfig.sync(); -} - -void PreviewsSettingsPage::restoreDefaults() -{ - m_localFileSizeBox->setValue(DefaultMaxLocalPreviewSize); - m_remoteFileSizeBox->setValue(DefaultMaxRemotePreviewSize); -} - -void PreviewsSettingsPage::showEvent(QShowEvent *event) -{ - if (!event->spontaneous() && !m_initialized) { - loadPreviewPlugins(); - m_initialized = true; - } - SettingsPageBase::showEvent(event); -} - -void PreviewsSettingsPage::loadPreviewPlugins() -{ - QAbstractItemModel *model = m_listView->model(); - - const QVector<KPluginMetaData> plugins = KIO::PreviewJob::availableThumbnailerPlugins(); - for (const KPluginMetaData &plugin : plugins) { - const bool show = m_enabledPreviewPlugins.contains(plugin.pluginId()); - - model->insertRow(0); - const QModelIndex index = model->index(0, 0); - model->setData(index, show ? Qt::Checked : Qt::Unchecked, Qt::CheckStateRole); - model->setData(index, plugin.name(), Qt::DisplayRole); - model->setData(index, plugin.pluginId(), ServiceModel::DesktopEntryNameRole); - } - - model->sort(Qt::DisplayRole); -} - -void PreviewsSettingsPage::loadSettings() -{ - const KConfigGroup globalConfig(KSharedConfig::openConfig(), QStringLiteral("PreviewSettings")); - m_enabledPreviewPlugins = globalConfig.readEntry("Plugins", KIO::PreviewJob::defaultPlugins()); - - const qulonglong defaultLocalPreview = static_cast<qulonglong>(DefaultMaxLocalPreviewSize) * 1024 * 1024; - const qulonglong maxLocalByteSize = globalConfig.readEntry("MaximumSize", defaultLocalPreview); - const int maxLocalMByteSize = maxLocalByteSize / (1024 * 1024); - m_localFileSizeBox->setValue(maxLocalMByteSize); - - const qulonglong defaultRemotePreview = static_cast<qulonglong>(DefaultMaxRemotePreviewSize) * 1024 * 1024; - const qulonglong maxRemoteByteSize = globalConfig.readEntry("MaximumRemoteSize", defaultRemotePreview); - const int maxRemoteMByteSize = maxRemoteByteSize / (1024 * 1024); - m_remoteFileSizeBox->setValue(maxRemoteMByteSize); -} - -#include "moc_previewssettingspage.cpp" |
