Detach QuickFindPanel
Main changes are: 1) new jsontype: `quickfind` 2) send the full json when constructed 3) create new .uno:QuickFind 4) create wrapper and window to register QuickFindPanel as a DockingWindow so that we can create it from CreateChildWinow without going through sidebar 5) Register SID_QUICKFIND as a ChildWindow in the SwView interface Signed-off-by: NickWingate <nick.wingate@collabora.com> Change-Id: I2086316b932c1495b0adee7a062bdbbcb104f1ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188667 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194144 Tested-by: Jenkins
This commit is contained in:
@@ -5163,6 +5163,8 @@ static void lcl_sendDialogEvent(unsigned long long int nWindowId, const char* pA
|
||||
sWindowId = sCurrentShellId + "formulabar";
|
||||
if (nWindowId == static_cast<unsigned long long int>(-4))
|
||||
sWindowId = sCurrentShellId + "addressinputfield";
|
||||
if (nWindowId == static_cast<unsigned long long int>(-5))
|
||||
sWindowId = sCurrentShellId + "quickfind";
|
||||
|
||||
// dialogs send own id but notebookbar and sidebar controls are remembered by SfxViewShell id
|
||||
if (jsdialog::ExecuteAction(sWindowId, sControlId, aMap))
|
||||
@@ -5172,6 +5174,8 @@ static void lcl_sendDialogEvent(unsigned long long int nWindowId, const char* pA
|
||||
return;
|
||||
if (jsdialog::ExecuteAction(sCurrentShellId + "navigator", sControlId, aMap))
|
||||
return;
|
||||
if (jsdialog::ExecuteAction(sCurrentShellId + "quickfind", sControlId, aMap))
|
||||
return;
|
||||
if (jsdialog::ExecuteAction(sCurrentShellId + "notebookbar", sControlId, aMap))
|
||||
return;
|
||||
if (jsdialog::ExecuteAction(sCurrentShellId + "formulabar", sControlId, aMap))
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <sfx2/childwin.hxx>
|
||||
#include <sfx2/dockwin.hxx>
|
||||
|
||||
class SFX2_DLLPUBLIC SfxQuickFindWrapper : public SfxChildWindow
|
||||
{
|
||||
protected:
|
||||
void Initialize();
|
||||
|
||||
public:
|
||||
SfxQuickFindWrapper(vcl::Window* pParent, sal_uInt16 nId);
|
||||
};
|
||||
|
||||
class SFX2_DLLPUBLIC SfxQuickFind : public SfxDockingWindow
|
||||
{
|
||||
public:
|
||||
SfxQuickFind(SfxBindings* pBindings, SfxChildWindow* pChildWin, vcl::Window* pParent,
|
||||
SfxChildWinInfo* pInfo);
|
||||
};
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
@@ -598,6 +598,7 @@ class SvxZoomItem;
|
||||
#define SID_HYPERLINK_SETLINK TypedWhichId<SvxHyperlinkItem>(SID_SVX_START + 362)
|
||||
#define SID_INFOBAR (SID_SVX_START + 365)
|
||||
#define SID_NAVIGATOR (SID_SVX_START + 366)
|
||||
#define SID_QUICKFIND (SID_SVX_START + 367)
|
||||
#define SID_ZOOM_NEXT (SID_SVX_START + 402)
|
||||
#define SID_ZOOM_PREV (SID_SVX_START + 403)
|
||||
#define SID_INET_DLG (SID_SVX_START + 416)
|
||||
|
||||
@@ -233,6 +233,7 @@
|
||||
#define STR_DELETE_STYLE_USED NC_("STR_DELETE_STYLE_USED", "One or more of the selected styles is in use in this document.\nIf you will delete it, text or objects using these styles will revert to the parent style.\nDo you still wish to delete these styles?\n")
|
||||
#define STR_DELETE_STYLE NC_("STR_DELETE_STYLE", "Styles in use: ")
|
||||
#define STR_SID_NAVIGATOR NC_("STR_SID_NAVIGATOR", "Navigator")
|
||||
#define STR_SID_QUICKFIND NC_("STR_SID_QUICKFIND", "Quick Find")
|
||||
#define STR_ERROR_WRONG_CONFIRM NC_("STR_ERROR_WRONG_CONFIRM", "Faulty password confirmation")
|
||||
#define STR_PDF_EXPORT_SEND NC_("STR_PDF_EXPORT_SEND", "Send")
|
||||
#define STR_FONT_TABPAGE NC_("STR_FONT_TABPAGE", "Font")
|
||||
|
||||
@@ -163,6 +163,7 @@ typedef std::unordered_map<OString, OUString> ActionDataMap;
|
||||
|
||||
VCL_DLLPUBLIC void SendNavigatorForView(const sal_uInt64 nShellId);
|
||||
VCL_DLLPUBLIC void SendSidebarForView(const sal_uInt64 nShellId);
|
||||
VCL_DLLPUBLIC void SendQuickFindForView(const sal_uInt64 nShellId);
|
||||
|
||||
/// execute action on a widget
|
||||
VCL_DLLPUBLIC bool ExecuteAction(const OUString& nWindowId, const OUString& rWidget,
|
||||
|
||||
@@ -189,6 +189,7 @@ $(eval $(call gb_Library_add_exception_objects,sfx,\
|
||||
sfx2/source/dialog/bluthsnd \
|
||||
sfx2/source/dialog/mgetempl \
|
||||
sfx2/source/dialog/navigat \
|
||||
sfx2/source/dialog/quickfind \
|
||||
sfx2/source/dialog/newstyle \
|
||||
sfx2/source/dialog/partwnd \
|
||||
sfx2/source/dialog/passwd \
|
||||
|
||||
@@ -57,6 +57,7 @@ $(eval $(call gb_UIConfig_add_uifiles,sfx,\
|
||||
sfx2/uiconfig/ui/notebookbarpopup \
|
||||
sfx2/uiconfig/ui/printeroptionsdialog \
|
||||
sfx2/uiconfig/ui/querysavedialog \
|
||||
sfx2/uiconfig/ui/quickfind \
|
||||
sfx2/uiconfig/ui/saveastemplatedlg \
|
||||
sfx2/uiconfig/ui/safemodequerydialog \
|
||||
sfx2/uiconfig/ui/searchdialog \
|
||||
|
||||
@@ -33,6 +33,11 @@ interface Window
|
||||
ExecMethod = ChildWindowExecute ;
|
||||
StateMethod = ChildWindowState ;
|
||||
]
|
||||
SID_QUICKFIND
|
||||
[
|
||||
ExecMethod = ChildWindowExecute ;
|
||||
StateMethod = ChildWindowState ;
|
||||
]
|
||||
SID_INFOBAR // status(final|play)
|
||||
[
|
||||
ExecMethod = ChildWindowExecute ;
|
||||
|
||||
@@ -2651,6 +2651,22 @@ SfxBoolItem Navigator SID_NAVIGATOR
|
||||
GroupId = SfxGroupId::Navigator;
|
||||
]
|
||||
|
||||
SfxBoolItem QuickFind SID_QUICKFIND
|
||||
[
|
||||
AutoUpdate = TRUE,
|
||||
FastCall = FALSE,
|
||||
ReadOnlyDoc = TRUE,
|
||||
Toggle = FALSE,
|
||||
Container = FALSE,
|
||||
RecordAbsolute = FALSE,
|
||||
RecordPerSet;
|
||||
|
||||
AccelConfig = TRUE,
|
||||
MenuConfig = TRUE,
|
||||
ToolBoxConfig = TRUE,
|
||||
GroupId = ;
|
||||
]
|
||||
|
||||
SfxBoolItem InfoBar SID_INFOBAR
|
||||
[
|
||||
AutoUpdate = FALSE,
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <sal/config.h>
|
||||
|
||||
#include <sfx2/bindings.hxx>
|
||||
#include <sfx2/quickfind.hxx>
|
||||
#include <sfx2/strings.hrc>
|
||||
#include <sfx2/sfxresid.hxx>
|
||||
#include <helpids.h>
|
||||
|
||||
SfxQuickFindWrapper::SfxQuickFindWrapper(vcl::Window* pParentWnd, sal_uInt16 nId)
|
||||
: SfxChildWindow(pParentWnd, nId)
|
||||
{
|
||||
}
|
||||
|
||||
void SfxQuickFindWrapper::Initialize() { SetHideNotDelete(true); }
|
||||
|
||||
SfxQuickFind::SfxQuickFind(SfxBindings* pBind, SfxChildWindow* pChildWin, vcl::Window* pParent,
|
||||
SfxChildWinInfo* pInfo)
|
||||
: SfxDockingWindow(pBind, pChildWin, pParent, u"QuickFind"_ustr, u"sfx/ui/quickfind.ui"_ustr)
|
||||
{
|
||||
SetText(SfxResId(STR_SID_QUICKFIND));
|
||||
SetHelpId(HID_QUICKFIND_WINDOW);
|
||||
SetOutputSizePixel(Size(270, 240));
|
||||
Initialize(pInfo);
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
@@ -27,6 +27,7 @@ inline constexpr OUString HID_TEMPLDLG_NEWBYEXAMPLE = u"SFX2_HID_TEMPLDLG_NEWBYE
|
||||
inline constexpr OUString HID_TEMPLDLG_UPDATEBYEXAMPLE = u"SFX2_HID_TEMPLDLG_UPDATEBYEXAMPLE"_ustr;
|
||||
inline constexpr OUString HID_TEMPLDLG_WATERCAN = u"SFX2_HID_TEMPLDLG_WATERCAN"_ustr;
|
||||
inline constexpr OUString HID_NAVIGATOR_WINDOW = u"SFX2_HID_NAVIGATOR_WINDOW"_ustr;
|
||||
inline constexpr OUString HID_QUICKFIND_WINDOW = u"SFX2_HID_QUICKFIND_WINDOW"_ustr;
|
||||
inline constexpr OUString HID_TABDLG_RESET_BTN = u"SFX2_HID_TABDLG_RESET_BTN"_ustr;
|
||||
inline constexpr OUString HID_TABDLG_STANDARD_BTN = u"SFX2_HID_TABDLG_STANDARD_BTN"_ustr;
|
||||
inline constexpr OUString HID_TEMPLDLG_TOOLBOX_LEFT = u"SFX2_HID_TEMPLDLG_TOOLBOX_LEFT"_ustr;
|
||||
|
||||
@@ -3681,6 +3681,10 @@ void SfxViewFrame::ChildWindowState( SfxItemSet& rState )
|
||||
rState.Put( SfxBoolItem( nSID, HasChildWindow( nSID ) ) );
|
||||
}
|
||||
}
|
||||
else if ( nSID == SID_QUICKFIND )
|
||||
{
|
||||
rState.Put( SfxBoolItem( nSID, HasChildWindow(nSID) ) );
|
||||
}
|
||||
else if ( KnowsChildWindow(nSID) )
|
||||
rState.Put( SfxBoolItem( nSID, HasChildWindow(nSID) ) );
|
||||
else
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface domain="sfx">
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<object class="GtkBox" id="QuickFind">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@@ -752,6 +752,7 @@ gb_emscripten_fs_image_files += \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/selectblockdialog.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/selectindexdialog.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/selecttabledialog.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/sidebarquickfind.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/sidebarstylepresets.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/sidebartableedit.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/sidebartheme.ui \
|
||||
@@ -1444,6 +1445,7 @@ gb_emscripten_fs_image_files += \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/sfx/ui/password.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/sfx/ui/printeroptionsdialog.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/sfx/ui/querysavedialog.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/sfx/ui/quickfind.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/sfx/ui/safemodequerydialog.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/sfx/ui/saveastemplatedlg.ui \
|
||||
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/sfx/ui/searchdialog.ui \
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
#include <wtabsh.hxx>
|
||||
#include <navipi.hxx>
|
||||
#include <init.hxx>
|
||||
#include <QuickFindPanel.hxx>
|
||||
#include <inputwin.hxx>
|
||||
#include <usrpref.hxx>
|
||||
#include <uinums.hxx>
|
||||
@@ -334,6 +335,7 @@ void SwDLL::RegisterControls()
|
||||
::sfx2::sidebar::SidebarChildWindow::RegisterChildWindow(false, pMod);
|
||||
|
||||
SwNavigatorWrapper::RegisterChildWindow(false, pMod, SfxChildWindowFlags::NEVERHIDE);
|
||||
::sw::sidebar::QuickFindPanelWrapper::RegisterChildWindow(false, pMod, SfxChildWindowFlags::FORCEDOCK);
|
||||
|
||||
SwJumpToSpecificPageControl::RegisterControl(SID_JUMP_TO_SPECIFIC_PAGE, pMod);
|
||||
}
|
||||
|
||||
+22
-1
@@ -10,10 +10,12 @@
|
||||
|
||||
#pragma once
|
||||
#include <sfx2/sidebar/PanelLayout.hxx>
|
||||
#include <sfx2/quickfind.hxx>
|
||||
#include <svx/svxdlg.hxx>
|
||||
#include <wrtsh.hxx>
|
||||
#include "wrtsh.hxx"
|
||||
|
||||
#include <sfx2/bindings.hxx>
|
||||
#include <sfx2/weldutils.hxx>
|
||||
#include <svtools/acceleratorexecute.hxx>
|
||||
|
||||
namespace sw::sidebar
|
||||
@@ -55,6 +57,7 @@ public:
|
||||
virtual ~QuickFindPanel() override;
|
||||
|
||||
private:
|
||||
friend class QuickFindPanelWindow;
|
||||
std::vector<std::unique_ptr<SwPaM>> m_vPaMs;
|
||||
|
||||
std::unique_ptr<weld::Entry> m_xSearchFindEntry;
|
||||
@@ -93,5 +96,23 @@ private:
|
||||
void FillSearchFindsList();
|
||||
bool UpgradeSearchToSearchDialog();
|
||||
};
|
||||
|
||||
class QuickFindPanelWrapper : public SfxQuickFindWrapper
|
||||
{
|
||||
public:
|
||||
QuickFindPanelWrapper(vcl::Window* pParent, sal_uInt16 nId, SfxBindings* pBindings,
|
||||
SfxChildWinInfo* pInfo);
|
||||
SFX_DECL_CHILDWINDOW(QuickFindPanelWrapper);
|
||||
};
|
||||
|
||||
class QuickFindPanelWindow : public SfxQuickFind
|
||||
{
|
||||
private:
|
||||
std::unique_ptr<QuickFindPanel> m_xQuickFindPanel;
|
||||
|
||||
public:
|
||||
QuickFindPanelWindow(SfxBindings* _pBindings, SfxChildWindow* pChildWin, vcl::Window* pParent,
|
||||
SfxChildWinInfo* pInfo);
|
||||
};
|
||||
}
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "QuickFindPanel.hxx"
|
||||
#include <QuickFindPanel.hxx>
|
||||
#include <svtools/colorcfg.hxx>
|
||||
#include <com/sun/star/lang/IllegalArgumentException.hpp>
|
||||
#include <comphelper/scopeguard.hxx>
|
||||
@@ -23,11 +23,18 @@
|
||||
#include <cntfrm.hxx>
|
||||
#include <strings.hrc>
|
||||
#include <vcl/event.hxx>
|
||||
#include <vcl/jsdialog/executor.hxx>
|
||||
#include <vcl/svapp.hxx>
|
||||
#include <vcl/sysdata.hxx>
|
||||
#include <swwait.hxx>
|
||||
|
||||
#include <sfx2/strings.hrc>
|
||||
#include <sfx2/sfxresid.hxx>
|
||||
#include <sfx2/childwin.hxx>
|
||||
#include <sfx2/bindings.hxx>
|
||||
|
||||
#include <svx/srchdlg.hxx>
|
||||
#include <comphelper/lok.hxx>
|
||||
#include <comphelper/processfactory.hxx>
|
||||
|
||||
const int CharactersBeforeAndAfter = 40;
|
||||
@@ -98,6 +105,25 @@ IMPL_LINK_NOARG(QuickFindPanel::SearchOptionsDialog, SimilaritySettingsDialogBut
|
||||
}
|
||||
}
|
||||
|
||||
QuickFindPanelWindow::QuickFindPanelWindow(SfxBindings* _pBindings, SfxChildWindow* pChildWin,
|
||||
vcl::Window* pParent, SfxChildWinInfo* pInfo)
|
||||
: SfxQuickFind(_pBindings, pChildWin, pParent, pInfo)
|
||||
, m_xQuickFindPanel(std::make_unique<QuickFindPanel>(m_xContainer.get(),
|
||||
_pBindings->GetActiveFrame(), _pBindings))
|
||||
{
|
||||
_pBindings->Invalidate(SID_QUICKFIND);
|
||||
}
|
||||
|
||||
QuickFindPanelWrapper::QuickFindPanelWrapper(vcl::Window* pParent, sal_uInt16 nId,
|
||||
SfxBindings* pBindings, SfxChildWinInfo* pInfo)
|
||||
: SfxQuickFindWrapper(pParent, nId)
|
||||
{
|
||||
SetWindow(VclPtr<QuickFindPanelWindow>::Create(pBindings, this, pParent, pInfo));
|
||||
Initialize();
|
||||
}
|
||||
|
||||
SFX_IMPL_DOCKINGWINDOW(QuickFindPanelWrapper, SID_QUICKFIND);
|
||||
|
||||
std::unique_ptr<PanelLayout>
|
||||
QuickFindPanel::Create(weld::Widget* pParent,
|
||||
const css::uno::Reference<css::frame::XFrame>& rxFrame,
|
||||
@@ -126,6 +152,14 @@ QuickFindPanel::QuickFindPanel(weld::Widget* pParent, const uno::Reference<frame
|
||||
{
|
||||
m_xAcceleratorExecute->init(comphelper::getProcessComponentContext(), rxFrame);
|
||||
|
||||
if (comphelper::LibreOfficeKit::isActive())
|
||||
{
|
||||
sal_uInt64 nShellId = reinterpret_cast<sal_uInt64>(SfxViewShell::Current());
|
||||
jsdialog::SendQuickFindForView(nShellId);
|
||||
|
||||
// disable search options for online as still tunnled dialog
|
||||
m_xSearchOptionsToolbar->set_visible(false);
|
||||
}
|
||||
m_nMinimumPanelWidth
|
||||
= m_xBuilder->weld_widget(u"box"_ustr)->get_preferred_size().getWidth() + (6 * 2) + 6;
|
||||
m_xContainer->set_size_request(m_nMinimumPanelWidth, 1);
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include "PageFormatPanel.hxx"
|
||||
#include "PageHeaderPanel.hxx"
|
||||
#include "PageFooterPanel.hxx"
|
||||
#include "QuickFindPanel.hxx"
|
||||
#include <QuickFindPanel.hxx>
|
||||
#include "WrapPropertyPanel.hxx"
|
||||
#include "WriterInspectorTextPanel.hxx"
|
||||
#include "TableEditPanel.hxx"
|
||||
|
||||
@@ -93,6 +93,7 @@ SFX_IMPL_INTERFACE(SwView, SfxViewShell)
|
||||
void SwView::InitInterface_Impl()
|
||||
{
|
||||
GetStaticInterface()->RegisterChildWindow(SwNavigatorWrapper::GetChildWindowId(), true); // SID_NAVIGATOR
|
||||
GetStaticInterface()->RegisterChildWindow(SID_QUICKFIND, false);
|
||||
|
||||
GetStaticInterface()->RegisterChildWindow(::sfx2::sidebar::SidebarChildWindow::GetChildWindowId());
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ bool isBuilderEnabledForSidebar(std::u16string_view rUIFile);
|
||||
bool isBuilderEnabledForAddressInput(std::u16string_view rUIFile);
|
||||
bool isBuilderEnabledForFormulabar(std::u16string_view rUIFile);
|
||||
bool isBuilderEnabledForNavigator(std::u16string_view rUIFile);
|
||||
bool isBuilderEnabledForQuickFind(std::u16string_view rUIFile);
|
||||
bool isInterimBuilderEnabledForNotebookbar(std::u16string_view rUIFile);
|
||||
}
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ constexpr auto IgnoredList
|
||||
{ u"modules/scalc/ui/dropmenu.ui"}, // Calc -> Navigator -> right click
|
||||
{ u"modules/sdraw/ui/navigatorcontextmenu.ui" }, // Impress -> Navigator -> right click
|
||||
{ u"modules/swriter/ui/navigatorcontextmenu.ui" }, // Writer -> Navigator -> right click
|
||||
{ u"sfx/ui/quickfind.ui" },
|
||||
});
|
||||
|
||||
// ========== MOBILE DIALOGS ================================================= //
|
||||
@@ -478,6 +479,13 @@ constexpr auto NavigatorList
|
||||
{ u"modules/simpress/ui/navigatorpanel.ui"}
|
||||
});
|
||||
|
||||
// ========== QUICKFIND ================================================= //
|
||||
constexpr auto QuickFindList
|
||||
= frozen::make_unordered_set<std::u16string_view>({
|
||||
{ u"modules/swriter/ui/sidebarquickfind.ui" },
|
||||
});
|
||||
|
||||
|
||||
// ========== NOTEBOOKBAR ================================================= //
|
||||
|
||||
constexpr auto NotebookbarList
|
||||
@@ -602,6 +610,11 @@ bool isBuilderEnabledForNavigator(std::u16string_view rUIFile)
|
||||
return isInMap(NavigatorList, rUIFile);
|
||||
}
|
||||
|
||||
bool isBuilderEnabledForQuickFind(std::u16string_view rUIFile)
|
||||
{
|
||||
return isInMap(QuickFindList, rUIFile);
|
||||
}
|
||||
|
||||
bool isInterimBuilderEnabledForNotebookbar(std::u16string_view rUIFile)
|
||||
{
|
||||
return isInMap(NotebookbarList, rUIFile);
|
||||
|
||||
@@ -103,6 +103,11 @@ void SendSidebarForView(const sal_uInt64 nShellId)
|
||||
jsdialog::SendFullUpdate(OUString::number(nShellId) + "sidebar", "Panel");
|
||||
}
|
||||
|
||||
void SendQuickFindForView(const sal_uInt64 nShellId)
|
||||
{
|
||||
jsdialog::SendFullUpdate(OUString::number(nShellId) + "quickfind", "QuickFindPanel");
|
||||
}
|
||||
|
||||
void SendFullUpdate(const OUString& nWindowId, const OUString& rWidget)
|
||||
{
|
||||
auto aWidgetMap = JSInstanceBuilder::Widgets().Find(nWindowId);
|
||||
|
||||
@@ -186,7 +186,8 @@ void JSInstanceBuilder::initializeSidebarSender(sal_uInt64 nLOKWindowId,
|
||||
|
||||
m_aParentDialog = pRoot->GetParentWithLOKNotifier();
|
||||
|
||||
bool bIsNavigatorPanel = jsdialog::isBuilderEnabledForNavigator(rUIFile);
|
||||
bool bIsDockingWindow = jsdialog::isBuilderEnabledForNavigator(rUIFile)
|
||||
|| jsdialog::isBuilderEnabledForQuickFind(rUIFile);
|
||||
|
||||
// builder for Panel, PanelLayout, and DockingWindow
|
||||
// get SidebarDockingWindow, or SwNavigatorWin as m_aContentWindow
|
||||
@@ -195,7 +196,7 @@ void JSInstanceBuilder::initializeSidebarSender(sal_uInt64 nLOKWindowId,
|
||||
// Panel : 7 levels up from pRoot
|
||||
// DockingWindow: 3 levels up from pRoot
|
||||
unsigned nLevelsUp = 100; // limit
|
||||
if (bIsNavigatorPanel)
|
||||
if (bIsDockingWindow)
|
||||
nLevelsUp = 3;
|
||||
|
||||
if (nLevelsUp > 0)
|
||||
@@ -207,7 +208,7 @@ void JSInstanceBuilder::initializeSidebarSender(sal_uInt64 nLOKWindowId,
|
||||
m_aContentWindow = pRoot;
|
||||
for (unsigned i = 0; i < nLevelsUp && m_aContentWindow; i++)
|
||||
{
|
||||
if (!bIsNavigatorPanel && m_aContentWindow->get_id() == "Deck")
|
||||
if (!bIsDockingWindow && m_aContentWindow->get_id() == "Deck")
|
||||
nLevelsUp = i + 3;
|
||||
|
||||
// Useful to check if any panel doesn't appear
|
||||
|
||||
@@ -16,7 +16,7 @@ OUString JSInstanceBuilder::getMapIdFromWindowId() const
|
||||
{
|
||||
if (m_sTypeOfJSON == "sidebar" || m_sTypeOfJSON == "notebookbar"
|
||||
|| m_sTypeOfJSON == "formulabar" || m_sTypeOfJSON == "addressinputfield"
|
||||
|| m_sTypeOfJSON == "navigator")
|
||||
|| m_sTypeOfJSON == "navigator" || m_sTypeOfJSON == "quickfind")
|
||||
{
|
||||
return OUString::number(m_nWindowId) + m_sTypeOfJSON;
|
||||
}
|
||||
|
||||
@@ -197,6 +197,8 @@ std::unique_ptr<weld::Builder> Application::CreateBuilder(weld::Widget* pParent,
|
||||
return JSInstanceBuilder::CreateMenuBuilder(pParent, AllSettings::GetUIRootDir(), rUIFile);
|
||||
else if (jsdialog::isBuilderEnabledForNavigator(rUIFile))
|
||||
return JSInstanceBuilder::CreateSidebarBuilder(pParent, AllSettings::GetUIRootDir(), rUIFile, "navigator", nLOKWindowId);
|
||||
else if (jsdialog::isBuilderEnabledForQuickFind(rUIFile))
|
||||
return JSInstanceBuilder::CreateSidebarBuilder(pParent, AllSettings::GetUIRootDir(), rUIFile, "quickfind", nLOKWindowId);
|
||||
else if (jsdialog::isBuilderEnabled(rUIFile, bMobile))
|
||||
return JSInstanceBuilder::CreateDialogBuilder(pParent, AllSettings::GetUIRootDir(), rUIFile);
|
||||
// this is notebookbar widget but converted from sidebar panel
|
||||
|
||||
Reference in New Issue
Block a user