diff options
Diffstat (limited to 'src/views')
| -rw-r--r-- | src/views/dolphinurlnavigatorwidgetaction.cpp | 91 | ||||
| -rw-r--r-- | src/views/dolphinurlnavigatorwidgetaction.h | 68 |
2 files changed, 0 insertions, 159 deletions
diff --git a/src/views/dolphinurlnavigatorwidgetaction.cpp b/src/views/dolphinurlnavigatorwidgetaction.cpp deleted file mode 100644 index 108a5de13..000000000 --- a/src/views/dolphinurlnavigatorwidgetaction.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright 2020 Felix Ernst <[email protected]> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) version 3, or any - * later version accepted by the membership of KDE e.V. (or its - * successor approved by the membership of KDE e.V.), which shall - * act as a proxy defined in Section 6 of version 3 of the license. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see <https://www.gnu.org/licenses/>. - */ - -#include "dolphinurlnavigatorwidgetaction.h" - -#include "dolphin_generalsettings.h" -#include "dolphinviewcontainer.h" - -#include <KLocalizedString> -#include <KXMLGUIFactory> -#include <KXmlGuiWindow> - -#include <QDomDocument> -#include <QStackedWidget> - -DolphinUrlNavigatorWidgetAction::DolphinUrlNavigatorWidgetAction(QWidget *parent) : - QWidgetAction(parent) -{ - setText(i18nc("@action:inmenu", "Url navigator")); - - m_stackedWidget = new QStackedWidget(parent); - - auto expandingSpacer = new QWidget(m_stackedWidget); - expandingSpacer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); - m_stackedWidget->addWidget(expandingSpacer); // index 0 of QStackedWidget - - auto urlNavigator = new DolphinUrlNavigator(m_stackedWidget); - m_stackedWidget->addWidget(urlNavigator); // index 1 of QStackedWidget - - setDefaultWidget(m_stackedWidget); - setUrlNavigatorVisible(GeneralSettings::locationInToolbar()); -} - -DolphinUrlNavigator* DolphinUrlNavigatorWidgetAction::urlNavigator() const -{ - return static_cast<DolphinUrlNavigator *>(m_stackedWidget->widget(1)); -} - -void DolphinUrlNavigatorWidgetAction::setUrlNavigatorVisible(bool visible) -{ - if (!visible) { - m_stackedWidget->setCurrentIndex(0); // expandingSpacer - } else { - 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; -} diff --git a/src/views/dolphinurlnavigatorwidgetaction.h b/src/views/dolphinurlnavigatorwidgetaction.h deleted file mode 100644 index ed07115a6..000000000 --- a/src/views/dolphinurlnavigatorwidgetaction.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2020 Felix Ernst <[email protected]> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) version 3, or any - * later version accepted by the membership of KDE e.V. (or its - * successor approved by the membership of KDE e.V.), which shall - * act as a proxy defined in Section 6 of version 3 of the license. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see <https://www.gnu.org/licenses/>. - */ - -#ifndef DOLPHINURLNAVIGATORWIDGETACTION_H -#define DOLPHINURLNAVIGATORWIDGETACTION_H - -#include "dolphinurlnavigator.h" - -#include <QWidgetAction> - -class KXmlGuiWindow; -class QStackedWidget; - -/** - * @brief QWidgetAction that allows to use a KUrlNavigator in a toolbar. - * - * When the UrlNavigator of this object is not in use, - * setUrlNavigatorVisible(false) is used to hide it. It will then be - * replaced in the toolbar by an empty expanding spacer. This makes sure - * that the other widgets in the toolbar will not change location when - * switching the UrlNavigators visibility. - */ -class DolphinUrlNavigatorWidgetAction : public QWidgetAction -{ - Q_OBJECT - -public: - DolphinUrlNavigatorWidgetAction(QWidget *parent = nullptr); - - DolphinUrlNavigator *urlNavigator() const; - - /** - * Sets the QStackedWidget which is the defaultWidget() to either - * show a KUrlNavigator or an expanding spacer. - */ - void setUrlNavigatorVisible(bool visible); - - /** - * Adds this action to the mainWindow's toolbar and saves the change - * in the users ui configuration file. - * @return true if successful. Otherwise false. - * @note This method does multiple things which are discouraged in - * the API documentation. - */ - bool addToToolbarAndSave(KXmlGuiWindow *mainWindow); - -private: - QStackedWidget *m_stackedWidget; -}; - -#endif // DOLPHINURLNAVIGATORWIDGETACTION_H |
