Commit Graph

6447 Commits

Author SHA1 Message Date
tetektoza
ecad444131 Gui: Allow users to add groups to active objects
As the title says, if right now there is Arch type active (like Level,
Building, etc. etc.), then it's not possible to assign Group to it
automatically (it's being created on root level of the document).

So this patch basically takes an active object and tries to insert it.
2025-06-22 23:50:12 +02:00
tetektoza
908941f2d1 Core: Add a possibility to extract active object based on extension 2025-06-22 23:48:52 +02:00
Benjamin Nauck
a6485d1ae1 Gui: Use middle elide for text in model tree 2025-06-20 22:37:37 +02:00
Max Wilfinger
45ee397b43 Gui: Add toggle overlay icons 2025-06-20 22:36:40 +02:00
Benjamin Nauck
079a81c59d Merge pull request #22025 from tetektoza/sketcher_regression_1 2025-06-20 19:21:14 +02:00
tetektoza
c8d2ae494b Sketcher: Handle additional characters for OVP in regexp
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
2025-06-20 00:33:48 +02:00
Alfredo Monclus
acdfdd5d1b Gui: Tasks: fix in place close and ok buttons 2025-06-19 18:42:24 +02:00
Kris
0b6a451790 Gui: Move Submenu Commands in Tool Menu (#20864)
* Moved tools submenu commands and title case

* Apply suggestions from code review

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>
2025-06-19 08:33:36 +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
tetektoza
f5e26f2fda Gui: Emit signal to EditableDatumLabel only if there's no digits
Small regression of mine, basically this signal to remove set/locked
state of EditableDatumLabel should be only sent out if current text in
the label is empty or it doesn't contain digits.

Previously it was emitted every intermediate wrong state, so stuff like
"71." was also being matched, and it resulted in resetting the locked
state of the label, which in turn resulted in keeping user from entering
float values.
2025-06-17 00:34:21 +02:00
tetektoza
4c1e7835bd Core: Add guard in Tree to ensure we don't process items during deletion 2025-06-17 00:15:49 +02:00
tetektoza
9a9242817d Core: Fix crashes during item deletion in specific selection order
This patch fixes crashes that we've noticed during migration from Qt5 to
Qt6 in recent months.

If you select items in a tree in a specific direction or range (all, or
from bottom to top) and delete them, there is a high change user will
experience a crash in `testStatus` function. This problem arises because
we're getting into use-after-free situation.

Looking at the callstack there are a lot of calls to
`itemSelectionChanged` during deletion, which takes over item creation
after deletion in `TreeWidget::_slotDeleteObject`. This in turn causes
`DocumentObjectItem::testStatus` to be called prematurely when we have
dangling pointers in object map still. `itemSelectionChanged` signal is
being transmitted because the selection range is changing as we're
constantly deleting and readding certain items.

Previously there was `blockSelection` call during deletion, but it turns
out the signals can still be emitted even AFTER we delete the item. This
had to somehow change between Qt5 and Qt6. So, to be safe, move the
signal block for selection before the obj deletion loop to be sure we
won't retransmit this signal during an uncertain state.
2025-06-17 00:01:24 +02:00
Chris Hennes
a5cc926bf5 Merge pull request #21921 from furgo16/add-prefcheckablegroupbox
Gui, Draft, BIM: Add PrefCheckableGroupBox, use it in IFC exporter preferences page
2025-06-16 11:06:30 -05:00
Max Wilfinger
d59f404267 Gui: Center notification label and disable show report view by default (#21872)
* Gui: Center notification label and disable show report view by default

* Stylesheet: min-width: 0 for QStatusBar QPushButton
2025-06-16 11:03:58 -05:00
Chris Hennes
488b5e2849 Merge pull request #21924 from hyarion/fix/lcs-crash
Gui: Fix crash when creating a LCS
2025-06-16 10:42:55 -05:00
Captain
ce54149637 Gui: refactor SoLinearDragger (#21451)
* Gui: refactor SoLinearDragger

* further improvements

* allow changing label visibility

* change SoLinearDraggerContainer to not inherit from SoDragger

---------

Co-authored-by: captain <captain@captain.captain.com>
2025-06-14 23:21:25 +02:00
Benjamin Bræstrup Sayoc
b54bbf57f9 Gui: use parameter observer for locale parameter
Parameter change should be independent of the use of the preference window.
2025-06-14 18:25:03 +02:00
Syres916
39dc1e6210 [Gui] C++ preparation for deprecation of QCheckBox…
…stateChanged -> checkStateChanged
2025-06-13 10:40:48 +02:00
Alfredo Monclus
d4e6a50808 Gui: fix double-click on checkboxes locking the properties 2025-06-13 10:10:31 +02:00
Benjamin Nauck
07b040fee1 Gui: Fix regression pointed out in review
paddlestroke:
> Here we actually need to keep App::Origin. Because we do not allow deletion ONLY of origin objects. Not of normal LCS.

While the original code:
```cpp
auto origin = dynamic_cast<App::Origin*>(lcs);
if (origin && !origin->getInList().empty()) {
```
...handles this perfectly fine, intent isn't obvious when reading it.
Using `is<T>()` shows intent better and should avoid similar situations in the future.
2025-06-12 10:33:56 +02:00
Benjamin Nauck
e5a81b9f44 Gui: Refactor LCS fixes
* use early exit to highlight main execution path
* use `auto*` for pointer
* use getObject<T>() instead of casting result from getObject()
* remove empty updateData()
* rename origin to lcs in setTemporaryVisibility for clarity
2025-06-12 10:27:06 +02:00
Max Wilfinger
a05cb9847c Gui: Fix dragger update when moving to target object and make flip independent of selected components. 2025-06-11 20:58:47 +02:00
wmayer
2a664ea7ab Gui: Fix crash when creating a LCS
This is a left-over of the regressions introduced with PR 18126.
Thanks to some moderinization of the code base and replacing static with dynamic casts undefined behaviour
has changed to well-defined behaviour but now unchecked null pointers.

This change does some extra null pointer checks and uses the now correct types for down casting.

Hint: Upstream still uses many static casts here that already cause undefined behaviour when creating a LCS.
This could be the reason for the possible crashes when deleting a LCS as described in 20261

# Conflicts:
#	src/Gui/ViewProviderCoordinateSystem.cpp
2025-06-11 08:26:17 +02:00
Furgo
3d02973951 Gui: add new PrefCheckableGroupBox widget 2025-06-11 02:44:52 +02:00
Ladislav Michl
a37509956e Gui: fix ViewProviderCoordinateSystem::claimChildren()
Until 8de6382 ("Gui: Fix stackoverflow when loading corrupted file")
a static_cast was used to obtain App::Origin object, however with
introducing App::LocalCoordinateSystem this was no longer correct,
although not causing any troubles as OriginFeatures moved into
LocalCoordinateSystem as well.

Recent use of getObject template triggered this problem, so use now
correct cast to App::LocalCoordinateSystem.

Fixes: 19702dc ("Core: Add App::LocalCoordinateSystem")
2025-06-10 10:20:06 +02:00
Kacper Donat
cbf32cd77b Gui: Add guidelines for input hints 2025-06-10 07:05:06 +02:00
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