aboutsummaryrefslogtreecommitdiffstats
path: root/Plugins/MultiEditorImage/multieditorimage.h
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/MultiEditorImage/multieditorimage.h')
-rw-r--r--Plugins/MultiEditorImage/multieditorimage.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/Plugins/MultiEditorImage/multieditorimage.h b/Plugins/MultiEditorImage/multieditorimage.h
new file mode 100644
index 0000000..7a305cf
--- /dev/null
+++ b/Plugins/MultiEditorImage/multieditorimage.h
@@ -0,0 +1,67 @@
+#ifndef MULTIEDITORIMAGE_H
+#define MULTIEDITORIMAGE_H
+
+#include "multieditor/multieditorwidget.h"
+#include "multieditor/multieditorwidgetplugin.h"
+#include "multieditorimage_global.h"
+#include "datatype.h"
+#include "plugins/genericplugin.h"
+#include <QVariant>
+
+class QLabel;
+class QScrollArea;
+class QScrollBar;
+
+class MultiEditorImage : public MultiEditorWidget
+{
+ Q_OBJECT
+
+ public:
+ MultiEditorImage();
+
+ void setValue(const QVariant& value);
+ QVariant getValue();
+ void setReadOnly(bool boolValue);
+ QList<QWidget*> getNoScrollWidgets();
+ void focusThisWidget();
+ void notifyAboutUnload();
+
+ private:
+ void scale(double factor);
+
+ QByteArray imgData;
+ QByteArray imgFormat;
+ QScrollArea* scrollArea = nullptr;
+ QLabel* imgLabel = nullptr;
+ QAction* loadAction = nullptr;
+ QAction* zoomInAct = nullptr;
+ QAction* zoomOutAct = nullptr;
+ double currentZoom = 1.0;
+
+ private slots:
+ void openFile();
+ void saveFile();
+ void zoomIn();
+ void zoomOut();
+ void resetZoom();
+};
+
+class MULTIEDITORIMAGE_EXPORT MultiEditorImagePlugin : public GenericPlugin, public MultiEditorWidgetPlugin
+{
+ Q_OBJECT
+
+ SQLITESTUDIO_PLUGIN("multieditorimage.json")
+
+ public:
+ MultiEditorWidget* getInstance();
+ bool validFor(const DataType& dataType);
+ int getPriority(const DataType& dataType);
+ QString getTabLabel();
+ bool init();
+ void deinit();
+
+ private:
+ QList<MultiEditorImage*> instances;
+};
+
+#endif // MULTIEDITORIMAGE_H