X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/6072005ddce81b456fdcf2e77d5156a1d86f3686..40cc5f665d:/src/settings/general/previewssettingspage.cpp?ds=sidebyside diff --git a/src/settings/general/previewssettingspage.cpp b/src/settings/general/previewssettingspage.cpp index a080fd0be..b30d1940a 100644 --- a/src/settings/general/previewssettingspage.cpp +++ b/src/settings/general/previewssettingspage.cpp @@ -13,12 +13,12 @@ #include #include -#include +#include #include #include #include -#include +#include #include #include #include @@ -42,10 +42,14 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) : 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); +#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87) ServiceItemDelegate* delegate = new ServiceItemDelegate(m_listView, m_listView); connect(delegate, &ServiceItemDelegate::requestServiceConfiguration, this, &PreviewsSettingsPage::configureService); + m_listView->setItemDelegate(delegate); +#endif ServiceModel* serviceModel = new ServiceModel(this); QSortFilterProxyModel* proxyModel = new QSortFilterProxyModel(this); @@ -54,14 +58,14 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) : proxyModel->setSortCaseSensitivity(Qt::CaseInsensitive); m_listView->setModel(proxyModel); - m_listView->setItemDelegate(delegate); 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(QStringLiteral(" MB")); + 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")); @@ -74,7 +78,7 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) : m_remoteFileSizeBox = new QSpinBox(this); m_remoteFileSizeBox->setSingleStep(1); - m_remoteFileSizeBox->setSuffix(QStringLiteral(" MB")); + 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")); @@ -91,8 +95,8 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) : loadSettings(); connect(m_listView, &QListView::clicked, this, &PreviewsSettingsPage::changed); - connect(m_localFileSizeBox, QOverload::of(&QSpinBox::valueChanged), this, &PreviewsSettingsPage::changed); - connect(m_remoteFileSizeBox, QOverload::of(&QSpinBox::valueChanged), this, &PreviewsSettingsPage::changed); + connect(m_localFileSizeBox, &QSpinBox::valueChanged, this, &PreviewsSettingsPage::changed); + connect(m_remoteFileSizeBox, &QSpinBox::valueChanged, this, &PreviewsSettingsPage::changed); } PreviewsSettingsPage::~PreviewsSettingsPage() @@ -131,6 +135,7 @@ void PreviewsSettingsPage::applySettings() globalConfig.writeEntry("MaximumRemoteSize", maximumRemoteSize, KConfigBase::Normal | KConfigBase::Global); + globalConfig.sync(); } @@ -149,6 +154,7 @@ void PreviewsSettingsPage::showEvent(QShowEvent* event) SettingsPageBase::showEvent(event); } +#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87) void PreviewsSettingsPage::configureService(const QModelIndex& index) { const QAbstractItemModel* model = index.model(); @@ -159,22 +165,26 @@ void PreviewsSettingsPage::configureService(const QModelIndex& index) dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->show(); } +#endif void PreviewsSettingsPage::loadPreviewPlugins() { QAbstractItemModel* model = m_listView->model(); - const KService::List plugins = KServiceTypeTrader::self()->query(QStringLiteral("ThumbCreator")); - foreach (const KService::Ptr& service, plugins) { - const bool configurable = service->property(QStringLiteral("Configurable"), QVariant::Bool).toBool(); - const bool show = m_enabledPreviewPlugins.contains(service->desktopEntryName()); + const QVector 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::CheckStateRole); + model->setData(index, plugin.name(), Qt::DisplayRole); + model->setData(index, plugin.pluginId(), ServiceModel::DesktopEntryNameRole); + +#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87) + const bool configurable = plugin.value(QStringLiteral("Configurable"), false); model->setData(index, configurable, ServiceModel::ConfigurableRole); - model->setData(index, service->name(), Qt::DisplayRole); - model->setData(index, service->desktopEntryName(), ServiceModel::DesktopEntryNameRole); +#endif } model->sort(Qt::DisplayRole);