generic: enable thumbnail plugins by default via X-KDE-PluginInfo-EnabledByDefault entry

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2021-03-11 09:38:59 +02:00
parent 21fa54071c
commit e7e02d7be7
7 changed files with 25 additions and 6 deletions

View file

@ -54,6 +54,7 @@ Name[x-test]=xxFoldersxx
Name[zh_CN]=
Name[zh_TW]=
X-KDE-ServiceTypes=ThumbCreator
X-KDE-PluginInfo-EnabledByDefault=true
MimeType=inode/directory;
CacheThumbnail=false
HandleSequences=true

View file

@ -72,4 +72,5 @@ Name[zh_TW]=影像GIF、PNG、BMP...
X-KDE-ServiceTypes=ThumbCreator
MimeType=image/cgm;image/fax-g3;image/gif;image/jp2;image/png;image/tiff;image/bmp;image/x-dds;image/x-ico;image/x-jng;image/x-pcx;image/x-photo-cd;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-rgb;image/x-tga;image/x-xbitmap;image/x-xcf;image/x-xpixmap;image/x-sun-raster;image/vnd.adobe.photoshop;image/x-psd;image/x-hdr;image/x-pic;image/vnd.microsoft.icon;image/x-icon;image/x-webp;image/webp;
X-KDE-Library=imagethumbnail
X-KDE-PluginInfo-EnabledByDefault=true
CacheThumbnail=true

View file

@ -75,6 +75,7 @@ Name[zh_TW]=JPEG 影像
X-KDE-ServiceTypes=ThumbCreator
MimeType=image/jpeg;
X-KDE-Library=jpegthumbnail
X-KDE-PluginInfo-EnabledByDefault=true
CacheThumbnail=true
Configurable=true
ThumbnailerVersion=2

View file

@ -75,4 +75,5 @@ Name[zh_TW]=SVG 影像
X-KDE-ServiceTypes=ThumbCreator
MimeType=image/svg+xml;image/svg+xml-compressed;
X-KDE-Library=svgthumbnail
X-KDE-PluginInfo-EnabledByDefault=true
CacheThumbnail=true

View file

@ -44,6 +44,7 @@
#include <KTemporaryFile>
#include <KStandardDirs>
#include <KMenu>
#include <KServiceTypeTrader>
#include <kio/copyjob.h>
#include <kio/fileundomanager.h>
@ -369,6 +370,16 @@ void FolderView::init()
// Find out about network availability changes
connect(Solid::Networking::notifier(), SIGNAL(shouldConnect()), SLOT(networkAvailable()));
// Find out which thumbnail plugins are enabled by default
QStringList enabledByDefault;
const KService::List plugins = KServiceTypeTrader::self()->query(QLatin1String("ThumbCreator"));
foreach (const KSharedPtr<KService>& service, plugins) {
const bool enabled = service->property("X-KDE-PluginInfo-EnabledByDefault", QVariant::Bool).toBool();
if (enabled) {
enabledByDefault << service->desktopEntryName();
}
}
KConfigGroup cg = config();
m_customLabel = cg.readEntry("customLabel", "");
m_customIconSize = cg.readEntry("customIconSize", 0);
@ -379,7 +390,7 @@ void FolderView::init()
m_iconsLocked = cg.readEntry("iconsLocked", false);
m_alignToGrid = cg.readEntry("alignToGrid", false);
m_clickToView = cg.readEntry("clickForFolderPreviews", true);
m_previewPlugins = cg.readEntry("previewPlugins", QStringList() << "imagethumbnail" << "jpegthumbnail");
m_previewPlugins = cg.readEntry("previewPlugins", enabledByDefault);
m_sortDirsFirst = cg.readEntry("sortDirsFirst", true);
m_sortColumn = cg.readEntry("sortColumn", int(KDirModel::Name));
m_sortOrder = sortOrderStringToEnum(cg.readEntry("sortOrder", "ascending"));

View file

@ -40,6 +40,7 @@
#include <KIconEffect>
#include <KStringHandler>
#include <KFileItemDelegate>
#include <KServiceTypeTrader>
#include <KIO/NetAccess>
@ -106,7 +107,13 @@ IconView::IconView(QGraphicsWidget *parent)
m_animator = new Animator(this);
// set a default for popup preview plugins
m_popupPreviewPlugins = QStringList() << "imagethumbnail" << "jpegthumbnail";
const KService::List plugins = KServiceTypeTrader::self()->query(QLatin1String("ThumbCreator"));
foreach (const KSharedPtr<KService>& service, plugins) {
const bool enabled = service->property("X-KDE-PluginInfo-EnabledByDefault", QVariant::Bool).toBool();
if (enabled) {
m_popupPreviewPlugins << service->desktopEntryName();
}
}
int size = style()->pixelMetric(QStyle::PM_LargeIconSize);
setIconSize(QSize(size, size));

View file

@ -253,10 +253,7 @@ void ToolTipWidget::setContent()
void ToolTipWidget::startPreviewJob()
{
QStringList plugins;
plugins << "imagethumbnail" << "jpegthumbnail";
m_previewJob = KIO::filePreview(KFileItemList() << m_item, QSize(256, 256), &plugins);
m_previewJob = KIO::filePreview(KFileItemList() << m_item, QSize(256, 256));
connect(m_previewJob, SIGNAL(gotPreview(KFileItem,QPixmap)), SLOT(gotPreview(KFileItem,QPixmap)));
connect(m_previewJob, SIGNAL(finished(KJob*)), SLOT(previewJobFinished(KJob*)));
}