summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/mainwindow.cpp
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-11-24 22:54:54 +0200
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-11-24 23:06:52 +0200
commit65f0600679a72d13b64b20c575c05b5313a80635 (patch)
tree65af0a1b9bf6f619f252ad756956c3c9bab71078 /desktop-widgets/mainwindow.cpp
parentfc48cde77c98385c69bc4d951de6867cf2f652a0 (diff)
downloadsubsurface-65f0600679a72d13b64b20c575c05b5313a80635.tar.gz
printing: update the coping of bundled templates
This update includes: - Instead of copyPath() use a new specialized function: copy_bundled_templates() - The new function supports overwriting of templates in the user path, but only if a template file is read-only - If the file is RW create a backup of the file in the form of: <file-name>-User.html - Collect backup files and store them in a QStringList which is then shown in a QMessageBox from MainWindow to notifying the user about the backup This change allows moving the maintenance of the bundled templates back to the application developers and contributors as currently the only one who can edit the templates in the user path was the user. Suggested-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Diffstat (limited to 'desktop-widgets/mainwindow.cpp')
-rw-r--r--desktop-widgets/mainwindow.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp
index 05314af1d..e5739bd47 100644
--- a/desktop-widgets/mainwindow.cpp
+++ b/desktop-widgets/mainwindow.cpp
@@ -256,8 +256,23 @@ MainWindow::MainWindow() : QMainWindow(),
connect(geoLookup, SIGNAL(started()),information(), SLOT(disableGeoLookupEdition()));
connect(geoLookup, SIGNAL(finished()), information(), SLOT(enableGeoLookupEdition()));
#ifndef NO_PRINTING
- // copy the bundled print templates to the user path; no overwriting occurs!
- copyPath(getPrintingTemplatePathBundle(), getPrintingTemplatePathUser());
+ // copy the bundled print templates to the user path
+ QStringList templateBackupList;
+ QString templatePathUser(getPrintingTemplatePathUser());
+ copy_bundled_templates(getPrintingTemplatePathBundle(), templatePathUser, &templateBackupList);
+ if (templateBackupList.length()) {
+ QMessageBox msgBox(this);
+ templatePathUser.replace("\\", "/");
+ templateBackupList.replaceInStrings(templatePathUser + "/", "");
+ msgBox.setWindowTitle(tr("Template backup created"));
+ msgBox.setText(tr("The following backup printing templates were created:\n\n%1\n\n"
+ "Location:\n%2\n\n"
+ "Please note that as of this version of Subsurface the default templates\n"
+ "are read-only and should not be edited directly, since the application\n"
+ "can overwrite them on startup.").arg(templateBackupList.join("\n")).arg(templatePathUser));
+ msgBox.setStandardButtons(QMessageBox::Ok);
+ msgBox.exec();
+ }
set_bundled_templates_as_read_only();
find_all_templates();
#endif