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 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(); } /**