Bug 146740

Summary: "Resetting to parent" doesn't work for paragraph style's indents
Product: LibreOffice Reporter: Mike Kaganski <mikekaganski>
Component: WriterAssignee: Not Assigned <libreoffice-bugs>
Status: NEW ---    
Severity: normal CC: dgp-mail
Priority: medium    
Version: Inherited From OOo   
Hardware: All   
OS: All   
See Also: https://bugs.documentfoundation.org/show_bug.cgi?id=136339
https://bugs.documentfoundation.org/show_bug.cgi?id=118225
https://bugs.documentfoundation.org/show_bug.cgi?id=154543
https://bugs.documentfoundation.org/show_bug.cgi?id=58611
Whiteboard:
Crash report or crash signature: Regression By:
Bug Depends on:    
Bug Blocks: 107833, 108456    
Attachments: A file with modified Default style, and several Heading N paragraphs

Description Mike Kaganski 2022-01-13 14:52:43 UTC
Created attachment 177524 [details]
A file with modified Default style, and several Heading N paragraphs

In the attached document, edit Heading 2 style (e.g., right-click paragraph "2" and choose Paragraph->Edit Style). Go to dialog's Indents and Spacing tab. Press "Reset to Parent" button (in older versions, it was "Standard"). See that Indent Before text changes from 0 to 2 cm (because this is what defined at Default paragraph style in the document). Press OK.

The paragraph 2 stays not indented. Opening the style's properties dialog again shows that the indent is still 0.

Repro using Version: 7.4.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: 840b4eb2f3443ff883016e6a8a8ae49e9cbd9e4e
CPU threads: 12; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); UI: en-US
Calc: CL

and also using OOo 3.2.0.
Comment 1 Dieter 2022-01-28 07:47:35 UTC
I confirm it with

Version: 7.4.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: e27a41a362bf25e12487b36f625985b35fb891e3
CPU threads: 4; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: en-GB
Calc: CL

perhaps duplicate of bug118225?
Comment 2 Andreas Heinisch 2023-12-01 12:34:59 UTC
"Reset to Parent" calls function BaseFmtHdl which calls function Reset of the corresponding tab. There it does not distinguish between a FIRST call of a tab (changes ARE already applied) and a "Reset to parent" (changes ARE NOT applied). So this error does affect all dialogs using tabs using the "Reset" and "Reset to Parent" functionality if the ChangesApplied function is called in the reset function.
Comment 3 Andreas Heinisch 2023-12-01 13:30:45 UTC
A simple bad fix would be just to remove the ChangesApplied function in [1] in the SvxStdParagraphTabPage::Reset function leading to obsolete get_state_changed_from_saved calls in FillItemSet until the changes are applied.

Other solutions would include some flag in the reset page or creating and calling a new function for "Reset To Parent" of the page being called.

Mike what do you think?

[1] https://opengrok.libreoffice.org/xref/core/cui/source/tabpages/paragrph.cxx?r=5af2041c#830
Comment 4 Mike Kaganski 2023-12-01 14:17:35 UTC
(In reply to Andreas Heinisch from comment #3)

Sorry, I would need to dive deep to get the idea - could we please have a call maybe, where you could give me the necessary context? You could join IRC, and we could arrange a time convenient to you?

Thank you very much for working on this!
Comment 5 Andreas Heinisch 2023-12-01 16:00:08 UTC
Hi Mike, thank you very much for the help. I have time next week and I will join IRC for the details. Thank you.
Comment 6 Andreas Heinisch 2023-12-14 10:30:58 UTC
So the problem lies way deeper than missing ranges in the dialog. The reset to parent functions in the dialog but does not get reflected in the paragraph (check the style inspector). As Mike mentioned it could be that the change in [1] caused the problem.

[1] https://gerrit.libreoffice.org/c/core/+/147023