Commit Graph

140 Commits

Author SHA1 Message Date
Sami Liedes
b3e8ed7814 Gui/Application, QuarterWidget: request OpenGL compatibility profile (#23768)
On Wayland with Qt, the default OpenGL context often ends up being
OpenGL ES. ES is a stricter API based on the "core" profile and lacks
many legacy functions (e.g. glEnd). FreeCAD relies on some of these
functions, which work under Mesa’s permissive stack but fail outright
with NVIDIA’s proprietary drivers, resulting in a blank 3D view.

Fix this by explicitly requesting a desktop OpenGL compatibility
profile both before QApplication creation and in QuarterWidget. This
ensures the presence of the legacy entry points required by Coin/SoQt.

(NB: both requests appear to be necessary; a single change was not
sufficient in testing.)
2025-09-29 19:22:29 -05:00
Markus Reitböck
6ef07bb358 Gui: use CMake to generate precompiled headers on all platforms
"Professional CMake" book suggest the following:

"Targets should build successfully with or without compiler support for precompiled headers. It
should be considered an optimization, not a requirement. In particular, do not explicitly include a
precompile header (e.g. stdafx.h) in the source code, let CMake force-include an automatically
generated precompile header on the compiler command line instead. This is more portable across
the major compilers and is likely to be easier to maintain. It will also avoid warnings being
generated from certain code checking tools like iwyu (include what you use)."

Therefore, removed the "#include <PreCompiled.h>" from sources, also
there is no need for the "#ifdef _PreComp_" anymore
2025-09-14 09:47:03 +02:00
bofdahof
998f4e4d45 Console: rename PascalCase named methods to camelCase 2025-05-06 17:50:21 +02:00
Chris Hennes
e7156aa326 Merge pull request #20496 from hyarion/refactor/cppify-constants 2025-03-29 18:43:40 -05:00
Benjamin Nauck
34bc1d45ea Gui: Use std::numeric_limits and std::numbers instead of defines 2025-03-29 13:32:38 +01:00
Andrea
2f5f8f32e7 Remove old Coin code <=3
ubuntu 22.04 use libcoin v 4. https://launchpad.net/ubuntu/jammy/+package/libcoin-dev
2025-03-29 12:16:09 +01:00
Chris Hennes
dced463dc6 Merge pull request #19428 from tritao/base-tracy-profiler
Base: Add Tracy frame profiling support.
2025-03-14 04:12:05 +00:00
Joao Matos
7ae14d6bd5 Base: Add build support and instrumentation for the Tracy profiler. 2025-03-14 03:41:30 +00:00
Andrea
5464ada40c Remove old qt code
new round of removal following the report of @benj5378  .

.
2025-03-05 09:46:35 +01:00
Andrea
da66720d3a REMOVE old QT<= 5.14 code
Ubuntu 22.04  use qt 1.15.3.
In the code is still used qt code <5.10.
A cleanup was done by removing qT code version used in ubuntu 18.04.
2025-03-05 09:32:06 +01:00
Chris Hennes
7f1c43a335 Merge pull request #19636 from kadet1090/color-in-base
Base: Move App::Color to Base
2025-03-02 16:36:40 -06:00
Joao Matos
3b05b61de2 Gui: Remove QtOpenGL.h. 2025-02-25 23:03:51 +00:00
Joao Matos
91e94ba1dd Gui: Cleanup Qt OpenGL usings in QtOpenGL.h.
Previously the code defined compatiblity usings in `QtOpenGL.h` header,
which I think was added for backwards compatiblity with previous Qt
OpenGL widgets.

As far as I can tell, this is not necessary anymore, and can be cleaned
up.
2025-02-25 23:03:51 +00:00
Kacper Donat
a72a63232a Base: Move App::Color to Base
Every basic data type is stored in Base module, color is standing out as
one that does not. Moving it to Base opens possibilities to integrate it
better with the rest of FreeCAD.
2025-02-17 21:10:26 +01:00
Syres916
62c5267e64 [Gui] fix the FPS text visibilty issues raised in #19371 (#19385)
* [Gui] fix the FPS text visibilty issues
* [Gui] code efficiency based on suggestions
* [Gui] update color parameter
* [Gui] Fix Lint feedback
* [Gui] check if string is empty
2025-02-11 13:16:29 -06:00
liukaiwen
4c6b7dadeb refactor: move some nodes to Inventor folder 2024-07-20 01:07:04 +08:00
wmayer
12f5f70757 Quarter: Update Quarter code
* Removes unused default constructors of the device classes
* Changes several doc strings
2024-07-08 10:54:41 -05:00
wmayer
876e88f405 Gui: Fix crash in QuarterWidgetP::removeFromCacheContext
Fixes #https://github.com/FreeCAD/FreeCAD/issues/14988
2024-07-04 22:21:44 +02:00
Chris Hennes
5f094a48a9 Gui: Remove unused ref to GL context 2024-06-26 11:53:18 -05:00
xtemp09
f53c827f94 Fix the crash when closing a document
Closes #14189. This commit partially reverts
d15c7d0673 and
fb37201299.
2024-06-24 10:49:27 -05:00
wmayer
41503d63eb Gui: replace SbBool with bool in View3DInventorViewer 2023-10-25 19:40:59 +02:00
wmayer
8e60e1c1a6 Gui: fix lint warnings in SoQTQuarterAdaptor 2023-10-25 19:40:59 +02:00
luzpaz
760fac5d82 Fix typos 2023-09-14 20:53:04 -05:00
wmayer
54bb9c9c62 Gui: modernize C++: return braced init list 2023-08-18 00:36:24 +02:00
wmayer
89d529ab7b modernize C++: use using 2023-08-06 23:17:10 +02:00
andrea
a4929211d4 remove qt4 references
Removed find and include mocked files (QT4)
2023-08-04 21:24:36 -06:00
wmayer
33dc7917bb Gui: modernize C++: use override 2023-08-04 17:09:53 +02:00
wmayer
713bc349a5 Qt6: fix possible build failure
* add CMake definitions 'QT_NO_KEYWORDS' to avoid the Qt definition of the 'slots' macro that causes a conflict when including Python headers
* drop QT3_SUPPORT define
2023-07-20 08:58:56 -05:00
Edoardo Morandi
e2e1a51790 fix: UB by erroneous event downcasting
When an event type is `QEvent::Wheel`, the event type is `QWheelEvent`,
which is not a `QMouseEvent`. This caused a undefined behavior that can
be cached by ubsan.
2023-04-17 23:42:15 +02:00
wmayer
2e5cb03261 Gui: move to new style connect() 2023-02-01 13:49:35 +01:00
wmayer
81d2361d9f Gui: Qt6 port
* QString::indexOf() is now marked as [[nodiscard]]
* Replace deprecated methods of QMessageBox
* QMouseEvent::globalPos() is deprecated, use globalPosition().toPoint()
* QWidget::enterEvent() requires a QEnterEvent as argument
* QLibraryInfo::location() is deprecated, use path()
* QVariant::Type is deprecated, use QMetaType::Type
* QVariant::canConvert(int) is deprecated, use QVariant::canConvert(QMetaType) or QVariant::canConvert<T>()
* QMessageBox::standardIcon is deprecated, use QStyle::standardIcon()
* Replace deprecated method QMessageBox::question(), ...
* QApplication::fontMetrics() is deprecated
* QDropEvent::mouseButtons() is deprecated, use buttons()
* QDropEvent::keyboardModifiers() is deprecated, use modifiers()
* Constructor of QFontDatabase is deprecated, use static methods instead
* Qt::AA_DisableHighDpiScaling is deprecated
* Qt::AA_EnableHighDpiScaling is deprecated
* Qt::AA_UseHighDpiPixmaps is deprecated
2022-12-31 21:54:45 +01:00
wmayer
d6a7b282d5 Core: Qt6 migration, use PySide 2022-11-06 14:09:18 +01:00
wmayer
ec553a9292 Qt6 port:
* Explicitly include some missing headers
* Use 'static const char*' for XPM icon
* Skip template parameters for qMakePair
* Constructor of QFileInfo is marked as 'explicit' now
* QString::fromLatin1() also accepts a QByteArray
* QDateTime::fromTime_t() is deprecated in Qt5 and has been removed in Qt6. Use QDateTime::fromSecsSinceEpoch()
* QDateTime::toTime_t() is deprecated in Qt5 and has been removed in Qt6. Use QDateTime::toSecsSinceEpoch()
* QApplication::globalStrut() is deprecated. Don't use it any more.
* QWidget::isTopLevel() is deprecated, use QWidget::isWindow()
2022-11-02 15:16:41 +01:00
0penBrain
0ca641f0d7 Gui: add getter about home position to QuarterAdaptor 2022-09-28 17:29:11 +02:00
wmayer
de7949a3b7 [skip ci] Debian patches:
* Fix FTBFS on armhf/armel, undefined GL_PROJECTION (issue 1014875)
* Disable syntax checks for some Python modules
2022-09-06 14:40:10 +02:00
wmayer
0ebdf4743a Fix several clazy issues:
* Don't call ... on temporary [-Wclazy-detaching-temporary]
2022-07-25 00:18:42 +02:00
wmayer
54506e12bf Fix several clazy issue:
* Using copy-ctor but class SbMatrix/SbViewportRegion has a trivial copy-ctor but non trivial assign operator [-Wclazy-rule-of-two-soft]
2022-07-24 19:38:59 +02:00
wmayer
3b0b7775f4 Fix several clazy issues:
* Q_PROPERTY should have either NOTIFY or CONSTANT [-Wclazy-qproperty-without-notify]
* Use Q_ENUM instead of Q_ENUMS [-Wclazy-qenums]
* Add missing a Q_OBJECT macro [-Wclazy-missing-qobject-macro]
* Signal/Slot arguments need to be fully-qualified [-Wclazy-fully-qualified-moc-types]
2022-07-24 19:03:30 +02:00
Uwe
3e99d39d05 [Gui] remove some more superfluous nullptr checks 2022-07-18 13:15:38 +02:00
Uwe
1d95c26e2e [Gui] remove more superfluous nullptr checks 2022-07-18 03:34:22 +02:00
Uwe
316a869b26 [Gui] remove superfluous nullptr checks 2022-07-18 03:17:42 +02:00
andrea
3018985f80 Remove unused code into GUI 2022-07-17 03:53:11 +02:00
wmayer
e53e231677 Gui: remove some superfluous const_cast 2022-06-24 14:48:52 +02:00
Chris Hennes
bedf920702 Gui: PR6497 move return statement to new line 2022-03-29 12:33:50 -05:00
wmayer
9ffac65e8c Gui: [skip ci] do not include Inventor/SbByteBuffer.h for older Coin3D versions 2022-03-22 10:36:03 +01:00
wmayer
56ced5cdd5 Gui: fix build failure with older Coin3D versions 2022-03-21 19:59:03 +01:00
wmayer
5e1fe7b41d Gui: [skip ci] change include order to avoid warnings with MSVC
* QtGui/qopenglext.h(11119,1): warning C4005: 'GL_OFFSET_TEXTURE_2D_MATRIX_NV': macro redefinition
* QtGui/qopenglext.h(11120,1): warning C4005: 'GL_OFFSET_TEXTURE_2D_SCALE_NV': macro redefinition
* QtGui/qopenglext.h(11121,1): warning C4005: 'GL_OFFSET_TEXTURE_2D_BIAS_NV': macro redefinition
2022-03-14 15:24:10 +01:00
wmayer
2dc78804b6 Core: Fix several coverity issues:
* CID 350582: Big parameter passed by value
* CID 350639: Big parameter passed by value
* CID 305234: Uncaught exception
* CID 316529: Uncaught exception
* CID 350597: Uncaught exception
* CID 350623: Uncaught exception
* CID 332690: Uncaught exception
* CID 332700: Unchecked return value
* CID 350576: Uninitialized scalar field
* CID 350587: Uninitialized scalar variable
* CID 192606: Uninitialized scalar field
* CID 332699: Uninitialized pointer field
* CID 350561: Dereference null return value
* CID 350610: Dereference null return value
* CID 350567: Dereference after null check
2022-03-13 13:53:32 +01:00
Uwe
9654786c67 [Gui] Quarter: remove unused includes 2022-03-09 01:12:15 +01:00
Uwe
f9b2489ae2 [Gui] Quarter: remove few unused includes
- mainly sorting
2022-03-06 21:47:17 +01:00