Commit Graph

6421 Commits

Author SHA1 Message Date
theo-vt
be24c6bbf3 Sketcher: Sketch autoscale (#21084)
* Working scale prototype

* Call viewAll to fit geometries in the viewport post-scaling

* Exclude angle dimensions

* Scale the viewport rather than calling viewAll

* Scale dimension annotation along geometries

* Early return when counting more than one dimensional constraint

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Disable sketch autoscale if there are external geometries in the sketch

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add a setting to disable the feature _ and eventually parametrize

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Check for objects in the viewport in the sketch's ancestry to decide wheter or not to autoscale

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* More consistent camera scaling

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Check for visual indicator in the whole document

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Find visible items in nested assemblies

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Check visual elements in assemblies nested in assemblies

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Set the dimension even if the scaling fails

* Allow constraints that interact with the origin axis/root

* Remove unused variable

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Misc fixes from review

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-06-09 18:31:44 +02:00
Kacper Donat
83b2027395 Gui: Add BitmapFactory::empty method
This adds empty(QSize) method to bitmap factory that creates empty
pixmap. This may seem useless, but after creating bitmap one needs to
remember to clear it and to properly set DPR - BitmapFactory will take
care of it.
2025-06-09 12:20:08 -04:00
wmayer
2a7498c930 Helper function to get preferred delete key depending on platform 2025-06-09 18:10:52 +02:00
Chris Hennes
6a4901c30d Merge pull request #21813 from maxwxyz/siemens-nx-navigation
Navigation: Add Siemens NX style
2025-06-09 12:03:31 -04:00
Alfredo Monclus
1716232d3b Gui: remove taskheader animation 2025-06-08 16:18:28 +02:00
Max Wilfinger
d64efad081 Advanced options for move to other object in the transform tool.
Allows for masking of individual translation or rotation axes.
2025-06-08 16:18:01 +02:00
tetektoza
2933eaf819 Sketcher: Allow user to reset OVP state using backspace key
Currently if user tries to reset OVP, they can only do that by entering
"0" for example, and then the parameters will get unset in
unsetOnViewParameter. But that will only happen if user types a value
that's under confusion point (typically 1e^-7). In my opinion, it would
be cool to reset that state if user deletes all content in the label, to
allow them to specify coordinates with mouse once again.

Also, this patch fixes a regression with backspace, where deleting stuff
from OVP was working on unix systems, but seems like on Windows it
doesn't pass the check.
2025-06-08 15:00:58 +02:00
Max Wilfinger
d66380a4ed Change hint size for status bar consistency 2025-06-08 00:33:31 +02:00
Max Wilfinger
3f315c1ed5 Renaming Gui::SiemensNXStyle to Gui::SiemensNXNavigationStyle for consistency 2025-06-06 15:32:05 +02:00
Max Wilfinger
9ab0b75a6d Added UI for Siemens NX navigation style.
Ordered navigation styles alphabetically.
2025-06-06 15:26:18 +02:00
wmayer
69c311616b Gui: Refactor navigation styles
Simplify type erasure
2025-06-06 15:26:18 +02:00
wmayer
65d155a5c9 Gui: Refactor navigation styles
Derive SiemensNXStyle from NavigationStateChart
2025-06-06 15:26:18 +02:00
wmayer
c71b526b72 Gui: Refactor navigation styles
Add new base class for state chart based navigation styles
2025-06-06 15:26:18 +02:00
wmayer
82c2831d36 Gui: Implement navigation style for NX
See forum threads:
https://forum.freecad.org/viewtopic.php?t=96459 or https://forum.freecad.org/viewtopic.php?t=96503
2025-06-06 15:26:18 +02:00
Chris Hennes
4b0ac624d5 Gui: KeypadModifier should be used via bitwise or 2025-06-06 14:15:13 +02:00
Bas Ruigrok
ff516f0a2b Gui: Improve orthographic camera rotation stability 2025-06-06 12:39:24 +02:00
Alfredo Monclus
5e2045d391 Gui: fix taskpanel header label font descents 2025-06-06 10:20:40 +02:00
dzid26
3ebe4b4264 Block preselect on selection 2025-06-05 12:18:41 -05:00
Max Wilfinger
5a71fbfdf6 Gui: Adding translation comments to hints and new numpad keys. 2025-06-05 11:47:50 -05:00
Kacper Donat
8814af7171 Preferences: Better grouping for Selection page (#21750)
* Preferences: Better grouping for Selection page

* Update src/Gui/PreferencePages/DlgSettingsSelection.ui

Co-authored-by: Furgo <148809153+furgo16@users.noreply.github.com>

* Update src/Gui/PreferencePages/DlgSettingsSelection.ui

Co-authored-by: Furgo <148809153+furgo16@users.noreply.github.com>

---------

Co-authored-by: Furgo <148809153+furgo16@users.noreply.github.com>
2025-06-04 21:16:40 -05:00
Max Wilfinger
ff6cac1644 Gui: Fix hints on high DPI screens (#21762) 2025-06-04 18:20:06 +00:00
Benjamin Nauck
92bf6e5f2a Merge pull request #21147 from 3x380V/units
Units rework II
2025-06-04 15:58:00 +02:00
Benjamin Nauck
e0027daf3b Merge pull request #21749 from kadet1090/qss-aware-checkbox-property-panel 2025-06-04 12:31:49 +02:00
Chris Hennes
30aee57880 Merge pull request #21659 from 3x380V/gui_fixes
Gui: random fixes
2025-06-03 19:23:21 -05:00
Kacper Donat
a85cba3802 Gui: Ensure width and height of QAbstractView checkboxes 2025-06-03 23:43:39 +02:00
wmayer
d09055501d Gui: Implement validator for ExpressionLineEdit
As requested in issue 21426 a leading '=' shouldn't be allowed in the edit field. The validator now explicitly disallows a leading
'=' in the text. In the future the validator can be extended.

This fixes issue 21426
2025-06-03 16:11:48 -05:00
Kacper Donat
6fc13048e2 Gui: Make checkbox in the property view QSS aware 2025-06-03 23:07:23 +02:00
Alfredo Monclus
e8fa74e4c4 Gui: Property editor use a checkbox instead of a combobox for booleans (#21555)
* Gui: property-editor add property copy context menu

* Gui: Property editor checkbox brighter border

* Gui: Property editor refactor optimize

* Gui: Property editor checkbox react to first click and add label

* Gui: Property editor remove auto-inserted include

* Gui: property-checkbox fix not painting the grid
2025-06-03 21:05:30 +02:00
Brad Eric Hollister
722bda1935 proposed fix for https://https://github.com/FreeCAD/FreeCAD/issues/20856github.com/FreeCAD/FreeCAD/issues/20856. NOTE: AddonManager and Telemetry addon ui files are in separate repos 2025-06-03 09:37:22 +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
Ladislav Michl
99ac4052b3 Gui: do not create intermediate Quantity class in property editor 2025-06-03 09:31:38 +02:00
julian1
f75da71042 fix #10514
Update src/Gui/PreferencePages/DlgSettingsEditor.cpp

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>

Update src/Gui/PreferencePages/DlgSettingsEditor.cpp

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-06-03 00:12:58 -05:00
tetektoza
d12848c2b2 Sketcher: Do not allow mouse interruption while entering dimension (#20925)
* Sketcher: Do not allow mouse interruption while entering dimensions

So, currently user has an option to enter dimensions to different
Sketcher elements like circle, line, or hexagon, whatever else. But, if
they move mouse during entering of those parameters, they are gone.

This is because we are currently allowing for constant
`QAbstractSpinBox` value change during mouse move, it stops changing
ONLY AFTER value is being set (user enters number and presses ENTER
or TAB).

So, this patch introduces one more state for `EditableDatumLabel` which
is `hasFinishedEditing` which is being triggered by ENTER or TAB key,
and still keeping old `isSet` state, which disallows mouse movement
disruption and dynamically updates the edited element on viewport.
This means, that all objects now wait for `hasFinishedEditing` state to
actually finish editing.

* Sketcher: Avoid out of boundary access by checking onViewParameters size

* Sketcher: Add missing Qt headers for CI

* Sketcher: Allow using TAB to switch between labels without accepting

* Sketcher: Change to or statement, so enter will accept both labels

* Sketcher: Apply review comments

* used casting directly in if statement and auto to keep linter happy
* added comments for flags used for describing EditableDatumLabel states
2025-06-02 22:18:42 +02:00
Chris Hennes
b5d85fd60e Merge pull request #21679 from 3x380V/fix_20859
Gui: Fix TreeWidget::addDependentToSelection
2025-06-02 11:26:20 -05:00
Chris Hennes
728b54f94c Merge pull request #21712 from yorikvanhavre/translations
Translations
2025-06-02 09:31:21 -05:00
Alfredo Monclus
e456b5671b Gui: Property editor combobox fix not popping up if the user canceled (#21688)
* Gui: Property editor combobox fix not popping up if the user canceled the popup and then try to open it again

fixes #21675

* Update src/Gui/propertyeditor/PropertyItemDelegate.cpp

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-06-02 10:40:08 +00:00
matthiasdanner
d7bdb2c19a Sketcher: Fix Arrow Direction of Angle Arrows (#21645)
* Fix Arrow Direction of Angle Arrows

* Fix huge Space of angle box in negative angles

* Swap the direction vectors for the arrows
2025-06-02 12:22:24 +02:00
Yorik van Havre
640642eed2 Translations: Merged crowdin translations 2025-06-02 11:48:26 +02:00
Yorik van Havre
26e16765b0 Translations: updated ts files 2025-06-02 11:07:28 +02:00
wmayer
5cbeef9b33 Gui: Fix TreeWidget::addDependentToSelection
Avoid stack overflow for cyclic dependencies.

This fixes issue 20859
2025-05-31 19:41:50 +02:00
Ladislav Michl
487542185d Revert "[Gui] Fix "Select dependent objects" with cycles"
This reverts commit 01effaaab0.
2025-05-31 19:39:11 +02:00
tarman3
1cd7008641 command to open folder with macros 2025-05-30 20:02:58 +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
a124ce4f8f Gui: In DockWindowItems::addDockWidget replace the booleans with the enum class DockWindowOptions 2025-05-30 18:04:33 +02:00
wmayer
8d3e38fb4a Gui: Improve auto-saving
Handle possibly raised exceptions in RecoveryRunnable::run().
Since the run() method is executed within the context of a worker
thread all exceptions must be handled before returning to Qt
Concurrent as otherwise the application will be terminated.

For testing purposes load the corrupted project file from this forum
thread https://forum.freecad.org/viewtopic.php?p=823608#p823608
and wait for the auto-saving.
2025-05-30 18:04:33 +02:00
wmayer
4cfc77d9ee Gui: Move define HAS_QTBUG_129596 to separate header file 2025-05-30 18:04:33 +02:00