X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/0446c768675f0a11f887378681eb1f01b3e2c575..bd839796f1e165016f8a4dfd01b222b31fb7773f:/src/dolphintabpage.h diff --git a/src/dolphintabpage.h b/src/dolphintabpage.h index a8c1ba311..1e79fb5db 100644 --- a/src/dolphintabpage.h +++ b/src/dolphintabpage.h @@ -1,6 +1,6 @@ /* * SPDX-FileCopyrightText: 2014 Emmanuel Pescosta - * SPDX-FileCopyrightText: 2020 Felix Ernst + * SPDX-FileCopyrightText: 2020 Felix Ernst * * SPDX-License-Identifier: GPL-2.0-or-later */ @@ -8,10 +8,12 @@ #ifndef DOLPHIN_TAB_PAGE_H #define DOLPHIN_TAB_PAGE_H +#include "global.h" + #include +#include #include #include -#include class DolphinNavigatorsWidgetAction; class DolphinViewContainer; @@ -19,17 +21,12 @@ class QVariantAnimation; class KFileItemList; class DolphinTabPageSplitter; -enum Animated { - WithAnimation, - WithoutAnimation -}; - class DolphinTabPage : public QWidget { Q_OBJECT public: - explicit DolphinTabPage(const QUrl& primaryUrl, const QUrl& secondaryUrl = QUrl(), QWidget* parent = nullptr); + explicit DolphinTabPage(const QUrl &primaryUrl, const QUrl &secondaryUrl = QUrl(), QWidget *parent = nullptr); /** * @return True if primary view is the active view in this tab. @@ -57,17 +54,23 @@ public: /** * @return The primary view container. */ - DolphinViewContainer* primaryViewContainer() const; + DolphinViewContainer *primaryViewContainer() const; /** * @return The secondary view container, can be 0 if split view is disabled. */ - DolphinViewContainer* secondaryViewContainer() const; + DolphinViewContainer *secondaryViewContainer() const; /** * @return DolphinViewContainer of the active view */ - DolphinViewContainer* activeViewContainer() const; + DolphinViewContainer *activeViewContainer() const; + + /** + * @return DolphinViewContainer of the inactive view + * if split view is enabled, or nullptr otherwise. + */ + DolphinViewContainer *inactiveViewContainer() const; /** * Returns the selected items. The list is empty if no item has been @@ -108,7 +111,7 @@ public: * Marks the item indicated by \p url to be scrolled to and as the * current item after directory DolphinView::url() has been loaded. */ - void markUrlAsCurrent(const QUrl& url); + void markUrlAsCurrent(const QUrl &url); /** * Refreshes the views of the main window by recreating them according to @@ -127,7 +130,7 @@ public: * Restores all tab related properties (urls, splitter layout, ...) from * the given \a state. */ - void restoreState(const QByteArray& state); + void restoreState(const QByteArray &state); /** * Set whether the tab page is active @@ -135,9 +138,23 @@ public: */ void setActive(bool active); + void switchActiveView(); + + /** + * Overwrites the automatically generated label of this tab with @p label. + * This @p label will be kept until it is overwritten by calling this method again. + * Calling this with an empty string will restore the automatic labelling. + */ + void setCustomLabel(const QString &label); + + /** + * @see setCustomLabel. + */ + QString customLabel() const; + Q_SIGNALS: - void activeViewChanged(DolphinViewContainer* viewContainer); - void activeViewUrlChanged(const QUrl& url); + void activeViewChanged(DolphinViewContainer *viewContainer); + void activeViewUrlChanged(const QUrl &url); void splitterMoved(int pos, int index); private Q_SLOTS: @@ -165,15 +182,13 @@ private Q_SLOTS: * * It emits the activeViewUrlChanged signal with the url \a newUrl. */ - void slotViewUrlRedirection(const QUrl& oldUrl, const QUrl& newUrl); - - void switchActiveView(); + void slotViewUrlRedirection(const QUrl &oldUrl, const QUrl &newUrl); private: /** * Creates a new view container and does the default initialization. */ - DolphinViewContainer* createViewContainer(const QUrl& url) const; + DolphinViewContainer *createViewContainer(const QUrl &url) const; /** * Starts an animation that transitions between split view mode states. @@ -198,6 +213,8 @@ private: bool m_primaryViewActive; bool m_splitViewEnabled; bool m_active; + /** @see setCustomLabel(). */ + QString m_customLabel; }; class DolphinTabPageSplitterHandle : public QSplitterHandle @@ -227,7 +244,7 @@ public: explicit DolphinTabPageSplitter(Qt::Orientation orientation, QWidget *parent); protected: - QSplitterHandle* createHandle() override; + QSplitterHandle *createHandle() override; }; #endif // DOLPHIN_TAB_PAGE_H