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