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.h | |
| 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.h')
| -rw-r--r-- | src/views/dolphinurlnavigatorwidgetaction.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/views/dolphinurlnavigatorwidgetaction.h b/src/views/dolphinurlnavigatorwidgetaction.h new file mode 100644 index 000000000..5efd07f46 --- /dev/null +++ b/src/views/dolphinurlnavigatorwidgetaction.h @@ -0,0 +1,57 @@ +/* + * 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> +#include <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; + + /** + * Set the QStackedWidget which is the defaultWidget() to either + * show a KUrlNavigator or an expanding spacer. + */ + void setUrlNavigatorVisible(bool visible); + +private: + QStackedWidget *m_stackedWidget; +}; + +#endif // DOLPHINURLNAVIGATORWIDGETACTION_H |
