Commit Graph

6362 Commits

Author SHA1 Message Date
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
Alfredo Monclus
8f2ff7d7f6 Gui: property-editor open the combo directly and apply after selection
Previously you had to make 4 clicks to apply a combo
1 to enter edit, 1 to open the combo, 1 to select, and 1 to defocus and apply

with this commit only 2 clicks:
1 to open the combo and 1 to select
2025-05-29 22:41:37 +02:00
Alfredo Monclus
f3f2a2a9f7 Gui: property-editor add property copy context menu 2025-05-29 22:40:59 +02:00
Alfredo Monclus
1f4a9d883b Gui: property-editor fix text not showing due to stylesheets 2025-05-29 15:01:11 +02:00
Benjamin Nauck
401d965ef0 Merge pull request #21379 from alfrix/set_style
Gui: Set QStyle to Fusion if not set
2025-05-26 22:13:31 +02:00
Syres916
dbcc11d24e [Gui] InputField correct icon visibility logic on opening a pre-completed task panel 2025-05-26 17:54:39 +02:00
Kacper Donat
01a03fe77d Merge pull request #21571 from alfrix/property_editor_2
Gui: property editor do not enter edit mode if the property is read-only
2025-05-26 17:20:06 +02:00
Alfredo Monclus
cb95cb064f Gui: property-editor make readonly cells look disabled 2025-05-26 07:13:44 -06:00
Alfredo Monclus
012a765614 Gui: property editor do not enter edit mode if the property is read-only 2025-05-25 06:25:09 -06:00
Roy-043
1057db98db Typo in ViewProviderGeometryObject.cpp (#21517)
appearrance -> appearance
2025-05-22 11:04:10 +02:00
Kacper Donat
aa47949f80 Gui: Add support for hints in status bar 2025-05-21 17:42:45 +02:00
Alfredo Monclus
548af02619 Gui: fix light/dark switch when on classic (#21049)
* Gui: fix: taskpanel light/dark switch when on classic

* Gui: fix: taskpanel double icon

* Apply suggestions from code review

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-05-21 14:00:54 +00:00
Joao Matos
e5dad52fdf App: Invoke signalBeforeRecompute() on the GUI thread
Historically, `App::Document::recompute()` ran entirely on the **main**
(GUI) thread and directly emitted `signalBeforeRecompute()`.

* Add-ons like **Assembly3** and others depend on that signal for
setup/teardown hooks before any recompute work begins.

* After offloading `recompute()` into a background worker thread to keep
the UI responsive, calling `signalBeforeRecompute()` directly from the
worker would break thread-affinity rules and silently break
compatibility with those add-ons.

**Solution**

1. **Introduce a generic hook** (`PreRecomputeHook`) in
**App::Document**:

* A `std::function<void()>` that, if set, is invoked at the very
start of `recompute()`.

* Core code stays Qt-free—only knows to call a callback if one
exists.

2. **Wire up the hook in `Gui::Document`**:

* In the GUI wrapper’s constructor, install a hook that calls
`callSignalBeforeRecompute()`.

* `callSignalBeforeRecompute()` uses `QMetaObject::invokeMethod(...,
Qt::BlockingQueuedConnection)` to enqueue `signalBeforeRecompute()` on
the GUI thread and **block** the worker until it completes.

    * If already on the GUI thread, it simply calls the signal directly.

3. **Maintain add-on compatibility**:

* From the add-on’s perspective nothing changes—they still receive
`signalBeforeRecompute()` on the main thread before any recompute work.

* Internally, the recompute body now runs on a worker thread,
improving UI responsiveness without breaking existing hooks.

**Result**

* **Recompute** remains fully backward-compatible for add-ons like
Assembly3.

* **UI thread** still handles all GUI-related signaling.

* **Worker thread** performs the actual heavy lifting, unblocked only
once the GUI is primed and all pre-recompute signals have been
delivered.
2025-05-19 18:30:56 +02:00
Alfredo Monclus
127b1c8432 Gui: add 'System' style to leave QtStyle unset 2025-05-16 07:52:32 -06:00
Alfredo Monclus
2e54df073d Gui: fix ElideCheckbox spacing 2025-05-16 09:32:11 +02:00
Alfredo Monclus
07c234078b Gui: Set QStyle to Fusion if not set 2025-05-15 21:20:48 -06:00
Chris Hennes
f5ab6295ba UI: Remove qPixmapFromMimeSource pixmap function
This function dates back to Qt3, and was removed in Qt4. Modern Qt no
longer uses this ui file entry, and in some circumstances the uic
complains about its presence.
2025-05-15 00:56:30 +02:00
Chris Hennes
b36a21b721 Gui: Eliminate signed-to-unsigned comparison
`std::numeric_limits<int>::max()` can losslessly be cast to an unsigned
int to silence the compiler warning about comparison of signed to
unsigned.
2025-05-15 00:20:35 +02:00
Chris Hennes
cfb6368026 Gui: Eliminate double->float truncations
Our GUI code uses a mix of floats and doubles to represent floating
point numbers, and in a few places interchanges them in a way that
causes an invisible loss of precision. Change the double precision
"default" values to float defaults, and use the appropriate value for
pi.
2025-05-13 08:37:06 +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
Chris Hennes
0b0f3aaa1e Gui: Make variable more local
Eliminate a compiler warning about an unused variable by making the
variable more local to the point-of-use.
2025-05-12 18:16:56 +02:00
Chris Hennes
c0ddaf4820 Gui: Remove default init of shared_ptr
`std::shared_ptr` default-initializes to `nullptr`, so there is no need
to do it manually, and in the current code the initialization is in the
wrong order (so generates a compiler warning).
2025-05-12 18:16:32 +02:00
Chris Hennes
952485dcbb Merge pull request #19907 from benj5378/getAttribute
Base: make getAttribute template
2025-05-12 10:39:55 -05:00
Kacper Donat
cf4357ed38 Gui: Fix handling - character in OVP 2025-05-12 08:55:09 -05:00
tarman3
c2df7a83db Macro: Button to open folder with macros 2025-05-11 21:54:07 +02:00
Benjamin Bræstrup Sayoc
2b6e73c29d Everywhere: clean up getAttribute conversions 2025-05-09 15:54:57 +02:00
Benjamin Bræstrup Sayoc
2b1aec0041 Base: make getAttribute template 2025-05-09 15:54:57 +02:00
xtemp09
30498b7b48 Gui: Add switching to the document when closing FreeCAD (#21135)
* Add switching to the document when closing FreeCAD

Closes #20997

* Some update of language

* camelCase every variable name used
2025-05-08 23:59:11 +02:00
Jacob Oursland
77fdca1347 Gui: use 'C.UTF-8' for locale as Qt requires UTF-8. 2025-05-06 16:06:10 -05: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
Ladislav Michl
4414042b8f Gui: fix warning in NavigationStyle
Fix warning: suggest braces around empty body in an ‘if’ statement.
While there also guard similar debug messages instead of commenting
them out.

Fixes: 8d2cb99712 ("Gui: Added classic trackball orbit style")
2025-05-05 19:45: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
Max Wilfinger
18c43d9c91 Set RoundedArcball as default orbit style.
Reorder status bar entries.
2025-05-05 10:33:33 -05:00
Chris Hennes
db46f0499c Merge pull request #20449 from hyarion/refactor/cpp20-contains
Avoid using `count` and `std::find` where `contains` and `isEmpty` express intent better
2025-05-05 10:31:33 -05:00
Benjamin Nauck
84b4ef32bc Gui: Add tests to automatically verify the axonometric views 2025-05-04 13:21:08 +02:00
Benjamin Nauck
966ef92b35 Gui: Use contains instead of std::find 2025-05-03 22:22:10 +02:00
Benjamin Nauck
df3c324b7d Gui: use contains() and isEmpty() instead of count() where possible 2025-05-03 22:19:51 +02:00
Leticia Vong
7a5487670c GUI: Refactor - removed soft dependency from freeze toggle 2025-04-30 15:11:44 +02:00
Andrea
922a2c25f2 Removed unused function
Removed unused function
2025-04-29 22:52:04 -05:00
mosfet80
16a4e11eb2 clean SoFCSelection.cpp
removed unused code
2025-04-29 22:49:40 -05:00
captain0xff
68a8575536 Gui: rename TaskCSysDragger to TaskTransform 2025-04-28 23:30:14 +02:00