[gegl-qt] QML: Expose NodeViewOptions, update example
- From: Jon Nordby <jonnor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl-qt] QML: Expose NodeViewOptions, update example
- Date: Fri, 23 Sep 2011 17:08:32 +0000 (UTC)
commit 90850d175a62d98bf324f0b58f09f3868bc9fe2b
Author: Jon Nordby <jononor gmail com>
Date: Fri Sep 23 18:57:19 2011 +0200
QML: Expose NodeViewOptions, update example
examples/qml-basic/qml-basic.cpp | 1 +
examples/qml-basic/qml-basic.qml | 14 ++++++++++----
gegl-qt/nodeviewdeclarativeitem.cpp | 9 +++++++++
gegl-qt/nodeviewdeclarativeitem.h | 6 +++++-
gegl-qt/nodeviewoptions.h | 2 ++
plugins/qml-plugin/qml-plugin.cpp | 1 +
6 files changed, 28 insertions(+), 5 deletions(-)
---
diff --git a/examples/qml-basic/qml-basic.cpp b/examples/qml-basic/qml-basic.cpp
index a16fedc..5d07ae4 100644
--- a/examples/qml-basic/qml-basic.cpp
+++ b/examples/qml-basic/qml-basic.cpp
@@ -49,6 +49,7 @@ int main(int argc, char *argv[])
QDeclarativeView view;
// Expose the gegl node to QML, so it can be used there
view.rootContext()->setContextProperty("globalNode", nodeVariant);
+ view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
view.setSource(QUrl("qrc:/qml-basic.qml"));
view.show();
int retCode = a.exec();
diff --git a/examples/qml-basic/qml-basic.qml b/examples/qml-basic/qml-basic.qml
index 1e094c5..96b2e50 100644
--- a/examples/qml-basic/qml-basic.qml
+++ b/examples/qml-basic/qml-basic.qml
@@ -3,10 +3,16 @@ import GeglQt 0.1 as GeglQt
GeglQt.NodeView {
inputNode: globalNode
- x: 0
- y: 0
- width: 1000
- height: 1000
+
+ height: 500
+ width: 500
+
+ options: GeglQt.NodeViewOptions {
+ translationX: 0
+ translationY: 0
+ autoScalePolicy: GeglQt.NodeViewOptions.AutoScaleToView
+ autoCenterPolicy: GeglQt.NodeViewOptions.AutoCenterEnabled
+ }
}
diff --git a/gegl-qt/nodeviewdeclarativeitem.cpp b/gegl-qt/nodeviewdeclarativeitem.cpp
index 6e858bb..9ab6d4d 100644
--- a/gegl-qt/nodeviewdeclarativeitem.cpp
+++ b/gegl-qt/nodeviewdeclarativeitem.cpp
@@ -68,6 +68,15 @@ NodeViewDeclarativeItem::inputNodeVariant()
return qVariantFromValue(static_cast<void*>(inputNode()));
}
+void
+NodeViewDeclarativeItem::setOptions(GeglQt::NodeViewOptions* newOptions)
+{
+ if (newOptions != options()) {
+ priv->setOptions(newOptions);
+ Q_EMIT optionsChanged();
+ }
+}
+
NodeViewOptions *
NodeViewDeclarativeItem::options() const
{
diff --git a/gegl-qt/nodeviewdeclarativeitem.h b/gegl-qt/nodeviewdeclarativeitem.h
index af3439e..a844643 100644
--- a/gegl-qt/nodeviewdeclarativeitem.h
+++ b/gegl-qt/nodeviewdeclarativeitem.h
@@ -47,7 +47,10 @@ public:
Q_PROPERTY(QVariant inputNode READ inputNodeVariant WRITE setInputNodeVariant NOTIFY inputNodeChanged)
- Q_INVOKABLE GeglQt::NodeViewOptions *options() const;
+ GeglQt::NodeViewOptions *options() const;
+ void setOptions(GeglQt::NodeViewOptions* newOptions);
+
+ Q_PROPERTY(GeglQt::NodeViewOptions * options READ options WRITE setOptions NOTIFY optionsChanged)
//! reimpl
void geometryChanged(const QRectF & newGeometry, const QRectF & oldGeometry);
@@ -56,6 +59,7 @@ public:
Q_SIGNALS:
void inputNodeChanged();
+ void optionsChanged();
private Q_SLOTS:
void invalidate(QRectF rect);
diff --git a/gegl-qt/nodeviewoptions.h b/gegl-qt/nodeviewoptions.h
index a6a847f..a50c1b1 100644
--- a/gegl-qt/nodeviewoptions.h
+++ b/gegl-qt/nodeviewoptions.h
@@ -29,6 +29,8 @@ namespace GeglQt
class NodeViewOptions : public QObject
{
Q_OBJECT
+ Q_ENUMS(AutoCenter)
+ Q_ENUMS(AutoScale)
public:
explicit NodeViewOptions(QObject *parent = 0);
diff --git a/plugins/qml-plugin/qml-plugin.cpp b/plugins/qml-plugin/qml-plugin.cpp
index b36f074..f3102fc 100644
--- a/plugins/qml-plugin/qml-plugin.cpp
+++ b/plugins/qml-plugin/qml-plugin.cpp
@@ -15,6 +15,7 @@ QmlPlugin::QmlPlugin(QObject *parent) :
void QmlPlugin::registerTypes(const char *uri)
{
qmlRegisterType<NodeViewDeclarativeItem>(uri, 0, 1, "NodeView");
+ qmlRegisterType<NodeViewOptions>(uri, 0, 1, "NodeViewOptions");
}
Q_EXPORT_PLUGIN2(qmlplugin, QmlPlugin)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]