┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/dolphinurlnavigatorwidgetaction.h
diff options
context:
space:
mode:
authorFelix Ernst <[email protected]>2020-06-14 16:20:02 +0200
committerElvis Angelaccio <[email protected]>2020-11-09 23:49:07 +0100
commitad5d3367c7fef4c3c11188a768f21a2ee2b3c025 (patch)
treefa59507fdc29060eba061b776c74c53e57b8b668 /src/views/dolphinurlnavigatorwidgetaction.h
parent880766bd56c0331f39ecffaa08974b5117e3d72a (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.h57
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