Bug 160781 - [EDITING] Find and Replace with [x] Cell Styles mistakes Direction (Rows & Columns)
Summary: [EDITING] Find and Replace with [x] Cell Styles mistakes Direction (Rows & Co...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
6.4.7.2 release
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-22 12:31 UTC by LeroyG
Modified: 2024-04-22 18:07 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 LeroyG 2024-04-22 12:31:07 UTC
Description:
Try to find a cell style by rows, and it will find by columns.
Try to find a cell style by columns, and it will find by rows.



Steps to Reproduce:
1. Open the Find and Replace dialog
2. Mark [x] Cell Styles
3. Choose a style in the Find field
4. Find Next
5. Choose (•) Columns (for Direction)
6. Find Next

Actual Results:
After step 4, next find is in the same column.
After step 6, next find is in the same row.

Expected Results:
After step 4, next find is in the same row.
After step 6, next find is in the same column.



Reproducible: Always


User Profile Reset: No

Additional Info:
Versión: 6.4.7.2 (x86)
Id. de compilación: 639b8ac485750d5696d7590a72ef1b496725cfb5
Subprocs. CPU: 4; SO: Windows 6.1 Service Pack 1 Build 7601; Repres. IU: predet.; VCL: win; 
Configuración regional: es-AR (es_MX); Idioma de IU: es-ES
Calc: threaded

Version: 7.5.9.2 (x86) / LibreOffice Community
Build ID: cdeefe45c17511d326101eed8008ac4092f278a9
CPU threads: 4; OS: Windows 6.1 Service Pack 1 Build 7601; UI render: Skia/Raster; VCL: win
Locale: es-MX (es_MX); UI: en-US
Calc: threaded

Version: 7.6.5.2 (x86) / LibreOffice Community
Build ID: 38d5f62f85355c192ef5f1dd47c5c0c0c6d6598b
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

Version: 24.2.0.3 (x86) / LibreOffice Community
Build ID: da48488a73ddd66ea24cf16bbc4f7b9c08e9bea1
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
Comment 1 Julien Nabet 2024-04-22 18:07:01 UTC
On pc Debian x86-64 with master sources updated today, I could reproduce this.

Code pointer:
https://opengrok.libreoffice.org/xref/core/sc/source/core/data/table6.cxx?r=8ef4dc07#624

I tried this:
diff --git a/sc/source/core/data/table6.cxx b/sc/source/core/data/table6.cxx
index 243783c55d2e..240b2802962d 100644
--- a/sc/source/core/data/table6.cxx
+++ b/sc/source/core/data/table6.cxx
@@ -637,7 +637,7 @@ bool ScTable::SearchStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW&
     bool bBack = rSearchItem.GetBackward();
     short nAdd = bBack ? -1 : 1;
 
-    if (bRows)                                      // by row
+    if (!bRows)                                      // by column
     {
         if ( !IsColValid( nCol ) )
         {
@@ -661,7 +661,7 @@ bool ScTable::SearchStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW&
         }
         while ( !bFound && IsColValid( nCol ) );
     }
-    else                                    // by column
+    else                                    // by row
     {
         SCCOL aColSize = aCol.size();
         std::vector< SCROW > nNextRows ( aColSize );

It worked but the weird thing is with columns direction , I got "Search key not found" at the end instead of looping again.
I don't have this with rows direction.

Also, without the patch, the direction is wrong but the loop works in both cases.

I suppose it'll require a less naive patch.