diff options
| author | Felix Ernst <[email protected]> | 2020-06-14 16:20:02 +0200 |
|---|---|---|
| committer | Elvis Angelaccio <[email protected]> | 2020-11-09 23:49:07 +0100 |
| commit | ad5d3367c7fef4c3c11188a768f21a2ee2b3c025 (patch) | |
| tree | fa59507fdc29060eba061b776c74c53e57b8b668 /src/views/dolphinurlnavigatorwidgetaction.cpp | |
| parent | 880766bd56c0331f39ecffaa08974b5117e3d72a (diff) | |
Add an option to use an UrlNavigator in the toolbar instead
This commit adds a locationInToolbar KToggleAction to switch between
using a location bar to navigate or using a new custom QWidgetAction
in the toolbar.
A big portion of this MR is refactoring because until now the
UrlNavigator was tightly intertwined with the DolphinViewContainer.
With this MR an UrlNavigator for controlling a View can be freely
connected or disconnected with a single method call.
A DolphinUrlNavigator class is created in the process which contains all
Dolphin-specific UrlNavigator code which did previously reside in the
DolphinViewContainer class. Other application parts that belong to
UrlNavigator-management are also moved here.
Diffstat (limited to 'src/views/dolphinurlnavigatorwidgetaction.cpp')
| -rw-r--r-- | src/views/dolphinurlnavigatorwidgetaction.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/views/dolphinurlnavigatorwidgetaction.cpp b/src/views/dolphinurlnavigatorwidgetaction.cpp new file mode 100644 index 000000000..d9c9a4bfa --- /dev/null +++ b/src/views/dolphinurlnavigatorwidgetaction.cpp @@ -0,0 +1,58 @@ +/* + * 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> + +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 + } +} |
