diff options
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/plugins')
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; |
