summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/templatelayout.cpp
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-11-23 01:59:26 +0200
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-11-24 21:50:12 +0200
commit9209382c1868045baf49da42c5700da43556a49f (patch)
tree74315c1c768e1c658ed48b20de4579cd14179916 /desktop-widgets/templatelayout.cpp
parent6895c0eca5550b449ee616b7d3b3c5beb8b54ab3 (diff)
downloadsubsurface-9209382c1868045baf49da42c5700da43556a49f.tar.gz
printing: add set_bundled_templates_as_read_only()
Add the function set_bundled_templates_as_read_only() in templatelayout.cpp/h. The function is used to mark the bundled template files as read-only in the user folder. It is called in mainwindow.cpp, after the files are copied from the bundle. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Diffstat (limited to 'desktop-widgets/templatelayout.cpp')
-rw-r--r--desktop-widgets/templatelayout.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/desktop-widgets/templatelayout.cpp b/desktop-widgets/templatelayout.cpp
index 9f933e91c..b53f55741 100644
--- a/desktop-widgets/templatelayout.cpp
+++ b/desktop-widgets/templatelayout.cpp
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: GPL-2.0
+#include <QFileDevice>
#include <string>
#include "templatelayout.h"
@@ -39,6 +40,29 @@ void find_all_templates()
}
}
+/* find templates which are part of the bundle in the user path
+ * and set them as read only.
+ */
+void set_bundled_templates_as_read_only()
+{
+ QDir dir;
+ const QString stats("statistics");
+ QStringList list, listStats;
+ QString pathBundle = getPrintingTemplatePathBundle();
+ QString pathUser = getPrintingTemplatePathUser();
+
+ dir.setPath(pathBundle);
+ list = dir.entryList(QDir::Files | QDir::NoDotAndDotDot);
+ dir.setPath(pathBundle + QDir::separator() + stats);
+ listStats = dir.entryList(QDir::Files | QDir::NoDotAndDotDot);
+ for (int i = 0; i < listStats.length(); i++)
+ listStats[i] = stats + QDir::separator() + listStats.at(i);
+ list += listStats;
+
+ foreach (const QString& f, list)
+ QFile::setPermissions(pathUser + QDir::separator() + f, QFileDevice::ReadOwner | QFileDevice::ReadUser);
+}
+
TemplateLayout::TemplateLayout(print_options *PrintOptions, template_options *templateOptions) :
m_engine(NULL)
{