┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views
diff options
context:
space:
mode:
authorFelix Ernst <[email protected]>2020-09-20 18:53:59 +0200
committerElvis Angelaccio <[email protected]>2020-11-09 23:49:07 +0100
commit37327c9b0aae112c5890703cba1f0157043007e0 (patch)
tree5cda9876f310a258b95226bc0d9681acc665f98e /src/views
parent6151a7aec0516570926cb1d15da48936e38e6765 (diff)
Make UrlNavigators in the toolbar the only option
The UrlNavigators will be automatically added to the toolbar. The Sort By action is removed from the default toolbar to make space. Remove all options to have UrlNavigators outside the toolbar and remove those code paths. Make it so the new NavigatorsWidgetAction contains two UrlNavigators when in split view mode. Spacing was also added to align these UrlNavigators with the ViewContainers when enough space is available. Force the toolbar to be either at the top or bottom of the window. Set a sane sizeHint for DolphinUrlNavigator. It would be better to do this in KUrlNavigator in the future. This commit also contains a changes which should be moved to a separate merge requests before this gets merged: - Add an expansion animation when split view is enabled by the user
Diffstat (limited to 'src/views')
-rw-r--r--src/views/dolphinurlnavigatorwidgetaction.cpp91
-rw-r--r--src/views/dolphinurlnavigatorwidgetaction.h68
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