blob: 0b7a2f5a1edd467e2cdb21d4bcc1b7500515f0f0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
#ifndef WIDGETCOVER_H
#define WIDGETCOVER_H
#include "guiSQLiteStudio_global.h"
#include <QWidget>
#include <QEasingCurve>
#include <QVariant>
class QVariantAnimation;
class QGridLayout;
class QPushButton;
class QProgressBar;
class GUI_API_EXPORT WidgetCover : public QWidget
{
Q_OBJECT
public:
explicit WidgetCover(QWidget *parent);
explicit WidgetCover(const QEasingCurve& easingCurve, QWidget *parent);
virtual ~WidgetCover();
QEasingCurve getEasingCurve() const;
void setEasingCurve(const QEasingCurve& value);
int getDuration() const;
void setDuration(int value);
int getTransparency() const;
void setTransparency(int value);
QGridLayout* getContainerLayout();
bool eventFilter(QObject* obj, QEvent* e);
void displayProgress(int maxValue, const QString& format = QString());
void noDisplayProgress();
void initWithProgressBarOnly(const QString& format);
void initWithInterruptContainer(const QString& interruptButtonText = QString());
private:
enum class Action
{
SHOWING,
HIDING,
NONE
};
void init();
void interruptAction();
void resetBackground();
void widgetResized();
Action actionInProgres = Action::NONE;
QVariantAnimation* animation = nullptr;
QEasingCurve easingCurve = QEasingCurve::OutCubic;
int duration = 150;
int transparency = 128;
QWidget* container = nullptr;
QGridLayout* containerLayout = nullptr;
QPushButton* cancelButton = nullptr;
QProgressBar* busyBar = nullptr;
signals:
void cancelClicked();
private slots:
void animationUpdate(const QVariant& value);
void animationFinished();
public slots:
void show();
void hide();
void setProgress(int value);
};
#endif // WIDGETCOVER_H
|