From e94d9c1c346a8b7e58c24bcf554c0a2bab77f59c Mon Sep 17 00:00:00 2001 From: Andras Timar Date: Tue, 21 Jul 2020 10:59:24 +0200 Subject: Revert "tdf#128502: Try to support multiple documents ... in LibreOfficeKit-using process" This reverts commit b0da52d19ed40dd0871f208eb7387ec1d8252de4. We decided not to have this "multiple docs" feature in stable cp-6.2 because it caused regressions that we could not fix quickly. Change-Id: Ib9ad6e010935e6a936832c01756700735a8cc6c5 --- desktop/inc/lib/init.hxx | 3 +- desktop/source/lib/init.cxx | 14 ++---- include/editeng/outliner.hxx | 2 - include/sfx2/lokhelper.hxx | 12 ++--- include/sfx2/viewsh.hxx | 2 - include/svl/undo.hxx | 2 - sc/source/ui/docshell/dbdocfun.cxx | 4 +- sc/source/ui/docshell/docfunc.cxx | 5 +-- sc/source/ui/docshell/docsh4.cxx | 5 +-- sc/source/ui/docshell/olinefun.cxx | 9 ++-- sc/source/ui/inc/tabvwsh.hxx | 5 ++- sc/source/ui/undo/undoblk.cxx | 8 ++-- sc/source/ui/undo/undodat.cxx | 10 ++--- sc/source/ui/view/dbfunc3.cxx | 7 ++- sc/source/ui/view/gridwin.cxx | 5 +-- sc/source/ui/view/gridwin4.cxx | 4 +- sc/source/ui/view/tabview4.cxx | 2 +- sc/source/ui/view/tabview5.cxx | 3 +- sc/source/ui/view/tabvwsh4.cxx | 15 ++----- sc/source/ui/view/tabvwshc.cxx | 14 ++++-- sc/source/ui/view/viewfun2.cxx | 4 +- sc/source/ui/view/viewfunc.cxx | 17 +++----- sd/source/ui/sidebar/SlideBackground.cxx | 10 ++--- sfx2/source/view/lokcharthelper.cxx | 4 +- sfx2/source/view/lokhelper.cxx | 75 +++++--------------------------- sfx2/source/view/viewimp.hxx | 1 - sfx2/source/view/viewsh.cxx | 19 ++------ starmath/source/smmod.cxx | 3 -- sw/source/core/doc/docredln.cxx | 3 +- 29 files changed, 81 insertions(+), 186 deletions(-) diff --git a/desktop/inc/lib/init.hxx b/desktop/inc/lib/init.hxx index 237a17a59eee..5957f56ed344 100644 --- a/desktop/inc/lib/init.hxx +++ b/desktop/inc/lib/init.hxx @@ -149,9 +149,8 @@ namespace desktop { css::uno::Reference mxComponent; std::shared_ptr< LibreOfficeKitDocumentClass > m_pDocumentClass; std::map> mpCallbackFlushHandlers; - const int mnDocumentId; - explicit LibLODocument_Impl(const css::uno::Reference &xComponent, int nDocumentId = -1); + explicit LibLODocument_Impl(const css::uno::Reference &xComponent); ~LibLODocument_Impl(); }; diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 568363fea289..2e5f9380fa44 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -1207,9 +1207,8 @@ VclPtr getSidebarWindow() } // anonymous namespace -LibLODocument_Impl::LibLODocument_Impl(const uno::Reference &xComponent, int nDocumentId) +LibLODocument_Impl::LibLODocument_Impl(const uno::Reference &xComponent) : mxComponent(xComponent) - , mnDocumentId(nDocumentId) { if (!(m_pDocumentClass = gDocumentClass.lock())) { @@ -2151,8 +2150,6 @@ static LibreOfficeKitDocument* lo_documentLoadWithOptions(LibreOfficeKit* pThis, SolarMutexGuard aGuard; - static int nDocumentIdCounter = 0; - LibLibreOffice_Impl* pLib = static_cast(pThis); pLib->maLastExceptionMsg.clear(); @@ -2249,10 +2246,7 @@ static LibreOfficeKitDocument* lo_documentLoadWithOptions(LibreOfficeKit* pThis, return nullptr; } - LibLODocument_Impl* pDocument = new LibLODocument_Impl(xComponent, nDocumentIdCounter++); - - // Do we know that after loading the document, its initial view is the "current" view? - SfxLokHelper::setDocumentIdOfView(pDocument->mnDocumentId); + LibLODocument_Impl* pDocument = new LibLODocument_Impl(xComponent); if (pLib->mpCallback) { int nState = doc_getSignatureState(pDocument); @@ -3143,9 +3137,7 @@ static void doc_paintPartTile(LibreOfficeKitDocument* pThis, { // tile painting always needs a SfxViewShell::Current(), but actually // it does not really matter which one - all of them should paint the - // same thing. It's important to get a view for the correct document, - // though. - // doc_getViewsCount() returns the count of views for the document in the current view. + // same thing. int viewCount = doc_getViewsCount(pThis); if (viewCount == 0) return; diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx index 05a1aae85851..68b13a311f36 100644 --- a/include/editeng/outliner.hxx +++ b/include/editeng/outliner.hxx @@ -376,8 +376,6 @@ class SAL_NO_VTABLE SAL_DLLPUBLIC_RTTI OutlinerViewShell public: virtual void libreOfficeKitViewCallback(int nType, const char* pPayload) const = 0; virtual ViewShellId GetViewShellId() const = 0; - virtual void SetDocId(ViewShellDocId nId) = 0; - virtual ViewShellDocId GetDocId() const = 0; /// Wrapper around SfxLokHelper::notifyOtherViews(). virtual void NotifyOtherViews(int nType, const OString& rKey, const OString& rPayload) = 0; /// Wrapper around SfxLokHelper::notifyOtherView(). diff --git a/include/sfx2/lokhelper.hxx b/include/sfx2/lokhelper.hxx index d88ae25adcff..63c88b988b2e 100644 --- a/include/sfx2/lokhelper.hxx +++ b/include/sfx2/lokhelper.hxx @@ -53,12 +53,8 @@ public: static int getView(SfxViewShell* pViewShell = nullptr); /// Get the number of views of the current object shell. static std::size_t getViewsCount(); - /// Get viewIds of views of the current object shell. + /// Get viewIds of all existing views. static bool getViewIds(int* pArray, size_t nSize); - /// Set the document id of the currently active view - static void setDocumentIdOfView(int nId); - /// Get the document id for a view - static int getDocumentIdOfView(int nViewId); /// Get the default language that should be used for views static LanguageTag getDefaultLanguage(); /// Set language of the given view. @@ -74,7 +70,7 @@ public: /// Iterate over any view shell, except pThisViewShell, passing it to the f function. template static void forEachOtherView(ViewShellType* pThisViewShell, FunctionType f); - /// Invoke the LOK callback of all other views showing the same document as pThisView, with a payload of rKey-rPayload. + /// Invoke the LOK callback of all views except pThisView, with a payload of rKey-rPayload. static void notifyOtherViews(SfxViewShell* pThisView, int nType, const OString& rKey, const OString& rPayload); /// Same as notifyOtherViews(), but works on a selected "other" view, not on all of them. static void notifyOtherView(SfxViewShell* pThisView, SfxViewShell const* pOtherView, int nType, const OString& rKey, const OString& rPayload); @@ -87,7 +83,7 @@ public: const std::vector& rPayload = std::vector()); /// Emits a LOK_CALLBACK_DOCUMENT_SIZE_CHANGED - if @bInvalidateAll - first invalidates all parts static void notifyDocumentSizeChanged(SfxViewShell const* pThisView, const OString& rPayload, vcl::ITiledRenderable* pDoc, bool bInvalidateAll = true); - /// Emits a LOK_CALLBACK_DOCUMENT_SIZE_CHANGED for all views of the same document - if @bInvalidateAll - first invalidates all parts + /// Emits a LOK_CALLBACK_DOCUMENT_SIZE_CHANGED for all views - if @bInvalidateAll - first invalidates all parts static void notifyDocumentSizeChangedAllViews(vcl::ITiledRenderable* pDoc, bool bInvalidateAll = true); /// Emits a LOK_CALLBACK_INVALIDATE_TILES, but tweaks it according to setOptionalFeatures() if needed. static void notifyInvalidation(SfxViewShell const* pThisView, const OString& rPayload); @@ -122,7 +118,7 @@ void SfxLokHelper::forEachOtherView(ViewShellType* pThisViewShell, FunctionType while (pViewShell) { auto pOtherViewShell = dynamic_cast(pViewShell); - if (pOtherViewShell != nullptr && pOtherViewShell != pThisViewShell && pOtherViewShell->GetDocId() == pThisViewShell->GetDocId()) + if (pOtherViewShell != nullptr && pOtherViewShell != pThisViewShell) { f(pOtherViewShell); } diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx index a54909ace2b5..6628b7f822aa 100644 --- a/include/sfx2/viewsh.hxx +++ b/include/sfx2/viewsh.hxx @@ -341,8 +341,6 @@ public: virtual void dumpAsXml(struct _xmlTextWriter* pWriter) const; /// See OutlinerViewShell::GetViewShellId(). ViewShellId GetViewShellId() const override; - void SetDocId(ViewShellDocId nId) override; - ViewShellDocId GetDocId() const override; /// See OutlinerViewShell::NotifyOtherViews(). void NotifyOtherViews(int nType, const OString& rKey, const OString& rPayload) override; /// See OutlinerViewShell::NotifyOtherView(). diff --git a/include/svl/undo.hxx b/include/svl/undo.hxx index 1ca989fd4a5d..c2862b886c6f 100644 --- a/include/svl/undo.hxx +++ b/include/svl/undo.hxx @@ -28,8 +28,6 @@ #include typedef o3tl::strong_int ViewShellId; -typedef o3tl::strong_int ViewShellDocId; - class SVL_DLLPUBLIC SfxRepeatTarget { diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx index 3ad4fc6032eb..5060c53ff205 100644 --- a/sc/source/ui/docshell/dbdocfun.cxx +++ b/sc/source/ui/docshell/dbdocfun.cxx @@ -620,8 +620,7 @@ bool ScDBDocFunc::Query( SCTAB nTab, const ScQueryParam& rQueryParam, ScDocument& rDoc = rDocShell.GetDocument(); - ScTabViewShell* pViewSh = rDocShell.GetBestViewShell(); - if (pViewSh && ScTabViewShell::isAnyEditViewInRange(pViewSh, /*bColumns*/ false, rQueryParam.nRow1, rQueryParam.nRow2)) + if (ScTabViewShell::isAnyEditViewInRange(/*bColumns*/ false, rQueryParam.nRow1, rQueryParam.nRow2)) { return false; } @@ -936,6 +935,7 @@ bool ScDBDocFunc::Query( SCTAB nTab, const ScQueryParam& rQueryParam, pOld, bDoSize, pAdvSource ) ); } + ScTabViewShell* pViewSh = rDocShell.GetBestViewShell(); if ( pViewSh ) { // could there be horizontal autofilter ? diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index ffb74bc7411c..38af064a918c 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -139,7 +139,6 @@ static void lcl_PaintAbove( ScDocShell& rDocShell, const ScRange& rRange ) bool ScDocFunc::AdjustRowHeight( const ScRange& rRange, bool bPaint ) { ScDocument& rDoc = rDocShell.GetDocument(); - SfxViewShell* pSomeViewForThisDoc = rDocShell.GetBestViewShell(false); if ( rDoc.IsImportingXML() ) { // for XML import, all row heights are updated together after importing @@ -160,7 +159,7 @@ bool ScDocFunc::AdjustRowHeight( const ScRange& rRange, bool bPaint ) while (pViewShell) { ScTabViewShell* pTabViewShell = dynamic_cast(pViewShell); - if (pTabViewShell && pTabViewShell->GetDocId() == pSomeViewForThisDoc->GetDocId()) + if (pTabViewShell) { pTabViewShell->GetViewData().GetLOKHeightHelper(nTab)->invalidateByIndex(nStartRow); } @@ -182,7 +181,7 @@ bool ScDocFunc::AdjustRowHeight( const ScRange& rRange, bool bPaint ) PaintPartFlags::Grid | PaintPartFlags::Left); if (comphelper::LibreOfficeKit::isActive()) - ScTabViewShell::notifyAllViewsHeaderInvalidation(pSomeViewForThisDoc, ROW_HEADER, nTab); + ScTabViewShell::notifyAllViewsHeaderInvalidation(ROW_HEADER, nTab); return bChanged; } diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx index 6cce2f468b4d..8d9d5ce9cb12 100644 --- a/sc/source/ui/docshell/docsh4.cxx +++ b/sc/source/ui/docshell/docsh4.cxx @@ -2528,13 +2528,10 @@ void ScDocShell::LOKCommentNotify(LOKCommentNotificationType nType, const ScDocu boost::property_tree::write_json(aStream, aTree); std::string aPayload = aStream.str(); - ScViewData* pViewData = GetViewData(); - SfxViewShell* pThisViewShell = ( pViewData ? pViewData->GetViewShell() : nullptr ); SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { - if (pThisViewShell == nullptr || pViewShell->GetDocId() == pThisViewShell->GetDocId()) - pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_COMMENT, aPayload.c_str()); + pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_COMMENT, aPayload.c_str()); pViewShell = SfxViewShell::GetNext(*pViewShell); } } diff --git a/sc/source/ui/docshell/olinefun.cxx b/sc/source/ui/docshell/olinefun.cxx index d92de37eca25..23a8f846af35 100644 --- a/sc/source/ui/docshell/olinefun.cxx +++ b/sc/source/ui/docshell/olinefun.cxx @@ -317,7 +317,6 @@ bool ScOutlineDocFunc::SelectLevel( SCTAB nTab, bool bColumns, sal_uInt16 nLevel bool bRecord, bool bPaint ) { ScDocument& rDoc = rDocShell.GetDocument(); - ScTabViewShell* pViewSh = rDocShell.GetBestViewShell(); if (bRecord && !rDoc.IsUndoEnabled()) bRecord = false; @@ -365,7 +364,7 @@ bool ScOutlineDocFunc::SelectLevel( SCTAB nTab, bool bColumns, sal_uInt16 nLevel sal_uInt16 nThisLevel = aIter.LastLevel(); bool bShow = (nThisLevel < nLevel); - if (!bShow && pViewSh && ScTabViewShell::isAnyEditViewInRange(pViewSh, bColumns, nThisStart, nThisEnd)) + if (!bShow && ScTabViewShell::isAnyEditViewInRange(bColumns, nThisStart, nThisEnd)) continue; if (bShow) // enable @@ -413,6 +412,7 @@ bool ScOutlineDocFunc::SelectLevel( SCTAB nTab, bool bColumns, sal_uInt16 nLevel rDoc.SetDrawPageSize(nTab); rDoc.UpdatePageBreaks( nTab ); + ScTabViewShell* pViewSh = rDocShell.GetBestViewShell(); if ( pViewSh ) pViewSh->OnLOKShowHideColRow(bColumns, nStart - 1); @@ -735,8 +735,8 @@ bool ScOutlineDocFunc::HideOutline( SCTAB nTab, bool bColumns, sal_uInt16 nLevel SCCOLROW nStart = pEntry->GetStart(); SCCOLROW nEnd = pEntry->GetEnd(); - ScTabViewShell* pViewSh = rDocShell.GetBestViewShell(); - if (pViewSh && ScTabViewShell::isAnyEditViewInRange(pViewSh, bColumns, nStart, nEnd)) + + if (ScTabViewShell::isAnyEditViewInRange(bColumns, nStart, nEnd)) return false; // TODO undo can mess things up when another view is editing a cell in the range of group entry @@ -777,6 +777,7 @@ bool ScOutlineDocFunc::HideOutline( SCTAB nTab, bool bColumns, sal_uInt16 nLevel rDoc.InvalidatePageBreaks(nTab); rDoc.UpdatePageBreaks( nTab ); + ScTabViewShell* pViewSh = rDocShell.GetBestViewShell(); if ( pViewSh ) pViewSh->OnLOKShowHideColRow(bColumns, nStart - 1); diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx index bbce30066e3b..8191d629b381 100644 --- a/sc/source/ui/inc/tabvwsh.hxx +++ b/sc/source/ui/inc/tabvwsh.hxx @@ -390,8 +390,9 @@ public: /// See SfxViewShell::NotifyCursor(). void NotifyCursor(SfxViewShell* pViewShell) const override; /// Emits a LOK_CALLBACK_INVALIDATE_HEADER for all views whose current tab is equal to nCurrentTabIndex - static void notifyAllViewsHeaderInvalidation(SfxViewShell* pForViewShell, HeaderType eHeaderType, SCTAB nCurrentTabIndex); - static bool isAnyEditViewInRange(SfxViewShell* pForViewShell, bool bColumns, SCCOLROW nStart, SCCOLROW nEnd); + static void notifyAllViewsHeaderInvalidation(HeaderType eHeaderType, SCTAB nCurrentTabIndex); + static void notifyAllViewsHeaderInvalidation(bool Columns, SCTAB nCurrentTabIndex); + static bool isAnyEditViewInRange(bool bColumns, SCCOLROW nStart, SCCOLROW nEnd); css::uno::Reference getSelectedXShapes(); static css::uno::Reference GetClipData(vcl::Window* pWin); diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx index 956d99d91cab..6e0f254d34bb 100644 --- a/sc/source/ui/undo/undoblk.cxx +++ b/sc/source/ui/undo/undoblk.cxx @@ -278,10 +278,10 @@ void ScUndoInsertCells::DoChange( const bool bUndo ) if (comphelper::LibreOfficeKit::isActive()) { if (eCmd == INS_INSCOLS_BEFORE || eCmd == INS_INSCOLS_AFTER || eCmd == INS_CELLSRIGHT) - ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, COLUMN_HEADER, pViewShell->GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(COLUMN_HEADER, pViewShell->GetViewData().GetTabNo()); if (eCmd == INS_INSROWS_BEFORE || eCmd == INS_INSROWS_AFTER || eCmd == INS_CELLSDOWN) - ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, ROW_HEADER, pViewShell->GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(ROW_HEADER, pViewShell->GetViewData().GetTabNo()); } } } @@ -538,10 +538,10 @@ void ScUndoDeleteCells::DoChange( const bool bUndo ) if (comphelper::LibreOfficeKit::isActive()) { if (eCmd == DelCellCmd::Cols || eCmd == DelCellCmd::CellsLeft) - ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, COLUMN_HEADER, pViewShell->GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(COLUMN_HEADER, pViewShell->GetViewData().GetTabNo()); if (eCmd == DelCellCmd::Rows || eCmd == DelCellCmd::CellsUp) - ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, ROW_HEADER, pViewShell->GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(ROW_HEADER, pViewShell->GetViewData().GetTabNo()); } } diff --git a/sc/source/ui/undo/undodat.cxx b/sc/source/ui/undo/undodat.cxx index 20d6eac3b6ea..45047082faca 100644 --- a/sc/source/ui/undo/undodat.cxx +++ b/sc/source/ui/undo/undodat.cxx @@ -184,7 +184,7 @@ void ScUndoMakeOutline::Undo() pDocShell->PostPaint(0,0,nTab,MAXCOL,MAXROW,nTab,PaintPartFlags::Grid|PaintPartFlags::Left|PaintPartFlags::Top|PaintPartFlags::Size); - ScTabViewShell::notifyAllViewsHeaderInvalidation( pViewShell, bColumns ? COLUMN_HEADER : ROW_HEADER, nTab ); + ScTabViewShell::notifyAllViewsHeaderInvalidation( bColumns, nTab ); EndUndo(); } @@ -453,7 +453,7 @@ void ScUndoRemoveAllOutlines::Undo() pDocShell->PostPaint(0,0,nTab,MAXCOL,MAXROW,nTab,PaintPartFlags::Grid|PaintPartFlags::Left|PaintPartFlags::Top|PaintPartFlags::Size); - ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, BOTH_HEADERS, nTab); + ScTabViewShell::notifyAllViewsHeaderInvalidation(BOTH_HEADERS, nTab); EndUndo(); } @@ -737,13 +737,13 @@ OUString ScUndoQuery::GetComment() const void ScUndoQuery::Undo() { - ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell(); - if (ScTabViewShell::isAnyEditViewInRange(pViewShell, /*bColumns*/ false, aQueryParam.nRow1, aQueryParam.nRow2)) + if (ScTabViewShell::isAnyEditViewInRange(/*bColumns*/ false, aQueryParam.nRow1, aQueryParam.nRow2)) return; BeginUndo(); ScDocument& rDoc = pDocShell->GetDocument(); + ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell(); bool bCopy = !aQueryParam.bInplace; SCCOL nDestEndCol = 0; @@ -818,7 +818,7 @@ void ScUndoQuery::Undo() // invalidate cache positions and update cursor and selection pViewShell->OnLOKShowHideColRow(/*bColumns*/ false, aQueryParam.nRow1 - 1); - ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, ROW_HEADER, nTab); + ScTabViewShell::notifyAllViewsHeaderInvalidation(ROW_HEADER, nTab); // Paint diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx index fc849c2ba8c0..d1f57b46dead 100644 --- a/sc/source/ui/view/dbfunc3.cxx +++ b/sc/source/ui/view/dbfunc3.cxx @@ -105,7 +105,7 @@ void ScDBFunc::MakeOutline( bool bColumns, bool bRecord ) ScOutlineDocFunc aFunc(*pDocSh); aFunc.MakeOutline( aRange, bColumns, bRecord, false ); - ScTabViewShell::notifyAllViewsHeaderInvalidation(GetViewData().GetViewShell(), bColumns ? COLUMN_HEADER : ROW_HEADER, GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(bColumns, GetViewData().GetTabNo()); } else ErrorMessage(STR_NOMULTISELECT); @@ -122,7 +122,7 @@ void ScDBFunc::RemoveOutline( bool bColumns, bool bRecord ) ScOutlineDocFunc aFunc(*pDocSh); aFunc.RemoveOutline( aRange, bColumns, bRecord, false ); - ScTabViewShell::notifyAllViewsHeaderInvalidation(GetViewData().GetViewShell(), bColumns ? COLUMN_HEADER : ROW_HEADER, GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(bColumns, GetViewData().GetTabNo()); } else ErrorMessage(STR_NOMULTISELECT); @@ -2253,12 +2253,11 @@ void ScDBFunc::OnLOKShowHideColRow(bool bColumns, SCCOLROW nStart) return; SCTAB nCurrentTabIndex = GetViewData().GetTabNo(); - SfxViewShell* pThisViewShell = GetViewData().GetViewShell(); SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { ScTabViewShell* pTabViewShell = dynamic_cast(pViewShell); - if (pTabViewShell && pTabViewShell->GetDocId() == pThisViewShell->GetDocId()) + if (pTabViewShell) { if (bColumns) pTabViewShell->GetViewData().GetLOKWidthHelper(nCurrentTabIndex)->invalidateByIndex(nStart); diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index c0e437b8f98d..6e8cfc680e47 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -825,7 +825,7 @@ void ScGridWindow::UpdateAutoFilterFromMenu(AutoFilterMode eMode) // Something went terribly wrong! return; - if (ScTabViewShell::isAnyEditViewInRange(pViewData->GetViewShell(), /*bColumns*/ false, aParam.nRow1, aParam.nRow2)) + if (ScTabViewShell::isAnyEditViewInRange(/*bColumns*/ false, aParam.nRow1, aParam.nRow2)) return; pEntry->bDoQuery = true; @@ -5733,9 +5733,6 @@ void ScGridWindow::notifyKitCellViewCursor(const SfxViewShell* pForShell) const { ScTabViewShell* pViewShell = pViewData->GetViewShell(); - if (pViewShell->GetDocId() != pForShell->GetDocId()) - return; - OString aCursor("EMPTY"); if (mpOOCursors) // cf. getCellCursor above { diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx index 80739983cf80..065f56bf1591 100644 --- a/sc/source/ui/view/gridwin4.cxx +++ b/sc/source/ui/view/gridwin4.cxx @@ -336,7 +336,7 @@ void ScGridWindow::InvalidateLOKViewCursor(const tools::Rectangle& rCursorRect, while (pViewShell) { - if (pViewShell != pThisViewShell && pViewShell->GetDocId() == pThisViewShell->GetDocId()) + if (pViewShell != pThisViewShell) { ScTabViewShell* pOtherViewShell = dynamic_cast(pViewShell); if (pOtherViewShell) @@ -955,7 +955,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI while (pViewShell) { - if (pViewShell != pThisViewShell && pViewShell->GetDocId() == pThisViewShell->GetDocId()) + if (pViewShell != pThisViewShell) { ScTabViewShell* pTabViewShell = dynamic_cast(pViewShell); if (pTabViewShell) diff --git a/sc/source/ui/view/tabview4.cxx b/sc/source/ui/view/tabview4.cxx index a8051c7e8128..2efc0ef197ca 100644 --- a/sc/source/ui/view/tabview4.cxx +++ b/sc/source/ui/view/tabview4.cxx @@ -392,7 +392,7 @@ static long lcl_GetScrollRange( SCCOLROW nDocEnd, SCCOLROW nPos, SCCOLROW nVis, void ScTabView::UpdateScrollBars( HeaderType eHeaderType ) { - ScTabViewShell::notifyAllViewsHeaderInvalidation(GetViewData().GetViewShell(), eHeaderType, GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(eHeaderType, GetViewData().GetTabNo()); long nDiff; bool bTop = ( aViewData.GetVSplitMode() != SC_SPLIT_NONE ); diff --git a/sc/source/ui/view/tabview5.cxx b/sc/source/ui/view/tabview5.cxx index abf8a1e8ccb4..b8736dd6d6e5 100644 --- a/sc/source/ui/view/tabview5.cxx +++ b/sc/source/ui/view/tabview5.cxx @@ -677,12 +677,11 @@ void ScTabView::OnLOKNoteStateChanged(const ScPostIt* pNote) aInvalidRect.AdjustTop( -nBorderSize ); aInvalidRect.AdjustBottom( nBorderSize ); - SfxViewShell* pCurrentViewShell = SfxViewShell::Current(); SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { ScTabViewShell* pTabViewShell = dynamic_cast(pViewShell); - if (pTabViewShell && pViewShell->GetDocId() == pCurrentViewShell->GetDocId()) + if (pTabViewShell) { for (auto& pWin: pTabViewShell->pGridWin) { diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx index afbe40780c3f..ec912c115848 100644 --- a/sc/source/ui/view/tabvwsh4.cxx +++ b/sc/source/ui/view/tabvwsh4.cxx @@ -1,4 +1,4 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * @@ -141,11 +141,6 @@ void ScTabViewShell::Activate(bool bMDI) SfxViewShell* pSh = SfxViewShell::GetFirst( true, checkSfxViewShell ); while ( pSh!=nullptr && pOldHdl!=nullptr) { - // Hmm, what if pSh is a shell for a different document? But as this code - // does not seem to be LibreOfficeKit-specific, probably that doesn't - // happen, because having multiple documents open simultaneously has of - // course not been a problem at all in traditional desktop LibreOffice. - // (Unlike in a LibreOfficeKit-based process where it has been a problem.) if (static_cast(pSh)->GetInputHandler() == pOldHdl) { pOldHdl->ResetDelayTimer(); @@ -1721,12 +1716,8 @@ ScTabViewShell::ScTabViewShell( SfxViewFrame* pViewFrame, // have we already one view ? if (pViewShell) { - // this view is not yet visible at this stage, so we look for not visible views, too, for this same document - SfxViewShell* pViewShell2 = pViewShell; - do - { - pViewShell2 = SfxViewShell::GetNext(*pViewShell2, /*only visible shells*/ false); - } while (pViewShell2 && pViewShell2->GetDocId() != pViewShell->GetDocId()); + // this view is not yet visible at this stage, so we look for not visible views, too + SfxViewShell* pViewShell2 = SfxViewShell::GetNext(*pViewShell, /*only visible shells*/ false); // if the second view is not this one, it means that there is // already more than one active view and so the formula mode // has already been disabled diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx index aba771e1035a..1f0cd9bf737b 100644 --- a/sc/source/ui/view/tabvwshc.cxx +++ b/sc/source/ui/view/tabvwshc.cxx @@ -572,7 +572,7 @@ css::uno::Reference ScTabViewShell::GetClipDa return xTransferable; } -void ScTabViewShell::notifyAllViewsHeaderInvalidation(SfxViewShell* pForViewShell, HeaderType eHeaderType, SCTAB nCurrentTabIndex) +void ScTabViewShell::notifyAllViewsHeaderInvalidation(HeaderType eHeaderType, SCTAB nCurrentTabIndex) { if (comphelper::LibreOfficeKit::isActive()) { @@ -595,7 +595,7 @@ void ScTabViewShell::notifyAllViewsHeaderInvalidation(SfxViewShell* pForViewShel while (pViewShell) { ScTabViewShell* pTabViewShell = dynamic_cast(pViewShell); - if (pTabViewShell && pViewShell->GetDocId() == pForViewShell->GetDocId() && (nCurrentTabIndex == -1 || pTabViewShell->getPart() == nCurrentTabIndex)) + if (pTabViewShell && (nCurrentTabIndex == -1 || pTabViewShell->getPart() == nCurrentTabIndex)) { pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_INVALIDATE_HEADER, aPayload.getStr()); } @@ -604,7 +604,13 @@ void ScTabViewShell::notifyAllViewsHeaderInvalidation(SfxViewShell* pForViewShel } } -bool ScTabViewShell::isAnyEditViewInRange(SfxViewShell* pForViewShell, bool bColumns, SCCOLROW nStart, SCCOLROW nEnd) +void ScTabViewShell::notifyAllViewsHeaderInvalidation(bool bColumns, SCTAB nCurrentTabIndex) +{ + HeaderType eHeaderType = bColumns ? COLUMN_HEADER : ROW_HEADER; + ScTabViewShell::notifyAllViewsHeaderInvalidation(eHeaderType, nCurrentTabIndex); +} + +bool ScTabViewShell::isAnyEditViewInRange(bool bColumns, SCCOLROW nStart, SCCOLROW nEnd) { if (comphelper::LibreOfficeKit::isActive()) { @@ -612,7 +618,7 @@ bool ScTabViewShell::isAnyEditViewInRange(SfxViewShell* pForViewShell, bool bCol while (pViewShell) { ScTabViewShell* pTabViewShell = dynamic_cast(pViewShell); - if (pTabViewShell && pTabViewShell->GetDocId() == pForViewShell->GetDocId()) + if (pTabViewShell) { ScInputHandler* pInputHandler = pTabViewShell->GetInputHandler(); if (pInputHandler && pInputHandler->GetActiveView()) diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx index aa4f05844693..1b948b916746 100644 --- a/sc/source/ui/view/viewfun2.cxx +++ b/sc/source/ui/view/viewfun2.cxx @@ -170,7 +170,7 @@ bool ScViewFunc::AdjustBlockHeight( bool bPaint, ScMarkData* pMarkData ) pDocSh->UpdateOle(&GetViewData()); if (comphelper::LibreOfficeKit::isActive()) - ScTabViewShell::notifyAllViewsHeaderInvalidation(GetViewData().GetViewShell(), ROW_HEADER, GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(ROW_HEADER, GetViewData().GetTabNo()); return bAnyChanged; } @@ -219,7 +219,7 @@ bool ScViewFunc::AdjustRowHeight( SCROW nStartRow, SCROW nEndRow ) PaintPartFlags::Grid | PaintPartFlags::Left ); if (comphelper::LibreOfficeKit::isActive()) - ScTabViewShell::notifyAllViewsHeaderInvalidation(GetViewData().GetViewShell(), ROW_HEADER, GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(ROW_HEADER, GetViewData().GetTabNo()); return bChanged; } diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx index bed9550e77b1..a0e1185a6d3f 100644 --- a/sc/source/ui/view/viewfunc.cxx +++ b/sc/source/ui/view/viewfunc.cxx @@ -1481,12 +1481,11 @@ void ScViewFunc::OnLOKInsertDeleteColumn(SCCOL nStartCol, long nOffset) return; SCTAB nCurrentTabIndex = GetViewData().GetTabNo(); - SfxViewShell* pCurrentViewShell = GetViewData().GetViewShell(); SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { ScTabViewShell* pTabViewShell = dynamic_cast(pViewShell); - if (pTabViewShell && pTabViewShell->GetDocId() == pCurrentViewShell->GetDocId()) + if (pTabViewShell) { pTabViewShell->GetViewData().GetLOKWidthHelper(nCurrentTabIndex)->invalidateByIndex(nStartCol); @@ -1537,12 +1536,11 @@ void ScViewFunc::OnLOKInsertDeleteRow(SCROW nStartRow, long nOffset) return; SCTAB nCurrentTabIndex = GetViewData().GetTabNo(); - SfxViewShell* pCurrentViewShell = GetViewData().GetViewShell(); SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { ScTabViewShell* pTabViewShell = dynamic_cast(pViewShell); - if (pTabViewShell && pTabViewShell->GetDocId() == pCurrentViewShell->GetDocId()) + if (pTabViewShell) { pTabViewShell->GetViewData().GetLOKHeightHelper(nCurrentTabIndex)->invalidateByIndex(nStartRow); @@ -1593,12 +1591,11 @@ void ScViewFunc::OnLOKSetWidthOrHeight(SCCOLROW nStart, bool bWidth) return; SCTAB nCurTab = GetViewData().GetTabNo(); - SfxViewShell* pCurrentViewShell = GetViewData().GetViewShell(); SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { ScTabViewShell* pTabViewShell = dynamic_cast(pViewShell); - if (pTabViewShell && pTabViewShell->GetDocId() == pCurrentViewShell->GetDocId()) + if (pTabViewShell) { if (bWidth) pTabViewShell->GetViewData().GetLOKWidthHelper(nCurTab)->invalidateByIndex(nStart); @@ -1639,10 +1636,10 @@ bool ScViewFunc::InsertCells( InsCellCmd eCmd, bool bRecord, bool bPartOfPaste ) if (comphelper::LibreOfficeKit::isActive()) { if (bInsertCols) - ScTabViewShell::notifyAllViewsHeaderInvalidation(GetViewData().GetViewShell(), COLUMN_HEADER, GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(COLUMN_HEADER, GetViewData().GetTabNo()); if (bInsertRows) - ScTabViewShell::notifyAllViewsHeaderInvalidation(GetViewData().GetViewShell(), ROW_HEADER, GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(ROW_HEADER, GetViewData().GetTabNo()); } } return bSuccess; @@ -1714,10 +1711,10 @@ void ScViewFunc::DeleteCells( DelCellCmd eCmd ) if (comphelper::LibreOfficeKit::isActive()) { if (eCmd == DelCellCmd::Cols) - ScTabViewShell::notifyAllViewsHeaderInvalidation(GetViewData().GetViewShell(), COLUMN_HEADER, GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(COLUMN_HEADER, GetViewData().GetTabNo()); if (eCmd == DelCellCmd::Rows) - ScTabViewShell::notifyAllViewsHeaderInvalidation(GetViewData().GetViewShell(), ROW_HEADER, GetViewData().GetTabNo()); + ScTabViewShell::notifyAllViewsHeaderInvalidation(ROW_HEADER, GetViewData().GetTabNo()); } } else diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx index d59cd6616f46..9182f6984056 100644 --- a/sd/source/ui/sidebar/SlideBackground.cxx +++ b/sd/source/ui/sidebar/SlideBackground.cxx @@ -1044,14 +1044,10 @@ IMPL_LINK_NOARG(SlideBackground, PaperSizeModifyHdl, ListBox&, void) if (comphelper::LibreOfficeKit::isActive()) { SfxViewShell* pViewShell = SfxViewShell::GetFirst(); - while (pViewShell) + if (pViewShell) { - if (pViewShell->GetDocId() == mrBase.GetDocId()) - { - SdXImpressDocument* pModel = SdXImpressDocument::getImplementation(pViewShell->GetCurrentDocument()); - SfxLokHelper::notifyDocumentSizeChangedAllViews(pModel); - } - pViewShell = SfxViewShell::GetNext(*pViewShell); + SdXImpressDocument* pModel = SdXImpressDocument::getImplementation(pViewShell->GetCurrentDocument()); + SfxLokHelper::notifyDocumentSizeChangedAllViews(pModel); } } } diff --git a/sfx2/source/view/lokcharthelper.cxx b/sfx2/source/view/lokcharthelper.cxx index 23d84851f5a5..903e4727eb62 100644 --- a/sfx2/source/view/lokcharthelper.cxx +++ b/sfx2/source/view/lokcharthelper.cxx @@ -180,7 +180,7 @@ bool LokChartHelper::HitAny(const Point& aPos) SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { - if (pViewShell->GetDocId() == pCurView->GetDocId() && pViewShell->getPart() == nPartForCurView) + if (pViewShell->getPart() == nPartForCurView) { LokChartHelper aChartHelper(pViewShell); if (aChartHelper.Hit(aPos)) @@ -262,7 +262,7 @@ void LokChartHelper::PaintAllChartsOnTile(VirtualDevice& rDevice, SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { - if (pCurView && pViewShell->GetDocId() == pCurView->GetDocId() && pViewShell->getPart() == nPartForCurView) + if (pViewShell->getPart() == nPartForCurView) { LokChartHelper aChartHelper(pViewShell); aChartHelper.PaintTile(rDevice, aTileRect); diff --git a/sfx2/source/view/lokhelper.cxx b/sfx2/source/view/lokhelper.cxx index 2f78bfc1eaa5..4fb7761cec95 100644 --- a/sfx2/source/view/lokhelper.cxx +++ b/sfx2/source/view/lokhelper.cxx @@ -69,17 +69,11 @@ int SfxLokHelper::createView() SfxViewFrame* pViewFrame = SfxViewFrame::GetFirst(); if (!pViewFrame) return -1; - SfxViewShell* pPrevViewShell = SfxViewShell::Current(); - ViewShellDocId nId; - if (pPrevViewShell) - nId = pPrevViewShell->GetDocId(); SfxRequest aRequest(pViewFrame, SID_NEWWINDOW); pViewFrame->ExecView_Impl(aRequest); SfxViewShell* pViewShell = SfxViewShell::Current(); if (!pViewShell) return -1; - if (pPrevViewShell) - pViewShell->SetDocId(nId); return static_cast(pViewShell->GetViewShellId()); } @@ -153,20 +147,7 @@ int SfxLokHelper::getView(SfxViewShell* pViewShell) std::size_t SfxLokHelper::getViewsCount() { SfxApplication* pApp = SfxApplication::Get(); - if (!pApp) - return 0; - - const SfxViewShell* const pCurrentViewShell = SfxViewShell::Current(); - const ViewShellDocId nCurrentDocId = pCurrentViewShell ? pCurrentViewShell->GetDocId() : ViewShellDocId(-1); - std::size_t n = 0; - SfxViewShell* pViewShell = SfxViewShell::GetFirst(); - while (pViewShell) - { - if (pViewShell->GetDocId() == nCurrentDocId) - n++; - pViewShell = SfxViewShell::GetNext(*pViewShell); - } - return n; + return !pApp ? 0 : pApp->GetViewShells_Impl().size(); } bool SfxLokHelper::getViewIds(int* pArray, size_t nSize) @@ -175,43 +156,16 @@ bool SfxLokHelper::getViewIds(int* pArray, size_t nSize) if (!pApp) return false; - const SfxViewShell* const pCurrentViewShell = SfxViewShell::Current(); - const ViewShellDocId nCurrentDocId = pCurrentViewShell ? pCurrentViewShell->GetDocId() : ViewShellDocId(-1); - std::size_t n = 0; - SfxViewShell* pViewShell = SfxViewShell::GetFirst(); - while (pViewShell) - { - if (n == nSize) - return false; - if (pViewShell->GetDocId() == nCurrentDocId) - { - pArray[n] = static_cast(pViewShell->GetViewShellId()); - n++; - } - pViewShell = SfxViewShell::GetNext(*pViewShell); - } - return true; -} - -void SfxLokHelper::setDocumentIdOfView(int nId) -{ - SfxViewShell* pViewShell = SfxViewShell::Current(); - assert(pViewShell); - if (!pViewShell) - return; - pViewShell->SetDocId(ViewShellDocId(nId)); -} + SfxViewShellArr_Impl& rViewArr = pApp->GetViewShells_Impl(); + if (rViewArr.size() > nSize) + return false; -int SfxLokHelper::getDocumentIdOfView(int nViewId) -{ - SfxViewShell* pViewShell = SfxViewShell::GetFirst(); - while (pViewShell) + for (std::size_t i = 0; i < rViewArr.size(); ++i) { - if (pViewShell->GetViewShellId() == ViewShellId(nViewId)) - return static_cast(pViewShell->GetDocId()); - pViewShell = SfxViewShell::GetNext(*pViewShell); + SfxViewShell* pViewShell = rViewArr[i]; + pArray[i] = static_cast(pViewShell->GetViewShellId()); } - return -1; + return true; } LanguageTag SfxLokHelper::getDefaultLanguage() @@ -298,13 +252,13 @@ void SfxLokHelper::notifyOtherView(SfxViewShell* pThisView, SfxViewShell const* void SfxLokHelper::notifyOtherViews(SfxViewShell* pThisView, int nType, const OString& rKey, const OString& rPayload) { - if (DisableCallbacks::disabled()) + if (SfxLokHelper::getViewsCount() <= 1 || DisableCallbacks::disabled()) return; SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { - if (pViewShell != pThisView && pViewShell->GetDocId() == pThisView-> GetDocId()) + if (pViewShell != pThisView) notifyOtherView(pThisView, pViewShell, nType, rKey, rPayload); pViewShell = SfxViewShell::GetNext(*pViewShell); @@ -417,13 +371,10 @@ void SfxLokHelper::notifyDocumentSizeChangedAllViews(vcl::ITiledRenderable* pDoc if (!comphelper::LibreOfficeKit::isActive() || DisableCallbacks::disabled()) return; - // FIXME: Do we know whether it is the views for the document that is in the "current" view that has changed? - const SfxViewShell* const pCurrentViewShell = SfxViewShell::Current(); SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { - if (pViewShell->GetDocId() == pCurrentViewShell-> GetDocId()) - SfxLokHelper::notifyDocumentSizeChanged(pViewShell, "", pDoc, bInvalidateAll); + SfxLokHelper::notifyDocumentSizeChanged(pViewShell, "", pDoc, bInvalidateAll); pViewShell = SfxViewShell::GetNext(*pViewShell); } } @@ -455,12 +406,10 @@ void SfxLokHelper::notifyAllViews(int nType, const OString& rPayload) return; const auto payload = rPayload.getStr(); - const SfxViewShell* const pCurrentViewShell = SfxViewShell::Current(); SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { - if (pViewShell->GetDocId() == pCurrentViewShell->GetDocId()) - pViewShell->libreOfficeKitViewCallback(nType, payload); + pViewShell->libreOfficeKitViewCallback(nType, payload); pViewShell = SfxViewShell::GetNext(*pViewShell); } } diff --git a/sfx2/source/view/viewimp.hxx b/sfx2/source/view/viewimp.hxx index ef919a2fd89f..00b7b51590fe 100644 --- a/sfx2/source/view/viewimp.hxx +++ b/sfx2/source/view/viewimp.hxx @@ -59,7 +59,6 @@ struct SfxViewShell_Impl bool m_bTiledSearching; static sal_uInt32 m_nLastViewShellId; const ViewShellId m_nViewShellId; - ViewShellDocId m_nDocId; explicit SfxViewShell_Impl(SfxViewShellFlags const nFlags); ~SfxViewShell_Impl(); diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index ad46e704478f..dcbdc9ceef3a 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -228,9 +228,7 @@ SfxViewShell_Impl::SfxViewShell_Impl(SfxViewShellFlags const nFlags) , m_pLibreOfficeKitViewData(nullptr) , m_bTiledSearching(false) , m_nViewShellId(SfxViewShell_Impl::m_nLastViewShellId++) -, m_nDocId(-1) -{ -} +{} SfxViewShell_Impl::~SfxViewShell_Impl() { @@ -1098,6 +1096,7 @@ SfxViewShell::SfxViewShell SfxViewShell::~SfxViewShell() { + // Remove from list const SfxViewShell *pThis = this; SfxViewShellArr_Impl &rViewArr = SfxGetpApp()->GetViewShells_Impl(); @@ -1479,8 +1478,7 @@ void SfxViewShell::registerLibreOfficeKitViewCallback(LibreOfficeKitCallback pCa SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { - if (pViewShell->GetDocId() == GetDocId()) - pViewShell->NotifyCursor(this); + pViewShell->NotifyCursor(this); pViewShell = SfxViewShell::GetNext(*pViewShell); } } @@ -1575,17 +1573,6 @@ ViewShellId SfxViewShell::GetViewShellId() const return pImpl->m_nViewShellId; } -void SfxViewShell::SetDocId(ViewShellDocId nId) -{ - assert(static_cast(pImpl->m_nDocId) == -1); - pImpl->m_nDocId = nId; -} - -ViewShellDocId SfxViewShell::GetDocId() const -{ - return pImpl->m_nDocId; -} - void SfxViewShell::NotifyOtherViews(int nType, const OString& rKey, const OString& rPayload) { SfxLokHelper::notifyOtherViews(this, nType, rKey, rPayload); diff --git a/starmath/source/smmod.cxx b/starmath/source/smmod.cxx index 93f27da82eef..32cd5550d9e5 100644 --- a/starmath/source/smmod.cxx +++ b/starmath/source/smmod.cxx @@ -139,9 +139,6 @@ void SmModule::ApplyColorConfigValues( const svtools::ColorConfig &rColorCfg ) SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { - // FIXME: What if pViewShell is for a different document, - // but OTOH Math is presumably never used through - // LibreOfficeKit, so maybe an irrelevant concern? if (dynamic_cast(pViewShell) != nullptr) { SmViewShell *pSmView = static_cast(pViewShell); diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx index 1f642b5c9b3e..a3fabfaf514d 100644 --- a/sw/source/core/doc/docredln.cxx +++ b/sw/source/core/doc/docredln.cxx @@ -426,8 +426,7 @@ void SwRedlineTable::LOKRedlineNotification(RedlineNotification nType, SwRangeRe SfxViewShell* pViewShell = SfxViewShell::GetFirst(); while (pViewShell) { - if (pView && pView->GetDocId() == pViewShell->GetDocId()) - pViewShell->libreOfficeKitViewCallback(nType == RedlineNotification::Modify ? LOK_CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED : LOK_CALLBACK_REDLINE_TABLE_SIZE_CHANGED, aPayload.c_str()); + pViewShell->libreOfficeKitViewCallback(nType == RedlineNotification::Modify ? LOK_CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED : LOK_CALLBACK_REDLINE_TABLE_SIZE_CHANGED, aPayload.c_str()); pViewShell = SfxViewShell::GetNext(*pViewShell); } } -- cgit