diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-05-12 13:29:53 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-05-12 15:37:15 +0200 |
commit | 654d77643199f53f6ff990963ce5c62794325910 (patch) | |
tree | e5916e2764dfa30791d8b19edcdb5b1c2a902f3c /src | |
parent | d55eb62bca39a4ef408ba3aceeb6f4c24699e8e8 (diff) |
Add load/save dialogs.
Diffstat (limited to 'src')
-rw-r--r-- | src/mainwindow.cc | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/src/mainwindow.cc b/src/mainwindow.cc index 9dabde1..04c5f2a 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -470,7 +470,18 @@ void MainWindow::newProject() void MainWindow::loadProject() { - QFile file("test.dgedit"); + QString filename = + QFileDialog::getOpenFileName(this, + tr("Load DGEdit Project"), + "", + tr("DGEdit Project Files (*.dgedit)")); + if(filename == "") + { + // User clicked cancel + return; + } + + QFile file(filename); if(!file.open(QIODevice::ReadOnly)) { return; @@ -482,15 +493,34 @@ void MainWindow::loadProject() ProjectSerialiser ser; ser.deserialise(xml, project); - std::cout << project.getProjectName().toStdString() << std::endl; - std::cout << project.getRawFileRoot().toStdString() << std::endl; + statusBar()->showMessage(tr("Loaded")); } void MainWindow::saveProject() { + QString filename + = QFileDialog::getSaveFileName(this, tr("Save DGEdit Project"), + "", + tr("DGEdit Project Files (*.dgedit)")); + + if(filename == "") + { + // User clicked cancel + return; + } + + QFile file(filename); + if(!file.open(QIODevice::WriteOnly)) + { + return; + } + ProjectSerialiser ser; auto xml = ser.serialise(project); - std::cout << xml.toStdString() << std::endl; + + file.write(xml.toUtf8()); + + statusBar()->showMessage(tr("Saved")); } void MainWindow::projectChanged() |