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 | |
| parent | 088b5160576c8ed317619855a4c9dc19a69d025b (diff) | |
Port ConfigurePreviewPluginDialog away from KLibrary, KIO::NetAccess::del and ThumbCreatorV2
Diffstat (limited to 'src/settings/general')
| -rw-r--r-- | src/settings/general/configurepreviewplugindialog.cpp | 71 | ||||
| -rw-r--r-- | src/settings/general/configurepreviewplugindialog.h | 17 |
2 files changed, 38 insertions, 50 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 diff --git a/src/settings/general/configurepreviewplugindialog.h b/src/settings/general/configurepreviewplugindialog.h index 5a3f5354a..02a0cde34 100644 --- a/src/settings/general/configurepreviewplugindialog.h +++ b/src/settings/general/configurepreviewplugindialog.h @@ -22,8 +22,6 @@ #include <KDialog> -class ThumbCreatorV2; - /** * @brief Dialog for configuring preview-plugins. */ @@ -39,17 +37,10 @@ public: * widget. * @param parent Parent widget. */ - explicit ConfigurePreviewPluginDialog(const QString& pluginName, - const QString& desktopEntryName, - QWidget* parent = 0); - virtual ~ConfigurePreviewPluginDialog(); - -private slots: - void slotOk(); - -private: - QWidget* m_configurationWidget; - ThumbCreatorV2* m_previewPlugin; + ConfigurePreviewPluginDialog(const QString& pluginName, + const QString& desktopEntryName, + QWidget* parent); + virtual ~ConfigurePreviewPluginDialog() = default; }; #endif |
