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 + + +