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

List:       kde-commits
Subject:    [pairs/frameworks] game: first step to move away from QDeclarative
From:       Marco Calignano <marco.calignano () gmail ! com>
Date:       2014-09-15 20:16:49
Message-ID: E1XTchd-00040W-B7 () scm ! kde ! org
[Download RAW message or body]

Git commit 64e28ecaf59c4d20fd33bcb627395d5304695f96 by Marco Calignano.
Committed on 10/07/2014 at 09:35.
Pushed by calignano into branch 'frameworks'.

first step to move away from QDeclarative

M  +8    -7    game/pairs.cpp
M  +4    -2    game/pairs.h
M  +13   -17   game/pairsview.cpp
M  +3    -2    game/pairsview.h
M  +3    -3    game/themeiconsprovider.h

http://commits.kde.org/pairs/64e28ecaf59c4d20fd33bcb627395d5304695f96

diff --git a/game/pairs.cpp b/game/pairs.cpp
index 64f7ef1..a7503e0 100644
--- a/game/pairs.cpp
+++ b/game/pairs.cpp
@@ -38,19 +38,20 @@
 #include <kstandarddirs.h>
 #include <KDE/KLocale>
 #include <KApplication>
-
+#include <QQmlEngine>
 #include "playersmodel.h"
 #include <kstatusbar.h>
 
 Pairs::Pairs(const QString &file)
-    : KMainWindow()
-    , m_view(new PairsView(this, file))
+    : QQuickWindow()
+    , m_engine(new QQmlEngine(this))
+    , m_view(new PairsView(this, m_engine, file))
 {
-    setWindowIcon(KIcon("pairs"));
-    setWindowTitle(qAppName());
-    setCentralWidget(m_view);
+    setIcon(QIcon("pairs"));
+    setTitle(qAppName());
+//    setCentralWidget(m_view);
     
-    setAutoSaveSettings();
+    //setAutoSaveSettings();
 }
 
 Pairs::~Pairs()
diff --git a/game/pairs.h b/game/pairs.h
index e394a73..9968fb2 100644
--- a/game/pairs.h
+++ b/game/pairs.h
@@ -32,9 +32,10 @@
 
 namespace Phonon { class MediaObject; }
 class PairsView;
-class KToggleAction;
+#include <QQuickWindow>
 
-class Pairs : public KMainWindow
+class QQmlEngine;
+class Pairs : public QQuickWindow
 {
     Q_OBJECT
 public:
@@ -52,6 +53,7 @@ public:
     virtual QSize sizeHint() const { return QSize(800,500); }
     
 private:
+    QQmlEngine *m_engine;
     PairsView *m_view;
     QString m_right;
     QString m_wrong;
diff --git a/game/pairsview.cpp b/game/pairsview.cpp
index 641d29e..ecf36d1 100644
--- a/game/pairsview.cpp
+++ b/game/pairsview.cpp
@@ -34,11 +34,11 @@
 #include <QTimer>
 #include <QFile>
 #include <QSvgRenderer>
-#include <QDeclarativeEngine>
-#include <QDeclarativeComponent>
-#include <QDeclarativeItem>
+#include <QQmlEngine>
+#include <QQmlComponent>
+#include <QQuickItem>
 #include <QCoreApplication>
-#include <QDeclarativeContext>
+#include <QQmlContext>
 // #ifndef QT_NO_OPENGL
 //     #include <QGLWidget>
 // #endif
@@ -55,19 +55,15 @@
 #include <KStandardDirs>
 #include <kdeclarative.h>
 
-PairsView::PairsView(QWidget *parent, const QString &file)
-    : QDeclarativeView(parent)
+PairsView::PairsView(QWindow *parent, QQmlEngine *pengine, const QString &file)
+    : QQuickView(pengine, parent)
     , m_last(0)
     , m_knsDialog(0)
     , m_itemsPerRow(1)
 {
-// #ifndef QT_NO_OPENGL
-//     setViewport(new QGLWidget);
-// #endif
-    
     m_model = new ThemesModel(this, file);
     m_players = new PlayersModel(this);
-    m_themeImagesProvider = new ThemeIconsProvider(QDeclarativeImageProvider::Pixmap, m_model);
+    m_themeImagesProvider = new ThemeIconsProvider(QQuickImageProvider::Pixmap, m_model);
     
     m_timer = new QTimer(this);
     connect(m_timer, SIGNAL(timeout()), this, SLOT(update()));
@@ -83,14 +79,14 @@ PairsView::PairsView(QWidget *parent, const QString &file)
     rootContext()->setContextProperty("playersModel", m_players);
     engine()->addImageProvider("theme", m_themeImagesProvider);
 
-
+/* TODO
     KDeclarative m_kdeclarative;
     m_kdeclarative.setDeclarativeEngine(engine());
     m_kdeclarative.initialize();
     //binds things like kconfig and icons
     m_kdeclarative.setupBindings();
 
-
+*/
     setSource(QUrl("qrc:/qml/Main.qml"));
     Q_ASSERT(errors().isEmpty());
     
@@ -169,7 +165,7 @@ void PairsView::newGame(const PairsTheme* theme, const QString& language, const
     m_cards.clear();
     QList<CardItem*> cards;
     
-    QDeclarativeItem* cardsParent=rootObject()->findChild<QDeclarativeItem*>("board");
+    QQuickItem* cardsParent=findChild<QQuickItem*>("board");
     playersModel()->resetPlayers();
     Q_ASSERT(cardsParent);
     
@@ -249,7 +245,7 @@ void PairsView::newGame(const PairsTheme* theme, const QString& language, const
 void PairsView::checkGameOver()
 {
     if(isGameOver()) {
-        QObject* cardsContext=rootObject()->findChild<QObject*>("board");
+        QObject* cardsContext=findChild<QObject*>("board");
         Q_ASSERT(cardsContext);
         cardsContext->setProperty("isGameOver", true);
         stopGame();
@@ -271,7 +267,7 @@ void PairsView::download()
 
 void PairsView::resizeEvent(QResizeEvent* ev)
 {
-    QDeclarativeView::resizeEvent(ev);
+    QQuickView::resizeEvent(ev);
     
     m_resizeTimer->start(100);
 }
@@ -285,7 +281,7 @@ void PairsView::setRowSize(int itemsPerRow)
 
 void PairsView::reorganizeCards(bool starting)
 {
-    QDeclarativeItem* cardsParent=rootObject()->findChild<QDeclarativeItem*>("board");
+    QQuickItem* cardsParent=findChild<QQuickItem*>("board");
     QSizeF s(cardsParent->width(), cardsParent->height());
     
     Q_ASSERT(m_itemsPerRow>0);
diff --git a/game/pairsview.h b/game/pairsview.h
index 1e2a15a..3295da0 100644
--- a/game/pairsview.h
+++ b/game/pairsview.h
@@ -34,6 +34,7 @@ class PlayersModel;
 class ThemesModel;
 class PairsTheme;
 class CardItem;
+class QQmlEngine;
 class ThemeIconsProvider;
 class PairsView : public QQuickView
 {
@@ -43,7 +44,7 @@ public:
     /**
      * Default constructor
      */
-    PairsView(QWidget *parent, const QString &file = "");
+    PairsView(QWindow *parent, QQmlEngine *pengine, const QString &file = "");
 
     /**
      * Destructor
@@ -61,7 +62,7 @@ public:
     Q_SCRIPTABLE void newGame(int row, const QString& cardType);
     Q_SCRIPTABLE QString language(){return m_language;};
 	
-    virtual void resizeEvent(QResizeEvent* ev);
+//    virtual void resizeEvent(QResizeEvent* ev);
 signals:
     void gameOver();
     void currentPlayerChanged();
diff --git a/game/themeiconsprovider.h b/game/themeiconsprovider.h
index 6ec0f11..88422fa 100644
--- a/game/themeiconsprovider.h
+++ b/game/themeiconsprovider.h
@@ -23,14 +23,14 @@
 #ifndef THEMEICONSPROVIDER_H
 #define THEMEICONSPROVIDER_H
 
-#include <QDeclarativeImageProvider>
+#include <QQuickImageProvider>
 #include "pairstheme.h"
 
 class ThemesModel;
-class ThemeIconsProvider : public QDeclarativeImageProvider
+class ThemeIconsProvider : public QQuickImageProvider
 {
     public:
-        ThemeIconsProvider(QDeclarativeImageProvider::ImageType type, ThemesModel* themes);
+        ThemeIconsProvider(QQuickImageProvider::ImageType type, ThemesModel* themes);
         ~ThemeIconsProvider();
         QPixmap requestPixmap(const QString& id, QSize* size, const QSize& requestedSize);
 

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

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