Bug 90998 - Freeze multiple rows/cols
Summary: Freeze multiple rows/cols
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: All All
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: needsDevEval
Depends on:
Blocks: Cell-Freeze
  Show dependency treegraph
 
Reported: 2015-05-01 17:24 UTC by Christoph Anton Mitterer
Modified: 2017-10-09 13:20 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Anton Mitterer 2015-05-01 17:24:41 UTC
Hey.

There is the helpful Window/Freeze mode in Calc, which freezes/unfreezes parts of the displayed columns/rows based on which cell was selected when the window was frozen.
When one moves then around, those rows above and those columns left from the cell that was selected during freezing are displayed in a "header" like fashion (on top and left of the window).

This is great and helpful, but also kinda limited, namely to only consecutive cells/rows on the left and top + starting from column A and row 1.


I propose a much more powerful schema (which allows everything from the current one plus more):
Let the user specify (not necessarily consecutive or starting at 1/A) single and ranges of rows and columns which are to be "frozen".

Depending on which part of the screen is visible, the frozen rows would be displayed either:
- at their "native" position (that is correctly ordered between their neighbours)
- at the very right, left, top or bottom,.... each time next to their "following" frozen row respectively column

Some examples:
Imagine we'd have the following sheet:
  *   * *       *
  A B C D E F G H
 1
*2
*3
 4
 5
*6
 7
*8
(rows/columns marked with "*" are frozen)
But our screen fit's only 6 columns/rows.


a) I've I'd navigate to the very left/top I'd see then the following:
  *   * *   *
  A B C D E H
 1
*2
*3
 4
*6
*8
=> at the left/top, I see the frozen and normal rows/cells, but the normal rows/cells the the very left/bottom disappear between the frozen ones there.

b) If I stay at the top but move to the right, I'd get e.g.:
  * * *     *
  A C D F G H
 1
*2
*3
 4
*6
*8

c) At the bottom/right it would be:
  * * *     *
  A C D F G H
*2
*3
 5
*6
 7
*8
=> as you can see, the frozen ones never disappear, just the normal ones are hidden as necessary

d) Since the column/row space is positively infinite,... what happens if I move outside (i.e. even more down and/or more right) the already "used" rows/columns?
Well that would then look eg. like this:
   * * * *
   A C D H AB BA
*2
*3
*6
*8
 42
 43


I think, for convenience, all places where columns/rows are "hidden" should be indicated somehow.
Actually how, is probably a matter for the UI experts.
The current way of displaying a "line" is IMHO not visible enough.
One possible idea could be to colourise the column/row label fields whenever there are hidden ones in between, e.g. for columns this would normally look like:
*************************
* A * B * C * D * E * F *
*************************
And the background of these would be grey (in the standard colour mode).
But when we have some of the columns hidden because of frozen ones, e.g. analogously to example (a) above:
*************************
* A * B * C * D * E * H *
*************************
then all fields would be grey, except the one from E and H,... which get e.g. a blinking red plus the PC speaker starts beeping (yes I'm kidding) background, in order to indicate:
Something is not shown between columns E and H.

Maybe one would even paint only half of the label in the notification colour for scenarios like this:
*************************
* A * C * D * F * G * I *
*************************
Here, we'd be somewhere very right... and columns B, E and H would have not been frozen, which is why we don't see them anymore
If we paint the full labels with the notification colour, then every label would have the notification colour, and it would be hard to see, where actually something is missing,... if we only paint the right vertical halves (and in case of rows: horizontal halves) it becomes clear again, e.g.
*************************
* A#*#C * D#*#F * G#*#I *
*************************
with "#" marking the colourised half.


Best wishes,
Chris.
Comment 1 Joel Madero 2015-10-17 17:15:43 UTC
UX input here. 

To be quite honest - this seems really hard to implement and it would require a volunteer with: (1) some serious programming skills; (2) who finds this particular enhancement to be interesting, in order to accomplish what you are asking for. It could happen, but it seems unlikely. That being said, we can push the bug to NEW, wait for UX input, and then let it stay on the bug tracker in case such a volunteer ever appears :)
Comment 2 Heiko Tietze 2015-10-18 09:05:51 UTC
Would be good to have good use cases for any enhancement that goes beyond of just adding a cool feature. I can imagine a kind footer that sums up the content. User changes the content and sees what happens in the totals. But the normal scenario is to add rows, which makes such a footer pointless. And for the random row/col I'm even more puzzled.

So what do you think, Christoph, in what use cases would this feature indispensable?

PS: Bigger line indicator would be good, yes.
Comment 3 Robinson Tryon (qubit) 2016-08-25 05:39:23 UTC Comment hidden (obsolete)
Comment 4 Heiko Tietze 2017-10-09 13:20:56 UTC
Good idea but hard to implement. Drawback is a) indication is a problem, and b) reverting becomes a mess. About a) those cells could get have different style with darker background for instance instead of the border line right of or below. Could And regarding b) we would have to check if the current cell/row/column is frozen to remove it. Nevertheless, means to unfreeze all is also required. 

Forwarding to devs. 

(summary updated from "replace Window/Freeze mode with something more generic")