diff options
| author | Emmanuel Pescosta <[email protected]> | 2015-01-24 23:07:30 +0100 |
|---|---|---|
| committer | Emmanuel Pescosta <[email protected]> | 2015-01-24 23:07:30 +0100 |
| commit | 617e1b378b354c513bac638ded47addc1c7204a5 (patch) | |
| tree | 091417787c6d4bf45ef9a93dcec20c125251ba7e /src/settings/general/configurepreviewplugindialog.cpp | |
| parent | 088b5160576c8ed317619855a4c9dc19a69d025b (diff) | |
Port ConfigurePreviewPluginDialog away from KLibrary, KIO::NetAccess::del and ThumbCreatorV2
Diffstat (limited to 'src/settings/general/configurepreviewplugindialog.cpp')
| -rw-r--r-- | src/settings/general/configurepreviewplugindialog.cpp | 71 |
1 files changed, 34 insertions, 37 deletions
diff --git a/src/settings/general/configurepreviewplugindialog.cpp b/src/settings/general/configurepreviewplugindialog.cpp index c81e666c8..eb9ad010c 100644 --- a/src/settings/general/configurepreviewplugindialog.cpp +++ b/src/settings/general/configurepreviewplugindialog.cpp @@ -19,28 +19,29 @@ #include "configurepreviewplugindialog.h" -#include <KLibrary> +#include <KPluginLoader> #include <KLocalizedString> -#include <KIO/NetAccess> -#include <kio/thumbcreator.h> +#include <KJobWidgets> +#include <KIO/JobUiDelegate> +#include <KIO/DeleteJob> +#include <KIO/ThumbCreator> -#include <QApplication> -#include <QDir> -#include <QVBoxLayout> #include <QUrl> +#include <QLibrary> +#include <QVBoxLayout> +#include <QStandardPaths> ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString& pluginName, const QString& desktopEntryName, QWidget* parent) : - KDialog(parent), - m_configurationWidget(0), - m_previewPlugin(0) + KDialog(parent) { - KLibrary library(desktopEntryName); - if (library.load()) { - newCreator create = (newCreator)library.resolveFunction("new_creator"); + QSharedPointer<ThumbCreator> previewPlugin; + const QString pluginPath = KPluginLoader::findPlugin(desktopEntryName); + if (!pluginPath.isEmpty()) { + newCreator create = (newCreator)QLibrary::resolve(pluginPath, "new_creator"); if (create) { - m_previewPlugin = dynamic_cast<ThumbCreatorV2*>(create()); + previewPlugin.reset(dynamic_cast<ThumbCreator*>(create())); } } @@ -49,31 +50,27 @@ ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString& plugin setButtons(Ok | Cancel); setDefaultButton(Ok); - QWidget* mainWidget = new QWidget(this); - mainWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); - QVBoxLayout* layout = new QVBoxLayout(mainWidget); - if (m_previewPlugin) { - m_configurationWidget = m_previewPlugin->createConfigurationWidget(); - layout->addWidget(m_configurationWidget); - } - layout->addStretch(1); + if (previewPlugin) { + auto mainWidget = new QWidget(this); + mainWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); + setMainWidget(mainWidget); - setMainWidget(mainWidget); + auto configurationWidget = previewPlugin->createConfigurationWidget(); + configurationWidget->setParent(mainWidget); - connect(this, &ConfigurePreviewPluginDialog::okClicked, this, &ConfigurePreviewPluginDialog::slotOk); -} + auto layout = new QVBoxLayout(mainWidget); + layout->addWidget(configurationWidget); + layout->addStretch(); -ConfigurePreviewPluginDialog::~ConfigurePreviewPluginDialog() -{ -} + connect(this, &ConfigurePreviewPluginDialog::okClicked, this, [=] { + // TODO: It would be great having a mechanism to tell PreviewJob that only previews + // for a specific MIME-type should be regenerated. As this is not available yet we + // delete the whole thumbnails directory. + previewPlugin->writeConfiguration(configurationWidget); -void ConfigurePreviewPluginDialog::slotOk() -{ - m_previewPlugin->writeConfiguration(m_configurationWidget); - // TODO: It would be great having a mechanism to tell PreviewJob that only previews - // for a specific MIME-type should be regenerated. As this is not available yet we - // delete the whole thumbnails directory. - QApplication::changeOverrideCursor(Qt::BusyCursor); - KIO::NetAccess::del(QUrl::fromLocalFile(QDir::homePath() + "/.thumbnails/"), this); - QApplication::restoreOverrideCursor(); -} + // http://specifications.freedesktop.org/thumbnail-spec/thumbnail-spec-latest.html#DIRECTORY + const QString thumbnailsPath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + QLatin1String("/thumbnails/"); + KIO::del(QUrl::fromLocalFile(thumbnailsPath), KIO::HideProgressInfo); + }); + } +}
\ No newline at end of file |
