#include <KIO/PreviewJob>
#include <KLocalizedString>
-#include <KServiceTypeTrader>
+#include <KPluginMetaData>
#include <QHBoxLayout>
#include <QLabel>
#include <QListView>
-#include <QPainter>
+#include <QScroller>
#include <QShowEvent>
#include <QSortFilterProxyModel>
#include <QSpinBox>
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);
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"));
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"));
loadSettings();
connect(m_listView, &QListView::clicked, this, &PreviewsSettingsPage::changed);
- connect(m_localFileSizeBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &PreviewsSettingsPage::changed);
- connect(m_remoteFileSizeBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &PreviewsSettingsPage::changed);
+ connect(m_localFileSizeBox, &QSpinBox::valueChanged, this, &PreviewsSettingsPage::changed);
+ connect(m_remoteFileSizeBox, &QSpinBox::valueChanged, this, &PreviewsSettingsPage::changed);
}
PreviewsSettingsPage::~PreviewsSettingsPage()
globalConfig.writeEntry("MaximumRemoteSize",
maximumRemoteSize,
KConfigBase::Normal | KConfigBase::Global);
+
globalConfig.sync();
}
SettingsPageBase::showEvent(event);
}
+#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87)
void PreviewsSettingsPage::configureService(const QModelIndex& index)
{
const QAbstractItemModel* model = index.model();
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<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::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);