summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h
new file mode 100644
index 0000000..bd814ce
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditortext.h
@@ -0,0 +1,87 @@
+#ifndef MULTIEDITORTEXT_H
+#define MULTIEDITORTEXT_H
+
+#include "multieditorwidget.h"
+#include "multieditorwidgetplugin.h"
+#include "common/extactioncontainer.h"
+#include "plugins/builtinplugin.h"
+
+class QPlainTextEdit;
+class QMenu;
+
+CFG_KEY_LIST(MultiEditorText, QObject::tr("Cell text value editor"),
+ CFG_KEY_ENTRY(CUT, QKeySequence::Cut, QObject::tr("Cut selected text"))
+ CFG_KEY_ENTRY(COPY, QKeySequence::Copy, QObject::tr("Copy selected text"))
+ CFG_KEY_ENTRY(PASTE, QKeySequence::Paste, QObject::tr("Paste from clipboard"))
+ CFG_KEY_ENTRY(DELETE, QKeySequence::Delete, QObject::tr("Delete selected text"))
+ CFG_KEY_ENTRY(UNDO, QKeySequence::Undo, QObject::tr("Undo"))
+ CFG_KEY_ENTRY(REDO, QKeySequence::Redo, QObject::tr("Redo"))
+)
+
+class GUI_API_EXPORT MultiEditorText : public MultiEditorWidget, public ExtActionContainer
+{
+ Q_OBJECT
+ Q_ENUMS(Action)
+
+ public:
+ enum Action
+ {
+ TAB_CHANGES_FOCUS,
+ CUT,
+ COPY,
+ PASTE,
+ DELETE,
+ UNDO,
+ REDO
+ };
+
+ enum ToolBar
+ {
+ };
+
+ explicit MultiEditorText(QWidget *parent = 0);
+
+ void setValue(const QVariant& value);
+ QVariant getValue();
+ void setReadOnly(bool value);
+ QString getTabLabel();
+ QToolBar* getToolBar(int toolbar) const;
+ void focusThisWidget();
+ QList<QWidget*> getNoScrollWidgets();
+
+ protected:
+ void createActions();
+ void setupDefShortcuts();
+
+ private:
+ void setupMenu();
+
+ QPlainTextEdit* textEdit = nullptr;
+ QMenu* contextMenu = nullptr;
+
+ private slots:
+ void modificationChanged(bool changed);
+ void deleteSelected();
+ void showCustomMenu(const QPoint& point);
+ void updateUndoAction(bool enabled);
+ void updateRedoAction(bool enabled);
+ void updateCopyAction(bool enabled);
+ void toggleTabFocus();
+};
+
+class GUI_API_EXPORT MultiEditorTextPlugin : public BuiltInPlugin, public MultiEditorWidgetPlugin
+{
+ Q_OBJECT
+
+ SQLITESTUDIO_PLUGIN_AUTHOR("sqlitestudio.pl")
+ SQLITESTUDIO_PLUGIN_DESC("Standard text data editor.")
+ SQLITESTUDIO_PLUGIN_TITLE("Text")
+ SQLITESTUDIO_PLUGIN_VERSION(10000)
+
+ public:
+ MultiEditorWidget* getInstance();
+ bool validFor(const DataType& dataType);
+ int getPriority(const DataType& dataType);
+};
+
+#endif // MULTIEDITORTEXT_H