diff options
| author | Felix Ernst <[email protected]> | 2020-08-27 18:55:18 +0200 |
|---|---|---|
| committer | Elvis Angelaccio <[email protected]> | 2020-11-09 23:49:07 +0100 |
| commit | 6151a7aec0516570926cb1d15da48936e38e6765 (patch) | |
| tree | ccafc99ee507a90fa36bfc7c148af02c06525551 /src/views/dolphinurlnavigatorwidgetaction.cpp | |
| parent | b6fc58c3c32b03f504a5f697b62c4834dc3f650a (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.cpp | 33 |
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; +} |
