sc/source/ui/unoobj/docuno.cxx |   33 ++++++++++++++++++++-------------
 1 file changed, 20 insertions(+), 13 deletions(-)

New commits:
commit f9360a8292c34b77f4f0c5865e91a0bab73581f6
Author:     Tomaž Vajngerl <[email protected]>
AuthorDate: Thu Feb 26 16:16:34 2026 +0900
Commit:     Miklos Vajna <[email protected]>
CommitDate: Tue Mar 3 09:08:03 2026 +0100

    sc: Send the hash of the default view tab in part info
    
    For a sheet view, we need to know to which default view it belongs,
    so we send the default view tab hash along with other sheet view
    information when sending the part info.
    
    Change-Id: Ic87f6d7e901a61c1dc90ab73134c51c80f0952e1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200752
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>

diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 350e838704f3..255b61ea954f 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -648,17 +648,6 @@ OUString ScModelObj::getPartInfo( int nPart )
     ScDocument& rDocument = pViewData->GetDocument();
     const bool bIsVisible = rDocument.IsVisible(nPart);
     const bool bIsProtected = rDocument.IsTabProtected(nPart);
-    const sc::SheetViewID nSheetViewID = 
pViewData->GetSheetViewIDForSheet(nPart);
-
-    bool nSheetViewSynced = true;
-
-    if (auto pSheetViewManager = rDocument.GetSheetViewManager(nPart))
-    {
-        if (auto pSheetView = pSheetViewManager->get(nSheetViewID))
-        {
-            nSheetViewSynced = pSheetView->isSynced();
-        }
-    }
 
     //FIXME: Implement IsSelected().
     const bool bIsSelected = false; 
//pViewData->GetDocument()->IsSelected(nPart);
@@ -668,10 +657,28 @@ OUString ScModelObj::getPartInfo( int nPart )
     jsonWriter.put("visible", static_cast<unsigned int>(bIsVisible));
     jsonWriter.put("rtllayout", static_cast<unsigned int>(bIsRTLLayout));
     jsonWriter.put("protected", static_cast<unsigned int>(bIsProtected));
-    jsonWriter.put("sheetviewid", int32_t(nSheetViewID));
-    jsonWriter.put("sheetviewsynced", uint32_t(nSheetViewSynced));
     jsonWriter.put("selected", static_cast<unsigned int>(bIsSelected));
 
+    const sc::SheetViewID nSheetViewID = 
pViewData->GetSheetViewIDForSheet(nPart);
+    if (nSheetViewID != sc::DefaultSheetViewID)
+    {
+        bool nSheetViewSynced = true;
+        if (auto pSheetViewManager = rDocument.GetSheetViewManager(nPart))
+        {
+            if (auto pSheetView = pSheetViewManager->get(nSheetViewID))
+            {
+                nSheetViewSynced = pSheetView->isSynced();
+            }
+        }
+        SCTAB nDefaultViewTableNumber = 
rDocument.GetDefaultViewTableNumber(nPart);
+        sal_Int64 nDefaultViewHashCode;
+        rDocument.GetHashCode(nDefaultViewTableNumber, nDefaultViewHashCode);
+
+        jsonWriter.put("sheetviewid", int32_t(nSheetViewID));
+        jsonWriter.put("defaultviewhash", int64_t(nDefaultViewHashCode));
+        jsonWriter.put("sheetviewsynced", uint32_t(nSheetViewSynced));
+    }
+
     OUString tabName;
     pViewData->GetDocument().GetName(nPart, tabName);
     jsonWriter.put("name", tabName);

Reply via email to