From ad4d0dcace86bbc39aea5bbaaebd1bed07e6b8ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole-Andr=C3=A9=20Rodlie?= Date: Fri, 15 Mar 2024 23:20:33 +0100 Subject: [PATCH] Move OptimalScrollArea to ui --- src/app/CMakeLists.txt | 12 ------------ src/app/GUI/BoxesList/boxscrollarea.h | 2 +- src/app/GUI/BoxesList/boxscroller.h | 2 +- src/app/GUI/BoxesList/boxscrollwidget.cpp | 2 +- src/app/GUI/BoxesList/boxscrollwidget.h | 2 +- src/app/GUI/BoxesList/boxsinglewidget.cpp | 2 +- src/app/GUI/BoxesList/boxsinglewidget.h | 2 +- src/app/GUI/GradientWidgets/gradientslistwidget.h | 2 +- src/app/GUI/RenderWidgets/renderwidget.cpp | 2 +- src/app/GUI/mainwindow.cpp | 2 +- src/ui/CMakeLists.txt | 12 ++++++++++++ .../optimalscrollarena}/minimalscrollwidget.cpp | 0 .../optimalscrollarena}/minimalscrollwidget.h | 7 ++++++- .../optimalscrollarena}/scrollarea.cpp | 0 .../optimalscrollarena}/scrollarea.h | 10 +++++++++- .../optimalscrollarena}/scrollvisiblepartbase.cpp | 2 +- .../optimalscrollarena}/scrollvisiblepartbase.h | 9 ++++++++- .../optimalscrollarena}/scrollwidget.cpp | 0 .../optimalscrollarena}/scrollwidget.h | 9 ++++++++- .../optimalscrollarena}/scrollwidgetvisiblepart.cpp | 1 - .../optimalscrollarena}/scrollwidgetvisiblepart.h | 8 +++++++- .../optimalscrollarena}/singlewidget.cpp | 0 .../optimalscrollarena}/singlewidget.h | 8 +++++++- 23 files changed, 67 insertions(+), 29 deletions(-) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/minimalscrollwidget.cpp (100%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/minimalscrollwidget.h (95%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/scrollarea.cpp (100%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/scrollarea.h (94%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/scrollvisiblepartbase.cpp (99%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/scrollvisiblepartbase.h (96%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/scrollwidget.cpp (100%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/scrollwidget.h (96%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/scrollwidgetvisiblepart.cpp (99%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/scrollwidgetvisiblepart.h (96%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/singlewidget.cpp (100%) rename src/{app/GUI/BoxesList/OptimalScrollArea => ui/optimalscrollarena}/singlewidget.h (94%) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 6437672c3..7bda1d506 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -159,7 +159,6 @@ endif() set( SOURCES main.cpp - GUI/BoxesList/OptimalScrollArea/scrollvisiblepartbase.cpp GUI/BoxesList/boxscroller.cpp #GUI/BrushWidgets/bookmarkedbrushes.cpp #GUI/BrushWidgets/brushlabel.cpp @@ -217,10 +216,6 @@ set( evfileio.cpp iconloader.cpp renderhandler.cpp - GUI/BoxesList/OptimalScrollArea/scrollarea.cpp - GUI/BoxesList/OptimalScrollArea/scrollwidget.cpp - GUI/BoxesList/OptimalScrollArea/scrollwidgetvisiblepart.cpp - GUI/BoxesList/OptimalScrollArea/singlewidget.cpp GUI/BoxesList/boxsinglewidget.cpp GUI/BoxesList/boxscrollwidget.cpp GUI/BoxesList/boolpropertywidget.cpp @@ -233,7 +228,6 @@ set( GUI/GradientWidgets/currentgradientwidget.cpp GUI/RenderWidgets/closablecontainer.cpp GUI/BoxesList/boxtargetwidget.cpp - GUI/BoxesList/OptimalScrollArea/minimalscrollwidget.cpp GUI/BoxesList/boxscrollarea.cpp GUI/RenderWidgets/outputsettingsprofilesdialog.cpp GUI/RenderWidgets/outputsettingsdisplaywidget.cpp @@ -260,7 +254,6 @@ set( set( HEADERS - GUI/BoxesList/OptimalScrollArea/scrollvisiblepartbase.h GUI/BoxesList/boxscroller.h #GUI/BrushWidgets/bookmarkedbrushes.h #GUI/BrushWidgets/brushlabel.h @@ -315,10 +308,6 @@ set( eimporters.h iconloader.h renderhandler.h - GUI/BoxesList/OptimalScrollArea/scrollarea.h - GUI/BoxesList/OptimalScrollArea/scrollwidget.h - GUI/BoxesList/OptimalScrollArea/scrollwidgetvisiblepart.h - GUI/BoxesList/OptimalScrollArea/singlewidget.h GUI/BoxesList/boxsinglewidget.h GUI/BoxesList/boxscrollwidget.h GUI/BoxesList/boolpropertywidget.h @@ -331,7 +320,6 @@ set( GUI/GradientWidgets/currentgradientwidget.h GUI/RenderWidgets/closablecontainer.h GUI/BoxesList/boxtargetwidget.h - GUI/BoxesList/OptimalScrollArea/minimalscrollwidget.h GUI/BoxesList/boxscrollarea.h GUI/RenderWidgets/outputsettingsprofilesdialog.h GUI/RenderWidgets/outputsettingsdisplaywidget.h diff --git a/src/app/GUI/BoxesList/boxscrollarea.h b/src/app/GUI/BoxesList/boxscrollarea.h index fb6add842..d8ff78acd 100644 --- a/src/app/GUI/BoxesList/boxscrollarea.h +++ b/src/app/GUI/BoxesList/boxscrollarea.h @@ -25,7 +25,7 @@ #ifndef BOXSCROLLAREA_H #define BOXSCROLLAREA_H -#include "OptimalScrollArea/scrollarea.h" +#include "optimalscrollarena/scrollarea.h" class BoxScrollArea : public ScrollArea { public: diff --git a/src/app/GUI/BoxesList/boxscroller.h b/src/app/GUI/BoxesList/boxscroller.h index 40c272eb2..a67d9efb7 100644 --- a/src/app/GUI/BoxesList/boxscroller.h +++ b/src/app/GUI/BoxesList/boxscroller.h @@ -27,7 +27,7 @@ #define BOXSCROLLWIDGETVISIBLEPART_H #include -#include "OptimalScrollArea/scrollwidgetvisiblepart.h" +#include "optimalscrollarena/scrollwidgetvisiblepart.h" #include "singlewidgettarget.h" #include "framerange.h" diff --git a/src/app/GUI/BoxesList/boxscrollwidget.cpp b/src/app/GUI/BoxesList/boxscrollwidget.cpp index c59f97b69..cbeee5e54 100644 --- a/src/app/GUI/BoxesList/boxscrollwidget.cpp +++ b/src/app/GUI/BoxesList/boxscrollwidget.cpp @@ -24,7 +24,7 @@ // Fork of enve - Copyright (C) 2016-2020 Maurycy Liebner #include "boxscrollwidget.h" -#include "GUI/BoxesList/OptimalScrollArea/scrollarea.h" +#include "optimalscrollarena/scrollarea.h" #include "Boxes/boundingbox.h" #include "boxscroller.h" #include "GUI/canvaswindow.h" diff --git a/src/app/GUI/BoxesList/boxscrollwidget.h b/src/app/GUI/BoxesList/boxscrollwidget.h index be34fa5be..26582fe32 100644 --- a/src/app/GUI/BoxesList/boxscrollwidget.h +++ b/src/app/GUI/BoxesList/boxscrollwidget.h @@ -26,7 +26,7 @@ #ifndef BOXSCROLLWIDGET_H #define BOXSCROLLWIDGET_H -#include "OptimalScrollArea/scrollwidget.h" +#include "optimalscrollarena/scrollwidget.h" #include "GUI/keyfocustarget.h" class BoxScroller; class ScrollArea; diff --git a/src/app/GUI/BoxesList/boxsinglewidget.cpp b/src/app/GUI/BoxesList/boxsinglewidget.cpp index f3bfde03b..b56f08036 100644 --- a/src/app/GUI/BoxesList/boxsinglewidget.cpp +++ b/src/app/GUI/BoxesList/boxsinglewidget.cpp @@ -26,7 +26,7 @@ #include "boxsinglewidget.h" #include "swt_abstraction.h" #include "singlewidgettarget.h" -#include "OptimalScrollArea/scrollwidgetvisiblepart.h" +#include "optimalscrollarena/scrollwidgetvisiblepart.h" #include "GUI/ColorWidgets/colorsettingswidget.h" #include "Boxes/containerbox.h" diff --git a/src/app/GUI/BoxesList/boxsinglewidget.h b/src/app/GUI/BoxesList/boxsinglewidget.h index 529f028eb..efe4953f5 100644 --- a/src/app/GUI/BoxesList/boxsinglewidget.h +++ b/src/app/GUI/BoxesList/boxsinglewidget.h @@ -26,7 +26,7 @@ #ifndef BOXSINGLEWIDGET_H #define BOXSINGLEWIDGET_H -#include "OptimalScrollArea/singlewidget.h" +#include "optimalscrollarena/singlewidget.h" #include #include #include diff --git a/src/app/GUI/GradientWidgets/gradientslistwidget.h b/src/app/GUI/GradientWidgets/gradientslistwidget.h index 41c49b383..2cb2953c4 100644 --- a/src/app/GUI/GradientWidgets/gradientslistwidget.h +++ b/src/app/GUI/GradientWidgets/gradientslistwidget.h @@ -26,7 +26,7 @@ #ifndef GRADIENTSLISTWIDGET_H #define GRADIENTSLISTWIDGET_H -#include "GUI/BoxesList/OptimalScrollArea/scrollarea.h" +#include "optimalscrollarena/scrollarea.h" class GradientWidget; class DisplayedGradientsWidget; diff --git a/src/app/GUI/RenderWidgets/renderwidget.cpp b/src/app/GUI/RenderWidgets/renderwidget.cpp index bf1808def..bc6d9ff8c 100644 --- a/src/app/GUI/RenderWidgets/renderwidget.cpp +++ b/src/app/GUI/RenderWidgets/renderwidget.cpp @@ -27,7 +27,7 @@ #include "canvas.h" #include "GUI/global.h" #include "renderinstancewidget.h" -#include "GUI/BoxesList/OptimalScrollArea/scrollarea.h" +#include "optimalscrollarena/scrollarea.h" #include "videoencoder.h" #include "renderhandler.h" #include "videoencoder.h" diff --git a/src/app/GUI/mainwindow.cpp b/src/app/GUI/mainwindow.cpp index eb1125b30..5f895dc30 100644 --- a/src/app/GUI/mainwindow.cpp +++ b/src/app/GUI/mainwindow.cpp @@ -45,7 +45,7 @@ #include "canvaswindow.h" #include "GUI/BoxesList/boxscrollwidget.h" #include "clipboardcontainer.h" -#include "GUI/BoxesList/OptimalScrollArea/scrollarea.h" +#include "optimalscrollarena/scrollarea.h" #include "GUI/BoxesList/boxscroller.h" #include "GUI/RenderWidgets/renderwidget.h" #include "fontswidget.h" diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 6d95876a5..6501875e6 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -37,6 +37,12 @@ include_directories( set( SOURCES dialogs/scenesettingsdialog.cpp + optimalscrollarena/minimalscrollwidget.cpp + optimalscrollarena/scrollarea.cpp + optimalscrollarena/scrollvisiblepartbase.cpp + optimalscrollarena/scrollwidget.cpp + optimalscrollarena/scrollwidgetvisiblepart.cpp + optimalscrollarena/singlewidget.cpp widgets/actionbutton.cpp widgets/alignwidget.cpp widgets/assetswidget.cpp @@ -58,6 +64,12 @@ set( HEADERS ui_global.h dialogs/scenesettingsdialog.h + optimalscrollarena/minimalscrollwidget.h + optimalscrollarena/scrollarea.h + optimalscrollarena/scrollvisiblepartbase.h + optimalscrollarena/scrollwidget.h + optimalscrollarena/scrollwidgetvisiblepart.h + optimalscrollarena/singlewidget.h widgets/actionbutton.h widgets/alignwidget.h widgets/assetswidget.h diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/minimalscrollwidget.cpp b/src/ui/optimalscrollarena/minimalscrollwidget.cpp similarity index 100% rename from src/app/GUI/BoxesList/OptimalScrollArea/minimalscrollwidget.cpp rename to src/ui/optimalscrollarena/minimalscrollwidget.cpp diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/minimalscrollwidget.h b/src/ui/optimalscrollarena/minimalscrollwidget.h similarity index 95% rename from src/app/GUI/BoxesList/OptimalScrollArea/minimalscrollwidget.h rename to src/ui/optimalscrollarena/minimalscrollwidget.h index 5820ef533..11bfa8561 100644 --- a/src/app/GUI/BoxesList/OptimalScrollArea/minimalscrollwidget.h +++ b/src/ui/optimalscrollarena/minimalscrollwidget.h @@ -26,17 +26,20 @@ #ifndef MINIMALSCROLLWIDGET_H #define MINIMALSCROLLWIDGET_H +#include "ui_global.h" #include #include #include #include #include + class SingleWidget; class ScrollVisiblePartBase; class ScrollArea; -class MinimalScrollWidget : public QWidget { +class UI_EXPORT MinimalScrollWidget : public QWidget +{ Q_OBJECT public: explicit MinimalScrollWidget(ScrollVisiblePartBase * const visiblePart, @@ -51,9 +54,11 @@ class MinimalScrollWidget : public QWidget { void setWidth(const int width); int minHeight() const; + protected: ScrollVisiblePartBase* visiblePartWidget() const { return mVisiblePartWidget; } + private: ScrollVisiblePartBase * const mVisiblePartWidget; ScrollArea * const mParentScrollArea; diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/scrollarea.cpp b/src/ui/optimalscrollarena/scrollarea.cpp similarity index 100% rename from src/app/GUI/BoxesList/OptimalScrollArea/scrollarea.cpp rename to src/ui/optimalscrollarena/scrollarea.cpp diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/scrollarea.h b/src/ui/optimalscrollarena/scrollarea.h similarity index 94% rename from src/app/GUI/BoxesList/OptimalScrollArea/scrollarea.h rename to src/ui/optimalscrollarena/scrollarea.h index 18928d4d0..1e9fcb578 100644 --- a/src/app/GUI/BoxesList/OptimalScrollArea/scrollarea.h +++ b/src/ui/optimalscrollarena/scrollarea.h @@ -25,20 +25,28 @@ #ifndef SCROLLAREA_H #define SCROLLAREA_H + +#include "ui_global.h" + #include -class ScrollArea : public QScrollArea { +class UI_EXPORT ScrollArea : public QScrollArea +{ Q_OBJECT + public: ScrollArea(QWidget * const parent = nullptr); void scrollBy(const int x, const int y); void callWheelEvent(QWheelEvent *event); + signals: void heightChanged(int); void widthChanged(int); + protected: void resizeEvent(QResizeEvent *e); + private: int mLastHeight = 0; int mLastWidth = 0; diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/scrollvisiblepartbase.cpp b/src/ui/optimalscrollarena/scrollvisiblepartbase.cpp similarity index 99% rename from src/app/GUI/BoxesList/OptimalScrollArea/scrollvisiblepartbase.cpp rename to src/ui/optimalscrollarena/scrollvisiblepartbase.cpp index c8f08d355..c89a74193 100644 --- a/src/app/GUI/BoxesList/OptimalScrollArea/scrollvisiblepartbase.cpp +++ b/src/ui/optimalscrollarena/scrollvisiblepartbase.cpp @@ -29,8 +29,8 @@ #include "singlewidget.h" #include "scrollwidget.h" #include "singlewidgettarget.h" -#include "GUI/mainwindow.h" #include "GUI/global.h" +#include ScrollVisiblePartBase::ScrollVisiblePartBase( MinimalScrollWidget * const parent) { diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/scrollvisiblepartbase.h b/src/ui/optimalscrollarena/scrollvisiblepartbase.h similarity index 96% rename from src/app/GUI/BoxesList/OptimalScrollArea/scrollvisiblepartbase.h rename to src/ui/optimalscrollarena/scrollvisiblepartbase.h index c93058e7e..d6c4089be 100644 --- a/src/app/GUI/BoxesList/OptimalScrollArea/scrollvisiblepartbase.h +++ b/src/ui/optimalscrollarena/scrollvisiblepartbase.h @@ -25,11 +25,16 @@ #ifndef SCROLLVISIBLEPARTBASE_H #define SCROLLVISIBLEPARTBASE_H + +#include "ui_global.h" + class MinimalScrollWidget; class SingleWidget; + #include -class ScrollVisiblePartBase : public QWidget { +class UI_EXPORT ScrollVisiblePartBase : public QWidget +{ public: ScrollVisiblePartBase(MinimalScrollWidget * const parent); @@ -62,8 +67,10 @@ class ScrollVisiblePartBase : public QWidget { const QList& widgets() const { return mSingleWidgets; } + protected: bool event(QEvent* event); + private: void postUpdateEvent(); diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/scrollwidget.cpp b/src/ui/optimalscrollarena/scrollwidget.cpp similarity index 100% rename from src/app/GUI/BoxesList/OptimalScrollArea/scrollwidget.cpp rename to src/ui/optimalscrollarena/scrollwidget.cpp diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/scrollwidget.h b/src/ui/optimalscrollarena/scrollwidget.h similarity index 96% rename from src/app/GUI/BoxesList/OptimalScrollArea/scrollwidget.h rename to src/ui/optimalscrollarena/scrollwidget.h index aa4229f34..53708c833 100644 --- a/src/app/GUI/BoxesList/OptimalScrollArea/scrollwidget.h +++ b/src/ui/optimalscrollarena/scrollwidget.h @@ -26,12 +26,15 @@ #ifndef SCROLLWIDGET_H #define SCROLLWIDGET_H +#include "ui_global.h" + #include #include #include #include "minimalscrollwidget.h" #include "smartPointers/ememory.h" #include "swt_rulescollection.h" + class SingleWidget; class ScrollWidgetVisiblePart; class SWT_Abstraction; @@ -42,8 +45,10 @@ enum class SWT_BoxRule : short; enum class SWT_Target : short; enum class SWT_Type : short; -class ScrollWidget : public MinimalScrollWidget { +class UI_EXPORT ScrollWidget : public MinimalScrollWidget +{ Q_OBJECT + public: explicit ScrollWidget(ScrollWidgetVisiblePart* const visiblePart, ScrollArea * const parent); @@ -74,9 +79,11 @@ class ScrollWidget : public MinimalScrollWidget { void updateVisible(); const QList &visibleWidgets(); + protected: ScrollWidgetVisiblePart* visiblePartWidget() const { return mVisiblePartWidget; } + private: void updateAbstraction(); void updateHeightAfterScrollAreaResize(const int parentHeight); diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/scrollwidgetvisiblepart.cpp b/src/ui/optimalscrollarena/scrollwidgetvisiblepart.cpp similarity index 99% rename from src/app/GUI/BoxesList/OptimalScrollArea/scrollwidgetvisiblepart.cpp rename to src/ui/optimalscrollarena/scrollwidgetvisiblepart.cpp index 2fe2ecf82..cd00d4490 100644 --- a/src/app/GUI/BoxesList/OptimalScrollArea/scrollwidgetvisiblepart.cpp +++ b/src/ui/optimalscrollarena/scrollwidgetvisiblepart.cpp @@ -29,7 +29,6 @@ #include "singlewidget.h" #include "scrollwidget.h" #include "singlewidgettarget.h" -#include "GUI/mainwindow.h" #include "GUI/global.h" int ScrollWidgetVisiblePart::sNextId = 0; diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/scrollwidgetvisiblepart.h b/src/ui/optimalscrollarena/scrollwidgetvisiblepart.h similarity index 96% rename from src/app/GUI/BoxesList/OptimalScrollArea/scrollwidgetvisiblepart.h rename to src/ui/optimalscrollarena/scrollwidgetvisiblepart.h index e5cd8366f..c5ba775bf 100644 --- a/src/app/GUI/BoxesList/OptimalScrollArea/scrollwidgetvisiblepart.h +++ b/src/ui/optimalscrollarena/scrollwidgetvisiblepart.h @@ -26,6 +26,8 @@ #ifndef SCROLLWIDGETVISIBLEPART_H #define SCROLLWIDGETVISIBLEPART_H +#include "ui_global.h" + #include "scrollvisiblepartbase.h" #include #include @@ -33,11 +35,14 @@ #include #include "smartPointers/ememory.h" #include "singlewidgettarget.h" + class ScrollWidget; class SingleWidgetTarget; -class ScrollWidgetVisiblePart : public ScrollVisiblePartBase { +class UI_EXPORT ScrollWidgetVisiblePart : public ScrollVisiblePartBase +{ Q_OBJECT + public: ScrollWidgetVisiblePart(ScrollWidget * const parent); @@ -71,6 +76,7 @@ class ScrollWidgetVisiblePart : public ScrollVisiblePartBase { SWT_Abstraction* getMainAbstration() const { return mMainAbstraction; } + private: void setupUpdateFuncs(); void scheduleSearchUpdate(); diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/singlewidget.cpp b/src/ui/optimalscrollarena/singlewidget.cpp similarity index 100% rename from src/app/GUI/BoxesList/OptimalScrollArea/singlewidget.cpp rename to src/ui/optimalscrollarena/singlewidget.cpp diff --git a/src/app/GUI/BoxesList/OptimalScrollArea/singlewidget.h b/src/ui/optimalscrollarena/singlewidget.h similarity index 94% rename from src/app/GUI/BoxesList/OptimalScrollArea/singlewidget.h rename to src/ui/optimalscrollarena/singlewidget.h index c1cf3f9e8..d912c60c6 100644 --- a/src/app/GUI/BoxesList/OptimalScrollArea/singlewidget.h +++ b/src/ui/optimalscrollarena/singlewidget.h @@ -26,19 +26,25 @@ #ifndef SINGLEWIDGET_H #define SINGLEWIDGET_H +#include "ui_global.h" + #include #include "smartPointers/stdpointer.h" + class SWT_Abstraction; class ScrollWidgetVisiblePart; class SingleWidgetTarget; -class SingleWidget : public QWidget { +class UI_EXPORT SingleWidget : public QWidget +{ Q_OBJECT + public: SingleWidget(ScrollWidgetVisiblePart *parent = nullptr); virtual void setTargetAbstraction(SWT_Abstraction *abs); SWT_Abstraction *getTargetAbstraction(); SingleWidgetTarget *getTarget() const; + protected: stdptr mTarget; ScrollWidgetVisiblePart *mParent;