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