mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
6895c0eca5
commit
9209382c18
3 changed files with 26 additions and 0 deletions
|
@ -258,6 +258,7 @@ MainWindow::MainWindow() : QMainWindow(),
|
|||
#ifndef NO_PRINTING
|
||||
// copy the bundled print templates to the user path; no overwriting occurs!
|
||||
copyPath(getPrintingTemplatePathBundle(), getPrintingTemplatePathUser());
|
||||
set_bundled_templates_as_read_only();
|
||||
find_all_templates();
|
||||
#endif
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
int getTotalWork(print_options *printOptions);
|
||||
void find_all_templates();
|
||||
void set_bundled_templates_as_read_only();
|
||||
|
||||
extern QList<QString> grantlee_templates, grantlee_statistics_templates;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue