Commit Graph

23 Commits

Author SHA1 Message Date
wmayer
6f5259af26 App: Apply clang format (part 1) 2024-11-21 07:54:24 +01:00
wmayer
9f7f8d0f4a App: [skip ci] use curly braces for if/else-statements and for loops 2022-10-14 13:55:11 +02:00
wmayer
9f8cfe22f8 App: add tests for cell rows and absolute cells 2022-10-13 20:16:48 +02:00
Chris Hennes
3ea737b31b Switch to Boost regex
In some circumstances Boost regex is substantially faster than std::regex, so we currently standardize on using Boost. This also fixes a compilation error on Windows, since std::regex is not included in our precompiled headers.
2022-07-27 09:59:25 -05:00
berniev
ba06e203be Fix column number calc
(cherry picked from commit 0a8b875751c9469a52548730539dfd4b4fc51acc)
2022-07-27 13:45:33 +02:00
Uwe
61303b0a01 [Base] remove some more superfluous nullptr checks 2022-07-18 13:07:16 +02:00
Uwe
e69a920f18 [App] remove superfluous nullptr checks 2022-07-18 03:12:01 +02:00
Zheng Lei
fb457594fd Spreadsheet: fix range checking (#6997)
* App: add option to normalize a Range

- To make sure the range starts from top left and ends with bottom right
corner.
- Default is to not normalize on construction for backward compatibility.
-  fix range checking in range binding
2022-06-09 12:20:08 +02:00
wmayer
1a20b7f119 App: modernize C++11
* use nullptr
2022-03-23 17:29:23 +01:00
wmayer
4a343ab31e Base/App: fix warnings from code analysers:
* convert old-style-casts to explicit C++ casts where possible
* make some implicit conversions explicit
2022-03-06 23:49:30 +01:00
Uwe
beb0152996 [App] Range to VRML: remove unused includes 2022-02-24 11:28:52 +01:00
Uwe
d88397f3d6 [App] Placement and Property: remove unused includes 2022-02-24 01:09:00 +01:00
wmayer
ce05165f21 App: replace three boolean of CellAddress::toString() with a bitmask of enums 2022-01-09 10:39:54 +01:00
Zheng, Lei
0c2c334f87 Spreadsheet: support cell binding
Cell binding allows one to bind a range of cells of one sheet to another
range of cells of an arbitary sheet, including any empty cells in the
range.

The binding is implemented with PropertyExpressionEngine and
PropertySheet::setPathValue(), which binds a special path of
PropertySheet, such as

    .cells.Bind.A1.D1

to an expression, such as

     tuple(.cells, <<A2>>, <<A5>>)

The A1 and D1 in the example above specifies the binding start and end
cell address. And <<A2>> and <<A5>> are the range of cells to bind to.
Note that you can use any expression that evalutes to string for the
binding destination, e.g. <<A%d>> % B1, which uses the value inside B1
to construct the binding destination. The '.cells' in the tuple shown
above is an example to bind cells of the same PropertySheet. It can be
change to to reference to any other spreadsheet, even those outside the
current document, e.g. Document#Spreadsheet001.cells
2021-12-21 21:41:02 -07:00
luz.paz
019f73852c src/App: [skip ci] fix header uniformity
This PR fixes header uniformity across all `src/App` files
2019-12-25 11:38:43 +01:00
Zheng, Lei
ced27a69c6 PropertyExpressionEngine: convert to link type property
PropertyExpressionEngine is changed to derived from a new class
PropertyExpressionContainer, which is in turn derives from
PropertyXLinkContainer. This makes PropertyExpressionEngine a link type
property that is capable of external linking. It now uses the unified
link property APIs for dependency management and tracking of object
life time, re-labeling, etc.

ObjectIdentifier is modified to support sub-object reference, but is
not exposed to end-user, because expression syntax is kept mostly
unchanged, which will be submitted in future PR. There is, however,
one small change in expression syntax (ExpressionParser.y) to introduce
local property reference to avoid ambiguity mentioned in
FreeCAD/FreeCAD#1619

Modified Expression/ExpressionModifier interface to support various link
property API for link modification.
2019-08-17 14:52:09 +02:00
Unknown
f5146508bb Misc. typos 2017-12-06 20:59:55 +01:00
luzpaz
aea66610d9 App/Range.cpp: mInor doxygen refinements 2017-11-29 21:40:44 +01:00
wmayer
fb7094bf31 use specialized exception classes 2017-04-28 18:49:11 +02:00
Ulrich Brammer
812dbca5a9 fixes 0002978 spreadsheet row problem for rows above AA 2017-04-04 13:46:15 +02:00
hgutsche
201c9d89b0 Some fixes for doygen syntax errors and some configuration to make it run smoother under Windows 2017-02-28 18:52:04 +01:00
Bruce B. Lacey
39d05b66a7 Add include of <sstreeam> to fix commit 08692f811 breakage to Ubuntu Precise 12.04 builds. 2016-04-02 11:19:28 -07:00
Eivind Kvedalen
b5e44436f1 Expressions: Added support for aggregate functions and ranges. 2016-04-02 12:01:04 +02:00