Bug 149156 - [FORMATTING] Shift+F3 (Cycle Case) do not restart case option (mode) when in a new selection (NO and applying .uno:Repeat)
Summary: [FORMATTING] Shift+F3 (Cycle Case) do not restart case option (mode) when in ...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
7.2.3.2 release
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: CaseFolding
  Show dependency treegraph
 
Reported: 2022-05-18 15:18 UTC by LeroyG
Modified: 2022-05-27 13:16 UTC (History)
3 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 LeroyG 2022-05-18 15:18:57 UTC
Unlike other formats (such as bold or underline) in which the result of its application is unmistakable, Title Case, Sentence case, UPPERCASE and lowercase are not. LibreOffice cycle cases(?) in this order.

Notwithstanding you can repeat the last applied option with Ctrl+Shift+Y (menu Edit - Repeat), the cycle case order is not reseted when a new text portion is selected. I think that it must. So, if UPPERCASE is needed in a new selection (it may be the same text reselected), you know that you need to hold Shift and press F3 three times.

Steps to reproduce:
1. Open a new text document
2. Paste some text paragraph multiple times (I tested with "Tggg Tggg gggg TTTT TgTg")
3. Select first paragraph, and press Shift+F3 (or menu Format - Text - Cycle Case).
4. Repeat with next paragraphs.

Result:
Tggg Tggg Gggg Tttt Tgtg
Tggg tggg gggg tttt tgtg
TGGG TGGG GGGG TTTT TGTG
tggg tggg gggg tttt tgtg
Tggg Tggg Gggg Tttt Tgtg (the cycle restart)

Expected result:
Tggg Tggg Gggg Tttt Tgtg
Tggg Tggg Gggg Tttt Tgtg
Tggg Tggg Gggg Tttt Tgtg
Tggg Tggg Gggg Tttt Tgtg
Tggg Tggg Gggg Tttt Tgtg

Tested with:
Version: 7.2.3.2 / LibreOffice Community
Build ID: 20(Build:2)
CPU threads: 1; OS: Linux 5.3; UI render: default; VCL: gtk3
Locale: es-MX (en_US.UTF-8); UI: en-US
Calc: threaded
Comment 1 V Stuart Foote 2022-05-18 16:08:51 UTC
The effect is valid, but do not see it as a bug.

Each of the transliteration "modes" [1] applied by the 'Cycle Case' <Shift><F3> is individually available to assign to its own keyboard shortcut.

The <Shift>+<F3> is intended to be applied interactively against a selection. That its values are not being parsed for use in .uno:Repeat is cosmetic. The individual  transliterations when applied (by menu or having set a shortcut) are available to repeat. Otherwise reuse the <Shfit>+<F3> shortcut and cycle as needed.

IMHO => WF

=-ref-=
[1] Title Case/Capitalize Every Word (.uno:ChangeCaseToTitleCase), Sentence case (.uno:ChangeCaseToSentence), UPPERCASE (.uno:ChangeCaseToUpper), lowercase (.uno:ChangeCaseToLower)
Comment 2 Heiko Tietze 2022-05-19 06:22:27 UTC
Would rather agree with the request. It's inconsistent and detrimental to learnability if the sequence is not starting at the same option. Michael, your take?
Comment 3 Michael Warner 2022-05-19 13:51:40 UTC
I am able to reproduce the described behavior in 
Version: 7.3.0.3 / LibreOffice Community
Build ID: 0f246aa12d0eee4a0f7adcefbf7c878fc2238db3
CPU threads: 10; OS: Mac OS X 10.16; UI render: Skia/Metal; VCL: osx
Locale: en-US (en_US.UTF-8); UI: en-US
Calc: threaded

I agree with Comment 0 and Comment 2 that cases should cycle in a consistent order and that the starting point should always be the same and reset on selection.

My opinion => NEW.
Comment 4 V Stuart Foote 2022-05-19 15:33:55 UTC
But wait, isn't the ask that the <Shift>+F3 "status" be picked up to use in the <Ctrl>+<Shift>+Y .uno:Repeat

It is, that is the last transliteration used from Cycle case is what is applied with the Repeat. But in a sense that is wrong--the last command was actually <Shift>+F3 to submit selection to cycle case's change case sequence.

Behavior for the .uno:Repeat is what would need to be changed. Rather than repeating the specific 'Case change' transformation--it would need to rerun the <Shift>+F3 action, not the last transliteration.

But again this makes little sense, if you want to cycle through the case change transformation -- use <Shift>+F3, not the UNO repeat.

In a sense the behavior now is correct, with a new selection, if you are asking for a Repeat you probably want to have it receive the same transliteration as the previous cycle action. Not start the cycle over.  It does that.
Comment 5 LeroyG 2022-05-19 19:19:10 UTC
(In reply to LeroyG from comment #0)
> the cycle case order is not reseted when a new text
> portion is selected. I think that it must.
[...must be reseted]

(In reply to Michael Warner from comment #3)
> cases should cycle in a consistent
> order and that the starting point should always be the same and reset on
> selection.
[YES]

(In reply to V Stuart Foote from comment #4)
> isn't the ask that the <Shift>+F3 "status" be picked up to use in
> the <Ctrl>+<Shift>+Y .uno:Repeat
[NO]
> Behavior for the .uno:Repeat is what would need to be changed. Rather than
> repeating the specific 'Case change' transformation--it would need to rerun
> the <Shift>+F3 action, not the last transliteration.
[NO for me]
> But again this makes little sense, if you want to cycle through the case
> change transformation -- use <Shift>+F3, not the UNO repeat.
[That is what I think]
Comment 6 Heiko Tietze 2022-05-20 08:04:39 UTC
We could add the individual UNO commands into the undo stack not the uno:CycleCase, if that's not the fact.
Comment 7 Michael Warner 2022-05-20 13:45:09 UTC
(In reply to Michael Warner from comment #3)

> reset on selection.

...or on cursor movement, because the user may cycle case with no active selection.
Comment 8 Michael Warner 2022-05-20 14:17:10 UTC
(In reply to Heiko Tietze from comment #6)
> We could add the individual UNO commands into the undo stack not the
> uno:CycleCase, if that's not the fact.

If I am reading this correctly, it seems that we save the transliteration mode for EditEng[1][2], but not for Writer[3][4][5].

[1] https://opengrok.libreoffice.org/xref/core/editeng/source/editeng/impedit4.cxx?r=451efe2d#2944

[2] https://opengrok.libreoffice.org/xref/core/editeng/source/editeng/editundo.hxx?r=fc4c0747#257

[3] https://opengrok.libreoffice.org/xref/core/sw/source/core/undo/unovwr.cxx?r=5f9ffc31#325

[4] https://opengrok.libreoffice.org/xref/core/sw/source/core/undo/unovwr.cxx?r=5f9ffc31&fi=AddChanges#383

[5] https://opengrok.libreoffice.org/xref/core/sw/source/core/txtnode/txtedt.cxx?r=288ad999#1974
Comment 9 LeroyG 2022-05-27 13:16:59 UTC
Reproducible with:

Version: 7.4.0.0.alpha1 (x86) / LibreOffice Community
Build ID: b871abad383583f02eb49c7e49aeae01f6941072
CPU threads: 4; OS: Windows 6.1 Service Pack 1 Build 7601; UI render: Skia/Raster; VCL: win
Locale: es-MX (es_MX); UI: es-ES
Calc: threaded