aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/plugins')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp2
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.cpp33
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.h16
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/plugins/uiconfiguredplugin.h2
4 files changed, 51 insertions, 2 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp
index 0f16098..7228752 100644
--- a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp
@@ -38,7 +38,7 @@ QList<DbPluginOption> DbPluginSqlite3::getOptionsList() const
QString DbPluginSqlite3::generateDbName(const QVariant& baseValue)
{
QFileInfo file(baseValue.toString());
- return file.baseName();
+ return file.completeBaseName();
}
bool DbPluginSqlite3::checkIfDbServedByPlugin(Db* db) const
diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.cpp
new file mode 100644
index 0000000..b890c26
--- /dev/null
+++ b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.cpp
@@ -0,0 +1,33 @@
+#include "dbpluginstdfilebase.h"
+#include "common/unused.h"
+#include "db/sqlquery.h"
+#include <QFileInfo>
+
+Db *DbPluginStdFileBase::getInstance(const QString &name, const QString &path, const QHash<QString, QVariant> &options, QString *errorMessage)
+{
+ UNUSED(errorMessage);
+
+ Db* db = newInstance(name, path, options);
+
+ if (!db->openForProbing())
+ {
+ delete db;
+ return nullptr;
+ }
+
+ SqlQueryPtr results = db->exec("SELECT * FROM sqlite_master");
+ if (results->isError())
+ {
+ delete db;
+ return nullptr;
+ }
+
+ db->closeQuiet();
+ return db;
+}
+
+QString DbPluginStdFileBase::generateDbName(const QVariant &baseValue)
+{
+ QFileInfo file(baseValue.toString());
+ return file.completeBaseName();
+}
diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.h b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.h
new file mode 100644
index 0000000..6ea1c47
--- /dev/null
+++ b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginstdfilebase.h
@@ -0,0 +1,16 @@
+#ifndef DBPLUGINSTDFILEBASE_H
+#define DBPLUGINSTDFILEBASE_H
+
+#include "dbplugin.h"
+
+class API_EXPORT DbPluginStdFileBase : public DbPlugin
+{
+ public:
+ Db *getInstance(const QString &name, const QString &path, const QHash<QString, QVariant> &options, QString *errorMessage);
+ QString generateDbName(const QVariant &baseValue);
+
+ protected:
+ virtual Db *newInstance(const QString &name, const QString &path, const QHash<QString, QVariant> &options) = 0;
+};
+
+#endif // DBPLUGINSTDFILEBASE_H
diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/uiconfiguredplugin.h b/SQLiteStudio3/coreSQLiteStudio/plugins/uiconfiguredplugin.h
index c9af8e0..1426117 100644
--- a/SQLiteStudio3/coreSQLiteStudio/plugins/uiconfiguredplugin.h
+++ b/SQLiteStudio3/coreSQLiteStudio/plugins/uiconfiguredplugin.h
@@ -39,7 +39,7 @@ class API_EXPORT UiConfiguredPlugin
*
* This is called just after the config dialog was open and all its contents are already initialized.
* This is a good moment to connect to plugin's CfgMain configuration object to listen for changes,
- * so all uncommited (yet) configuration changes can be reflected by this plugin.
+ * so all uncommitted (yet) configuration changes can be reflected by this plugin.
*/
virtual void configDialogOpen() = 0;