diff --git a/sources/qetapp.cpp b/sources/qetapp.cpp
index 108593a22..936796f6d 100644
--- a/sources/qetapp.cpp
+++ b/sources/qetapp.cpp
@@ -61,6 +61,7 @@ RecentFiles *QETApp::m_elements_recent_files = nullptr;
TitleBlockTemplate *QETApp::default_titleblock_template_ = nullptr;
QString QETApp::m_user_common_elements_dir = QString();
QString QETApp::m_user_custom_elements_dir = QString();
+QString QETApp::m_user_custom_tbt_dir = QString();
QETApp *QETApp::m_qetapp = nullptr;
@@ -559,6 +560,27 @@ QString QETApp::commonTitleBlockTemplatesDir() {
templates collection.
*/
QString QETApp::customTitleBlockTemplatesDir() {
+ if (m_user_custom_tbt_dir.isEmpty())
+ {
+ QSettings settings;
+ QString path = settings.value("elements-collections/custom-tbt-collection-path", "default").toString();
+ if (path != "default" && !path.isEmpty())
+ {
+ QDir dir(path);
+ if (dir.exists())
+ {
+ m_user_custom_tbt_dir = path;
+ return m_user_custom_tbt_dir;
+ }
+ }
+ else {
+ m_user_custom_tbt_dir = "default";
+ }
+ }
+ else if (m_user_custom_tbt_dir != "default") {
+ return m_user_custom_tbt_dir;
+ }
+
return(configDir() + "titleblocks/");
}
diff --git a/sources/qetapp.h b/sources/qetapp.h
index 1f251b4dd..e3ca76880 100644
--- a/sources/qetapp.h
+++ b/sources/qetapp.h
@@ -189,6 +189,7 @@ class QETApp : public QObject
static TitleBlockTemplate *default_titleblock_template_;
static QString m_user_common_elements_dir;
static QString m_user_custom_elements_dir;
+ static QString m_user_custom_tbt_dir;
public slots:
void systray(QSystemTrayIcon::ActivationReason);
diff --git a/sources/ui/configpage/generalconfigurationpage.cpp b/sources/ui/configpage/generalconfigurationpage.cpp
index 301702211..1639d930f 100644
--- a/sources/ui/configpage/generalconfigurationpage.cpp
+++ b/sources/ui/configpage/generalconfigurationpage.cpp
@@ -88,6 +88,16 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) :
ui->m_custom_elmt_path_cb->blockSignals(false);
}
+
+ path = settings.value("elements-collections/custom-tbt-path", "default").toString();
+ if (path != "default")
+ {
+ ui->m_custom_tbt_path_cb->blockSignals(true);
+ ui->m_custom_tbt_path_cb->setCurrentIndex(1);
+ ui->m_custom_tbt_path_cb->setItemData(1, path, Qt::DisplayRole);
+ ui->m_custom_tbt_path_cb->blockSignals(false);
+ }
+
fillLang();
}
@@ -157,6 +167,20 @@ void GeneralConfigurationPage::applyConf()
if (path != settings.value("elements-collections/custom-collection-path").toString()) {
QETApp::resetUserElementsDir();
}
+ path = settings.value("elements-collections/custom-tbt-collection-path").toString();
+ if (ui->m_custom_tbt_path_cb->currentIndex() == 1)
+ {
+ QString path = ui->m_custom_tbt_path_cb->currentText();
+ QDir dir(path);
+ settings.setValue("elements-collections/custom-tbt-collection-path",
+ dir.exists() ? path : "default");
+ }
+ else {
+ settings.setValue("elements-collections/custom-tbt-collection-path", "default");
+ }
+ if (path != settings.value("elements-collections/custom-tbt-collection-path").toString()) {
+ QETApp::resetUserElementsDir();
+ }
}
/**
@@ -317,3 +341,18 @@ void GeneralConfigurationPage::on_m_custom_elmt_path_cb_currentIndexChanged(int
}
}
+void GeneralConfigurationPage::on_m_custom_tbt_path_cb_currentIndexChanged(int index)
+{
+ if (index == 1)
+ {
+ QString path = QFileDialog::getExistingDirectory(this, tr("Chemin de la collection utilisateur"), QDir::homePath());
+ if (!path.isEmpty()) {
+ ui->m_custom_tbt_path_cb->setItemData(1, path, Qt::DisplayRole);
+ }
+ else {
+ ui->m_custom_tbt_path_cb->setCurrentIndex(0);
+ }
+ }
+}
+
+
diff --git a/sources/ui/configpage/generalconfigurationpage.h b/sources/ui/configpage/generalconfigurationpage.h
index 42671cd65..e3456f2e0 100644
--- a/sources/ui/configpage/generalconfigurationpage.h
+++ b/sources/ui/configpage/generalconfigurationpage.h
@@ -43,6 +43,12 @@ class GeneralConfigurationPage : public ConfigPage
void on_m_folio_list_pb_clicked();
void on_m_common_elmt_path_cb_currentIndexChanged(int index);
void on_m_custom_elmt_path_cb_currentIndexChanged(int index);
+ void on_m_custom_tbt_path_cb_currentIndexChanged(int index);
+
+
+
+
+
private:
void fillLang();
diff --git a/sources/ui/configpage/generalconfigurationpage.ui b/sources/ui/configpage/generalconfigurationpage.ui
index 5cb496381..d77fb7c1b 100644
--- a/sources/ui/configpage/generalconfigurationpage.ui
+++ b/sources/ui/configpage/generalconfigurationpage.ui
@@ -41,7 +41,7 @@
- 0
+ 2
@@ -238,14 +238,14 @@
false
- -
+
-
Chemin de la collection commune
- -
+
-
-
@@ -259,14 +259,14 @@
- -
+
-
Chemin de la collection utilisateur
- -
+
-
-
@@ -280,13 +280,34 @@
- -
+
-
+
+
-
+
+ Par defaut
+
+
+ -
+
+ Parcourir...
+
+
+
+
+ -
(Recharger les collections d'éléments pour appliquer les changements)
+ -
+
+
+ Chemin des cartouches utilisateur
+
+
+
@@ -315,7 +336,14 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
-
-
+
+
+
+ 0
+ 50
+
+
+