diff options
| author | 2014-12-06 17:33:25 -0500 | |
|---|---|---|
| committer | 2014-12-06 17:33:25 -0500 | |
| commit | 7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch) | |
| tree | a35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/guiSQLiteStudio/common/widgetcover.h | |
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/common/widgetcover.h')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/common/widgetcover.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/widgetcover.h b/SQLiteStudio3/guiSQLiteStudio/common/widgetcover.h new file mode 100644 index 0000000..d0ccef7 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/widgetcover.h @@ -0,0 +1,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 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(); +}; + +#endif // WIDGETCOVER_H |
