From 4fc790c377f4ca154ea5fc8beca6fd9078edf2ee Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Tue, 4 Jun 2013 15:35:59 -0400 Subject: Introduce UnityMenuModel and UnityQmlMenuModel UnityMenuModel serves the same purpose as QMenuModel, but it is based on GtkMenuTracker and has a different API. GtkMenuTracker is maintained in gtk, but meant to be copy-and-pasted into other consumers of menu models. It does not introduce new dependencies. It does give us access to all the features that GMenuModel has. --- libqmenumodel/QMenuModel/plugin.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libqmenumodel/QMenuModel') diff --git a/libqmenumodel/QMenuModel/plugin.cpp b/libqmenumodel/QMenuModel/plugin.cpp index ee05fff..0205102 100644 --- a/libqmenumodel/QMenuModel/plugin.cpp +++ b/libqmenumodel/QMenuModel/plugin.cpp @@ -22,6 +22,7 @@ #include "qdbusmenumodel.h" #include "qdbusactiongroup.h" #include "qstateaction.h" +#include "unityqmlmenumodel.h" #include @@ -36,6 +37,5 @@ void QMenuModelQmlPlugin::registerTypes(const char *uri) qmlRegisterType(uri, 0, 1, "QDBusMenuModel"); qmlRegisterType(uri, 0, 1, "QDBusActionGroup"); - + qmlRegisterType(uri, 0, 1, "UnityMenuModel"); } - -- cgit v1.2.3 From 050958c58924934b10cf3a6272cff3ebe867f1dd Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Mon, 24 Jun 2013 17:04:57 -0400 Subject: Remove unityqmlmenumodel It was used for calling ::init() on the unitymenumodel when parsing finished (so that unitymenumodel wouldn't have to implement QQmlParserStatus). Now that init() is gone, unityqmlmenumodel doesn't serve any purpose. --- libqmenumodel/QMenuModel/plugin.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libqmenumodel/QMenuModel') diff --git a/libqmenumodel/QMenuModel/plugin.cpp b/libqmenumodel/QMenuModel/plugin.cpp index 0205102..f529c0a 100644 --- a/libqmenumodel/QMenuModel/plugin.cpp +++ b/libqmenumodel/QMenuModel/plugin.cpp @@ -22,7 +22,7 @@ #include "qdbusmenumodel.h" #include "qdbusactiongroup.h" #include "qstateaction.h" -#include "unityqmlmenumodel.h" +#include "unitymenumodel.h" #include @@ -37,5 +37,5 @@ void QMenuModelQmlPlugin::registerTypes(const char *uri) qmlRegisterType(uri, 0, 1, "QDBusMenuModel"); qmlRegisterType(uri, 0, 1, "QDBusActionGroup"); - qmlRegisterType(uri, 0, 1, "UnityMenuModel"); + qmlRegisterType(uri, 0, 1, "UnityMenuModel"); } -- cgit v1.2.3 From 6aaafd55328c1860fd1b734fa29ff77673538a2b Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Tue, 25 Jun 2013 15:39:11 -0400 Subject: unitymenumodel: add support for icons For now, this includes themed icons, file icons, and icons send as raw data. --- libqmenumodel/QMenuModel/CMakeLists.txt | 2 +- libqmenumodel/QMenuModel/plugin.cpp | 6 ++++++ libqmenumodel/QMenuModel/plugin.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'libqmenumodel/QMenuModel') diff --git a/libqmenumodel/QMenuModel/CMakeLists.txt b/libqmenumodel/QMenuModel/CMakeLists.txt index 7367e18..78e062b 100644 --- a/libqmenumodel/QMenuModel/CMakeLists.txt +++ b/libqmenumodel/QMenuModel/CMakeLists.txt @@ -19,7 +19,7 @@ target_link_libraries(qmenumodel-qml ${GIO_LDFLAGS} ) -qt5_use_modules(qmenumodel-qml Qml Widgets) +qt5_use_modules(qmenumodel-qml Qml Quick) execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/qmldir" "${CMAKE_CURRENT_BINARY_DIR}/qmldir") diff --git a/libqmenumodel/QMenuModel/plugin.cpp b/libqmenumodel/QMenuModel/plugin.cpp index f529c0a..0629099 100644 --- a/libqmenumodel/QMenuModel/plugin.cpp +++ b/libqmenumodel/QMenuModel/plugin.cpp @@ -23,9 +23,15 @@ #include "qdbusactiongroup.h" #include "qstateaction.h" #include "unitymenumodel.h" +#include "unitythemediconprovider.h" #include +void QMenuModelQmlPlugin::initializeEngine(QQmlEngine *engine, const char *uri) +{ + engine->addImageProvider("theme", new UnityThemedIconProvider); +} + void QMenuModelQmlPlugin::registerTypes(const char *uri) { qmlRegisterUncreatableType(uri, 0, 1, "QMenuModel", diff --git a/libqmenumodel/QMenuModel/plugin.h b/libqmenumodel/QMenuModel/plugin.h index fc732d2..3474139 100644 --- a/libqmenumodel/QMenuModel/plugin.h +++ b/libqmenumodel/QMenuModel/plugin.h @@ -28,6 +28,7 @@ class QMenuModelQmlPlugin : public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "com.canonical.qmenumodel") public: + void initializeEngine(QQmlEngine *engine, const char *uri); void registerTypes(const char *uri); }; -- cgit v1.2.3 From d1c96de04570d8365c2ab2fde597ccd21c7a3dc2 Mon Sep 17 00:00:00 2001 From: Nick Dedekind Date: Tue, 30 Jul 2013 12:23:42 +0200 Subject: Add action role (replacing actionState role) --- libqmenumodel/QMenuModel/plugin.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libqmenumodel/QMenuModel') diff --git a/libqmenumodel/QMenuModel/plugin.cpp b/libqmenumodel/QMenuModel/plugin.cpp index 0629099..c1a5e40 100644 --- a/libqmenumodel/QMenuModel/plugin.cpp +++ b/libqmenumodel/QMenuModel/plugin.cpp @@ -22,6 +22,7 @@ #include "qdbusmenumodel.h" #include "qdbusactiongroup.h" #include "qstateaction.h" +#include "unitymenuaction.h" #include "unitymenumodel.h" #include "unitythemediconprovider.h" @@ -40,6 +41,8 @@ void QMenuModelQmlPlugin::registerTypes(const char *uri) "QStateAction must be created by QDBusActionGroup::action"); qmlRegisterUncreatableType(uri, 0, 1, "DBus", "DBus is only a namespace"); + qmlRegisterUncreatableType(uri, 0, 1, "UnityMenuAction", + "UnityMenuAction must be created by UnityMenuModel"); qmlRegisterType(uri, 0, 1, "QDBusMenuModel"); qmlRegisterType(uri, 0, 1, "QDBusActionGroup"); -- cgit v1.2.3