aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/statusfield.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/statusfield.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/statusfield.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/statusfield.h b/SQLiteStudio3/guiSQLiteStudio/statusfield.h
new file mode 100644
index 0000000..ac07f51
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/statusfield.h
@@ -0,0 +1,58 @@
+#ifndef STATUSFIELD_H
+#define STATUSFIELD_H
+
+#include "guiSQLiteStudio_global.h"
+#include <QVariant>
+#include <QDockWidget>
+
+class QMenu;
+class QAbstractAnimation;
+class QTableWidgetItem;
+
+namespace Ui {
+ class StatusField;
+}
+
+class GUI_API_EXPORT StatusField : public QDockWidget
+{
+ Q_OBJECT
+
+ public:
+ explicit StatusField(QWidget *parent = 0);
+ ~StatusField();
+
+ bool hasMessages() const;
+
+ protected:
+ void changeEvent(QEvent *e);
+
+ private:
+ void addEntry(const QIcon& icon, const QString& text, const QColor &color);
+ void flashItems(const QList<QTableWidgetItem*>& items, const QColor& color);
+ void setupMenu();
+ void readRecentMessages();
+
+ Ui::StatusField *ui = nullptr;
+ QMenu* menu = nullptr;
+ QAction* copyAction = nullptr;
+ QAction* clearAction = nullptr;
+ QList<QAbstractAnimation*> itemAnimations;
+ bool noFlashing = false;
+
+ static const int timeStampColumnWidth = 70;
+ static const int itemCountLimit = 30;
+ static constexpr const char* timeStampFormat = "hh:mm:ss";
+
+ private slots:
+ void customContextMenuRequested(const QPoint& pos);
+ void info(const QString& text);
+ void warn(const QString& text);
+ void error(const QString& text);
+ void reset();
+ void fontChanged(const QVariant& variant);
+
+ signals:
+ void linkActivated(const QString& link);
+};
+
+#endif // STATUSFIELD_H