Commit Graph

290 Commits

Author SHA1 Message Date
wmayer
0f6a79a474 Gui: fix possibly garbled toolbars and menus
See also Debian bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=986821
For now enable this line only for Windows builds
2023-03-09 12:44:45 +01:00
Abdullah Tahiri
ee0c3ad5c1 Console/ILogger: Refactor and extension
=======================================

Refactor:
 - Substitute the use of variadic templates with parameter packs.
 - Use recently incorporated external library "fmt" to handle printf like formating.
 - Extensive cleaning of pragmas and unnecessary forward declarations.
 - Parameter packs and libfmt provide a much stronger type checking now, so
   conversions that are by standard implicit as bool to int need an explicit static_cast
   to avoid compilation warnings.

Extension:
 - Include a notifier field, so that the originator of the message can be provided. E.g. Document#DocumentObject
 - Include a new type of message called CriticalMessage, this message is intended to have
   special behaviour in the future. Namely, it will be used to notify forward compatilibity issues.
   It will be used to substitute the current signal/slot mechanism.
 - Include two new types of messages for user notifications (Notification and TranslatedNotification). This messages
   will be use to convey UI notifications intended for the user (such as non-intrusive message about the usage of a tool). There
   are two versions to mark whether the string provided as a message is already translated or not. When using the console system for
   notifications, these notifications may originate from the App or the Gui. In the former, it is generally the case that the strings
   of messages are not (yet) translated (but they can be marked with QT_TRANSLATE_NOOP). In the latter, often the messages to be provided
   are already translated.

Python support for CriticalMessage, Notification and TranslatedNofification, including shortcuts:

    Crt = FreeCAD.Console.PrintCritical
    Ntf = FreeCAD.Console.PrintNotification
    Tnf = FreeCAD.Console.PrintTranslatedNotification
2023-03-07 16:13:23 +01:00
wmayer
84981b7c71 Gui: change custom message handler to show Qt warnings and errors also in Release mode 2023-01-11 17:48:13 +01:00
wmayer
09ae3b2ab8 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
Abdullah Tahiri
907a0a6de9 Gui:: Application - user initiated restore status bit
=====================================================

Add Status bits. Currently only to mark whether an UI operation of restore was initiated by the user (via click in the open dialog or in the hyperlink of the shortcuts of the home page).
2022-12-21 16:01:23 +01:00
Uwe
aef629ece1 [Build] output point release version
- to Splashscreen, About, MainWindow and Console
2022-12-05 00:26:43 +01:00
0penBrain
f5b91de0e6 Gui: add decimal point converter to Translator 2022-11-03 13:41:06 +01:00
wmayer
ea4a6948be Gui: add class TaskDialogPy 2022-10-09 14:26:42 +02:00
wmayer
75bfb8f48f Core: replace QRegExp with QRegularExpression 2022-10-06 13:54:20 +02:00
wmayer
193ac13f79 Gui: add support to get exporting options before writing a file 2022-10-04 16:23:01 +02:00
marioalexis
ff1b4eff05 Gui: Replace C cast 2022-09-18 11:06:51 -05:00
berniev
ae53c9b0a4 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
wmayer
23961706be Gui: modernize C++: replace 'typedef' with 'using' 2022-08-29 14:09:18 +02:00
berniev
3877fc62c3 Gui: Single arg ctors must be explicit (PR #7369) 2022-08-24 15:06:03 +02:00
berniev
3d1f70765a Gui: redundant void 2 2022-08-08 10:21:44 +02:00
berniev
2db561561e Gui: use empty 2022-08-06 16:35:45 +02:00
berniev
066656f62a Gui: use emplace_back 2022-08-05 10:33:41 +02:00
Uwe
d5b227e6a6 [Gui] remove more superfluous nullptr checks 2022-07-18 03:34:22 +02:00
Uwe
bb2b49fb1f [Gui] remove superfluous nullptr checks 2022-07-18 03:17:42 +02:00
andrea
7886d3cbf4 Remove unused code into GUI 2022-07-17 03:53:11 +02:00
wmayer
d5340a82ab Gui/Mod: replace several reinterpret_cast with static_cast 2022-06-25 11:36:55 +02:00
wmayer
8499e8fba6 Gui: expose SoQtOffscreenRenderer to Python 2022-06-21 12:55:17 +02:00
Uwe
0828d769e8 [Gui] remove unnecessary Boolean comparisons 2022-06-19 15:17:01 +02:00
Chris Hennes
5df3dbae6f Gui: PR6497 move return statement to new line 2022-03-29 12:33:50 -05:00
wmayer
b50ec016bd Gui: fixes #6663: [Bug] Decimal separator not chosen by locale system settings anymore 2022-03-28 15:38:51 +02:00
wmayer
1178df06b4 Gui: modernize C++11
* use nullptr
2022-03-23 18:41:21 +01:00
Uwe
276a8f7e24 [Gui] add 2 includes necessary for debug builds
- as reported: https://github.com/FreeCAD/FreeCAD/commit/2a49e389b2 this is necessary e.g. on Manjaro
2022-03-17 18:23:18 +01:00
0penBrain
f043cb5ca5 Gui: add preference to use selected language number formatting, fixes #6330
If not enabled (default), will defaults to C/POSIX formatting
2022-03-17 16:46:01 +01:00
Uwe
99191c6679 [Gui] So headers: remove unused includes
- also sort out some headers to be used in precompiled headers
- also move a boost header to precompiled headers
2022-03-16 02:01:32 +01:00
wmayer
0f9768fb33 Fix coverity issue:
* CID 332682: Resource leak
* CID 350607: Resource leak
* CID 332677: Resource leak
2022-03-14 11:35:04 +01:00
wmayer
b626b7d719 Gui: Optimize includes to reduce compile time 2022-03-09 01:25:29 +01:00
wmayer
8f786ea6ef Gui: Optimize includes to reduce compile time 2022-03-07 20:29:18 +01:00
wmayer
91e4e468dd Base: move ILogger sub-classes to their own source files in order to reduce including stream classes in client code 2022-03-06 10:13:47 +01:00
Uwe
eaaeef80e1 [Gui] Application and Document: remove unused headers 2022-02-19 05:37:40 +01:00
marioalexis
21d7fd92c5 Gui: Add option to enable/disable text cursor blinking 2022-01-29 11:05:31 +01:00
wmayer
a87e33258d Gui: remove support of using deprecated Qt OpenGL API 2022-01-26 14:46:41 +01:00
wmayer
ce8c6a58bb Gui: improve safety of Application::getViewProvider()
This is a suggestion offered by realthunder at https://forum.freecadweb.org/viewtopic.php?p=560433#p560433
and this commit https://github.com/realthunder/FreeCAD/commit/0e20656ffae

This commit additionally moves the relevant code into a separate class.
2022-01-12 14:39:05 +01:00
luz paz
fd3f2b0092 Fix various typos and refinements 2022-01-06 20:22:34 +01:00
wmayer
88c015e007 Gui: encoding/decoding of system specific error message 2021-12-30 00:48:57 +01:00
wmayer
cda8545a29 Gui: in catch blocks first write the error message before cleaning the resources 2021-12-20 16:10:01 +01:00
wmayer
060f3bf8f3 Gui: boost 1.76 provides an overloaded version of file_lock that accepts a wchar_t string 2021-12-19 21:24:17 +01:00
wmayer
9b8731a326 0004807: Freecad crashes when windows username contains special characters 2021-12-19 17:02:19 +01:00
wmayer
1c6b7cca9d App: save version number of the most important libraries 2021-11-23 12:55:49 +01:00
wmayer
c8fcb9405e Gui: extend PySide2 wrapper of MainWindow with extra functions 2021-11-19 15:45:56 +01:00
wmayer
3bd3f20e32 Gui: [skip ci] add sub-classes of the MDIView to the type system 2021-11-19 12:51:13 +01:00
wmayer
867870e113 Gui: allow to configure the checks of the cache directory 2021-11-16 15:37:04 +01:00
wmayer
54b139cb29 Gui: periodically check cache directory and offer a way to clean it up if it exceeds the limit 2021-11-15 22:53:41 +01:00
wmayer
387661360c App: standard path handling
* distinguish between temp and cache location
* document's transident directory is created in the cache location
* add functions to access temp and cache location via Python
2021-11-15 16:26:25 +01:00
wmayer
f36126770c 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
c6db46f359 Gui: [skip ci] fix minor memory leak 2021-10-26 13:31:55 +02:00