Commit Graph

83 Commits

Author SHA1 Message Date
qewer33
164ecfebac Gui: Add about image for dev version
Co-authored-by: ein-shved <yury.shvedov@kaspersky.com>
Co-authored-by: Ladislav Michl <ladis@triops.cz>
Co-authored-by: qewer33 <qewer33@proton.me>
Co-authored-by: 3x380V <i58604845+3x380V@users.noreply.github.com>
2025-08-05 17:33:05 -05:00
Max Wilfinger
6692dacc0a Gui: Update UI strings for consistency
Closes: #22135
2025-08-04 20:14:45 +02:00
Pieter Hijma
eece186dec Core: Support enum editor in VarSet dialog 2025-07-31 13:43:31 +02:00
Pieter Hijma
dcf7e5536e Gui: Allow expressions in the VarSet dialog (#22719)
* Gui: Allow expressions in the VarSet dialog

* Gui: Process review comments VarSet Dialog

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-07-25 23:16:37 +02:00
Kacper Donat
4db029776b Stylesheets: Fix jumping entries on Windows
Co-authored-by: MisterMakerNL <marijn82@gmail.com>
2025-07-14 20:48:50 +02:00
Kacper Donat
8d3f41059f Gui: Add ThemeTokenManager class to contain theme parameters
This class aims to implement Design Token idea into FreeCAD themes. It
allows themes to use generic variables with generic values so we could
use one qss theme and change the style based on values from preference
packs.
2025-07-07 00:07:31 +02:00
tetektoza
0e21764c42 Core: Use bypass WM hint for X11 for search list in preferences 2025-06-23 01:24:50 +02:00
tetektoza
581f492660 Core: Handle globalPos for both Qt6 and Qt5 2025-06-23 01:24:50 +02:00
tetektoza
b5b86d5c51 Core: Correct font sizes to be smaller in search box in preferences 2025-06-23 01:24:50 +02:00
tetektoza
f4785d6a8f Core: Remove displayText field from search box's result
Removes displayText from the searchboxes result, as it's being handled
differently and there are two other fields that store this previously
concatenated information separately.
2025-06-23 01:24:50 +02:00
tetektoza
5daaa8edea Core: Move reusable parts of MixedFontDelegate to separate functions
Co-Authored-By: Kacper Donat <kacper@kadet.net>
2025-06-23 01:24:50 +02:00
tetektoza
d2f370aeb6 Core: Use separate roles for found item in font delegate for search 2025-06-23 01:15:27 +02:00
tetektoza
e9f7c95f0e Core: Use designated init for SearchResult in preferences 2025-06-23 01:15:27 +02:00
tetektoza
9d12f70506 Core: Use an enum for search bar popup in preferences 2025-06-23 01:15:27 +02:00
tetektoza
94559a3092 Core: Extract preferences search bar to it's own class 2025-06-23 01:15:27 +02:00
tetektoza
b3f37d262a Core: Formatting changes for search in preferences 2025-06-23 01:15:27 +02:00
tetektoza
2412d99966 Core: Introduce searching in Preferences
This PR introduces search box in preferences.
Features:
*supports left click on the result, taking user to the result
*clicking anywhere cancels searching and closes popup box, same with ESC
key
*double click on the result closes the popup too (same behavior as
enter)
*supports enter (although if you are on the position you are already
on it so enter just closes the popup basically)
*escape closes it
*you can navigate through the list with mouse
*support fuzzy search so stuff like "OVP" is being matched to "On-View-Parameters"
*there is hierarchical display (tab/page/setting)
*some of the results are prioritized but fuzzy search prioritizing is the most important
*highlights found item
*goes to tab/page of found item
*if the pop-up box won't fit next to the right side of the screen,
it is added underneath the search box
2025-06-23 01:15:27 +02:00
tetektoza
0662b8c0bb Gui: Change ordering of names in Link property
As the title says, currently it is:
ObjName (Label), this patch changes it to Label (ObjName) to be more
user friendly.
2025-06-18 23:38:52 +02:00
Syres916
39dc1e6210 [Gui] C++ preparation for deprecation of QCheckBox…
…stateChanged -> checkStateChanged
2025-06-13 10:40:48 +02:00
Benjamin Nauck
92bf6e5f2a Merge pull request #21147 from 3x380V/units
Units rework II
2025-06-04 15:58:00 +02:00
bofdahof
2e0df80e84 Base: Units: refactor
Refactor Units making it constexpr, immutable, with repetition reduced.
Separate data from code.

Constexpr constructed units allow constructing predefined Quantities
from predefined unit types.
2025-06-03 09:31:38 +02:00
Ladislav Michl
a0917bcc7c Base: Units: introduce unit one
Dimensionless quantities have all exponents equal to zero.
Such quantities are simply numbers. The associated unit is
the unit one, symbol 1, although this is rarely explicitly
written.

See chapter 2.3.3 Dimensions of quantities, The International
System of Units, 9th edition.
2025-06-03 09:31:38 +02:00
Ladislav Michl
0c9584ab2d Base: Quantity: use isDimensionless whenever feasible
Quantity is often queried for Unit just to see if it has a dimension.
Ask Quantity directly using isDimensionless() method and modify that
method not to care about Quantity value validity; no user was ever
asking for value validity.
2025-06-03 09:31:38 +02:00
Ladislav Michl
a58846be7f Gui: use Units namespace in DlgUnitsCalculatorImp 2025-06-03 09:31:38 +02:00
wmayer
25691764f9 Gui: Show date & time in locale specific format 2025-05-30 18:04:33 +02:00
wmayer
2aba143df1 Gui: Improve DlgAddPropertyVarSet
* Give user a hint about the reason of an invalid name. Fixes issue 21111
* Fix isTypeValid() to check for valid property type
2025-05-30 18:04:33 +02:00
wmayer
87fca2c943 Gui: Use QDialogButtonBox in DlgExpressionInput
This way the order of buttons is more consistent than using
separate QPushButtons.

This fixes issue 19902
2025-05-30 18:04:33 +02:00
wmayer
55a9123040 Gui: Make AccelLineEdit a subclass of QKeySequenceEdit
The class QKeySequenceEdit already implements the relevant
functionality and properly handles shortcuts using the Shift key.

This fixes issue 19320
2025-05-30 18:04:33 +02:00
wmayer
0cce0f14bf Gui: Fix DlgPreferencesImp::minimumDialogWidth() to return a reasonable width
The current implementation always returns a width that is too small
so that a scrollbar is shown. Especially on the General page this is
unfortunate as some important controls are truncated or completely
hidden.

Another problem of this implementation is that when loading a not
yet loaded workbench in the 'Available workbenches' page then the
computed size will be by far too high leading to a dialog that all
the sudden covers most of the screen.

Solution:
The correct width is the sum of:
width of the tree view + width of the biggest page + spacing of the layout
This fixes both of the above problems.
2025-05-30 14:21:53 +02:00
Chris Hennes
63de22e622 Gui: Manually specify correct QVariant conversion
There are multiple possible conversion paths for a QPixmap to QVariant,
which results in a compiler warning. Explicitly specify the path we
intend to silence the warning.
2025-05-12 18:17:48 +02:00
tarman3
c2df7a83db Macro: Button to open folder with macros 2025-05-11 21:54:07 +02:00
bofdahof
ba2c2ca5ad Console: rename PascalCase named methods to camelCase 2025-05-06 17:50:21 +02:00
Ladislav Michl
9683cf1e4f Base: rename Exception's PascalCase methods to camelCase 2025-05-05 23:50:01 +02:00
Chris Hennes
f55063855a Merge pull request #20540 from 3x380V/cleanup-schemas-management
Simplify UnitsSchemas management
2025-05-05 10:43:27 -05:00
Benjamin Nauck
df3c324b7d Gui: use contains() and isEmpty() instead of count() where possible 2025-05-03 22:19:51 +02:00
bofdahof
353acbb27b Base: simplify UnitsSchemas management
Fixes: Maintaining schemas is difficult and error-prone

- Facilitate easy schemas add, remove, change, etc.
- Remove 14 files containing approx 2,190 lines of if/else code and data
- Place data in one file (UnitsSchemasData.h) using a normalized structure (including special functions)
- Isolate and simplify data operations (code)
- Remove schemas enum to keep data independent of code
- Separate responsibilities: Specifications, data, schemas, schema
- Add schema data 'isDefault'
- Add schema data name
- Prefer algorithms to raw loops
- Add schemas unit tests
- Tweak quantity unit tests
2025-04-27 00:45:54 +02:00
bofdahof
606da16f6e Gui: reformat DlgProjectInformationImp.cpp 2025-04-27 00:45:53 +02:00
Kacper Donat
ef357aa07a Gui: Use freecad_cast whenever possible 2025-04-26 14:23:25 +02:00
Pieter Hijma
5470188de4 Gui: Fix value field for DlgAddPropertyVarSet (#20824)
* Gui: Fix value field for DlgAddPropertyVarSet

The value field would only appear if a name was provided resulting in a
strange user experience.  This commit fixes this and simplifies the
logic of the dialog.

* Process comments from review

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-04-23 22:50:03 +02:00
Pieter Hijma
c15140e825 [Core] Enable a frame in VarSet dialog value field
The Add Property Dialog for VarSets creates an editor based on the type.
This editor has no frame by default because it is mostly used in the
property view as part of a table.  With this change we enable the frame
for the editor (the value field)
2025-04-22 23:56:07 +02:00
xtemp09
fdaa53d191 [GUI] Layout fixes in DlgActions.ui
Closes #20821
2025-04-17 19:26:00 +02:00
Alex Tran
353085d7e3 App: Running FreeCAD in verbose mode information to reflect Gui -> Help -> About Dialog info (#20487) 2025-04-16 08:29:07 +02:00
Kacper Donat
77e40b9747 Base: Use explicit pointer syntax for freecad_cast (#20694)
* Base: Use explicit pointer syntax for freecad_cast

This aligns our custom cast with other casts

* All: Use explicit pointer syntax for freecad_cast
2025-04-11 14:11:33 +00:00
Kacper Donat
9d97d1c895 Base: Rename Base::freecad_dynamic_cast into freecad_cast
This is to make it shorter and easier to use. QT does the same thing
with their qobject_cast.
2025-04-07 10:32:28 -05:00
Kacper Donat
32895ca9a9 Merge pull request #20570 from pieterhijma/varset-dialog-units
[Core] Show units in the VarSet add property dialog
2025-04-05 23:19:39 +02:00
Pieter Hijma
67cdd28d93 [Core] Fix value field unit selection
Qt automatically selects the text in the value field on creation.  This
interferes with the selection when the field has focus.  This commit
ensures that the automatic selection is undone.
2025-04-01 13:21:50 +02:00
Pieter Hijma
7271d63650 [Core] Show units in value editor VarSet dialog
Before this change, the units were not shown in the editor for values.
With this change the units (if applicable) are shown in the editor.
2025-04-01 13:21:50 +02:00
Benjamin Nauck
b6d6c8837f Gui: Add #include <limits> where used 2025-03-31 23:50:37 +02:00
Benjamin Nauck
b625e81a3e Gui: Use std::numeric_limits and std::numbers instead of defines 2025-03-29 13:32:38 +01:00
Chris Hennes
21c07cabc5 FreeCAD: Compiler warning fixes 2025-03-19 10:13:34 +01:00