X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/2704b3693f86b31ac033597c63898c3aef16edf7..a418d6229e31dac254660da2a417b4306f066ae3:/src/dolphintabpage.h diff --git a/src/dolphintabpage.h b/src/dolphintabpage.h index d14574561..650594214 100644 --- a/src/dolphintabpage.h +++ b/src/dolphintabpage.h @@ -1,31 +1,19 @@ -/*************************************************************************** - * Copyright (C) 2014 by Emmanuel Pescosta * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2014 Emmanuel Pescosta + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #ifndef DOLPHIN_TAB_PAGE_H #define DOLPHIN_TAB_PAGE_H -#include #include #include +#include -class QSplitter; +class DolphinNavigatorsWidgetAction; class DolphinViewContainer; +class QSplitter; class KFileItemList; class DolphinTabPage : public QWidget @@ -33,7 +21,7 @@ class DolphinTabPage : public QWidget Q_OBJECT public: - explicit DolphinTabPage(const QUrl& primaryUrl, const QUrl& secondaryUrl = QUrl(), QWidget* parent = 0); + explicit DolphinTabPage(const QUrl& primaryUrl, const QUrl& secondaryUrl = QUrl(), QWidget* parent = nullptr); /** * @return True if primary view is the active view in this tab. @@ -50,15 +38,15 @@ public: * * If \a enabled is true, it creates a secondary view with the url of the primary view. */ - void setSplitViewEnabled(bool enabled, bool stash = false); + void setSplitViewEnabled(bool enabled, const QUrl &secondaryUrl = QUrl()); /** - * @return The primary view containter. + * @return The primary view container. */ DolphinViewContainer* primaryViewContainer() const; /** - * @return The secondary view containter, can be 0 if split view is disabled. + * @return The secondary view container, can be 0 if split view is disabled. */ DolphinViewContainer* secondaryViewContainer() const; @@ -79,6 +67,30 @@ public: */ int selectedItemsCount() const; + /** + * Connects a navigatorsWidget to this. It will be connected to the DolphinViewContainers + * managed by this tab. For alignment purposes this will from now on notify the + * navigatorsWidget when this tab or its viewContainers are resized. + */ + void connectNavigators(DolphinNavigatorsWidgetAction *navigatorsWidget); + + /** + * Makes it so this tab and its DolphinViewContainers aren't controlled by any + * UrlNavigators anymore. + */ + void disconnectNavigators(); + + /** + * Calls resizeNavigators() when a watched object is resized. + */ + bool eventFilter(QObject */* watched */, QEvent *event) override; + + /** + * Notify the connected DolphinNavigatorsWidgetAction of geometry changes which it + * needs for visual alignment. + */ + void resizeNavigators() const; + /** * Marks the items indicated by \p urls to get selected after the * directory DolphinView::url() has been loaded. Note that nothing @@ -93,14 +105,6 @@ public: */ void markUrlAsCurrent(const QUrl& url); - /** - * Sets the places selector visible, if \a visible is true. - * The places selector allows to select the places provided - * by the places model passed in the constructor. Per default - * the places selector is visible. - */ - void setPlacesSelectorVisible(bool visible); - /** * Refreshes the views of the main window by recreating them according to * the given Dolphin settings. @@ -127,11 +131,18 @@ public: * @deprecated The first tab state version has no version number, we keep * this method to restore old states (<= Dolphin 4.14.x). */ - void restoreStateV1(const QByteArray& state); + Q_DECL_DEPRECATED void restoreStateV1(const QByteArray& state); + + /** + * Set whether the tab page is active + * + */ + void setActive(bool active); signals: void activeViewChanged(DolphinViewContainer* viewContainer); void activeViewUrlChanged(const QUrl& url); + void splitterMoved(int pos, int index); private slots: /** @@ -160,11 +171,13 @@ private: private: QSplitter* m_splitter; + QPointer m_navigatorsWidget; QPointer m_primaryViewContainer; QPointer m_secondaryViewContainer; bool m_primaryViewActive; bool m_splitViewEnabled; + bool m_active; }; #endif // DOLPHIN_TAB_PAGE_H