diff --git a/src/Mod/Start/Gui/DlgStartPreferences.ui b/src/Mod/Start/Gui/DlgStartPreferences.ui index dfe30aa62a..0d5d8fc749 100644 --- a/src/Mod/Start/Gui/DlgStartPreferences.ui +++ b/src/Mod/Start/Gui/DlgStartPreferences.ui @@ -107,7 +107,7 @@ - An optional custom folder to be displayed at the bottom of the first page + An optional custom folder to be displayed at the bottom of the first page. By using ";;" to separate paths, you can add several folders here Gui::FileChooser::Directory diff --git a/src/Mod/Start/StartPage/LoadCustom.py b/src/Mod/Start/StartPage/LoadCustom.py index 5bf80211f6..deed16cce9 100644 --- a/src/Mod/Start/StartPage/LoadCustom.py +++ b/src/Mod/Start/StartPage/LoadCustom.py @@ -26,8 +26,11 @@ if sys.version_info.major < 3: else: from urllib.parse import unquote # filename will be given before this script is run -cfolder = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString("ShowCustomFolder","") -if cfolder: +cfolders = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString("ShowCustomFolder","") +if cfolders: + dirnumber = int(filename[0]) + filename = filename[2:] + cfolder = cfolders.split(";;")[dirnumber] if not os.path.isdir(cfolder): cfolder = os.path.dirname(cfolder) f = unquote(filename).replace("+"," ") diff --git a/src/Mod/Start/StartPage/StartPage.py b/src/Mod/Start/StartPage/StartPage.py index 48c2b946ea..d93ca0725c 100644 --- a/src/Mod/Start/StartPage/StartPage.py +++ b/src/Mod/Start/StartPage/StartPage.py @@ -402,18 +402,21 @@ def handle(): # build SECTION_CUSTOM SECTION_CUSTOM = encode("") - cfolder = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString("ShowCustomFolder","") - if cfolder: - if not os.path.isdir(cfolder): - cfolder = os.path.dirname(cfolder) - SECTION_CUSTOM = encode("

"+os.path.basename(os.path.normpath(cfolder))+"

") - SECTION_CUSTOM += "
    " - for basename in os.listdir(cfolder): - filename = os.path.join(cfolder,basename) - SECTION_CUSTOM += encode(buildCard(filename,method="LoadCustom.py?filename=")) - SECTION_CUSTOM += "
" - # hide the custom section tooltip if custom section is set (users know about it if they enabled it) - HTML = HTML.replace("id=\"customtip\"","id=\"customtip\" style=\"display:none;\"") + cfolders = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString("ShowCustomFolder","") + if cfolders: + dn = 0 + for cfolder in cfolders.split(";;"): # allow several paths separated by ;; + if not os.path.isdir(cfolder): + cfolder = os.path.dirname(cfolder) + SECTION_CUSTOM += encode("

"+os.path.basename(os.path.normpath(cfolder))+"

") + SECTION_CUSTOM += "
    " + for basename in os.listdir(cfolder): + filename = os.path.join(cfolder,basename) + SECTION_CUSTOM += encode(buildCard(filename,method="LoadCustom.py?filename="+str(dn)+"_")) + SECTION_CUSTOM += "
" + # hide the custom section tooltip if custom section is set (users know about it if they enabled it) + HTML = HTML.replace("id=\"customtip\"","id=\"customtip\" style=\"display:none;\"") + dn += 1 HTML = HTML.replace("SECTION_CUSTOM",SECTION_CUSTOM) # build IMAGE_SRC paths