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

List:       kde-commits
Subject:    [calligra] active: First step towards removing hard runtime dependency on Plasma Metadatamodels
From:       Shantanu Tushar <shaan7in () gmail ! com>
Date:       2012-06-11 19:04:33
Message-ID: 20120611190433.80A6FA60BB () git ! kde ! org
[Download RAW message or body]

Git commit 105146c7114882bde6e1adf7e28376892c18a070 by Shantanu Tushar.
Committed on 11/06/2012 at 18:39.
Pushed by shantanu into branch 'master'.

First step towards removing hard runtime dependency on Plasma Metadatamodels

M  +13   -16   active/qml/RecentFiles.qml
M  +18   -0    active/src/MainWindow.cpp
M  +2    -0    active/src/MainWindow.h

http://commits.kde.org/calligra/105146c7114882bde6e1adf7e28376892c18a070

diff --git a/active/qml/RecentFiles.qml b/active/qml/RecentFiles.qml
index 019a3bb..8b169ec 100644
--- a/active/qml/RecentFiles.qml
+++ b/active/qml/RecentFiles.qml
@@ -22,7 +22,6 @@
 import QtQuick 1.0
 import CalligraActive 1.0
 import org.kde.plasma.core 0.1 as PlasmaCore
-import org.kde.metadatamodels 0.1 as MetadataModels
 import org.kde.plasma.components 0.1 as PlasmaComponents
 
 ListView {
@@ -36,21 +35,8 @@ ListView {
 
     PlasmaCore.SortFilterModel {
         id: metadataModel
-        sourceModel: MetadataModels.MetadataModel {
-            id: metadataInternalModel
-            resourceType: "nfo:" + typeFilter
-            sortOrder: Qt.AscendingOrder
-
-            onResourceTypeChanged: {
-                if (resourceType == "nfo:PaginatedTextDocument") {
-                    metadataModel.filterRole = "mimeType";
-                    metadataModel.filterRegExp = \
                "application/vnd.oasis.opendocument.text";
-                } else {
-                    metadataModel.filterRole = "";
-                    metadataModel.filterRegExp = "";
-                }
-            }
-        }
+        sourceModel: metadataInternalModel
+        sortOrder: Qt.AscendingOrder
     }
 
     model: metadataModel
@@ -74,5 +60,16 @@ ListView {
 
             onClicked: homeScreen.openDocument(model["url"]);
         }
+
+    onTypeFilterChanged: {
+        metadataInternalModel.resourceType = "nfo:" + typeFilter;
+        if (typeFilter == "PaginatedTextDocument") {
+            metadataModel.filterRole = "mimeType";
+            metadataModel.filterRegExp = "application/vnd.oasis.opendocument.text";
+        } else {
+            metadataModel.filterRole = "";
+            metadataModel.filterRegExp = "";
+        }
+    }
 }
 
diff --git a/active/src/MainWindow.cpp b/active/src/MainWindow.cpp
index 4343381..e92d9d3 100644
--- a/active/src/MainWindow.cpp
+++ b/active/src/MainWindow.cpp
@@ -27,6 +27,7 @@
 
 #include <KDE/KGlobal>
 #include <KDE/KStandardDirs>
+#include <KDE/KDebug>
 
 #include <QDeclarativeView>
 #include <QDeclarativeContext>
@@ -75,6 +76,7 @@ MainWindow::MainWindow (QWidget* parent)
     }
 
     m_view->rootContext()->setContextProperty ("mainwindow", this);
+    loadMetadataModel();
 
     m_view->setSource (QUrl::fromLocalFile (CalligraActive::Global::installPrefix()
                                             + \
"/share/calligraactive/qml/HomeScreen.qml")); @@ -108,6 +110,22 @@ void \
MainWindow::openFileDialog()  
 }
 
+void MainWindow::loadMetadataModel()
+{
+    if (!m_view) {
+        return;
+    }
+    QDeclarativeComponent component(m_view->engine());
+    component.setData("import org.kde.metadatamodels 0.1\nMetadataModel { sortOrder: \
Qt.AscendingOrder }\n", QUrl()); +
+    if (!component.isError()) {
+        m_view->rootContext()->setContextProperty("metadataInternalModel", \
component.create()); +    } else {
+        kDebug() << "Plasma Active Metadata Models are not installed, using built in \
model"; +        m_view->rootContext()->setContextProperty("metadataInternalModel", \
false); +    }
+}
+
 MainWindow::~MainWindow()
 {
 }
diff --git a/active/src/MainWindow.h b/active/src/MainWindow.h
index de72824..c7f7fd5 100644
--- a/active/src/MainWindow.h
+++ b/active/src/MainWindow.h
@@ -42,6 +42,8 @@ private:
     KDeclarative kdeclarative;
     QString documentPath;
 
+    void loadMetadataModel();
+
 private slots:
     void adjustWindowSize (QSize size);
     void checkForAndOpenDocument();


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

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