aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.h
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2018-07-27 23:54:15 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2018-07-27 23:54:15 -0400
commit6d3d39356473078c6b47e03b8a7616e4b34de928 (patch)
treefe5be2e6a08e4cfc73207746aba4c9fccfecfa10 /SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.h
parentf98e49169a40876bcf1df832de6e908d1b350193 (diff)
parentfeda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 (diff)
Update upstream source from tag 'upstream/3.2.1+dfsg1'
Update to upstream version '3.2.1+dfsg1' with Debian dir 5ea0333565de4dc898c062cc0ff4ba1153e2c1e4
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.h b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.h
new file mode 100644
index 0000000..085edd9
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/windows/sqliteextensioneditormodel.h
@@ -0,0 +1,65 @@
+#ifndef SQLITEEXTENSIONEDITORMODEL_H
+#define SQLITEEXTENSIONEDITORMODEL_H
+
+#include "guiSQLiteStudio_global.h"
+#include "services/sqliteextensionmanager.h"
+#include <QIcon>
+#include <QHash>
+#include <QAbstractListModel>
+
+class GUI_API_EXPORT SqliteExtensionEditorModel : public QAbstractListModel
+{
+ Q_OBJECT
+
+ public:
+ using QAbstractItemModel::setData;
+
+ explicit SqliteExtensionEditorModel(QObject* parent = nullptr);
+
+ void clearModified();
+ bool isModified() const;
+ bool isModified(int row) const;
+ void setModified(int row, bool modified);
+ QString getName(int row) const;
+ void setName(int row, const QString& name);
+ void setFilePath(int row, const QString& filePath);
+ QString getFilePath(int row) const;
+ void setInitFunction(int row, const QString& initFunc);
+ QString getInitFunction(int row) const;
+ void setAllDatabases(int row, bool allDatabases);
+ bool getAllDatabases(int row) const;
+ void setDatabases(int row, const QStringList& databases);
+ QStringList getDatabases(int row);
+ bool isValid(int row) const;
+ void setValid(int row, bool valid);
+ bool isValid() const;
+ void setData(const QList<SqliteExtensionManager::ExtensionPtr>& extensions);
+ void addExtension(const SqliteExtensionManager::ExtensionPtr& extension);
+ void deleteExtension(int row);
+ QList<SqliteExtensionManager::ExtensionPtr> getExtensions() const;
+ bool isValidRowIndex(int row) const;
+
+ int rowCount(const QModelIndex& parent = QModelIndex()) const;
+ QVariant data(const QModelIndex& index, int role) const;
+
+ private:
+ struct Extension
+ {
+ Extension();
+ Extension(const SqliteExtensionManager::ExtensionPtr& other);
+
+ SqliteExtensionManager::ExtensionPtr data;
+ QString name;
+ bool modified = false;
+ bool valid = true;
+ };
+
+ void emitDataChanged(int row);
+
+ QList<Extension*> extensionList;
+ QList<Extension*> originalExtensionList;
+ QHash<QString, QIcon> langToIcon;
+ bool listModified = false;
+};
+
+#endif // SQLITEEXTENSIONEDITORMODEL_H