mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 08:49:37 +00:00
Adds drag-and-drop snapshot support for Qt.
This commit is contained in:
parent
56c30e1651
commit
1c1719e561
@ -207,14 +207,15 @@ QString MainWindow::getFilename(const char *title) {
|
|||||||
return fileName;
|
return fileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::insertFile(const QString &fileName) {
|
bool MainWindow::insertFile(const QString &fileName) {
|
||||||
if(!machine) return;
|
if(!machine) return false;
|
||||||
|
|
||||||
auto mediaTarget = machine->media_target();
|
auto mediaTarget = machine->media_target();
|
||||||
if(!mediaTarget) return;
|
if(!mediaTarget) return false;
|
||||||
|
|
||||||
Analyser::Static::Media media = Analyser::Static::GetMedia(fileName.toStdString());
|
const Analyser::Static::Media media = Analyser::Static::GetMedia(fileName.toStdString());
|
||||||
mediaTarget->insert_media(media);
|
if(media.empty()) return false;
|
||||||
|
return mediaTarget->insert_media(media);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MainWindow::launchFile(const QString &fileName) {
|
bool MainWindow::launchFile(const QString &fileName) {
|
||||||
@ -732,7 +733,10 @@ void MainWindow::dropEvent(QDropEvent* event) {
|
|||||||
case UIPhase::RunningMachine: {
|
case UIPhase::RunningMachine: {
|
||||||
// Attempt to insert into the running machine.
|
// Attempt to insert into the running machine.
|
||||||
const auto fileName = event->mimeData()->urls()[0].toLocalFile();
|
const auto fileName = event->mimeData()->urls()[0].toLocalFile();
|
||||||
insertFile(fileName);
|
if(!insertFile(fileName)) {
|
||||||
|
deleteMachine();
|
||||||
|
launchFile(fileName);
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
// TODO: permit multiple files dropped at once in both of the above cases.
|
// TODO: permit multiple files dropped at once in both of the above cases.
|
||||||
|
@ -104,7 +104,7 @@ class MainWindow : public QMainWindow, public Outputs::Speaker::Speaker::Delegat
|
|||||||
} keyboardInputMode;
|
} keyboardInputMode;
|
||||||
|
|
||||||
QAction *insertAction = nullptr;
|
QAction *insertAction = nullptr;
|
||||||
void insertFile(const QString &fileName);
|
bool insertFile(const QString &fileName);
|
||||||
|
|
||||||
bool launchFile(const QString &fileName);
|
bool launchFile(const QString &fileName);
|
||||||
void launchTarget(std::unique_ptr<Analyser::Static::Target> &&);
|
void launchTarget(std::unique_ptr<Analyser::Static::Target> &&);
|
||||||
|
Loading…
Reference in New Issue
Block a user