diff options
Diffstat (limited to 'application/MainWindow.cpp')
-rw-r--r-- | application/MainWindow.cpp | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp index e0870d06..8661c199 100644 --- a/application/MainWindow.cpp +++ b/application/MainWindow.cpp @@ -449,6 +449,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow view->installEventFilter(this); view->setContextMenuPolicy(Qt::CustomContextMenu); connect(view, &QWidget::customContextMenuRequested, this, &MainWindow::showInstanceContextMenu); + connect(view, &GroupView::droppedURLs, this, &MainWindow::droppedURLs); proxymodel = new InstanceProxyModel(this); proxymodel->setSourceModel(MMC->instances().get()); @@ -1076,7 +1077,7 @@ void MainWindow::finalizeInstance(InstancePtr inst) } } -void MainWindow::on_actionAddInstance_triggered() +void MainWindow::addInstance(QString url) { QString groupName; do @@ -1098,7 +1099,7 @@ void MainWindow::on_actionAddInstance_triggered() groupName = MMC->settings()->get("LastUsedGroupForNewInstance").toString(); } - NewInstanceDialog newInstDlg(groupName, this); + NewInstanceDialog newInstDlg(groupName, url, this); if (!newInstDlg.exec()) return; @@ -1116,6 +1117,28 @@ void MainWindow::on_actionAddInstance_triggered() } } +void MainWindow::on_actionAddInstance_triggered() +{ + addInstance(); +} + +void MainWindow::droppedURLs(QList<QUrl> urls) +{ + for(auto & url:urls) + { + if(url.isLocalFile()) + { + addInstance(url.toLocalFile()); + } + else + { + addInstance(url.toString()); + } + // Only process one dropped file... + break; + } +} + void MainWindow::on_actionREDDIT_triggered() { DesktopServices::openUrl(QUrl("https://www.reddit.com/r/MultiMC/")); |