Rework section widget to support dynamically sized content

This commit is contained in:
WarmUpTill
2021-05-27 20:55:31 +02:00
committed by WarmUpTill
parent 2454ea8fa5
commit aa7714210a
2 changed files with 110 additions and 57 deletions

View File

@@ -14,18 +14,30 @@ public:
explicit Section(const int animationDuration = 300,
QWidget *parent = 0);
void SetContent(QWidget *w);
void SetContent(QWidget *w, bool collapsed = true);
void AddHeaderWidget(QWidget *);
public slots:
void Collapse(bool collapsed);
protected:
bool eventFilter(QObject *obj, QEvent *event) override;
private slots:
void AnimationFinished();
void Collapse(bool collapse);
private:
void SetupAnimations();
void CleanUpPreviousContent();
QGridLayout *_mainLayout;
QHBoxLayout *_headerWidgetLayout;
QToolButton *_toggleButton;
QFrame *_headerLine;
QParallelAnimationGroup *_toggleAnimation = nullptr;
QParallelAnimationGroup *_contentAnimation = nullptr;
QScrollArea *_contentArea = nullptr;
QWidget *_content = nullptr;
int _animationDuration;
std::atomic_bool _transitioning = {false};
int _headerHeight = 0;
int _contentHeight = 0;
};