Commit Graph

70 Commits

Author SHA1 Message Date
wmayer
6cac113ec7 Gui: QuantitySpinBox inherits from ExpressionSpinBox to reduce code duplication 2021-04-02 22:22:16 +02:00
wmayer
f5063af183 Gui: Change label type to ExpressionLabel in ExpressionBinding
* Add function ExpressionBinding::makeLabel() and use it in subclasses to reduce code duplication
2021-04-02 17:46:42 +02:00
Chris Hennes
b34acb8b31 Add tooltip to f(x) when there is no expression
As suggested by @luzpaz, this adds a tooltip to the f(x) icon of all
of the widgets that use it: QuantitySpinBox, UIntSpinBox, IntSpinBox,
DoubleSpinBox, and ExpLineEdit. These five classes are divided across
three files, and all five classes duplicate the same basic code. In the
existing code, no tooltip is shown if there is no expression. If there
is an expression, it (alone) is used as the tooltip.

This commit modifies that behavior to have explanatory text as the
tooltip when there is no expression, and when there is, to prepend a
short string to the beginning.

To reduce further code duplication, this is implemented by adding a new
function to ExpressionLabel allowing the text of the expression to be set.
It checks that text and if it's empty, uses a preset default string as the
tooltip. If there is expression text, it instead prepends another
bit of text to the front and sets the entire expression+prefix as the
tooltip.

TODO: In the future a lot of the preexisting code duplication could be
removed by making the ExpressionLabel class do more internal management
of the expression.

Thanks to @kisolre for the assistance tracking these down, and
suggesting the default text used.
2021-04-02 16:17:04 +02:00
Benjamin Nauck
d69bbaa51b [Gui] Use std::shared_ptr instead of boost::shared_ptr
There's no need to use boost version when stl has support for shared_ptr
2021-03-06 19:32:03 +01:00
wmayer
30ccf14117 Gui: [skip ci] fixes #0004104: Void property value defaults to 1 2021-02-23 17:32:02 +01:00
luz paz
38815b9550 Gui: Fix header uniformity, whitespace, and doxygen fixes 2020-11-26 10:14:56 +01:00
wmayer
c24516ae71 Gui: [skip ci] try to avoid to truncate QuantitySpinBox at bottom margin on macOS 2020-11-14 13:18:45 +01:00
wmayer
8e6bb060a7 Gui: [skip ci] try to avoid to truncate QuantitySpinBox at bottom margin on macOS 2020-11-08 16:07:10 +01:00
wmayer
9a951a96a9 Gui: [skip ci] fixes #0004422: PartDesign value input does not accept trailing slash 2020-09-14 10:37:46 +02:00
wmayer
f3c697abe7 Gui: [skip ci] workaround for QWindowsStyle to disable spin buttons when it is set read-only 2020-09-11 14:10:45 +02:00
wmayer
22bfd76efd plugin: [skip ci] add new signal textChanged() to QuantitySpinBox 2020-08-09 11:22:47 +02:00
Thomas Gimpel
0ba7dcd0f6 Gui: do not drop unhandled key events in *SpinBox::keyPressedEvent() handlers 2020-07-12 11:38:44 +02:00
wmayer
8dbe26a95f Qt5: 'int QFontMetrics::width' is deprecated since Qt 5.11: Use QFontMetrics::horizontalAdvance [-Wdeprecated-declarations] 2020-06-12 17:51:33 +02:00
wmayer
74bdc701a9 Gui: [skip ci] fix bug when keyboard tracking for QuantitySpinBox is disabled and value is changed by mouse wheel or the spin buttons 2020-06-07 23:38:03 +02:00
wmayer
2c353464c9 Gui: [skip ci] fix bug when keyboard tracking for QuantitySpinBox is disabled and value is changed by mouse wheel or the spin buttons 2020-06-07 11:30:56 +02:00
wmayer
755c537588 Gui: [skip ci] in QuantitySpinBox first set pendingEmit to false before actually emitting the signals 2020-06-02 08:22:24 +02:00
wmayer
e5f6b5dd81 Gui: [skip ci] make QuantitySpinBox to handle disabled keyboard tracking 2020-06-01 18:47:54 +02:00
wmayer
6b2e9d0a6d Gui: [skip ci] remove superfluous word 2020-04-30 11:35:53 +02:00
wmayer
0d4a29aa0c Gui: [skip ci] avoid to override the format settings of the quantity after validating the input text 2020-04-28 18:43:50 +02:00
wmayer
ec7ea875a1 Gui: [skip ci] fix size hint of QuantitySpinBox by setting text margins of 2px
See https://forum.freecadweb.org/viewtopic.php?f=3&t=45344
2020-04-28 16:53:52 +02:00
wmayer
d8d44f37cb [skip ci] fix superfluous workarounds 2020-01-09 23:36:28 +01:00
wmayer
74953de3f0 fixes 0004059: Tooltips for Gui::QuantitySpinBox not showing [skip ci] 2020-01-09 22:39:47 +01:00
wmayer
3ab0a20fcd Gui: [skip ci] when changing expression of a widget then set tooltip only for the label child but not for the widget itself
this allows that a custom tooltip can be set
2020-01-09 21:35:13 +01:00
wmayer
c5061f73c5 Gui: [skip ci] avoid weird acronyms in function names 2020-01-09 17:23:12 +01:00
donovaly
910022bafd QuantitySpinBox: add function to set/change tooltip at runtime 2020-01-07 07:39:28 -03:00
wmayer
ebf585c0c7 Gui: implement size hint for quantity spin box 2019-12-22 11:52:59 +01:00
wmayer
e1b7ef10c7 add posibility to use a unit schema other then the system schema to represent a quantity 2019-12-21 13:35:14 +01:00
wmayer
79ab25a25c Gui: set/get number of decimals of a quantity spin box 2019-12-20 14:44:40 +01:00
Zheng, Lei
38c47d6e95 Expression: split Expression.h to ExpressionParser.h
Split Expression details into a separate header to reduce recompilation
time on changes.
2019-09-28 15:30:41 +02:00
wmayer
86b4272971 fixes 0003794: Shortcut-Key is executed in edit field of a constraint (Combo View) 2019-02-16 21:53:23 +01:00
wmayer
448408c28a Improve usability of expression dialog:
+ add signal showFormulaDialog to QuantitySpinBox in order to indicate whether the formula dialog opens or closes
+ when formula dialog opens then hide the button box in the parent dialog, show it again when the formula dialog closes
2018-08-23 12:22:57 +02:00
wmayer
6c0fe8a947 when resetting expression on angle convert value back to radian 2017-10-19 23:47:51 +02:00
wmayer
96d01c9200 fix several kind of warnings:
+ fix -Wparentheses/-Wlogical-op-parentheses
+ fix -Wunused-variable
+ disable -Wundefined-var-template due to many false-positives (clang)
+ fix -Winconsistent-missing-override
+ fix -Wmaybe-uninitialized
2017-10-15 19:12:07 +02:00
Markus Lampert
2ddbc6e482 Fixed expression retrieval if no expression is set. 2017-10-10 13:06:35 +02:00
wmayer
8d0dc20c20 support of sub-properties when binding QuantitySpinBox via Python 2017-10-07 19:01:33 +02:00
Markus Lampert
cecc568390 Disabled debug printing. 2017-10-07 15:52:31 +02:00
Markus Lampert
02bd04592c Added read-only 'expression' property to QunatitySpinBox and renamed 'boundTo' to 'binding'. 2017-10-07 15:52:31 +02:00
Markus Lampert
bec9268ba3 Added boundTo as a property to QuantitySpinBox to enable binding from Python. 2017-10-07 15:52:31 +02:00
wmayer
356aa00193 add new property rawValue to QuantitySpinBox to make it accessible from Python 2017-10-05 22:46:02 +02:00
Eivind Kvedalen
0684109663 ExpressionBinding/QuantitySpinBox: skip updating if bound to a read-only property. 2017-07-26 23:39:00 +02:00
AjinkyaDahale
23d78e55c3 Shortened decimal check code in QuantitySpinBox 2016-10-16 09:30:49 +02:00
wmayer
67e3dc814a issue #0002712: Can't use more than one decimal in dimension 2016-10-15 16:27:38 +02:00
wmayer
2af6bb6e49 replace deprecated auto_ptr with unique_ptr 2016-09-22 13:01:20 +02:00
maurerpe
5a85155565 Add missing header files
Needed for Qt5, recommended for Qt4
2016-02-24 23:55:40 +01:00
Mateusz Skowroński
c275b35d48 QString::fromAscii() is obsolete in Qt5. Replace it with fromLatin1().
This change is Qt4/Qt5 neutral.
2016-01-05 16:07:25 +01:00
Stefan Tröger
2c249e69f2 Expressions: Fix property editor behavior
- change responsibility of python code emition
- Correct python code handling for expressions
- handle constraints expressions handling
2015-12-09 14:08:50 +01:00
Stefan Tröger
96a586d04a Expressions: Integrate into the property editor
- basic infrastructure for handling of expressions
- port the unit properties editor to support expressions
- port placement editor to support expressions
- expressions for double spinbox
- expressions in sketch constraints
2015-12-09 14:08:48 +01:00
Eivind Kvedalen
68fc3b5917 QuantitySpinBox: Make sure Python code is emitted also when expressions are not used.
In that case, the property should be set directly.
2015-11-13 20:26:13 +01:00
Eivind Kvedalen
f33ce91c8f QuantitySpinBox: Moved getIcon() and some data members to ExpressionBinding class.
Conflicts:
	src/Gui/QuantitySpinBox.cpp
2015-09-30 15:54:17 +02:00
Eivind Kvedalen
273698307e QunatitySpinBox: Removed unused code. 2015-09-30 15:54:16 +02:00