diff options
author | Mert Tumer <mert.tumer@collabora.com> | 2020-04-29 16:29:57 +0300 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2020-05-07 07:06:26 +0200 |
commit | 7f578ebe3cd824c05492c8fce9a1ed60bb5cfdfa (patch) | |
tree | b66cd92ef05de9f0df9ffccd2c5cdfb5cacd3a93 | |
parent | f120af264412caf1f3e7446981070ee8da9a076b (diff) |
added ability to switch sidebar deck on init.cxx for mobilewizard
Change-Id: I532398bc41e1c984c24b1d39e4844315a0a69847
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93162
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r-- | desktop/source/lib/init.cxx | 17 | ||||
-rw-r--r-- | include/sfx2/sidebar/SidebarDockingWindow.hxx | 1 | ||||
-rw-r--r-- | sfx2/source/sidebar/ResourceManager.cxx | 9 |
3 files changed, 25 insertions, 2 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 7c3a86ca5878..e6c2d6630a58 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -113,6 +113,7 @@ #include <sfx2/DocumentSigner.hxx> #include <sfx2/sidebar/SidebarChildWindow.hxx> #include <sfx2/sidebar/SidebarDockingWindow.hxx> +#include <sfx2/sidebar/SidebarController.hxx> #include <svx/dialmgr.hxx> #include <svx/dialogs.hrc> #include <svx/strings.hrc> @@ -1120,7 +1121,7 @@ rtl::Reference<LOKClipboard> forceSetClipboardForCurrentView(LibreOfficeKitDocum #endif -void setupSidebar(bool bShow) +void setupSidebar(bool bShow, OUString sidebarDeckId = "") { SfxViewShell* pViewShell = SfxViewShell::Current(); SfxViewFrame* pViewFrame = pViewShell ? pViewShell->GetViewFrame() : nullptr; @@ -1142,6 +1143,11 @@ void setupSidebar(bool bShow) auto pDockingWin = dynamic_cast<sfx2::sidebar::SidebarDockingWindow *>(pChild->GetWindow()); if (!pDockingWin) return; + + if (!sidebarDeckId.isEmpty()) + { + pDockingWin->GetSidebarController()->SwitchToDeck(sidebarDeckId); + } pDockingWin->SyncUpdate(); } else @@ -3625,6 +3631,7 @@ static void doc_postUnoCommand(LibreOfficeKitDocument* pThis, const char* pComma SfxObjectShell* pDocSh = SfxObjectShell::Current(); OUString aCommand(pCommand, strlen(pCommand), RTL_TEXTENCODING_UTF8); LibLODocument_Impl* pDocument = static_cast<LibLODocument_Impl*>(pThis); + OUString sidebarDeckId = "PropertyDeck"; std::vector<beans::PropertyValue> aPropertyValuesVector(jsonToPropertyValuesVector(pArguments)); @@ -3756,9 +3763,15 @@ static void doc_postUnoCommand(LibreOfficeKitDocument* pThis, const char* pComma return; } } + else if (gImpl && aCommand == ".uno:LOKSidebarWriterPage") + { + sidebarDeckId = "WriterPageDeck"; + setupSidebar(true, sidebarDeckId); + return; + } else if (gImpl && aCommand == ".uno:SidebarShow") { - setupSidebar(true); + setupSidebar(true, sidebarDeckId); return; } else if (gImpl && aCommand == ".uno:SidebarHide") diff --git a/include/sfx2/sidebar/SidebarDockingWindow.hxx b/include/sfx2/sidebar/SidebarDockingWindow.hxx index 049cf241aacd..64287cfe74a5 100644 --- a/include/sfx2/sidebar/SidebarDockingWindow.hxx +++ b/include/sfx2/sidebar/SidebarDockingWindow.hxx @@ -47,6 +47,7 @@ public: void SetReadyToDrag( bool bStartDrag ) { mbIsReadyToDrag = bStartDrag; } bool IsReadyToDrag() const { return mbIsReadyToDrag; } + auto& GetSidebarController() const { return mpSidebarController; } /// Force generation of all panels by completion. void SyncUpdate(); diff --git a/sfx2/source/sidebar/ResourceManager.cxx b/sfx2/source/sidebar/ResourceManager.cxx index f563943e150d..0642109b1dd2 100644 --- a/sfx2/source/sidebar/ResourceManager.cxx +++ b/sfx2/source/sidebar/ResourceManager.cxx @@ -430,6 +430,15 @@ void ResourceManager::ReadPanelList() if (!aPanelNode.isValid()) continue; + if (comphelper::LibreOfficeKit::isActive()) + { + // Hide these panels in LOK as they aren't fully functional. + OUString aPanelId = getString(aPanelNode, "Id"); + if (aPanelId == "PageStylesPanel" || aPanelId == "PageHeaderPanel" + || aPanelId == "PageFooterPanel") + continue; + } + maPanels.push_back(std::make_shared<PanelDescriptor>()); PanelDescriptor& rPanelDescriptor(*maPanels.back()); |