┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/dolphinurlnavigatorwidgetaction.cpp
diff options
context:
space:
mode:
authorFelix Ernst <[email protected]>2020-08-27 18:55:18 +0200
committerElvis Angelaccio <[email protected]>2020-11-09 23:49:07 +0100
commit6151a7aec0516570926cb1d15da48936e38e6765 (patch)
treeccafc99ee507a90fa36bfc7c148af02c06525551 /src/views/dolphinurlnavigatorwidgetaction.cpp
parentb6fc58c3c32b03f504a5f697b62c4834dc3f650a (diff)
Add the UrlNavigator to the toolbar automatically if needed
This commit adds the DolphinUrlNavigatorWidgetAction::addToToolbarAndSave() method which changes the users toolbar configuration to contain an Url Navigator. This way the user doesn't need to do anything manually. Aside from that a bunch of minor fixes like renaming and reordering
Diffstat (limited to 'src/views/dolphinurlnavigatorwidgetaction.cpp')
-rw-r--r--src/views/dolphinurlnavigatorwidgetaction.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/views/dolphinurlnavigatorwidgetaction.cpp b/src/views/dolphinurlnavigatorwidgetaction.cpp
index d9c9a4bfa..108a5de13 100644
--- a/src/views/dolphinurlnavigatorwidgetaction.cpp
+++ b/src/views/dolphinurlnavigatorwidgetaction.cpp
@@ -24,6 +24,11 @@
#include "dolphinviewcontainer.h"
#include <KLocalizedString>
+#include <KXMLGUIFactory>
+#include <KXmlGuiWindow>
+
+#include <QDomDocument>
+#include <QStackedWidget>
DolphinUrlNavigatorWidgetAction::DolphinUrlNavigatorWidgetAction(QWidget *parent) :
QWidgetAction(parent)
@@ -56,3 +61,31 @@ void DolphinUrlNavigatorWidgetAction::setUrlNavigatorVisible(bool visible)
m_stackedWidget->setCurrentIndex(1); // urlNavigator
}
}
+
+bool DolphinUrlNavigatorWidgetAction::addToToolbarAndSave(KXmlGuiWindow *mainWindow)
+{
+ const QString rawXml = KXMLGUIFactory::readConfigFile(mainWindow->xmlFile());
+ QDomDocument domDocument;
+ if (rawXml.isEmpty() || !domDocument.setContent(rawXml) || domDocument.isNull()) {
+ return false;
+ }
+ QDomNode toolbar = domDocument.elementsByTagName(QStringLiteral("ToolBar")).at(0);
+ if (toolbar.isNull()) {
+ return false;
+ }
+
+ QDomElement urlNavigatorElement = domDocument.createElement(QStringLiteral("Action"));
+ urlNavigatorElement.setAttribute(QStringLiteral("name"), QStringLiteral("url_navigator"));
+
+ QDomNode position = toolbar.lastChildElement(QStringLiteral("Spacer"));
+ if (position.isNull()) {
+ toolbar.appendChild(urlNavigatorElement);
+ } else {
+ toolbar.replaceChild(urlNavigatorElement, position);
+ }
+
+ KXMLGUIFactory::saveConfigFile(domDocument, mainWindow->xmlFile());
+ mainWindow->reloadXML();
+ mainWindow->createGUI();
+ return true;
+}