summaryrefslogtreecommitdiff
path: root/devel/libdbusmenu-qt/files/patch-src__dbusmenuimporter.cpp
diff options
context:
space:
mode:
authorAlberto Villa <avilla@FreeBSD.org>2010-11-16 10:10:35 +0000
committerAlberto Villa <avilla@FreeBSD.org>2010-11-16 10:10:35 +0000
commit9c2cb2ba79a16fe88f824678c38e025501653a54 (patch)
tree24de2f5793538798b5e8d6eab7309ce212e656d7 /devel/libdbusmenu-qt/files/patch-src__dbusmenuimporter.cpp
parent- Update to 1.050 (diff)
- Update to 0.6.4.
- Add some external contributions rejected by Canonical because of copyright issues. [1] Approved by: tabthorpe (mentor) Obtained from: http://bazaar.launchpad.net/~kubuntu-members/libdbusmenu-qt/ubuntu/files/head:/debian/patches/ [1]
Notes
Notes: svn path=/head/; revision=264639
Diffstat (limited to 'devel/libdbusmenu-qt/files/patch-src__dbusmenuimporter.cpp')
-rw-r--r--devel/libdbusmenu-qt/files/patch-src__dbusmenuimporter.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/devel/libdbusmenu-qt/files/patch-src__dbusmenuimporter.cpp b/devel/libdbusmenu-qt/files/patch-src__dbusmenuimporter.cpp
new file mode 100644
index 000000000000..c252a3d9f8cc
--- /dev/null
+++ b/devel/libdbusmenu-qt/files/patch-src__dbusmenuimporter.cpp
@@ -0,0 +1,80 @@
+--- ./src/dbusmenuimporter.cpp.orig 2010-09-23 10:08:35.000000000 +0000
++++ ./src/dbusmenuimporter.cpp 2010-11-12 14:49:39.000000000 +0000
+@@ -32,6 +32,8 @@
+ #include <QSignalMapper>
+ #include <QTime>
+ #include <QTimer>
++#include <QToolButton>
++#include <QWidgetAction>
+
+ // Local
+ #include "dbusmenuitem_p.h"
+@@ -41,7 +43,6 @@
+
+ //#define BENCHMARK
+ #ifdef BENCHMARK
+-#include <QTime>
+ static QTime sChrono;
+ #endif
+
+@@ -66,6 +67,29 @@
+ DBusMenuImporterMethod m_method;
+ };
+
++class EventSniffer : public QObject
++{
++public:
++ EventSniffer(QObject *parent = 0)
++ : QObject(parent) { }
++
++ ~EventSniffer() { }
++
++ bool eventFilter(QObject *object, QEvent *event)
++ {
++ Q_UNUSED(object);
++
++ if (event->type() == QEvent::Paint ||
++ event->type() == QEvent::KeyPress ||
++ event->type() == QEvent::KeyRelease) {
++ return false;
++ }
++
++ event->accept();
++ return true;
++ }
++};
++
+ class DBusMenuImporterPrivate
+ {
+ public:
+@@ -143,8 +167,30 @@
+ group->addAction(action);
+ }
+ }
++
++ bool isMenuTitle = map.take("x-kde-title").toBool();
++
+ updateAction(action, map, map.keys());
+
++ if (isMenuTitle) {
++ QAction *buttonAction = action;
++ QFont font = buttonAction->font();
++ font.setBold(true);
++ buttonAction->setFont(font);
++ buttonAction->setEnabled(true);
++
++ QWidgetAction *action = new QWidgetAction(parent);
++ action->setObjectName("kmenu_title");
++ QToolButton *titleButton = new QToolButton(0);
++ EventSniffer *eventSniffer = new EventSniffer(titleButton);
++ titleButton->installEventFilter(eventSniffer); // prevent clicks on the title of the menu
++ titleButton->setDefaultAction(buttonAction);
++ titleButton->setDown(true); // prevent hover style changes in some styles
++ titleButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
++ action->setDefaultWidget(titleButton);
++ return action;
++ }
++
+ return action;
+ }
+