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

List:       kde-commits
Subject:    [calligra/frameworks] qtquick: Port QtQuick items to load words/stage parts with KoJsonTrader (untes
From:       Friedrich W. H. Kossebau <kossebau () kde ! org>
Date:       2015-03-31 22:08:20
Message-ID: E1Yd4Ka-0007FW-Rf () scm ! kde ! org
[Download RAW message or body]

Git commit e3bbe9144e6964600df4039e3521f4539821b8ef by Friedrich W. H. Kossebau.
Committed on 31/03/2015 at 22:05.
Pushed by kossebau into branch 'frameworks'.

Port QtQuick items to load words/stage parts with KoJsonTrader (untested)

M  +13   -3    qtquick/CQPresentationCanvas.cpp
M  +13   -3    qtquick/CQTextDocumentCanvas.cpp

http://commits.kde.org/calligra/e3bbe9144e6964600df4039e3521f4539821b8ef

diff --git a/qtquick/CQPresentationCanvas.cpp b/qtquick/CQPresentationCanvas.cpp
index a3fb674..365579f 100644
--- a/qtquick/CQPresentationCanvas.cpp
+++ b/qtquick/CQPresentationCanvas.cpp
@@ -29,6 +29,8 @@
 
 #include <QStyleOptionGraphicsItem>
 
+#include <KoJsonTrader.h>
+#include <KoDocumentEntry.h>
 #include <KoDocumentResourceManager.h>
 #include <KoShapeManager.h>
 #include <KoSelection.h>
@@ -244,13 +246,21 @@ void CQPresentationCanvas::setShapeTransparency(qreal newTransparency)
 void CQPresentationCanvas::openFile(const QString& uri)
 {
     emit loadingBegun();
-    KService::Ptr service = KService::serviceByDesktopName("stagepart");
-    if (service.isNull()) {
+
+    KoDocumentEntry entry;
+    Q_FOREACH (QPluginLoader *loader, KoJsonTrader::self()->query("Calligra/Part", QString())) {
+        if (loader->fileName().contains(QLatin1String("stagepart"))) {
+            entry = KoDocumentEntry(loader);
+            break;
+        }
+    }
+    if (entry.isEmpty()) {
         qWarning("Unable to load Stage plugin, aborting!");
         return;
     }
 
-    d->part = service->createInstance<KoPart>(this);
+    // QT5TODO: ownership of d->part unclear
+    d->part = entry.createKoPart();
     d->document = dynamic_cast<KPrDocument*>(d->part->document());
     d->document->setAutoSave(0);
     d->document->setCheckAutoSaveFile(false);
diff --git a/qtquick/CQTextDocumentCanvas.cpp b/qtquick/CQTextDocumentCanvas.cpp
index a94eab9..3a65fdd 100644
--- a/qtquick/CQTextDocumentCanvas.cpp
+++ b/qtquick/CQTextDocumentCanvas.cpp
@@ -29,6 +29,8 @@
 
 #include "gemini/ViewModeSwitchEvent.h"
 
+#include <KoJsonTrader.h>
+#include <KoDocumentEntry.h>
 #include <KoDocument.h>
 #include <KoDocumentResourceManager.h>
 #include <KoPart.h>
@@ -231,13 +233,21 @@ CQTextDocumentCanvas::~CQTextDocumentCanvas()
 void CQTextDocumentCanvas::openFile(const QString& uri)
 {
     emit loadingBegun();
-    KService::Ptr service = KService::serviceByDesktopName("wordspart");
-    if (service.isNull()) {
+
+    KoDocumentEntry entry;
+    Q_FOREACH (QPluginLoader *loader, KoJsonTrader::self()->query("Calligra/Part", QString())) {
+        if (loader->fileName().contains(QLatin1String("wordspart"))) {
+            entry = KoDocumentEntry(loader);
+            break;
+        }
+    }
+    if (entry.isEmpty()) {
         qWarning("Unable to load Words plugin, aborting!");
         return;
     }
 
-    d->part = service->createInstance<KoPart>(this);
+    // QT5TODO: ownership of d->part unclear
+    d->part = entry.createKoPart();
     KoDocument* document = d->part->document();
     document->setAutoSave(0);
     document->setCheckAutoSaveFile(false);

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

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