]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Port ConfigurePreviewPluginDialog away from KLibrary, KIO::NetAccess::del and ThumbCr...
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Sat, 24 Jan 2015 22:07:30 +0000 (23:07 +0100)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Sat, 24 Jan 2015 22:07:30 +0000 (23:07 +0100)
src/settings/general/configurepreviewplugindialog.cpp
src/settings/general/configurepreviewplugindialog.h

index c81e666c829a0730b9a484bc0faef45b2fb326eb..eb9ad010c039673bc47a624c07b0554f64b21057 100644 (file)
 
 #include "configurepreviewplugindialog.h"
 
 
 #include "configurepreviewplugindialog.h"
 
-#include <KLibrary>
+#include <KPluginLoader>
 #include <KLocalizedString>
 #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 <QUrl>
+#include <QLibrary>
+#include <QVBoxLayout>
+#include <QStandardPaths>
 
 ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString& pluginName,
                                                            const QString& desktopEntryName,
                                                            QWidget* parent) :
 
 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) {
         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);
 
     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
index 5a3f5354a89bc5bad66567798d13480c027547d3..02a0cde34aedf2077903a10f0daa14b437d02619 100644 (file)
@@ -22,8 +22,6 @@
 
 #include <KDialog>
 
 
 #include <KDialog>
 
-class ThumbCreatorV2;
-
 /**
  * @brief Dialog for configuring preview-plugins.
  */
 /**
  * @brief Dialog for configuring preview-plugins.
  */
@@ -39,17 +37,10 @@ public:
      *                         widget.
      * @param parent           Parent widget.
      */
      *                         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
 };
 
 #endif