[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.4/kdelibs/plasma
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2010-02-03 10:30:31
Message-ID: 1265193031.306515.300.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1084578 by aseigo:

for consistency use khns3 dialog; look ma, no more memory leaks as a bonus!
BUG:225360


 M  +1 -1      CMakeLists.txt  
 M  +10 -26    private/packages.cpp  
 M  +3 -7      private/packages_p.h  


--- branches/KDE/4.4/kdelibs/plasma/CMakeLists.txt #1084577:1084578
@@ -208,7 +208,7 @@
 
 kde4_add_library(plasma SHARED ${plasma_LIB_SRCS})
 
-target_link_libraries(plasma ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} knewstuff2
+target_link_libraries(plasma ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} knewstuff3
                              ${QT_QTUITOOLS_LIBRARY} ${QT_QTWEBKIT_LIBRARY}
                              kdnssd threadweaver ${KDE4_SOLID_LIBS} )
 
--- branches/KDE/4.4/kdelibs/plasma/private/packages.cpp #1084577:1084578
@@ -29,7 +29,7 @@
 #include <klocale.h>
 #include <kmessagebox.h>
 
-#include <knewstuff2/engine.h>
+#include <knewstuff3/downloaddialog.h>
 
 #include "plasma/private/wallpaper_p.h"
 
@@ -37,8 +37,7 @@
 {
 
 PlasmoidPackage::PlasmoidPackage(QObject *parent)
-    : Plasma::PackageStructure(parent, QString("Plasmoid")),
-      m_knsEngine(0)
+    : Plasma::PackageStructure(parent, QString("Plasmoid"))
 {
     addDirectoryDefinition("images", "images/", i18n("Images"));
     QStringList mimetypes;
@@ -70,13 +69,9 @@
 
 PlasmoidPackage::~PlasmoidPackage()
 {
-    delete m_knsEngine;
+    delete m_knsDialog.data();
 }
 
-void PlasmoidPackage::deleteNewStuffEngine()
-{
-}
-
 void PlasmoidPackage::pathChanged()
 {
     KDesktopFile config(path() + "/metadata.desktop");
@@ -90,27 +85,16 @@
 
 void PlasmoidPackage::createNewWidgetBrowser(QWidget *parent)
 {
-//FIXME: memory leak below: it creates a new KNS::Engine every time it's called
-//       however, due to issues in the KNS2 library, reusing the same engine causes crashes :(
-//    if (!m_knsEngine) {
-        m_knsEngine = new KNS::Engine(parent);
-        kDebug() << "creating new kns engine" << m_knsEngine;
-        if (!m_knsEngine->init("plasmoids.knsrc")) {
-            delete m_knsEngine;
-            m_knsEngine = 0;
-            return;
-        }
-//    }
+    KNS3::DownloadDialog *knsDialog = m_knsDialog.data();
+    if (!knsDialog) {
+        m_knsDialog = knsDialog = new KNS3::DownloadDialog("plasmoids.knsrc", parent);
+        connect(knsDialog, SIGNAL(accepted()), this, SIGNAL(newWidgetBrowserFinished()));
+    }
 
-    kDebug() << "successful kns engine" << m_knsEngine;
-    m_knsEngine->downloadDialog(this, SLOT(widgetBrowserFinished()));
+    knsDialog->show();
+    knsDialog->raise();
 }
 
-void PlasmoidPackage::widgetBrowserFinished()
-{
-    emit newWidgetBrowserFinished();
-}
-
 ThemePackage::ThemePackage(QObject *parent)
     : Plasma::PackageStructure(parent, QString("Plasma Theme"))
 {
--- branches/KDE/4.4/kdelibs/plasma/private/packages_p.h #1084577:1084578
@@ -24,9 +24,9 @@
 #include "plasma/wallpaper.h"
 #include "plasma/plasma.h"
 
-namespace KNS
+namespace KNS3
 {
-    class Engine;
+    class DownloadDialog;
 } // namespace KNS
 
 namespace Plasma
@@ -43,12 +43,8 @@
 protected:
     void pathChanged();
 
-protected Q_SLOTS:
-    void widgetBrowserFinished();
-    void deleteNewStuffEngine();
-
 private:
-    KNS::Engine *m_knsEngine;
+    QWeakPointer<KNS3::DownloadDialog> m_knsDialog;
 };
 
 class ThemePackage : public PackageStructure
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic