aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:57 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:57 -0400
commit65d5f68cc6dc81799c5a5d90400a2c1f0dd02547 (patch)
tree6f245ba901b87ef42fed69965aea22f5eea6b590 /SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp
parentaeb6bad01630d325a4e768e798a7a6d44e18fdaf (diff)
parent5d9314f134ddd3dc4c853e398ac90ba247fb2e4f (diff)
Merge tag 'upstream/3.1.0'
Upstream version 3.1.0 # gpg: Signature made Mon 13 Jun 2016 06:42:54 PM EDT using RSA key ID EBE9BD91 # gpg: Good signature from "Unit 193 <unit193@gmail.com>" # gpg: aka "Unit 193 <unit193@ninthfloor.org>" # gpg: aka "Unit 193 <unit193@ubuntu.com>" # gpg: aka "Unit 193 <unit193@ninthfloor.com>"
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp36
1 files changed, 35 insertions, 1 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp
index c0f527f..c11221d 100644
--- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreemodel.cpp
@@ -13,6 +13,7 @@
#include "dialogs/errorsconfirmdialog.h"
#include "dialogs/versionconvertsummarydialog.h"
#include "db/invaliddb.h"
+#include "services/notifymanager.h"
#include <QMimeData>
#include <QDebug>
#include <QFile>
@@ -1040,7 +1041,10 @@ bool DbTreeModel::dropDbTreeItem(const QList<DbTreeItem*>& srcItems, DbTreeItem*
return false;
if (srcItem->getDb() == dstItem->getDb())
+ {
+ invokeStdDropAction = true;
return true;
+ }
return dropDbObjectItem(srcItems, dstItem, defaultAction);
}
@@ -1135,6 +1139,8 @@ QCheckBox* DbTreeModel::createCopyOrMoveMenuCheckBox(QMenu* menu, const QString&
bool DbTreeModel::dropUrls(const QList<QUrl>& urls)
{
+ QString filePath;
+ bool autoTest = false;
for (const QUrl& url : urls)
{
if (!url.isLocalFile())
@@ -1143,13 +1149,41 @@ bool DbTreeModel::dropUrls(const QList<QUrl>& urls)
continue;
}
+ autoTest = false;
+ filePath = url.toLocalFile();
+ if (CFG_UI.General.BypassDbDialogWhenDropped.get())
+ {
+ if (quickAddDroppedDb(filePath))
+ {
+ continue;
+ }
+ else
+ {
+ notifyWarn(tr("Could not add dropped database file '%1' automatically. Manual setup is necessary.").arg(filePath));
+ autoTest = true;
+ }
+ }
+
DbDialog dialog(DbDialog::ADD, MAINWINDOW);
- dialog.setPath(url.toLocalFile());
+ dialog.setPath(filePath);
+ dialog.setDoAutoTest(autoTest);
dialog.exec();
}
return false;
}
+bool DbTreeModel::quickAddDroppedDb(const QString& filePath)
+{
+ DbPlugin* plugin = DBLIST->getPluginForDbFile(filePath);
+ if (!plugin)
+ return false;
+
+ QString name = DBLIST->generateUniqueDbName(plugin, filePath);
+ QHash<QString,QVariant> opts;
+ opts[DB_PLUGIN] = plugin->getName();
+ return DBLIST->addDb(name, filePath, opts, !CFG_UI.General.NewDbNotPermanentByDefault.get());
+}
+
void DbTreeModel::moveOrCopyDbObjects(const QList<DbTreeItem*>& srcItems, DbTreeItem* dstItem, bool move, bool includeData, bool includeIndexes, bool includeTriggers)
{
if (srcItems.size() == 0)