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>
This commit is contained in:
Lubomir I. Ivanov 2017-11-23 01:59:26 +02:00
parent 6895c0eca5
commit 9209382c18
3 changed files with 26 additions and 0 deletions

View file

@ -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)
{