X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f65b0899c3666561cafac14f67ab0bb8a5bfa00a..3c1ebfcfb19afc2a4f5f9ebe0e67689cef0253c1:/src/dolphintabpage.h diff --git a/src/dolphintabpage.h b/src/dolphintabpage.h index 512ac22fe..a8c1ba311 100644 --- a/src/dolphintabpage.h +++ b/src/dolphintabpage.h @@ -11,12 +11,13 @@ #include #include #include +#include class DolphinNavigatorsWidgetAction; class DolphinViewContainer; -class QSplitter; class QVariantAnimation; class KFileItemList; +class DolphinTabPageSplitter; enum Animated { WithAnimation, @@ -45,7 +46,7 @@ public: * * @param enabled If true, creates a secondary viewContainer in this tab. * Otherwise deletes it. - * @param animated Decides wether the effects of this method call should + * @param animated Decides whether the effects of this method call should * happen instantly or be transitioned to smoothly. * @param secondaryUrl If \p enabled is true, the new viewContainer will be opened at this * parameter. The default value will set the Url of the new viewContainer @@ -95,12 +96,6 @@ public: void insertNavigatorsWidget(DolphinNavigatorsWidgetAction *navigatorsWidget); - /** - * 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 @@ -134,15 +129,6 @@ public: */ void restoreState(const QByteArray& state); - /** - * Restores all tab related properties (urls, splitter layout, ...) from - * the given \a state. - * - * @deprecated The first tab state version has no version number, we keep - * this method to restore old states (<= Dolphin 4.14.x). - */ - Q_DECL_DEPRECATED void restoreStateV1(const QByteArray& state); - /** * Set whether the tab page is active * @@ -200,7 +186,7 @@ private: void startExpandViewAnimation(DolphinViewContainer *expandingContainer); private: - QSplitter* m_splitter; + DolphinTabPageSplitter *m_splitter; QPointer m_navigatorsWidget; QPointer m_primaryViewContainer; @@ -214,4 +200,34 @@ private: bool m_active; }; +class DolphinTabPageSplitterHandle : public QSplitterHandle +{ + Q_OBJECT + +public: + explicit DolphinTabPageSplitterHandle(Qt::Orientation orientation, QSplitter *parent); + +protected: + bool event(QEvent *event) override; + +private: + void resetSplitterSizes(); + + // Sometimes QSplitterHandle doesn't receive MouseButtonDblClick event. + // We can detect that MouseButtonDblClick event should have been + // received if we receive two MouseButtonRelease events in a row. + bool m_mouseReleaseWasReceived; +}; + +class DolphinTabPageSplitter : public QSplitter +{ + Q_OBJECT + +public: + explicit DolphinTabPageSplitter(Qt::Orientation orientation, QWidget *parent); + +protected: + QSplitterHandle* createHandle() override; +}; + #endif // DOLPHIN_TAB_PAGE_H