Commit Graph

4445 Commits

Author SHA1 Message Date
Abdullah Tahiri
ad3ccd9ec1 Resources: New Intray icon 2023-03-22 19:13:32 +01:00
Abdullah Tahiri
60c2026f6d NotificationArea: Preference dialog add preferences to control inactive window behaviour 2023-03-22 19:13:32 +01:00
Abdullah Tahiri
c5710055b5 NotificationArea: Parameters to control inactive notification show behaviour 2023-03-22 19:13:32 +01:00
Abdullah Tahiri
6e3bdd8f2a NotificationBox: Convert options to enum class 2023-03-22 19:13:32 +01:00
Abdullah Tahiri
1e3b728f35 NotificationBox: Add option to hide notification if reference widget is deactivated 2023-03-22 19:13:32 +01:00
Abdullah Tahiri
2f8be2c77b NotificationBox: Enable options to not show if reference widget is not active and refactor restricttoarea 2023-03-22 19:13:32 +01:00
Abdullah Tahiri
05dcc0bac8 NotificationBox: Hide notification if FreeCAD is deactivated 2023-03-22 19:13:32 +01:00
luzpaz
fc844ebac9 Migrate tabs to spaces in src/Gui/3Dconnexion/* 2023-03-22 17:06:47 +01:00
wmayer
66047f7daa Gui: issue #8939: timers are moved between non-QThreads 2023-03-22 13:27:00 +01:00
Abdullah Tahiri
b04ef3a351 NotificationBox/NotificationArea: Restrict rendering area to main frame
========================================================================

The NotificationBox is extended to take the QRect in global coordinates. Then
it will try to dimension the label within this area. If a fixed width is provided, that
is enforced (take precedence).

The NotificationArea passes the QRect of the main window to the NotificationBox.

This is intended to fix:
https://github.com/FreeCAD/FreeCAD/issues/8940
2023-03-20 15:43:42 +01:00
wmayer
cc49ba60ee Gui: fix some lint warnings 2023-03-19 03:19:49 +00:00
wmayer
c7d637d677 Gui: solves #8939: timers are moved between non-QThreads
For more details see: https://github.com/FreeCAD/FreeCAD/issues/8939#issuecomment-1474888902
2023-03-18 22:41:48 +01:00
Paddle
56c3aea705 Sketcher: Stylesheets: Taskbox buttons revert margin and padding. 2023-03-18 18:22:21 +01:00
Alexander Golubev
f047b1b6eb Gui: add a tooltip about how to modify shortcuts into DlgKeyboard 2023-03-18 17:59:50 +01:00
Alexander Golubev
35ae3750b9 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
Abdullah Tahiri
0b94640128 Notifications: Extend translated notification to include caption
===============================================================

For translated notifications now the caption is included in the
message, as the translation is already done, and this improves
the semantics of existing messages.
2023-03-18 09:07:39 +01:00
wmayer
608521d9f5 Gui: add missing include for Qt6 build 2023-03-18 00:08:40 +01:00
Paddle
98b97d7c68 Core: Add possibility to change the unit in the sizeLabel. 2023-03-17 14:04:24 +00:00
Abdullah Tahiri
6e29309a82 NotificationArea: Preferences - width 2023-03-17 11:29:30 +01:00
Abdullah Tahiri
a2bd55109d NotificationArea: Convert plain text to HTML to perserve format 2023-03-17 11:29:30 +01:00
Abdullah Tahiri
4b7a44739f NotificationArea: Use fixed size notifications 2023-03-17 11:29:30 +01:00
Abdullah Tahiri
eb590aed5d NotificationBox: Allow to set a fixed notification width 2023-03-17 11:29:30 +01:00
Abdullah Tahiri
3ece84fd9d NotificationArea: Allow wrapping of message text to avoid rendering issues with long messages 2023-03-17 11:29:30 +01:00
wmayer
a62d01ea2a Gui: set-up a logging category filter to suppress the most annoying Qt warnings 2023-03-16 20:40:00 +01:00
Paddle
71a94da497 Sketcher: Stylesheet, fix manualUpdate button style. 2023-03-14 16:28:14 +01:00
Paddle
00ffa67cbd Sketcher: Solver Message simplification 2023-03-14 16:28:14 +01:00
Adrian Insaurralde Avalos
38901f194b fix #8847 sketcher dialog tool buttons bad styling 2023-03-14 13:32:21 +01:00
wmayer
6ee8ee3c73 Gui: [skip ci] fix whitespaces 2023-03-13 22:38:54 +01:00
Syres916
223f0b4b35 [Gui] Add TODO reference hack 2023-03-13 22:34:58 +01:00
Syres916
7e57d539ff [Gui] Improve comments regarding move of widget 2023-03-13 22:34:58 +01:00
Syres916
5e6cd8d51f [Gui] Fix regressions from PR7771...
specifically c24a50f486 fixes #7965 #8440
2023-03-13 22:34:58 +01:00
Ronny Standtke
9878ecf3a2 use standard Close button for consistency with other task dialogs 2023-03-13 11:56:27 -05:00
Abdullah Tahiri
48ef9c794b Gui: Notifications - Convenience functions to send intrusive/non-intrusive notifications
========================================================================================

Functions to transparently send errors, warnings, notifications and translatednotifications, either
as intrusive messages (modal pop-up QMessageBox style) or as non-intrusive messages (notificationarea),
depending on the preferences of the user.

It is intended to substitute calls to QMessageBox with these functions in WBs, including the Sketcher WB.

Example:

QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
                      QObject::tr("Cannot add a constraint between two external geometries."));

Can be rewritten as:

 Gui::TranslatedNotification(obj,
               QObject::tr("Wrong selection"),
               QObject::tr("Cannot add a constraint between two external geometries."));

or

 Gui::TranslatedNotification("Sketcher",
               QObject::tr("Wrong selection"),
               QObject::tr("Cannot add a constraint between two external geometries."));

where the first parameter (obj or "Sketcher") is the notifier string. If obj is an App::DocumentObject
(or a derived class of it), internally the function transparently calls getFullLabel() to get the notifier
string.
2023-03-12 18:44:55 +01:00
wmayer
220947abdb MSVC: fix compiler warnings about redefined pre-processor directives
Swapping the order of Qt and Inventor headers fixes them because the latter uses #ifdef/#endif guards
2023-03-12 16:17:38 +01:00
wmayer
be0e65fa7a clang: fix -Wdeprecated-declarations 2023-03-12 15:05:21 +01:00
wmayer
82ac24de5c clang: fix -Wunused-parameter, -Wunused-variable, -Wswitch 2023-03-12 15:05:21 +01:00
Abdullah Tahiri
31e50ed1c7 Gui: Preference Page for NotificationArea
=========================================

Configuration preference page for controlling the notification area (non-intrusive messages and widget).
2023-03-12 06:06:29 +01:00
Abdullah Tahiri
0e881f9f06 Gui: Remove old signal for critical messages in favour of Notification Area
===========================================================================

The former system of autoclosing messageboxes is removed in favour of the Notification Area.
2023-03-12 06:06:29 +01:00
Abdullah Tahiri
7954716386 Gui: Add Notification Area to Status bar
========================================

Parameter "NotificationAreaEnabled" can be used to completely disable the Notification Area.

If disabled it won't appear on the UI at all and no non-intrusive notification will be generated.
2023-03-12 06:06:29 +01:00
Abdullah Tahiri
b2ef6f3f43 Gui: Notification Area
======================

A notification area consisting of one area for non-intrusive notifications, and a widget showing previous
errors, warnings, critical messages and notifications.

Notifications being marked with QT_TRANSLATION_NOOP with context "Notifications" are translated.

Messages are shown during a minimum show time, unless pop up (clicked inside). Messages stay until
a maximum show time. Between the minimum and the maximum show times left mouse button events make
the non-intrusive notification disappear.

The widget stores a configurable amount of messages after which old messages are removed to make room for
new ones.

Unread messages are shown in bold.
2023-03-12 06:06:29 +01:00
Abdullah Tahiri
a3aedccc22 Gui: New Icon for Notification Area
Gui: Icon resources - Warning icon

Gui: Icons - squash
2023-03-12 06:06:29 +01:00
Abdullah Tahiri
980f7f7f7a Base: Observer - fix template instantiation
===========================================

Merit goes to Werner for figuring out the issue and proposing a MSVC/MSYS2 viable solution:
https://github.com/FreeCAD/FreeCAD/pull/8781#issuecomment-1464898566
2023-03-12 06:06:29 +01:00
Abdullah Tahiri
c7e0aad548 NotificationBox: clang-format formatting 2023-03-12 06:06:29 +01:00
Abdullah Tahiri
1ba43102b1 NotificationBox: Fixes
======================

QToolTip removed the Windows specific behaviour of passing a screen widget as parent for QLabel
in 44fb925f50471ebc23dcccfaa4e9d9873b05d205. NotificationBox code is simplified not to use a
parent widget at all.

A inappropriate review fix actually causing a bug is fixed.

https://github.com/FreeCAD/FreeCAD/pull/8352#discussion_r1111342024
2023-03-12 06:06:29 +01:00
Uwe
29ac3191da [Gui] fix bug on restoring PrefColorButton
- onRestore did not read in transparencies because App::Color::fromPackedRGB was used instead of App::Color::fromPackedRGBA
2023-03-11 15:49:59 +01:00
Syres916
2a1438be59 [Gui] Fix display names of Recent Macros 2023-03-09 15:08:35 +01:00
Uwe
b9b53e6ef7 [Gui] [skip ci] improve new icon
- remove the Python logo in it (not visible in this size and can be license issue in future)
- save as plain SVG
2023-03-09 15:04:54 +01:00
Syres916
5c7f1e5d0e [Gui] Add an icon for Std_RecentMacros command (#8793)
* [Gui] Add Std_RecentMacros.svg icon
* [Gui] Add Std_RecentMacros icon
* [Gui] Add icon to Std_RecentMacros command
2023-03-09 14:55:30 +01:00
wmayer
a72ca7f424 Gui: fixes #8501: FreeCAD crashes when constraining a sketch with an expression containing . (dot) 2023-03-09 12:45:16 +01:00
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