From 3f1204d212f4d34bddf85c51c6ecae1316253534 Mon Sep 17 00:00:00 2001 From: Furgo <148809153+furgo16@users.noreply.github.com> Date: Sat, 1 Mar 2025 21:23:52 +0100 Subject: [PATCH 1/2] Start: add option to show only FreeCAD native files in custom folder --- src/Mod/Start/App/CustomFolderModel.cpp | 7 +++++++ src/Mod/Start/App/CustomFolderModel.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/Mod/Start/App/CustomFolderModel.cpp b/src/Mod/Start/App/CustomFolderModel.cpp index bd7036e2e1..6225349039 100644 --- a/src/Mod/Start/App/CustomFolderModel.cpp +++ b/src/Mod/Start/App/CustomFolderModel.cpp @@ -41,6 +41,8 @@ CustomFolderModel::CustomFolderModel(QObject* parent) _customFolderDirectory = QDir(QString::fromStdString(parameterGroup->GetASCII("CustomFolder", ""))); + + _showOnlyFCStd = parameterGroup->GetBool("ShowOnlyFCStd", false); } void CustomFolderModel::loadCustomFolder() @@ -52,6 +54,11 @@ void CustomFolderModel::loadCustomFolder() "BaseApp/Preferences/Mod/Start/CustomFolder: cannot read custom folder %s\n", _customFolderDirectory.absolutePath().toStdString().c_str()); } + + if (_showOnlyFCStd) { + _customFolderDirectory.setNameFilters(QStringList() << QStringLiteral("*.FCStd")); + } + auto entries = _customFolderDirectory.entryList(QDir::Filter::Files | QDir::Filter::Readable, QDir::SortFlag::Name); for (const auto& entry : entries) { diff --git a/src/Mod/Start/App/CustomFolderModel.h b/src/Mod/Start/App/CustomFolderModel.h index d4c132708d..3901e1e01d 100644 --- a/src/Mod/Start/App/CustomFolderModel.h +++ b/src/Mod/Start/App/CustomFolderModel.h @@ -46,6 +46,7 @@ public: private: QDir _customFolderDirectory; + bool _showOnlyFCStd; // Show only FreeCAD files }; } // namespace Start From 6663e9aa6706803921b3542a7ca4fb2c14014b92 Mon Sep 17 00:00:00 2001 From: Furgo <148809153+furgo16@users.noreply.github.com> Date: Sun, 2 Mar 2025 07:39:55 +0100 Subject: [PATCH 2/2] Start: add option to show only FCStd files to the preferences dialog --- src/Mod/Start/Gui/DlgStartPreferences.ui | 52 +++++++++++++++----- src/Mod/Start/Gui/DlgStartPreferencesImp.cpp | 2 + 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/src/Mod/Start/Gui/DlgStartPreferences.ui b/src/Mod/Start/Gui/DlgStartPreferences.ui index 2dcf6df394..20f0e5bd1a 100644 --- a/src/Mod/Start/Gui/DlgStartPreferences.ui +++ b/src/Mod/Start/Gui/DlgStartPreferences.ui @@ -20,6 +20,20 @@ Contents + + + + Show only FreeCAD files in additional folder + + + + + + + Show examples folder contents + + + @@ -27,6 +41,22 @@ + + + + An optional custom folder to be displayed on the Start page. + + + Gui::FileChooser::Directory + + + CustomFolder + + + Mod/Start + + + @@ -49,29 +79,25 @@ - - + + - An optional custom folder to be displayed on the Start page. + If the additional folder contents should include only .FCStd files - - Gui::FileChooser::Directory + + Qt::RightToLeft + + + - CustomFolder + ShowOnlyFCStd Mod/Start - - - - Show examples folder contents - - - diff --git a/src/Mod/Start/Gui/DlgStartPreferencesImp.cpp b/src/Mod/Start/Gui/DlgStartPreferencesImp.cpp index 0d842d1b23..84b17fae2d 100644 --- a/src/Mod/Start/Gui/DlgStartPreferencesImp.cpp +++ b/src/Mod/Start/Gui/DlgStartPreferencesImp.cpp @@ -53,6 +53,7 @@ void DlgStartPreferencesImp::saveSettings() ui->fileChooserCustomFolder->onSave(); ui->checkBoxShowExamples->onSave(); ui->checkBoxCloseAfterLoading->onSave(); + ui->checkBoxShowOnlyFCStd->onSave(); } void DlgStartPreferencesImp::loadSettings() @@ -60,6 +61,7 @@ void DlgStartPreferencesImp::loadSettings() ui->fileChooserCustomFolder->onRestore(); ui->checkBoxShowExamples->onRestore(); ui->checkBoxCloseAfterLoading->onRestore(); + ui->checkBoxShowOnlyFCStd->onRestore(); } /**