[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