Commit Graph

93 Commits

Author SHA1 Message Date
wmayer
c016f1c1fb Gui: modernize C++: use equals default 2023-08-20 18:12:43 +02:00
wmayer
2725c3a54f Gui: modernize C++: use range-based for loop 2023-08-14 19:42:18 +02:00
wmayer
2a88c7c7df modernize C++: use bool literals 2023-08-06 01:35:39 +02:00
Alexander Golubev
992dec2c6b Gui: Prevent UiLoader from loading 3rd-party Qt plugins.
Due to a flaw in the QUiLoader, UiLoader were loading all designer plugins
it can find in QApplication::libraryPaths(). This in general a bad
practice and leads to bugs due to some plugins may perform some unexpected
actions upon load which may interfere with FreeCAD's functionality.

To avoid such problems reset the libraryPaths before creation of a
UiLoader object.

Also move setLanguageChangeEnabled(true) into constructor due to it's
called every time it's being instanced anyway.

See: https://github.com/FreeCAD/FreeCAD/issues/8708
2023-03-18 17:59:50 +01: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
marioalexis
0382f276a2 Gui: Replace C cast 2022-09-18 11:06:51 -05:00
berniev
75acacd1b7 Gui: Use auto and range-based for (#7481)
* On lines where the variable type is obvious from inspection, avoid repeating the type using auto. 
* When possible use a ranged for loop instead of begin() and end() iterators
2022-09-14 13:25:13 -05:00
Uwe
316a869b26 [Gui] remove superfluous nullptr checks 2022-07-18 03:17:42 +02:00
Uwe
8e6e3f47ff [Gui] Widgets and Window: remove unused includes 2022-02-21 00:39:24 +01:00
wmayer
563743e7e6 Gui: do not include generated ui file inside header file 2021-11-22 16:50:21 +01:00
wmayer
09da245af9 App: harmonize API of App::Application
* make getHomePath() static and return a std::string
* make getExecutableName() static and return a std::string
2021-11-04 10:50:09 +01:00
wmayer
381e4b4d5a Gui: use cbegin()/cend() for const_iterator 2021-09-23 11:17:42 +02:00
wmayer
eb18c2f9db Gui: modernize some classes 2021-09-23 11:00:50 +02:00
wmayer
00759f9c96 Gui: move PythonWrapper class to its own source file 2021-09-22 23:30:03 +02:00
wmayer
b4e69f1b2d Gui: move Ui loader classes to their own source files 2021-09-22 20:31:01 +02:00
wmayer
30848cb635 Gui: extend PythonWrapper:
* add methods to wrap/unwrap QDir
* add method to load QtUiTools module
2021-09-22 19:49:39 +02:00
luz paz
6a7184139d Gui: remove Py2 code from several src/Gui .cpp files 2021-04-14 14:56:02 +02:00
Chris Hennes
50c7ee36bf [GUI] Remove code for Qt < 5.9 2021-04-02 10:10:37 +02:00
Chris Hennes
3ef6e1c6d0 [OTHER] Catch only Exception, not BaseException 2021-02-11 11:52:45 +01:00
luz paz
298c677873 Gui: Fix header uniformity, whitespace, and doxygen fixes 2020-11-26 10:14:56 +01:00
wmayer
6e07dd9e26 Gui: [skip ci] add method to create Python wrapper for QObject 2020-11-23 16:48:54 +01:00
wmayer
3f212ad8ac Porting Py3.8/Py3.9:
Since Py3.3: 'Py_ssize_t PyUnicode_GetSize(PyObject*)' is deprecated [-Wdeprecated-declarations]
Since Py3.9: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations]
Since Py3.9: 'void PyEval_InitThreads()' is deprecated [-Wdeprecated-declarations]
2020-06-12 17:51:33 +02:00
Christian Cornelssen
299368b1b2 Workaround for messy SHIBOKEN_MICRO_VERSION definition.
I recently upgraded to `shiboken2-5.14.2.1`, and this broke preprocessing of
`src/Gui/WidgetFactory.cpp` because `SHIBOKEN_MICRO_VERSION` is now defined as
`2.1` (WTF?!), making it a floating-point literal which the preprocessor does
not like. It is only used for version comparison with `5.12.0`, so replacing
`SHIBOKEN_MICRO_VERSION` with `0` should be OK.
2020-04-28 18:50:13 +02:00
wandererfan
5823fdaf8e [GUI]Add PySide unwrapper for QGraphicsItem 2020-03-12 07:58:38 -04:00
wmayer
71dae0e639 handle some more warnings: -Wkeyword-macro -Wdeprecated-declarations -Wextra-semi 2019-11-18 11:56:08 +01:00
wmayer
44dc1e2c46 make PySideUicModule working independent of linking PySide or loading it at runtime 2019-09-07 13:40:04 +02:00
Zheng, Lei
732a2ee55a Gui: fix PythonWrapper::fromQIcon() 2019-08-30 15:47:39 +02:00
Zheng, Lei
08f0511b1f Python feature/observer related changes
* Add new API and signal handler in document observer

* Pre initialize python handler function to improve performance. In
  case Python code use dynamic patching, i.e. add class method at
  runtime (which is rare and should be discouraged), the python feature
  can be re-initialized by simply assign proeprty Proxy again.

* Add property tracking in DocumentObjectT

* WidgetFactory adds support for accepting python QIcon, which is used
  by ViewProviderPythonFeature
2019-08-17 15:08:34 +02:00
wmayer
b3e5fe56ce use shiboken version number to check for existence of Shiboken::ObjectType::typeForTypeName 2019-08-02 16:31:13 +02:00
wmayer
6ab7d261cc fix regression of previous commit and implement an alternative way to avoid MSVC compiler bug 2019-08-02 00:25:32 +02:00
wmayer
b23589d6af avoid including bitset header and Qt 5.12's qfloat16.h in the same compilation unit
Hints: qfloat16.h is included through PySide2 headers
       There is a compiler bug in VS 2017 so that the build stops (https://bugreports.qt.io/browse/QTBUG-72073)
2019-08-01 20:01:33 +02:00
wmayer
933ed45e1a code simplification in PythonWrapper 2019-06-22 14:32:50 +02:00
wmayer
cabb733968 issue #0003984: Creating a Path Job object fails with 'PySide2.QtWidgets.QDialog' object has no attribute 'templateGroup' 2019-06-22 12:32:36 +02:00
wmayer
cd74f2e929 py3/py2: use exec as function 2019-05-10 17:15:33 +02:00
Mateusz Skowroński
317bcd59c9 Use QString's multi-arg overload to save memory allocations. [-Wclazy-qstring-arg] Thanks Clazy! 2019-02-11 15:39:14 +01:00
wmayer
2004653fe4 check for existence of PySide stuff when defining convertWrapperToQuantity 2018-10-24 23:12:59 +02:00
wmayer
36029e96d6 restore shiboken wrapper for Base::Quantity 2018-10-24 22:27:59 +02:00
wmayer
0c63ab4234 remove unused shiboken wrapper for Base::Quantity 2018-10-16 19:31:33 +02:00
Michal Ulianko
faf8834484 py3.7 fix
PyUnicode_AsUTF8() returns const char* in py3.7 instead of char*. Making
changes to reflect that which should also be safe in
other Python versions.
2018-09-01 22:44:39 +02:00
wmayer
e701f75c25 generic wrapper/unwrapper for PySide and PyQt classes 2018-08-18 22:12:00 +02:00
luz.paz
420c2d7c03 Source typos fixes 2018-05-11 10:02:56 -03:00
wmayer
840c9e8b3c prepare for PyCXX 7.0 2018-04-18 19:20:50 +02:00
Daniel Rogers
2b1012f706 Add missing const_cast
I missed a const_cast and a pointer dereference when inlining the
code from shiboken2
2018-01-24 17:51:42 +01:00
Daniel Rogers
6ce8e1a0ae Fix compliation against shiboken2 head
shiboken2 changed type conversion and removed a wrapper.
This just deleted the class definition that is not longer valid and inlines
code in a few places.

fixes #3287
2018-01-24 17:51:42 +01:00
Unknown
a8ecffb652 Misc. typo fixes
Various workbenches
2017-12-23 14:30:30 +01:00
wmayer
3b957a12b5 various minor changes:
+ whitespace improvement
+ code cleanup
2017-11-21 17:51:22 +01:00
wmayer
5f54fc0298 py3: fix several crashes 2017-06-04 11:12:53 +02:00
Yorik van Havre
4f044dcbe4 py3: Gui: files P-Z ported to python3 2017-05-06 20:11:31 +02:00
wmayer
1673ab801e use specialized exception classes 2017-04-28 18:49:11 +02:00