summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/common/widgetcover.h
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
commit7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch)
treea35c14143716e1f2c98f808c81f89426045a946f /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.h72
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