From 6c268bd774836658950c742158513e80e4cf0213 Mon Sep 17 00:00:00 2001 From: Eelke Klein Date: Sat, 21 Jan 2017 08:19:47 +0100 Subject: [PATCH] Also added "Save copy as" This prompts for a new filename but it keeps remembering the previous name. --- mainwindow.cpp | 26 ++++++++++++++++++++------ mainwindow.h | 2 ++ mainwindow.ui | 6 ++++++ 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 374e964..d3d17bd 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -521,14 +521,26 @@ void MainWindow::on_actionSave_SQL_triggered() } } -void MainWindow::on_actionSave_SQL_as_triggered() +QString MainWindow::promptUserForSaveSqlFilename() { QString home_dir = QStandardPaths::locate(QStandardPaths::HomeLocation, "", QStandardPaths::LocateDirectory); - QString file_name = QFileDialog::getSaveFileName(this, - tr("Save query"), home_dir, tr("SQL file (*.sql)")); - if ( ! file_name.isEmpty()) { - saveSqlTo(file_name); - m_fileName = file_name; + return QFileDialog::getSaveFileName(this, tr("Save query"), home_dir, tr("SQL file (*.sql)")); +} + +void MainWindow::on_actionSave_SQL_as_triggered() +{ + QString filename = promptUserForSaveSqlFilename(); + if (!filename.isEmpty()) { + saveSqlTo(filename); + m_fileName = filename; + } +} + +void MainWindow::on_actionSave_copy_of_SQL_as_triggered() +{ + QString filename = promptUserForSaveSqlFilename(); + if (!filename.isEmpty()) { + saveSqlTo(filename); } } @@ -620,3 +632,5 @@ void MainWindow::showEvent(QShowEvent *event) } + + diff --git a/mainwindow.h b/mainwindow.h index f194876..b7b9972 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -77,6 +77,7 @@ private: bool continueWithoutSaving(); void closeEvent(QCloseEvent *event); void showEvent(QShowEvent *event); + QString promptUserForSaveSqlFilename(); void saveSqlTo(const QString &filename); private slots: @@ -102,6 +103,7 @@ private slots: void on_actionExplain_Analyze_triggered(); void on_actionCancel_triggered(); void on_actionSave_SQL_as_triggered(); + void on_actionSave_copy_of_SQL_as_triggered(); }; #endif // MAINWINDOW_H diff --git a/mainwindow.ui b/mainwindow.ui index aad5b97..c28dacf 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -223,6 +223,7 @@ + @@ -338,6 +339,11 @@ Save SQL as + + + Save copy of SQL as + +