[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kdeui
From:       David Faure <faure () kde ! org>
Date:       2009-04-22 16:21:36
Message-ID: 1240417296.683514.6728.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 957645 by dfaure:

Revert r912265, whose idea was "let's always hide empty menus, so that noMerge=1 can be used to hide a \
standard menu". But that was a bad idea; 186382 says some apps have empty menus filled in by parts, so we \
need to keep them around for proper ordering. Instead, r896151 had the solution to the initial problem \
                already: deleted="true".
BUG: 186382


 M  +16 -2     tests/kxmlgui_unittest.cpp  
 M  +1 -1      xmlgui/kxmlguiclient.cpp  


--- trunk/KDE/kdelibs/kdeui/tests/kxmlgui_unittest.cpp #957644:957645
@@ -463,16 +463,30 @@
     QTest::newRow("noMerge empty file menu, implicit settings menu")
         << xmlBegin + "<Menu name=\"file\" noMerge=\"1\"/>\n" + xmlEnd
         << (QStringList() << "file_open" << "options_configure_toolbars")
-        << (QStringList() << "settings");
+        << (QStringList() << "file" << "settings"); // we keep empty menus, see #186382
     QTest::newRow("noMerge empty file menu, file_open moved elsewhere")
         << xmlBegin + "<Menu name=\"file\" noMerge=\"1\"/>\n<Menu name=\"foo\"><Action \
name=\"file_open\"/></Menu>" + xmlEnd  << (QStringList() << "file_open")
-        << (QStringList() << "foo");
+        << (QStringList() << "file" << "foo");
     QTest::newRow("noMerge file menu with open before new")
         << xmlBegin + "<Menu name=\"file\" noMerge=\"1\"><Action name=\"file_open\"/><Action \
name=\"file_new\"/></Menu>" + xmlEnd  << (QStringList() << "file_open" << "file_new")
         << (QStringList() << "file"); // TODO check the order of the actions in the menu? how?
 
+    // Tests for deleted="true"
+    QTest::newRow("deleted file menu, implicit settings menu")
+        << xmlBegin + "<Menu name=\"file\" deleted=\"true\"/>\n" + xmlEnd
+        << (QStringList() << "file_open" << "options_configure_toolbars")
+        << (QStringList() << "settings");
+    QTest::newRow("deleted file menu, file_open moved elsewhere")
+        << xmlBegin + "<Menu name=\"file\" deleted=\"true\"/>\n<Menu name=\"foo\"><Action \
name=\"file_open\"/></Menu>" + xmlEnd +        << (QStringList() << "file_open")
+        << (QStringList() << "foo");
+    QTest::newRow("deleted file menu with actions (contradiction)")
+        << xmlBegin + "<Menu name=\"file\" deleted=\"true\"><Action name=\"file_open\"/><Action \
name=\"file_new\"/></Menu>" + xmlEnd +        << (QStringList() << "file_open" << "file_new")
+        << (QStringList());
+
 }
 
 void KXmlGui_UnitTest::testUiStandardsMerging()
--- trunk/KDE/kdelibs/kdeui/xmlgui/kxmlguiclient.cpp #957644:957645
@@ -300,7 +300,7 @@
     if ( additive.attribute(attrNoMerge) == attrOne ) // ### use toInt() instead? (Simon)
     {
         base.parentNode().replaceChild(additive, base);
-        base = additive;
+        return true;
     } else {
         // iterate over all elements in the container (of the global DOM tree)
         QDomNode n = base.firstChild();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic