Make these methods non-inline again.

Change-Id: I34e18fa1607d56351e1c3656b1f37a823b7a5609
Speed up pasting of single row onto multiple destination rows.

This is an extension of the earlier paste optimization of a single cell
across multiple destination cells.

Change-Id: I3a60300d3d0e11420d997bea8f7f540e948f56cc
Move this code to the context class.

Change-Id: I387dba24993d418a2b3923eac992ad2506229704
Scope reduction.

Change-Id: Ic0cb74d220dccdcb4f607f4883b9b7fdf86bb080
Optimize area broadcast iteration ...

for cases where no areas are marked for removal, which I believe is mor
common use case than others.

Change-Id: I3f53fb5e6ab4a9172e358bec0c71289d1e92ac19
Unindent.

Change-Id: I3c644b6ff9916f6ec99ff6208ea073dd1612b4b3
Make these non-inline and add the const version of the getter.

Change-Id: I8c175dcaaa51e2b05895226907697b070a2e2f77
Add a means to dump the state of the area broadcaster slot machine.

Change-Id: I158307de667dbe621376dfc01adeef89aa12faaa
Differentiate shared and non-shared formula cells when registering.

For now this is just for a pure redirection, but later we'll use this
to do a different area listening registration for grouped formula cells.

Change-Id: I8e68bb53c3e96821175ae562ef36ec5e800c8688
Reduce duplicate broadcasting done when pasting a range of cells from clip.

We do pasting from clip in 2 steps: 1) delete the destination range, then
2) paste the content onto the destination range.  The old code would broadcast
both during 1) and 2).  This change consolidates them and do broadcasting
only once at the end, and also avoids broadcasting the same cell twice,
which the old code sometimes did.

Change-Id: Ic524c2b70888ce158619d99cbfb55dea85870497
Dedicated listener type tailored for formula groups.

Right now, it's only used when loading an xlsx file. But eventually
this one should be used everywhere.

Change-Id: I216c3a9a33c4b8040e8284d59299e0637471fb50
We don't need 2 variants of this method.  One is enough.

Change-Id: I001c388669737e9cf1d92f1fbb1e64fb9f4b05c3
Send broadcast range to the area broadcast slot machine.

Rather than iterating through cells in the range and broadcasting by
cells individually.  This way we can take advantage of the new group
based area listeners and it's much faster this way.

Change-Id: I8a4b49bce69d89b5b4698790befe4390871c755d
Avoid area listeners and such during formula cell paste replication.

All formula cells get marked dirty and start area-listening at the very
end of CopyFromClip.  No need to do it in CloneFormulaCells.

Change-Id: I9faf48fd722c2ebcf4b74d5e523317b5d9c71a22
Rename methods whose name no longer represent what they do.

We now do all broadcasting at the end of CopyFromClip, and nowhere else
during pasting from clip.

Change-Id: I1cb2c529f127d6e4080e49e4827f048ce5a19f95
Avoid unnecessary broadcasting when deleting cells prior to pasting.

Change-Id: Id224fd6fdb804350e7e00634db802e80090ae6d7
Use group-area listeners during copy & paste if we can.

This should reduce the number of area listeners generated esp. when
replicating tons of formula cells down the column.

Change-Id: I1ea8f51f667e6b0e1a646f84d79f5e8430b478d5
Rename these to make it clear that they are only to be called from ...

ScDocument::CopyFromClip.

Change-Id: Ia95b65ca7982735b9c217a7b60d194117d64e774
New test for testing group area listener behaviors during formula pasting.

Change-Id: Ie0c4e39e30a33ec5390c03221950d1cd01549c15
Regroup formula cells in columns before initializing them.

Because the initialization of area listeners now depend on the grouped
status of formula cells.

Change-Id: Idf61f57387ba62c57d87030c16544bc07836826f