From 562d1ba1fff07183dbae24437977e204cbc6471d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Wed, 13 May 2020 09:26:18 +0100 Subject: [PATCH] weld bibliography EditBox control ItemWindow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I17859c10714afa387f47385d2abd8b8827770038 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94099 Tested-by: Caolán McNamara Reviewed-by: Caolán McNamara --- extensions/UIConfig_sbibliography.mk | 3 +- extensions/source/bibliography/toolbar.cxx | 64 +++++++++++-------- extensions/source/bibliography/toolbar.hxx | 30 +++++++-- .../uiconfig/sbibliography/ui/editbox.ui | 38 +++++++++++ .../uiconfig/sbibliography/ui/toolbar.ui | 15 +---- 5 files changed, 104 insertions(+), 46 deletions(-) create mode 100644 extensions/uiconfig/sbibliography/ui/editbox.ui diff --git a/extensions/UIConfig_sbibliography.mk b/extensions/UIConfig_sbibliography.mk index ad359f8dee25..cf4835829262 100644 --- a/extensions/UIConfig_sbibliography.mk +++ b/extensions/UIConfig_sbibliography.mk @@ -14,8 +14,9 @@ $(eval $(call gb_UIConfig_add_menubarfiles,modules/sbibliography,\ )) $(eval $(call gb_UIConfig_add_uifiles,modules/sbibliography,\ - extensions/uiconfig/sbibliography/ui/combobox \ extensions/uiconfig/sbibliography/ui/choosedatasourcedialog \ + extensions/uiconfig/sbibliography/ui/combobox \ + extensions/uiconfig/sbibliography/ui/editbox \ extensions/uiconfig/sbibliography/ui/generalpage \ extensions/uiconfig/sbibliography/ui/querydialog \ extensions/uiconfig/sbibliography/ui/mappingdialog \ diff --git a/extensions/source/bibliography/toolbar.cxx b/extensions/source/bibliography/toolbar.cxx index ccdc2476e884..d7726cbf9580 100644 --- a/extensions/source/bibliography/toolbar.cxx +++ b/extensions/source/bibliography/toolbar.cxx @@ -194,12 +194,35 @@ ComboBoxControl::~ComboBoxControl() disposeOnce(); } +EditControl::EditControl(vcl::Window* pParent) + : InterimItemWindow(pParent, "modules/sbibliography/ui/editbox.ui", "EditBox") + , m_xFtQuery(m_xBuilder->weld_label("label")) + , m_xEdQuery(m_xBuilder->weld_entry("entry")) +{ + m_xFtQuery->set_toolbar_background(); + m_xEdQuery->set_toolbar_background(); + m_xEdQuery->set_size_request(100, -1); + SetSizePixel(get_preferred_size()); +} + +void EditControl::dispose() +{ + m_xEdQuery.reset(); + m_xFtQuery.reset(); + InterimItemWindow::dispose(); +} + +EditControl::~EditControl() +{ + disposeOnce(); +} + BibToolBar::BibToolBar(vcl::Window* pParent, Link aLink) : ToolBox(pParent, "toolbar", "modules/sbibliography/ui/toolbar.ui") , xSource(VclPtr::Create(this)) , pLbSource(xSource->get_widget()) - , aFtQuery(VclPtr::Create(this,WB_VCENTER)) - , aEdQuery(VclPtr::Create(this)) + , xQuery(VclPtr::Create(this)) + , pEdQuery(xQuery->get_widget()) , pPopupMenu(VclPtr::Create()) , nMenuId(0) , nSelMenuItem(0) @@ -223,26 +246,18 @@ BibToolBar::BibToolBar(vcl::Window* pParent, Link aLink) SetDropdownClickHdl( LINK( this, BibToolBar, MenuHdl)); - aEdQuery->SetSizePixel(pLbSource->get_preferred_size()); - aEdQuery->Show(); + xQuery->Show(); nTBC_SOURCE = GetItemId(".uno:Bib/source"); - nTBC_FT_QUERY = GetItemId("TBC_FT_QUERY"); - nTBC_ED_QUERY = GetItemId(".uno:Bib/query"); + nTBC_QUERY = GetItemId(".uno:Bib/query"); nTBC_BT_AUTOFILTER = GetItemId(".uno:Bib/autoFilter"); nTBC_BT_COL_ASSIGN = GetItemId("TBC_BT_COL_ASSIGN"); nTBC_BT_CHANGESOURCE = GetItemId(".uno:Bib/sdbsource"); nTBC_BT_FILTERCRIT = GetItemId(".uno:Bib/standardFilter"); nTBC_BT_REMOVEFILTER = GetItemId(".uno:Bib/removeFilter"); - OUString aStr=GetItemText(nTBC_FT_QUERY); - aFtQuery->SetText(aStr); - aFtQuery->SetSizePixel(aFtQuery->get_preferred_size()); - aFtQuery->SetBackground(Wallpaper( COL_TRANSPARENT )); - SetItemWindow(nTBC_SOURCE, xSource.get()); - SetItemWindow(nTBC_FT_QUERY , aFtQuery.get()); - SetItemWindow(nTBC_ED_QUERY , aEdQuery.get()); + SetItemWindow(nTBC_QUERY , xQuery.get()); ApplyImageList(); @@ -259,8 +274,9 @@ void BibToolBar::dispose() SvtMiscOptions().RemoveListenerLink( LINK( this, BibToolBar, OptionsChanged_Impl ) ); Application::RemoveEventListener( LINK( this, BibToolBar, SettingsChanged_Impl ) ); ::bib::RemoveFromTaskPaneList( this ); - aFtQuery.disposeAndClear(); - aEdQuery.disposeAndClear(); + pEdQuery = nullptr; + xQuery.disposeAndClear(); + pLbSource = nullptr; xSource.disposeAndClear(); ToolBox::dispose(); } @@ -283,7 +299,7 @@ void BibToolBar::InitListener() for(ToolBox::ImplToolItems::size_type nPos=0;nPos aPropVal(2); PropertyValue* pPropertyVal = const_cast(aPropVal.getConstArray()); pPropertyVal[0].Name="QueryText"; - OUString aSelection = aEdQuery->GetText(); + OUString aSelection = pEdQuery->get_text(); pPropertyVal[0].Value <<= aSelection; pPropertyVal[1].Name="QueryField"; @@ -440,22 +456,20 @@ void BibToolBar::SelectSourceEntry(const OUString& aStr) void BibToolBar::EnableQuery(bool bFlag) { - aFtQuery->Enable(bFlag); - aEdQuery->Enable(bFlag); + xQuery->set_sensitive(bFlag); } void BibToolBar::SetQueryString(const OUString& aStr) { - aEdQuery->SetText(aStr); + pEdQuery->set_text(aStr); } - bool BibToolBar::PreNotify( NotifyEvent& rNEvt ) { bool bResult = true; MouseNotifyEvent nSwitch=rNEvt.GetType(); - if(aEdQuery->HasFocus() && nSwitch==MouseNotifyEvent::KEYINPUT) + if (pEdQuery && pEdQuery->has_focus() && nSwitch == MouseNotifyEvent::KEYINPUT) { const vcl::KeyCode& aKeyCode=rNEvt.GetKeyEvent()->GetKeyCode(); sal_uInt16 nKey = aKeyCode.GetCode(); @@ -464,7 +478,7 @@ bool BibToolBar::PreNotify( NotifyEvent& rNEvt ) Sequence aPropVal(2); PropertyValue* pPropertyVal = const_cast(aPropVal.getConstArray()); pPropertyVal[0].Name = "QueryText"; - OUString aSelection = aEdQuery->GetText(); + OUString aSelection = pEdQuery->get_text(); pPropertyVal[0].Value <<= aSelection; pPropertyVal[1].Name="QueryField"; pPropertyVal[1].Value <<= aQueryField; @@ -515,7 +529,7 @@ IMPL_LINK_NOARG( BibToolBar, MenuHdl, ToolBox*, void) Sequence aPropVal(2); PropertyValue* pPropertyVal = const_cast(aPropVal.getConstArray()); pPropertyVal[0].Name = "QueryText"; - OUString aSelection = aEdQuery->GetText(); + OUString aSelection = pEdQuery->get_text(); pPropertyVal[0].Value <<= aSelection; pPropertyVal[1].Name="QueryField"; pPropertyVal[1].Value <<= aQueryField; diff --git a/extensions/source/bibliography/toolbar.hxx b/extensions/source/bibliography/toolbar.hxx index 34a4db9a867b..135b7dcb1f15 100644 --- a/extensions/source/bibliography/toolbar.hxx +++ b/extensions/source/bibliography/toolbar.hxx @@ -25,8 +25,6 @@ #include #include -#include -#include #include #include #include @@ -118,6 +116,27 @@ private: std::unique_ptr m_xLBSource; }; +class EditControl final : public InterimItemWindow +{ +public: + EditControl(vcl::Window* pParent); + virtual ~EditControl() override; + virtual void dispose() override; + + weld::Entry* get_widget() { return m_xEdQuery.get(); } + + void set_sensitive(bool bSensitive) + { + m_xFtQuery->set_sensitive(bSensitive); + m_xEdQuery->set_sensitive(bSensitive); + Enable(bSensitive); + } + +private: + std::unique_ptr m_xFtQuery; + std::unique_ptr m_xEdQuery; +}; + class BibToolBar: public ToolBox { private: @@ -127,8 +146,8 @@ class BibToolBar: public ToolBox Idle aIdle; VclPtr xSource; weld::ComboBox* pLbSource; - VclPtr aFtQuery; - VclPtr aEdQuery; + VclPtr xQuery; + weld::Entry* pEdQuery; ScopedVclPtr pPopupMenu; sal_uInt16 nMenuId; sal_uInt16 nSelMenuItem; @@ -138,8 +157,7 @@ class BibToolBar: public ToolBox sal_Int16 nOutStyle; sal_uInt16 nTBC_SOURCE; - sal_uInt16 nTBC_FT_QUERY; - sal_uInt16 nTBC_ED_QUERY; + sal_uInt16 nTBC_QUERY; sal_uInt16 nTBC_BT_AUTOFILTER; sal_uInt16 nTBC_BT_COL_ASSIGN; sal_uInt16 nTBC_BT_CHANGESOURCE; diff --git a/extensions/uiconfig/sbibliography/ui/editbox.ui b/extensions/uiconfig/sbibliography/ui/editbox.ui new file mode 100644 index 000000000000..0c774aaec693 --- /dev/null +++ b/extensions/uiconfig/sbibliography/ui/editbox.ui @@ -0,0 +1,38 @@ + + + + + + True + False + 6 + + + True + False + center + Search Key + True + entry + + + False + True + 0 + + + + + True + True + center + True + + + False + True + 1 + + + + diff --git a/extensions/uiconfig/sbibliography/ui/toolbar.ui b/extensions/uiconfig/sbibliography/ui/toolbar.ui index 748ff95e69e4..7caabb0e5be4 100644 --- a/extensions/uiconfig/sbibliography/ui/toolbar.ui +++ b/extensions/uiconfig/sbibliography/ui/toolbar.ui @@ -42,20 +42,7 @@ - - True - False - TBC_FT_QUERY - Search Key - True - - - False - True - - - - + True False .uno:Bib/query