1 /*
2 For general Scribus (>=1.3.2) copyright and licensing information please refer
3 to the COPYING file provided with the program. Following this notice may exist
4 a copyright and/or license notice that predates the release of Scribus 1.3.2
5 for which a new license (GPL+exception) is in place.
6 */
7 
8 #include <QFileDialog>
9 #include <QString>
10 
11 #include "prefs_paths.h"
12 #include "prefsstructs.h"
13 #include "scribusdoc.h"
14 
Prefs_Paths(QWidget * parent,ScribusDoc * doc)15 Prefs_Paths::Prefs_Paths(QWidget* parent, ScribusDoc* doc)
16 	: Prefs_Pane(parent)
17 {
18 	setupUi(this);
19 	languageChange();
20 
21 	m_caption = tr("Paths");
22 	m_icon = "16/folder.png";
23 
24 	connect(docDirChangeButton, SIGNAL(clicked()), this, SLOT(changeDocs()));
25 	connect(profileDirChangeButton, SIGNAL(clicked()), this, SLOT(changeProfs()));
26 	connect(scriptDirChangeButton, SIGNAL(clicked()), this, SLOT(changeScripts()));
27 	connect(templateDirChangeButton, SIGNAL(clicked()), this, SLOT(changeDocumentTemplates()));
28 }
29 
30 Prefs_Paths::~Prefs_Paths() = default;
31 
languageChange()32 void Prefs_Paths::languageChange()
33 {
34 	docDirLineEdit->setToolTip( "<qt>" + tr( "Default documents directory" ) + "</qt>" );
35 	profileDirLineEdit->setToolTip( "<qt>" + tr( "Default ICC profiles directory. This cannot be changed with a document open. By default, Scribus will look in the System Directories under Mac OSX and Windows. On Linux and Unix, Scribus will search $home/.color/icc, $home/.local/share/color/icc, /usr/share/color/icc and /usr/local/share/color/icc" ) + "</qt>" );
36 	scriptDirLineEdit->setToolTip( "<qt>" + tr( "Default Scripter scripts directory" ) + "</qt>" );
37 	templateDirLineEdit->setToolTip( "<qt>"+ tr("Additional directory for document templates")+"</qt>" );
38 }
39 
restoreDefaults(struct ApplicationPrefs * prefsData)40 void Prefs_Paths::restoreDefaults(struct ApplicationPrefs *prefsData)
41 {
42 	docDirLineEdit->setText(prefsData->pathPrefs.documents);
43 	profileDirLineEdit->setText(prefsData->pathPrefs.colorProfiles);
44 	scriptDirLineEdit->setText(prefsData->pathPrefs.scripts);
45 	templateDirLineEdit->setText(prefsData->pathPrefs.documentTemplates);
46 }
47 
saveGuiToPrefs(struct ApplicationPrefs * prefsData) const48 void Prefs_Paths::saveGuiToPrefs(struct ApplicationPrefs *prefsData) const
49 {
50 	prefsData->pathPrefs.documents=docDirLineEdit->text();
51 	prefsData->pathPrefs.colorProfiles=profileDirLineEdit->text();
52 	prefsData->pathPrefs.scripts=scriptDirLineEdit->text();
53 	prefsData->pathPrefs.documentTemplates=templateDirLineEdit->text();
54 }
55 
changeDocs()56 void Prefs_Paths::changeDocs()
57 {
58 	QString s = QFileDialog::getExistingDirectory(this, tr("Choose a Directory"), docDirLineEdit->text());
59 	if (!s.isEmpty())
60 		docDirLineEdit->setText( QDir::toNativeSeparators(s) );
61 }
62 
changeProfs()63 void Prefs_Paths::changeProfs()
64 {
65 	QString s = QFileDialog::getExistingDirectory(this, tr("Choose a Directory"), profileDirLineEdit->text());
66 	if (!s.isEmpty())
67 		profileDirLineEdit->setText( QDir::toNativeSeparators(s) );
68 }
69 
changeScripts()70 void Prefs_Paths::changeScripts()
71 {
72 	QString s = QFileDialog::getExistingDirectory(this, tr("Choose a Directory"), scriptDirLineEdit->text());
73 	if (!s.isEmpty())
74 		scriptDirLineEdit->setText( QDir::toNativeSeparators(s) );
75 }
76 
changeDocumentTemplates()77 void Prefs_Paths::changeDocumentTemplates()
78 {
79 	QString s = QFileDialog::getExistingDirectory(this, tr("Choose a Directory"), templateDirLineEdit->text());
80 	if (!s.isEmpty())
81 		templateDirLineEdit->setText( QDir::toNativeSeparators(s) );
82 }
83