┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/general/previewssettingspage.cpp
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2023-08-23 18:56:41 +0200
committerMéven Car <[email protected]>2023-08-23 18:56:41 +0200
commitae1980442d70aa04b1699fbba1c3503fdab58e6d (patch)
tree88b89a59585d93b680b6af0c0825576d11ae7555 /src/settings/general/previewssettingspage.cpp
parent21cd9da8fd128723d73745606724f6f77625aac0 (diff)
parentd27ee07de7558470ef7b497fbe3d3504ce7cad07 (diff)
Merge branch 'master' into kf6
Diffstat (limited to 'src/settings/general/previewssettingspage.cpp')
-rw-r--r--src/settings/general/previewssettingspage.cpp179
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"