sc/sdi/scalc.sdi | 4 -- sc/source/core/data/document.cxx | 9 +++++ sc/source/ui/view/tabvwshf.cxx | 65 ++++++++++++++++++++++++++------------- sc/source/ui/view/viewdata.cxx | 1 4 files changed, 55 insertions(+), 24 deletions(-)
New commits: commit cccbc20a9a44350dc48b9280d47b58e4e2a4dc31 Author: Jan Holesovsky <[email protected]> Date: Thu Jan 21 00:02:16 2016 +0100 sc lok: Fix .uno:Remove (removing sheets) to accept a parameter. .sdi annouces that, but it was never implemented... Change-Id: I7abfbdc88f055eeb993617a5a51371af0f825d34 diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 79eab8f..dd56015 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -727,6 +727,9 @@ bool ScDocument::DeleteTab( SCTAB nTab ) // sheet names of references are not valid until sheet is deleted pChartListenerCollection->UpdateScheduledSeriesRanges(); + if (comphelper::LibreOfficeKit::isActive() && GetDrawLayer()) + GetDrawLayer()->libreOfficeKitCallback(LOK_CALLBACK_DOCUMENT_SIZE_CHANGED, ""); + bValid = true; } } @@ -814,6 +817,9 @@ bool ScDocument::DeleteTabs( SCTAB nTab, SCTAB nSheets ) // sheet names of references are not valid until sheet is deleted pChartListenerCollection->UpdateScheduledSeriesRanges(); + if (comphelper::LibreOfficeKit::isActive() && GetDrawLayer()) + GetDrawLayer()->libreOfficeKitCallback(LOK_CALLBACK_DOCUMENT_SIZE_CHANGED, ""); + bValid = true; } } diff --git a/sc/source/ui/view/tabvwshf.cxx b/sc/source/ui/view/tabvwshf.cxx index 82a33dc..53fd7c8 100644 --- a/sc/source/ui/view/tabvwshf.cxx +++ b/sc/source/ui/view/tabvwshf.cxx @@ -568,37 +568,60 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq ) case FID_DELETE_TABLE: { - // unnecessary parameter -> method depends on table + bool bHasIndex = (pReqArgs != nullptr); - bool bDoIt = rReq.IsAPI(); - if( !bDoIt ) + // allow removing via the Index/FID_DELETE_TABLE parameter + SCTAB nIndexTab = nCurrentTab; + if (bHasIndex) { - // source isn't basic -> ask again + const SfxPoolItem* pItem; + if (pReqArgs->HasItem(FID_DELETE_TABLE, &pItem)) + nIndexTab = static_cast<const SfxUInt16Item*>(pItem)->GetValue(); + } - bDoIt = ( RET_YES == - ScopedVclPtr<QueryBox>::Create( GetDialogParent(), - WinBits( WB_YES_NO | WB_DEF_YES ), - ScGlobal::GetRscString(STR_QUERY_DELTAB) - )->Execute() ); + bool bDoIt = bHasIndex; + if (!bDoIt) + { + // no parameter given, ask for confirmation + bDoIt = ( RET_YES == + ScopedVclPtr<QueryBox>::Create( GetDialogParent(), + WinBits( WB_YES_NO | WB_DEF_YES ), + ScGlobal::GetRscString(STR_QUERY_DELTAB) + )->Execute() ); } - if( bDoIt ) + + if (bDoIt) { - SCTAB nNewTab = nCurrentTab; - SCTAB nFirstTab=0; - bool bTabFlag=false; - ScMarkData& rMark = rViewData.GetMarkData(); + SCTAB nNewTab = nCurrentTab; std::vector<SCTAB> TheTabs; - for(SCTAB i=0;i<nTabCount;i++) + + if (bHasIndex) { - if(rMark.GetTableSelect(i) &&!pDoc->IsTabProtected(i)) + // sheet no. provided by the parameter + TheTabs.push_back(nIndexTab); + if (nNewTab > nIndexTab && nNewTab > 0) + --nNewTab; + } + else + { + SCTAB nFirstTab = 0; + bool bTabFlag = false; + ScMarkData& rMark = rViewData.GetMarkData(); + for (SCTAB i = 0; i < nTabCount; i++) { - TheTabs.push_back(i); - bTabFlag=true; - if(nNewTab==i) nNewTab++; + if (rMark.GetTableSelect(i) && !pDoc->IsTabProtected(i)) + { + TheTabs.push_back(i); + bTabFlag = true; + if (nNewTab == i) + nNewTab++; + } + if (!bTabFlag) + nFirstTab = i; } - if(!bTabFlag) nFirstTab=i; + if (nNewTab >= nTabCount) + nNewTab = nFirstTab; } - if(nNewTab>=nTabCount) nNewTab=nFirstTab; rViewData.SetTabNo(nNewTab); DeleteTables(TheTabs); commit 59a93573d677c85402b78bf748c7267554cf3ca2 Author: Jan Holesovsky <[email protected]> Date: Wed Jan 20 22:12:33 2016 +0100 sc lok: Fix .uno:Name (renaming sheets) to really accept parameters. The code handles them, but they were unusable, because .sdi did not announce them. Change-Id: I35bd3009d092eb48a36aee2ffed3964dc61946e2 diff --git a/sc/sdi/scalc.sdi b/sc/sdi/scalc.sdi index 7bc2db6..fa51a39 100644 --- a/sc/sdi/scalc.sdi +++ b/sc/sdi/scalc.sdi @@ -4813,7 +4813,7 @@ SfxVoidItem Move FID_TAB_MOVE SfxStringItem Name FID_TAB_RENAME - +(SfxStringItem Name FID_TAB_RENAME,SfxUInt16Item Index FN_PARAM_1) [ /* flags: */ AutoUpdate = FALSE, @@ -4828,8 +4828,6 @@ SfxStringItem Name FID_TAB_RENAME RecordPerSet; Synchron; - Readonly = FALSE, - /* config: */ AccelConfig = TRUE, MenuConfig = TRUE, diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index df19fae..79eab8f 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -855,6 +855,9 @@ bool ScDocument::RenameTab( SCTAB nTab, const OUString& rName, bool /* bUpdateRe for (; it != maTabs.end(); ++it) if ( *it && (*it)->IsStreamValid()) (*it)->SetStreamValid( false ); + + if (comphelper::LibreOfficeKit::isActive() && GetDrawLayer()) + GetDrawLayer()->libreOfficeKitCallback(LOK_CALLBACK_DOCUMENT_SIZE_CHANGED, ""); } } } commit 03d10e1ab2a7a97c00edbc07c1fe7c0fc937154b Author: Jan Holesovsky <[email protected]> Date: Wed Jan 20 22:12:19 2016 +0100 sc: Fix build. Change-Id: I496015f119b1e102528ac5ec5d27e896de25e56c diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index 290bb46..0dddea6 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -59,6 +59,7 @@ #include <gridwin.hxx> #include <rtl/ustrbuf.hxx> #include <boost/checked_delete.hpp> +#include <comphelper/lok.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/string.hxx> _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
