Hello community, here is the log from the commit of package libdbusmenu-qt for openSUSE:Factory checked in at Mon Jun 27 13:50:33 CEST 2011. -------- --- KDE/libdbusmenu-qt/libdbusmenu-qt.changes 2011-05-15 20:04:06.000000000 +0200 +++ /mounts/work_src_done/STABLE/libdbusmenu-qt/libdbusmenu-qt.changes 2011-06-25 12:58:44.000000000 +0200 @@ -1,0 +2,8 @@ +Sat Jun 25 10:57:05 UTC 2011 - asterios.dramis@gmail.com + +- Update to 0.8.3: + * If DBusMenuExporter is deleted, delete all DBusMenu instances which were + working with it + * Only show icons in menu if the platform allows them + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- libdbusmenu-qt-0.8.2.tar.bz2 New: ---- libdbusmenu-qt-0.8.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libdbusmenu-qt.spec ++++++ --- /var/tmp/diff_new_pack.LzrIGp/_old 2011-06-27 13:50:05.000000000 +0200 +++ /var/tmp/diff_new_pack.LzrIGp/_new 2011-06-27 13:50:05.000000000 +0200 @@ -19,7 +19,7 @@ Name: libdbusmenu-qt -Version: 0.8.2 +Version: 0.8.3 Release: 1 License: LGPLv2+ Url: https://launchpad.net/libdbusmenu-qt/ ++++++ libdbusmenu-qt-0.8.2.tar.bz2 -> libdbusmenu-qt-0.8.3.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.8.2/CMakeLists.txt new/libdbusmenu-qt-0.8.3/CMakeLists.txt --- old/libdbusmenu-qt-0.8.2/CMakeLists.txt 2011-04-12 14:28:50.000000000 +0200 +++ new/libdbusmenu-qt-0.8.3/CMakeLists.txt 2011-06-21 10:54:36.000000000 +0200 @@ -9,7 +9,7 @@ ## Package version set(dbusmenu_qt_VERSION_MAJOR 0) set(dbusmenu_qt_VERSION_MINOR 8) -set(dbusmenu_qt_VERSION_PATCH 2) +set(dbusmenu_qt_VERSION_PATCH 3) set(dbusmenu_qt_VERSION ${dbusmenu_qt_VERSION_MAJOR}.${dbusmenu_qt_VERSION_MINOR}.${dbusmenu_qt_VERSION_PATCH}) ## Lib version @@ -20,7 +20,7 @@ set(dbusmenu_qt_lib_API_VERSION 5) ### Bump this one when changes do not extend the API -set(dbusmenu_qt_lib_PATCH_VERSION 1) +set(dbusmenu_qt_lib_PATCH_VERSION 2) set(dbusmenu_qt_lib_VERSION ${dbusmenu_qt_lib_SOVERSION}.${dbusmenu_qt_lib_API_VERSION}.${dbusmenu_qt_lib_PATCH_VERSION}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.8.2/NEWS new/libdbusmenu-qt-0.8.3/NEWS --- old/libdbusmenu-qt-0.8.2/NEWS 2011-04-12 14:28:50.000000000 +0200 +++ new/libdbusmenu-qt-0.8.3/NEWS 2011-06-21 10:54:36.000000000 +0200 @@ -1,3 +1,7 @@ +# 0.8.3 - 2011.06.21 +- If DBusMenuExporter is deleted, delete all DBusMenu instances which were working with it (Aurelien Gateau) +- Only show icons in menu if the platform allows them (Michael Terry) + # 0.8.2 - 2011.04.12 - Shortcut handling: Translate "+" into "plus" and "-" into "minus" (LP BUG 712565) (Aurelien Gateau) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.8.2/src/dbusmenuexporter.cpp new/libdbusmenu-qt-0.8.3/src/dbusmenuexporter.cpp --- old/libdbusmenu-qt-0.8.2/src/dbusmenuexporter.cpp 2011-04-12 14:28:50.000000000 +0200 +++ new/libdbusmenu-qt-0.8.3/src/dbusmenuexporter.cpp 2011-06-21 10:54:36.000000000 +0200 @@ -358,7 +358,11 @@ DMRETURN_VALUE_IF_FAIL(action, QString()); #ifdef HAVE_QICON_NAME QIcon icon = action->icon(); - return icon.isNull() ? QString() : icon.name(); + if (action->isIconVisibleInMenu() && !icon.isNull()) { + return icon.name(); + } else { + return QString(); + } #else return QString(); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.8.2/src/dbusmenu_p.cpp new/libdbusmenu-qt-0.8.3/src/dbusmenu_p.cpp --- old/libdbusmenu-qt-0.8.2/src/dbusmenu_p.cpp 2011-04-12 14:28:50.000000000 +0200 +++ new/libdbusmenu-qt-0.8.3/src/dbusmenu_p.cpp 2011-06-21 10:54:36.000000000 +0200 @@ -36,6 +36,7 @@ , m_parentId(parentId) { menu->installEventFilter(this); + connect(m_exporter, SIGNAL(destroyed(QObject*)), SLOT(deleteMe())); } DBusMenu::~DBusMenu() @@ -72,23 +73,22 @@ void DBusMenu::addAction(QAction *action) { - if (m_exporter.data()) { - m_exporter.data()->d->addAction(action, m_parentId); - } + m_exporter->d->addAction(action, m_parentId); } void DBusMenu::updateAction(QAction *action) { - if (m_exporter.data()) { - m_exporter.data()->d->updateAction(action); - } + m_exporter->d->updateAction(action); } void DBusMenu::removeAction(QAction *action) { - if (m_exporter.data()) { - m_exporter.data()->d->removeAction(action, m_parentId); - } + m_exporter->d->removeAction(action, m_parentId); +} + +void DBusMenu::deleteMe() +{ + delete this; } #include "dbusmenu_p.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.8.2/src/dbusmenu_p.h new/libdbusmenu-qt-0.8.3/src/dbusmenu_p.h --- old/libdbusmenu-qt-0.8.2/src/dbusmenu_p.h 2011-04-12 14:28:50.000000000 +0200 +++ new/libdbusmenu-qt-0.8.3/src/dbusmenu_p.h 2011-06-21 10:54:36.000000000 +0200 @@ -23,7 +23,6 @@ #include <QEvent> #include <QObject> -#include <QWeakPointer> class QAction; class QMenu; @@ -45,12 +44,15 @@ protected: virtual bool eventFilter(QObject *obj, QEvent *event); +private Q_SLOTS: + void deleteMe(); + private: void addAction(QAction *action); void updateAction(QAction *action); void removeAction(QAction *action); - QWeakPointer<DBusMenuExporter> m_exporter; + DBusMenuExporter* m_exporter; int m_parentId; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.8.2/tests/dbusmenuexportertest.cpp new/libdbusmenu-qt-0.8.3/tests/dbusmenuexportertest.cpp --- old/libdbusmenu-qt-0.8.2/tests/dbusmenuexportertest.cpp 2011-04-12 14:28:50.000000000 +0200 +++ new/libdbusmenu-qt-0.8.3/tests/dbusmenuexportertest.cpp 2011-06-21 10:54:36.000000000 +0200 @@ -61,6 +61,7 @@ void DBusMenuExporterTest::init() { QVERIFY(QDBusConnection::sessionBus().registerService(TEST_SERVICE)); + QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, false); } void DBusMenuExporterTest::cleanup() @@ -599,4 +600,53 @@ QCOMPARE(trackCount(subMenu), 1); } +// If desktop does not want icon in menus, check we do not export them +void DBusMenuExporterTest::testHonorDontShowIconsInMenusAttribute() +{ + QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, true); + QMenu inputMenu; + DBusMenuExporter exporter(TEST_OBJECT_PATH, &inputMenu); + + QAction *action = new QAction("Undo", &inputMenu); + QIcon icon = QIcon::fromTheme("edit-undo"); + QVERIFY(!icon.isNull()); + action->setIcon(icon); + inputMenu.addAction(action); + + // Check out exporter is on DBus + QDBusInterface iface(TEST_SERVICE, TEST_OBJECT_PATH); + QVERIFY2(iface.isValid(), qPrintable(iface.lastError().message())); + + // Get exported menu info + QStringList propertyNames = QStringList() << "icon-name"; + DBusMenuLayoutItemList list = getChildren(&iface, /*parentId=*/0, propertyNames); + DBusMenuLayoutItem item = list.first(); + QVERIFY(item.id != 0); + QVERIFY(!item.properties.contains("icon-name")); +} + +static bool hasInternalDBusMenuObject(QMenu* menu) +{ + Q_FOREACH(QObject* obj, menu->children()) { + if (obj->inherits("DBusMenu")) { + return true; + } + } + return false; +} + +// DBusMenuExporter adds an instance of an internal class named "DBusMenu" to +// any QMenu it tracks. Check they go away when the exporter is deleted. +void DBusMenuExporterTest::testDBusMenuObjectIsDeletedWhenExporterIsDeleted() +{ + QMenu inputMenu; + QVERIFY(QDBusConnection::sessionBus().registerService(TEST_SERVICE)); + DBusMenuExporter *exporter = new DBusMenuExporter(TEST_OBJECT_PATH, &inputMenu); + + QAction *a1 = inputMenu.addAction("a1"); + QVERIFY2(hasInternalDBusMenuObject(&inputMenu), "Test setup failed"); + delete exporter; + QVERIFY(!hasInternalDBusMenuObject(&inputMenu)); +} + #include "dbusmenuexportertest.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdbusmenu-qt-0.8.2/tests/dbusmenuexportertest.h new/libdbusmenu-qt-0.8.3/tests/dbusmenuexportertest.h --- old/libdbusmenu-qt-0.8.2/tests/dbusmenuexportertest.h 2011-04-12 14:28:50.000000000 +0200 +++ new/libdbusmenu-qt-0.8.3/tests/dbusmenuexportertest.h 2011-06-21 10:54:36.000000000 +0200 @@ -49,6 +49,8 @@ void testGetGroupProperties(); void testActivateAction(); void testTrackActionsOnlyOnce(); + void testHonorDontShowIconsInMenusAttribute(); + void testDBusMenuObjectIsDeletedWhenExporterIsDeleted(); void init(); void cleanup(); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org