From 05602dbb1ec01f727a103c10cfc65ccfb719df09 Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Tue, 12 Sep 2006 01:40:55 +0000 Subject: [PATCH] implement analysis save as dialog this does seem to let you save an analysis. So I need to get the autosaving to turn off. and it defaults to the app "current" directory which isn't ideal. --- qui/MussaWindow.cpp | 39 +++++++++++++++++++++++++++++++++++++++ qui/MussaWindow.hpp | 3 +++ qui/mussagl.cpp | 1 - 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/qui/MussaWindow.cpp b/qui/MussaWindow.cpp index b0d5dbd..1e8d06c 100644 --- a/qui/MussaWindow.cpp +++ b/qui/MussaWindow.cpp @@ -22,6 +22,7 @@ #include #include +#include namespace fs = boost::filesystem; #include @@ -129,6 +130,10 @@ void MussaWindow::setupActions() connect(createSubAnalysisAction, SIGNAL(triggered()), this, SLOT(createSubAnalysis())); + saveAnalysisAction = new QAction(tr("Save Analysis"), this); + connect(saveAnalysisAction, SIGNAL(triggered()), + this, SLOT(saveAnalysis())); + editMotifsAction = new QAction(tr("Edit Motifs"), this);; connect(editMotifsAction, SIGNAL(triggered()), this, SLOT(editMotifs())); @@ -208,6 +213,7 @@ void MussaWindow::setupMainMenu() newMenu->addAction(createNewAnalysisAction); newMenu->addAction(loadMupaAction); newMenu->addAction(loadSavedAnalysisAction); + newMenu->addAction(saveAnalysisAction); newMenu->addSeparator(); newMenu->addAction(loadMotifListAction); newMenu->addAction(saveMotifListAction); @@ -304,6 +310,39 @@ void MussaWindow::createSubAnalysis() } } +void MussaWindow::saveAnalysis() +{ + std::auto_ptr dialog(new QFileDialog(this)); + dialog->setAcceptMode(QFileDialog::AcceptSave); + dialog->setFileMode(QFileDialog::AnyFile); + + QStringList fileNames; + if (not dialog->exec()) { + return; + } + fileNames = dialog->selectedFiles(); + + if (fileNames.size() != 1) { + return; + } + + fs::path save_path(fileNames[0].toStdString()); + // do you want to overwrite? + if (fs::exists(save_path) and + QMessageBox::question( + this, + tr("Overwrite File? -- Mussa"), + tr("A file called %1 already exists" + "do you want to overwrite it?") + .arg(fileNames[0]), + tr("&Yes"), tr("&No"), + QString(), 0, 1) + ) { + return; + } + analysis->save(save_path); +} + void MussaWindow::editMotifs() { if (motif_editor != 0) { diff --git a/qui/MussaWindow.hpp b/qui/MussaWindow.hpp index 30900c8..fede80b 100644 --- a/qui/MussaWindow.hpp +++ b/qui/MussaWindow.hpp @@ -47,6 +47,8 @@ public slots: void createNewAnalysis(); //! launch a sub analysis void createSubAnalysis(); + //! save an analysis + void saveAnalysis(); //\@} //! \defgroup MotifHandling Handling of motif lists @@ -101,6 +103,7 @@ protected: QAction *closeAction; QAction *createNewAnalysisAction; QAction *createSubAnalysisAction; + QAction *saveAnalysisAction; QAction *editMotifsAction; QAction *loadMotifListAction; QAction *loadMupaAction; diff --git a/qui/mussagl.cpp b/qui/mussagl.cpp index 6b8eaed..4a43638 100644 --- a/qui/mussagl.cpp +++ b/qui/mussagl.cpp @@ -43,7 +43,6 @@ int main(int argc, char **argv) } #endif //opts.doc_dir = get_doc_dir(); - QApplication app(argc, argv, opts.useGUI); Q_INIT_RESOURCE(icons); -- 2.30.2