chore: baseline usable version

This commit is contained in:
dela
2026-06-10 11:17:51 +08:00
commit a2f82a86b6
932 changed files with 172551 additions and 0 deletions
@@ -0,0 +1,56 @@
#ifndef SLIDINGSTACKEDWIDGET_H
#define SLIDINGSTACKEDWIDGET_H
#include <QStackedWidget>
#include <QPropertyAnimation>
#include <QParallelAnimationGroup>
#include <QEasingCurve>
#include <QList>
#include <QPointer>
class QLabel;
class SlidingStackedWidget : public QStackedWidget
{
Q_OBJECT
public:
enum SlideDirection {
LeftToRight,
RightToLeft,
TopToBottom,
BottomToTop,
Automatic
};
explicit SlidingStackedWidget(QWidget *parent = nullptr);
void setSpeed(int speed);
void setEasingCurve(QEasingCurve::Type curveType);
void slideInIdx(int idx, SlideDirection direction = Automatic);
void slideInWgt(QWidget *widget, SlideDirection direction = Automatic);
void disposeWidgetWhenSafe(QWidget *widget);
Q_SIGNALS:
void animationFinished();
private Q_SLOTS:
void animationDoneSlot();
private:
void flushPendingWidgetDisposals();
int m_speed;
QEasingCurve::Type m_animationType;
QParallelAnimationGroup *m_animGroup;
bool m_isAnimating;
int m_nextIndex;
QList<QPointer<QWidget>> m_pendingWidgetDisposals;
QLabel* m_snapshotLabel = nullptr;
};
#endif