From ad56e279e2939064efadcb4d46ee584b4c28ed35 Mon Sep 17 00:00:00 2001 From: Beat Wolf Date: Tue, 13 Jan 2009 11:03:48 +0000 Subject: [PATCH] Don't create submenu for "unlock widgets" if there is only one action in the submenu svn path=/trunk/KDE/kdelibs/; revision=910410 --- containment.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/containment.cpp b/containment.cpp index 1c5a91ead..8ef1794a3 100644 --- a/containment.cpp +++ b/containment.cpp @@ -539,11 +539,26 @@ void ContainmentPrivate::appletActions(KMenu &desktopMenu, Applet *applet, bool KMenu *containmentMenu = new KMenu(i18nc("%1 is the name of the containment", "%1 Options", q->name()), &desktopMenu); containmentActions(*containmentMenu); if (!containmentMenu->isEmpty()) { - if (!desktopMenu.isEmpty()) { + int enabled = 0; + //count number of real actions + foreach(QAction *action, containmentMenu->actions()) { + if(action->isEnabled() && !action->isSeparator()) { + enabled++; + } + } + + if (enabled > 0) { desktopMenu.addSeparator(); } - desktopMenu.addMenu(containmentMenu); + //if there is only one, don't create a submenu + if(enabled < 2) { + foreach(QAction *action, containmentMenu->actions()) { + desktopMenu.addAction(action); + } + } else { + desktopMenu.addMenu(containmentMenu); + } } if (static_cast(q->scene())->immutability() == Mutable) {