Compare commits

...

3 Commits

Author SHA1 Message Date
forbes
7168c402b8 fix(build): fix DlgSettingsGeneral::applyMenuIconSize visibility and namespace
- Move applyMenuIconSize to public access so StartupProcess can call it
- Add Dialog:: namespace qualifier in StartupProcess.cpp
2026-02-08 17:01:41 -06:00
forbes
af3137dc6c chore: update silo submodule to latest main
New features:
- SSE reconnect with exponential backoff and terminal state handling
- Silo_Diag connection diagnostics command
- Server mode UI reflection in client
- Silo-aware start panel
- Database Activity pane with comments, interaction, and badges
2026-02-08 16:25:18 -06:00
forbes
173046846f fix(theme): Report View defaults, Help rebranding, hyperlink color, checkbox consistency
Report View (fixes #41):
- Enable error and log message recording by default
- Auto-show report view on errors and warnings

Help page rebranding (fixes #42):
- Remove disabled GitHub (online) option
- Remove PySide Web components disclaimer
- Rebrand 'In a FreeCAD tab' to 'In an application tab'
- Clean up FreeCAD-specific references in tooltips

Hyperlink color (fixes #43):
- Add QLabel[haslink] rule to set QPalette::Link to Catppuccin Lavender (#b4befe)
- Applied across all three stylesheet copies

Checkbox/indicator consistency (fixes #44):
- Add QGroupBox::indicator styling to match QCheckBox::indicator
- Fills checkable group boxes (e.g. Notification Area) with the same
  themed filled-square style instead of OS default checkmark
2026-02-08 15:42:16 -06:00
8 changed files with 119 additions and 49 deletions

View File

@@ -25,6 +25,10 @@
<FCUInt Name="colorLogging" Value="2497893887"/> <FCUInt Name="colorLogging" Value="2497893887"/>
<FCUInt Name="colorWarning" Value="4192382975"/> <FCUInt Name="colorWarning" Value="4192382975"/>
<FCUInt Name="colorError" Value="4086016255"/> <FCUInt Name="colorError" Value="4086016255"/>
<FCBool Name="checkError" Value="1"/>
<FCBool Name="checkLogging" Value="1"/>
<FCBool Name="checkShowReportViewOnError" Value="1"/>
<FCBool Name="checkShowReportViewOnWarning" Value="1"/>
</FCParamGroup> </FCParamGroup>
<FCParamGroup Name="View"> <FCParamGroup Name="View">
<FCUInt Name="BackgroundColor" Value="505294591"/> <FCUInt Name="BackgroundColor" Value="505294591"/>

View File

@@ -744,6 +744,33 @@ QGroupBox::title {
background-color: #1e1e2e; background-color: #1e1e2e;
} }
QGroupBox::indicator {
width: 18px;
height: 18px;
border: 2px solid #585b70;
border-radius: 4px;
background-color: #313244;
}
QGroupBox::indicator:hover {
border-color: #cba6f7;
}
QGroupBox::indicator:checked {
background-color: #cba6f7;
border-color: #cba6f7;
}
QGroupBox::indicator:checked:disabled {
background-color: #6c7086;
border-color: #6c7086;
}
QGroupBox::indicator:disabled {
background-color: #181825;
border-color: #45475a;
}
/* ============================================================================= /* =============================================================================
Tree View Tree View
============================================================================= */ ============================================================================= */
@@ -961,6 +988,11 @@ QLabel:disabled {
color: #6c7086; color: #6c7086;
} }
/* Link color — picked up by FreeCAD to set QPalette::Link */
QLabel[haslink="true"] {
color: #b4befe; /* Catppuccin Lavender */
}
/* ============================================================================= /* =============================================================================
Frames Frames
============================================================================= */ ============================================================================= */

View File

@@ -744,6 +744,33 @@ QGroupBox::title {
background-color: #1e1e2e; background-color: #1e1e2e;
} }
QGroupBox::indicator {
width: 18px;
height: 18px;
border: 2px solid #585b70;
border-radius: 4px;
background-color: #313244;
}
QGroupBox::indicator:hover {
border-color: #cba6f7;
}
QGroupBox::indicator:checked {
background-color: #cba6f7;
border-color: #cba6f7;
}
QGroupBox::indicator:checked:disabled {
background-color: #6c7086;
border-color: #6c7086;
}
QGroupBox::indicator:disabled {
background-color: #181825;
border-color: #45475a;
}
/* ============================================================================= /* =============================================================================
Tree View Tree View
============================================================================= */ ============================================================================= */
@@ -964,6 +991,11 @@ QLabel:disabled {
color: #6c7086; color: #6c7086;
} }
/* Link color — picked up by FreeCAD to set QPalette::Link */
QLabel[haslink="true"] {
color: #b4befe; /* Catppuccin Lavender */
}
/* ============================================================================= /* =============================================================================
Frames Frames
============================================================================= */ ============================================================================= */

View File

@@ -93,6 +93,8 @@ private:
int getCurrentMenuIconSize() const; int getCurrentMenuIconSize() const;
void addMenuIconSizes(int current); void addMenuIconSizes(int current);
void translateMenuIconSizes(); void translateMenuIconSizes();
public:
static void applyMenuIconSize(int pixel); static void applyMenuIconSize(int pixel);
private: private:

View File

@@ -288,7 +288,7 @@ void StartupPostProcess::setMenuIconSize()
ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("General"); ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("General");
int size = int(hGrp->GetInt("MenuIconSize", 0)); int size = int(hGrp->GetInt("MenuIconSize", 0));
if (size >= 16) { if (size >= 16) {
DlgSettingsGeneral::applyMenuIconSize(size); Dialog::DlgSettingsGeneral::applyMenuIconSize(size);
} }
} }

View File

@@ -744,6 +744,33 @@ QGroupBox::title {
background-color: #1e1e2e; background-color: #1e1e2e;
} }
QGroupBox::indicator {
width: 18px;
height: 18px;
border: 2px solid #585b70;
border-radius: 4px;
background-color: #313244;
}
QGroupBox::indicator:hover {
border-color: #cba6f7;
}
QGroupBox::indicator:checked {
background-color: #cba6f7;
border-color: #cba6f7;
}
QGroupBox::indicator:checked:disabled {
background-color: #6c7086;
border-color: #6c7086;
}
QGroupBox::indicator:disabled {
background-color: #181825;
border-color: #45475a;
}
/* ============================================================================= /* =============================================================================
Tree View Tree View
============================================================================= */ ============================================================================= */
@@ -985,6 +1012,11 @@ QLabel:disabled {
color: #6c7086; color: #6c7086;
} }
/* Link color — picked up by FreeCAD to set QPalette::Link */
QLabel[haslink="true"] {
color: #b4befe; /* Catppuccin Lavender */
}
/* ============================================================================= /* =============================================================================
Frames Frames
============================================================================= */ ============================================================================= */

View File

@@ -20,34 +20,13 @@
<string>Source</string> <string>Source</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="Gui::PrefRadioButton" name="radioButton_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Fetches the documentation from pages rendered on GitHub.
This is currently not available.</string>
</property>
<property name="text">
<string>GitHub (online)</string>
</property>
<property name="prefEntry" stdset="0">
<cstring>optionGithub</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Help</cstring>
</property>
</widget>
</item>
<item row="6" column="0"> <item row="6" column="0">
<widget class="Gui::PrefRadioButton" name="radioOffline"> <widget class="Gui::PrefRadioButton" name="radioOffline">
<property name="toolTip"> <property name="toolTip">
<string>Set this to a custom URL or the folder where the help files are located. <string>Set this to a custom URL or the folder where the help files are located.
You can easily download the documentation for offline use by using the Addon If this field is left blank, the application will automatically search for
Manager and installing the &quot;offline-documentation&quot; addon. If this the help files at the default location ($USERAPPDATADIR/Mod/offline-documentation).</string>
field is left blank, FreeCAD will automatically search for the help files at
the default location ($USERAPPDATADIR/Mod/offline-documentation).</string>
</property> </property>
<property name="text"> <property name="text">
<string>Custom location</string> <string>Custom location</string>
@@ -84,10 +63,8 @@ to get French translation of the documentation.</string>
<widget class="Gui::PrefFileChooser" name="fileChooser"> <widget class="Gui::PrefFileChooser" name="fileChooser">
<property name="toolTip"> <property name="toolTip">
<string>Set this to a custom URL or the folder where the help files are located. <string>Set this to a custom URL or the folder where the help files are located.
Documentation can be downloaded for offline use via the Addon Manager and installing the If this field is left blank, the application will automatically search for
&quot;offline-documentation&quot; addon. If this field is left blank, FreeCAD will the help files at the default location ($USERAPPDATADIR/Mod/offline-documentation).</string>
automatically search for the help files at the default location
($USERAPPDATADIR/Mod/offline-documentation).</string>
</property> </property>
<property name="mode"> <property name="mode">
<enum>Gui::FileChooser::Directory</enum> <enum>Gui::FileChooser::Directory</enum>
@@ -116,8 +93,8 @@ automatically search for the help files at the default location
<item row="0" column="0"> <item row="0" column="0">
<widget class="Gui::PrefRadioButton" name="radioButton"> <widget class="Gui::PrefRadioButton" name="radioButton">
<property name="toolTip"> <property name="toolTip">
<string>The documentation pages will be fetched from the official <string>The documentation pages will be fetched from the
FreeCADwiki at https://wiki.freecad.org</string> FreeCAD wiki at https://wiki.freecad.org</string>
</property> </property>
<property name="text"> <property name="text">
<string>FreeCAD Wiki (online)</string> <string>FreeCAD Wiki (online)</string>
@@ -137,9 +114,9 @@ FreeCADwiki at https://wiki.freecad.org</string>
<widget class="Gui::PrefRadioButton" name="radioOnline"> <widget class="Gui::PrefRadioButton" name="radioOnline">
<property name="toolTip"> <property name="toolTip">
<string>The documentation pages will be fetched from an automatic Markdown conversion <string>The documentation pages will be fetched from an automatic Markdown conversion
of the FreeCAD wiki,hosted on FreeCAD's GitHub account. This can be styled with a of the FreeCAD wiki. This can be styled with a custom stylesheet below and can
custom stylesheet below and can look nicer than the wiki option. The 'Markdown' or look nicer than the wiki option. The 'Markdown' or 'Pandoc' Python module should
'Pandoc' Python module should be installed for optimal results.</string> be installed for optimal results.</string>
</property> </property>
<property name="text"> <property name="text">
<string>Markdown version (online)</string> <string>Markdown version (online)</string>
@@ -164,16 +141,7 @@ custom stylesheet below and can look nicer than the wiki option. The 'Markdown'
<string>Display</string> <string>Display</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Note: if PySide Web components are not found on the system, help pages will open in the default web browser regardless of the options below.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item> <item>
<widget class="Gui::PrefRadioButton" name="radioBrowser"> <widget class="Gui::PrefRadioButton" name="radioBrowser">
<property name="toolTip"> <property name="toolTip">
@@ -196,10 +164,10 @@ custom stylesheet below and can look nicer than the wiki option. The 'Markdown'
<item> <item>
<widget class="Gui::PrefRadioButton" name="radioTab"> <widget class="Gui::PrefRadioButton" name="radioTab">
<property name="toolTip"> <property name="toolTip">
<string>The documentation will open in a new tab inside the FreeCAD interface. This requires the PySide QtWebengineWidgets component.</string> <string>The documentation will open in a new tab inside the application. This requires the PySide QtWebEngineWidgets component.</string>
</property> </property>
<property name="text"> <property name="text">
<string>In a FreeCAD tab</string> <string>In an application tab</string>
</property> </property>
<property name="checked"> <property name="checked">
<bool>false</bool> <bool>false</bool>
@@ -218,8 +186,8 @@ custom stylesheet below and can look nicer than the wiki option. The 'Markdown'
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>Documentation opens in a dockable dialog within FreeCAD, allowing simultaneous work in the 3D view. <string>Documentation opens in a dockable dialog, allowing simultaneous work in the 3D view.
Requires the PySide QtWebengineWidgets component.</string> Requires the PySide QtWebEngineWidgets component.</string>
</property> </property>
<property name="text"> <property name="text">
<string>In a separate, embeddable dialog</string> <string>In a separate, embeddable dialog</string>