Commit Graph

216 Commits

Author SHA1 Message Date
wmayer
d80082490b Gui: clear the title bar after closing the last MDI window 2024-03-22 16:08:44 +01:00
wmayer
9209331e59 Gui: fix several regressions caused by PR #12035
* fix hard crash in MainWindow::_updateActions() if no MDI view exists
* in MDIView::buildWindowTitle() use the label of the document because this changes when saving it while the name is immutable
* fix const correctness in MDIView::buildWindowTitle()
* do not set the modified flag of the main window in MDIView::buildWindowTitle() but in the calling instance
* move setting the main window title to Application::viewActivated to reduce code duplication
* fix missing application name if FreeCADGui is loaded as Python module
2024-03-18 23:27:51 +01:00
Max Wilfinger
9469f0fdad use setWindowModified() to indicate modified state and window title 2024-03-18 17:36:20 +01:00
Max Wilfinger
bdebed7d17 display current active document in main window title 2024-03-18 17:36:20 +01:00
André Caldas
89dbab9b0e Avoids using getNameInDocument() to test if DocumentObject is attached to a Document.
This patch substitutes by isAttachedToDocument() (almost) everywhere where
getNameInDocument() is used for this purpose.

The very few places not touched by this patch demand a (just a little) less trivial change.
When we change the returning type of getNameInDocument() to std::string,
those places will be easily found, because they shall generate a compiler error
(converting std::string to bool).

Rationale:
The fact that getNameInDocument() return nullptr to indicate
that the object is not attached to a document is responsible for lots of bugs
where the developer does not check for "nullptr".

The idea is to eliminate all those uses of getNameInDocument() and, in the near future,
make getNameInDocument() return always a valid std::string.
2023-12-11 17:37:58 +01:00
bgbsww
c2bab7a2fa Move the unit schema into Project Information and remove all Project Unit System code (#11266)
* Add unit system to Project Information and store with document.

* Remove the project unit system

* Restore correct document activation signalling to fix test fail

* Remove commented out dead lines

* Restore ignore option for project unit schemas

* Whitespace fix

* Refresh after changing units

* Remove field label

* Property editor changes applied to unit system
2023-12-04 13:04:53 -06:00
Kacper Donat
afd72f3585 Gui: Add ability to easily lock Toolbars from UI
This adds the Std_ToggleToolBarLock action mentioned in #4992. It is
exposed in the context menu of toolbar and also in the view -> toolbars
app menu.
2023-12-01 12:13:43 +01:00
Chris Hennes
cfd41683a5 Core: Enable compiling with MSVC /permissive- (#11014)
* Base: Fixes for MSVC permissive-

* App: Fixes for MSVC permissive-

* Gui: Fixes for MSVC permissive-

* Main: Fixes for MSVC permissive-

* Fem: Fixes for MSVC permissive-

* Material: Fixes for MSVC permissive-

* Part: Fixes for MSVC permissive-

* Mesh: Fixes for MSVC permissive-

* Points: Fixes for MSVC permissive-

* Robot: Fixes for MSVC permissive-

* TechDraw: Fixes for MSVC permissive-

* Path: Fixes for MSVC permissive-

* Core; Changes per review comments

* TD: Revision from wandererfan

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-11-27 17:37:29 +01:00
wmayer
0617568a49 Gui: restore old behaviour to set up main window 2023-11-13 13:55:44 -03:00
wmayer
6d5807ddce Gui: only use primary screen to restore main windows settings 2023-11-13 13:55:44 -03:00
Paddle
d3235e0c3a SplashScreen : Add "ShowSplasherMessages" parameter to disable labels from the splashscreen. 2023-11-04 21:58:00 +01:00
wmayer
a02d1fe45a Gui: make tab position of combo view configurable and set it back to North by default 2023-10-13 16:17:25 +02:00
wmayer
76e2a91c65 Gui: refactor MainWindow::initDockWindows
* split MainWindow::initDockWindows into smaller functions
* remove of legacy group for Tree view, Property view and DAG view
* simplify code logic
2023-10-13 16:17:25 +02:00
wmayer
b8e8b2aca8 Gui: remove trailing whitespaces (thanks luzpaz) 2023-10-12 00:58:44 +02:00
wmayer
e543840afc Gui: removing parameters from settings that affects older versions is rude 2023-10-12 00:58:44 +02:00
wmayer
04af090e86 Gui: replace deprecated QDesktopWidget with QScreen
Since Qt5.11 QDesktopWidget is marked as deprecated and has been removed in Qt6. New code has to use QScreen instead.
2023-10-12 00:58:44 +02:00
Zheng, Lei
ba6b2a4375 Gui: add support for transparent overlay docking widget 2023-10-11 09:58:53 +02:00
wmayer
9f42bdb323 Gui: fixes #10807: By default keep the old tabulated layout of ComboView and TaskView 2023-09-30 17:33:33 +02:00
wmayer
dc6ce5a08b Gui: implement handling of Combo, Property and Tree view 2023-09-14 13:35:13 +02:00
wmayer
4fcddc71ab Gui: rework ComboView 2023-09-14 13:24:24 +02:00
wmayer
23c5b330d9 Gui: add TaskView to its own dock window 2023-09-14 13:17:33 +02:00
wmayer
4f27591e67 Gui: fix some MSVC truncation warnings
See forum: https://forum.freecad.org/viewtopic.php?t=81051
2023-09-10 18:08:06 +02:00
FEA-eng
6171feb560 Update MainWindow.cpp
fixed small typo in the warning about 0.22 being dev version not for production use
2023-09-05 15:40:16 -05:00
wmayer
888a33917d Gui: modernize C++: use equals default 2023-08-20 18:12:43 +02:00
Chris Hennes
6541e13294 Gui: Tweak size of developer warning
Ensure that the warning adapts to the font size and text length as needed.
2023-08-12 10:24:05 -07:00
wmayer
702f3b4ddd Core: modernize C++: redundant void arg 2023-08-05 16:50:31 +02:00
Chris Hennes
12f7dff7a6 GUI: Add prominent dev build indicators 2023-08-04 18:21:39 -06:00
wmayer
4d4267481f Gui: modernize C++: use override 2023-08-04 17:09:53 +02:00
Oliver Oxtoby
d07e01cddc Gui: Avoid segfault if window is not an MDIView
Fixes #10003. See also #9758.
2023-07-29 08:10:38 +02:00
Ajinkya Dahale
1cb7f4e93a [Core] Warn user if using deprecated backup extension 2023-07-20 10:25:34 -05:00
wmayer
7197568821 Qt6: fix possible build failure with Qt 6.5
Forum thread: https://forum.freecad.org/viewtopic.php?p=692199#p692199
2023-07-20 08:58:56 -05:00
Abdullah Tahiri
5718efbdeb MainWindow: Fix for Automatic WB and edit mode WBs
==================================================

As described here:
https://forum.freecad.org/viewtopic.php?p=687188#p687188
2023-07-01 19:56:52 +02:00
Chris Hennes
927c3b9731 GUI: Update Splashscreen 2023-06-15 09:57:27 -05:00
Jolbas
f973f6b3f9 Improved font handling Navigation cube
Also adding anisotropy texture mapping for better readability on steep angles.
2023-06-06 22:59:20 -04:00
Abdullah Tahiri
5f52885fbf Ilogger - Separate behaviour for user exposed and not exposed loggers 2023-05-23 14:24:45 +02:00
Abdullah Tahiri
9d9f928b2d Console: Extend framework with intended recipient and content type metainformation
==================================================================================

Limitations of the current framework:
- Codes the translated state only for TranslatedNotification as part of the type.
- Does not code the intended recipient (user, developer, ...)

Problems:
- Some errors are intended for developers, some errors may only be intended for users,
if, for example, there is another developer error which already contains all the information.
The current framework may lead to information duplication or to showing to the user developer
information, which is perceived as annoying.
- Logs shall be in English (report view), while every message to the user (UI) shall be translated.
The current framework can only differentiate where to report based on subscription (legacy logs do not
subscribe to notifications), and for notifications, whether it is translated or not depends on the type.
It is not possible to code errors or warnings that are already translated.

Solution:
- To extend the ILogger interface with additional metainformation, indicating the intended recipient
(User, Developer, All), and the content of the message (translated, untranslated, untranslatable). The latter
is useful for dynamic strings that won't find a match in the translation framework.

Bonus:
- This extended version allows to do away with translatednotification, as now any message can be independently
marked as translated or untranslated or untraslatable.
- It is now possible to provide the right icon of severity (error, warning, info), even when it is only user intended
and already translated.
2023-05-23 14:24:45 +02:00
Chris Hennes
8b73653633 Gui: Translate unit system UI 2023-05-15 20:16:46 -05:00
wmayer
8ba1edfbfd Gui: fixes #9086: Disabling the splash screen blocks the startup of Freecad
If no splash screen was shown then windowHandle() returns null and this leads to a segmentation fault.
2023-05-02 16:15:33 +02:00
luzpaz
38a01939e0 Migrate domain name from freecadweb to freecad (#9352)
* Migrate domain name from freecadweb to freecad
* Migrate src/Mod/Material files
* Migrate Stylesheet related files
* Migrate *.svg files
* Migrate miscellaneous files
* Migrate some build files
* Migrate recently added TD AR_IRAM template files

Closes #6415
2023-04-24 15:19:20 -05:00
Paddle
a1b70c294c Pref: Remove Unit tab and move settings back to main page. 2023-04-01 16:30:51 +02:00
0penBrain
e2a2f6cec9 Gui: use QActionGroup signal for dimension indicator change handling 2023-03-24 19:31:41 +01:00
0penBrain
be80a217f6 Gui: add live retranslation to dimension indicator 2023-03-24 19:31:41 +01:00
0penBrain
38416d7b80 Gui: dimension indicator moved to custom widget to handle unit schema change in other places 2023-03-24 19:31:41 +01:00
0penBrain
8eee92da99 Gui: change dimension indicator from QToolButton to QPushButton for lighter style
Consistency with navigation style indicator

 Also fix typo in function name and remove comment
2023-03-24 19:31:41 +01:00
Abdullah Tahiri
f0077e5f8a NotificationArea: Change Icon color to indicate missed notifications 2023-03-22 19:13:32 +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
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
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
Adrian Insaurralde Avalos
662473b11f Improve NaviCube font matching on linux 2023-02-28 10:01:33 +01:00