From 072490b92b33bd37672e4ac34d3b7df0705c84ae Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 25 Apr 2013 08:59:47 +0200 Subject: appmenu-qt support :) BUG: 309148 --- src/webwindow/rekonqfactory.cpp | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/webwindow/rekonqfactory.cpp') diff --git a/src/webwindow/rekonqfactory.cpp b/src/webwindow/rekonqfactory.cpp index 75fd0baa..03711464 100644 --- a/src/webwindow/rekonqfactory.cpp +++ b/src/webwindow/rekonqfactory.cpp @@ -38,6 +38,7 @@ #include #include +#include #include #include @@ -177,6 +178,47 @@ QWidget *RekonqFactory::createWidget(const QString &name, QWidget *parent) } + // MenuBar ---------------------------------------------------------------------- + QDomNodeList elementMenuBarList = document.elementsByTagName(QL1S("MenuBar")); + if (elementMenuBarList.isEmpty()) + { + kDebug() << "ELEMENT MENUBAR LIST EMPTY. RETURNING NULL"; + return 0; + } + + if (name == QL1S("menuBar")) + { + QDomNode node = elementMenuBarList.at(0); + QDomNodeList menuNodes = node.childNodes(); + + QMenuBar *menuBar = new QMenuBar(parent); + for (unsigned int i = 0; i < menuNodes.length(); ++i) + { + QDomNode node = menuNodes.at(i); + if (node.isComment()) + continue; + + QDomElement element = node.toElement(); + + if (element.attribute("deleted").toLower() == "true") + continue; + + if (element.attribute("name") == QL1S("help")) + { + KHelpMenu *m = new KHelpMenu(parent, KCmdLineArgs::aboutData()); + menuBar->addMenu(m->menu()); + continue; + } + + KMenu *m = new KMenu(parent); + fillMenu(m, node); + menuBar->addMenu(m); + } + + menuBar->hide(); + return menuBar; + } + kDebug() << "NO WIDGET RETURNED"; return 0; } -- cgit v1.2.1