]> cloud.milkyroute.net Git - dolphin.git/blob - src/views/dolphinurlnavigatorwidgetaction.h
Add an option to use an UrlNavigator in the toolbar instead
[dolphin.git] / src / views / dolphinurlnavigatorwidgetaction.h
1 /*
2 * Copyright 2020 Felix Ernst <fe.a.ernst@gmail.com>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) version 3, or any
8 * later version accepted by the membership of KDE e.V. (or its
9 * successor approved by the membership of KDE e.V.), which shall
10 * act as a proxy defined in Section 6 of version 3 of the license.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library. If not, see <https://www.gnu.org/licenses/>.
19 */
20
21 #ifndef DOLPHINURLNAVIGATORWIDGETACTION_H
22 #define DOLPHINURLNAVIGATORWIDGETACTION_H
23
24 #include "dolphinurlnavigator.h"
25
26 #include <QWidgetAction>
27 #include <QStackedWidget>
28
29 /**
30 * @brief QWidgetAction that allows to use a KUrlNavigator in a toolbar.
31 *
32 * When the UrlNavigator of this object is not in use,
33 * setUrlNavigatorVisible(false) is used to hide it. It will then be
34 * replaced in the toolbar by an empty expanding spacer. This makes sure
35 * that the other widgets in the toolbar will not change location when
36 * switching the UrlNavigators visibility.
37 */
38 class DolphinUrlNavigatorWidgetAction : public QWidgetAction
39 {
40 Q_OBJECT
41
42 public:
43 DolphinUrlNavigatorWidgetAction(QWidget *parent = nullptr);
44
45 DolphinUrlNavigator *urlNavigator() const;
46
47 /**
48 * Set the QStackedWidget which is the defaultWidget() to either
49 * show a KUrlNavigator or an expanding spacer.
50 */
51 void setUrlNavigatorVisible(bool visible);
52
53 private:
54 QStackedWidget *m_stackedWidget;
55 };
56
57 #endif // DOLPHINURLNAVIGATORWIDGETACTION_H