[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - include/svtools svtools/source

2021-01-17 Thread Caolán McNamara (via logerrit)
 include/svtools/brwbox.hxx  |1 +
 include/svtools/editbrowsebox.hxx   |2 ++
 svtools/source/brwbox/brwbox2.cxx   |3 +++
 svtools/source/brwbox/ebbcontrols.cxx   |7 +++
 svtools/source/brwbox/editbrowsebox.cxx |8 ++--
 5 files changed, 19 insertions(+), 2 deletions(-)

New commits:
commit 51c7c4ddb884703907759918f0541f9ad1f1fd98
Author: Caolán McNamara 
AuthorDate: Fri Jan 15 14:00:50 2021 +
Commit: Adolfo Jayme Barrientos 
CommitDate: Sun Jan 17 21:39:40 2021 +0100

tdf#135641 update DataBrowser has-focus when child widget gains focus

Change-Id: Ic5e618b50c31ebeffa1b2cc59857582804874747
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109372
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/include/svtools/brwbox.hxx b/include/svtools/brwbox.hxx
index 0b0d3af6fb2e..47deb3af6755 100644
--- a/include/svtools/brwbox.hxx
+++ b/include/svtools/brwbox.hxx
@@ -507,6 +507,7 @@ public:
 boolReserveControlArea(sal_uInt16 nWidth = USHRT_MAX);
 tools::Rectangle   GetControlArea() const;
 boolProcessKey( const KeyEvent& rEvt );
+virtual voidChildFocusIn();
 voidDispatch( sal_uInt16 nId );
 voidSetMode( BrowserMode nMode );
 BrowserMode GetMode( ) const { return m_nCurrentMode; }
diff --git a/include/svtools/editbrowsebox.hxx 
b/include/svtools/editbrowsebox.hxx
index a1a38353637e..1b9fd13aa93f 100644
--- a/include/svtools/editbrowsebox.hxx
+++ b/include/svtools/editbrowsebox.hxx
@@ -326,6 +326,7 @@ namespace svt
 virtual bool ControlHasFocus() const = 0;
 protected:
 DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
+DECL_LINK(FocusInHdl, weld::Widget&, void);
 };
 
 //= ComboBoxControl
@@ -691,6 +692,7 @@ namespace svt
 virtual sal_Int32 GetFieldIndexAtPoint(sal_Int32 _nRow,sal_Int32 
_nColumnPos,const Point& _rPoint) override;
 
 css::uno::Reference< css::accessibility::XAccessible > 
CreateAccessibleCheckBoxCell(long _nRow, sal_uInt16 _nColumnPos,const TriState& 
eState);
+virtual void ChildFocusIn() override;
 bool ControlHasFocus() const;
 protected:
 // creates the accessible which wraps the active cell
diff --git a/svtools/source/brwbox/brwbox2.cxx 
b/svtools/source/brwbox/brwbox2.cxx
index e9e725149020..8cd05f2daa7c 100644
--- a/svtools/source/brwbox/brwbox2.cxx
+++ b/svtools/source/brwbox/brwbox2.cxx
@@ -1698,6 +1698,9 @@ bool BrowseBox::ProcessKey( const KeyEvent& rEvt )
 return nId != BROWSER_NONE;
 }
 
+void BrowseBox::ChildFocusIn()
+{
+}
 
 void BrowseBox::Dispatch( sal_uInt16 nId )
 {
diff --git a/svtools/source/brwbox/ebbcontrols.cxx 
b/svtools/source/brwbox/ebbcontrols.cxx
index c38025d0a13e..e5e404bb291f 100644
--- a/svtools/source/brwbox/ebbcontrols.cxx
+++ b/svtools/source/brwbox/ebbcontrols.cxx
@@ -35,6 +35,7 @@ namespace svt
 m_xWidget->set_entry_width_chars(1); // so a smaller than default 
width can be used
 m_xWidget->connect_changed(LINK(this, ComboBoxControl, SelectHdl));
 m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl));
+m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl));
 }
 
 void ComboBoxControl::dispose()
@@ -116,6 +117,11 @@ namespace svt
 return 
static_cast(GetParent())->GetParent()->ProcessKey(rKEvt);
 }
 
+IMPL_LINK_NOARG(ControlBase, FocusInHdl, weld::Widget&, void)
+{
+return 
static_cast(GetParent())->GetParent()->ChildFocusIn();
+}
+
 //= ListBoxControl
 ListBoxControl::ListBoxControl(vcl::Window* pParent)
 : ControlBase(pParent, "svt/ui/listcontrol.ui", "ListControl")
@@ -124,6 +130,7 @@ namespace svt
 m_xWidget->set_size_request(42, -1); // so a later narrow size request 
can stick
 m_xWidget->connect_changed(LINK(this, ListBoxControl, SelectHdl));
 m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl));
+m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl));
 }
 
 void ListBoxControl::dispose()
diff --git a/svtools/source/brwbox/editbrowsebox.cxx 
b/svtools/source/brwbox/editbrowsebox.cxx
index 12ef6d6fd181..83b44d07daf1 100644
--- a/svtools/source/brwbox/editbrowsebox.cxx
+++ b/svtools/source/brwbox/editbrowsebox.cxx
@@ -194,7 +194,7 @@ namespace svt
 if (IsEditing() && Controller()->GetWindow().IsVisible())
 Controller()->GetWindow().GrabFocus();
 
-DetermineFocus( getRealGetFocusFlags( this ) );
+DetermineFocus(getRealGetFocusFlags(this));
 }
 
 
@@ -415,6 +415,10 @@ namespace svt
 }
 }
 
+void EditBrowseBox::ChildFocusIn()
+{
+DetermineFocus(getRealGetFocusFlags(this));
+}
 
 void EditBrowseBox::MouseButtonDown(const BrowserMouseEvent& rEvt)
 {
@@ -677,7 +681,7 @@ namespace svt
 switch (rEvt.GetType())
 {
 

[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - include/svtools svtools/source

2021-01-13 Thread Caolán McNamara (via logerrit)
 include/svtools/editbrowsebox.hxx |2 ++
 svtools/source/brwbox/ebbcontrols.cxx |8 
 2 files changed, 10 insertions(+)

New commits:
commit 55e2721e1ea6b8db7c92e5bb304ec1fb2c3cf068
Author: Caolán McNamara 
AuthorDate: Fri Aug 14 16:42:32 2020 +0100
Commit: Aron Budea 
CommitDate: Thu Jan 14 08:34:44 2021 +0100

tdf#137694 let tab switch between cells

Change-Id: I12806e2afc022c079d9db758973b8d1bfc0c7107
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100752
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 
(cherry picked from commit 3dac8855e93e09fab9d66f6cc4126a106ed44952)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108584
Reviewed-by: Aron Budea 

diff --git a/include/svtools/editbrowsebox.hxx 
b/include/svtools/editbrowsebox.hxx
index 04c931d82fdd..a1a38353637e 100644
--- a/include/svtools/editbrowsebox.hxx
+++ b/include/svtools/editbrowsebox.hxx
@@ -324,6 +324,8 @@ namespace svt
 {
 }
 virtual bool ControlHasFocus() const = 0;
+protected:
+DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
 };
 
 //= ComboBoxControl
diff --git a/svtools/source/brwbox/ebbcontrols.cxx 
b/svtools/source/brwbox/ebbcontrols.cxx
index e402f0a42a40..c38025d0a13e 100644
--- a/svtools/source/brwbox/ebbcontrols.cxx
+++ b/svtools/source/brwbox/ebbcontrols.cxx
@@ -22,6 +22,7 @@
 #include 
 #include 
 #include 
+#include "datwin.hxx"
 
 namespace svt
 {
@@ -33,6 +34,7 @@ namespace svt
 {
 m_xWidget->set_entry_width_chars(1); // so a smaller than default 
width can be used
 m_xWidget->connect_changed(LINK(this, ComboBoxControl, SelectHdl));
+m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl));
 }
 
 void ComboBoxControl::dispose()
@@ -109,6 +111,11 @@ namespace svt
 GetComboBox().save_value();
 }
 
+IMPL_LINK(ControlBase, KeyInputHdl, const KeyEvent&, rKEvt, bool)
+{
+return 
static_cast(GetParent())->GetParent()->ProcessKey(rKEvt);
+}
+
 //= ListBoxControl
 ListBoxControl::ListBoxControl(vcl::Window* pParent)
 : ControlBase(pParent, "svt/ui/listcontrol.ui", "ListControl")
@@ -116,6 +123,7 @@ namespace svt
 {
 m_xWidget->set_size_request(42, -1); // so a later narrow size request 
can stick
 m_xWidget->connect_changed(LINK(this, ListBoxControl, SelectHdl));
+m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl));
 }
 
 void ListBoxControl::dispose()
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - include/svtools svtools/source svx/source svx/uiconfig svx/UIConfig_svx.mk

2020-09-29 Thread Caolán McNamara (via logerrit)
 include/svtools/toolbarmenu.hxx  |2 +-
 svtools/source/control/toolbarmenu.cxx   |6 --
 svx/UIConfig_svx.mk  |1 +
 svx/source/tbxctrls/tbcontrl.cxx |6 +-
 svx/uiconfig/ui/interimtearableparent.ui |   29 +
 5 files changed, 40 insertions(+), 4 deletions(-)

New commits:
commit 48f27cbca68c2e00c081ed240b6dd0851ab85458
Author: Caolán McNamara 
AuthorDate: Tue Sep 29 15:07:50 2020 +0100
Commit: Adolfo Jayme Barrientos 
CommitDate: Wed Sep 30 04:31:22 2020 +0200

tdf#136520 allow color popdowns to be tearable again

Change-Id: Ic92ef5235662e1680aadb5666e05dad1bf808e9d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103626
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/include/svtools/toolbarmenu.hxx b/include/svtools/toolbarmenu.hxx
index c08da7e9c899..f50a8359831c 100644
--- a/include/svtools/toolbarmenu.hxx
+++ b/include/svtools/toolbarmenu.hxx
@@ -125,7 +125,7 @@ private:
 std::unique_ptr m_xPopup;
 public:
 InterimToolbarPopup(const css::uno::Reference& rFrame, 
vcl::Window* pParent,
-std::unique_ptr xPopup);
+std::unique_ptr xPopup, bool 
bTearable = false);
 weld::Container* getContainer() { return m_xContainer.get(); }
 virtual void dispose() override;
 virtual ~InterimToolbarPopup() override;
diff --git a/svtools/source/control/toolbarmenu.cxx 
b/svtools/source/control/toolbarmenu.cxx
index da45acfbddf6..c96dba998c7e 100644
--- a/svtools/source/control/toolbarmenu.cxx
+++ b/svtools/source/control/toolbarmenu.cxx
@@ -223,8 +223,10 @@ IMPL_LINK_NOARG(ToolbarPopupContainer, FocusHdl, 
weld::Widget&, void)
 }
 
 InterimToolbarPopup::InterimToolbarPopup(const 
css::uno::Reference& rFrame, vcl::Window* pParent,
- std::unique_ptr 
xPopup)
-: ToolbarPopup(rFrame, pParent, "InterimDockParent", 
"svx/ui/interimdockparent.ui")
+ std::unique_ptr 
xPopup, bool bTearable)
+: ToolbarPopup(rFrame, pParent,
+   !bTearable ? OString("InterimDockParent") : 
OString("InterimTearableParent"),
+   !bTearable ? OUString("svx/ui/interimdockparent.ui") : 
OUString("svx/ui/interimtearableparent.ui"))
 , m_xBox(get("box"))
 , m_xBuilder(Application::CreateInterimBuilder(m_xBox.get(), 
"svx/ui/interimparent.ui"))
 , m_xContainer(m_xBuilder->weld_container("container"))
diff --git a/svx/UIConfig_svx.mk b/svx/UIConfig_svx.mk
index fdc7d1b3bc52..2d7986074b54 100644
--- a/svx/UIConfig_svx.mk
+++ b/svx/UIConfig_svx.mk
@@ -83,6 +83,7 @@ $(eval $(call gb_UIConfig_add_uifiles,svx,\
svx/uiconfig/ui/inspectortextpanel \
svx/uiconfig/ui/interimdockparent \
svx/uiconfig/ui/interimparent \
+   svx/uiconfig/ui/interimtearableparent \
svx/uiconfig/ui/labelbox \
svx/uiconfig/ui/lightingwindow \
svx/uiconfig/ui/linkwarndialog \
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 2cb126483faa..8780b03f2d6e 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -3293,7 +3293,11 @@ VclPtr 
SvxColorToolBoxControl::createVclPopupWindow( vcl::Window* p
 xPopover->SetSelectedHdl( LINK( this, SvxColorToolBoxControl, 
SelectedHdl ) );
 
 mxInterimPopover = 
VclPtr::Create(getFrameInterface(), pParent,
-std::move(xPopover));
+std::move(xPopover), true);
+
+auto aProperties = 
vcl::CommandInfoProvider::GetCommandProperties(m_aCommandURL, m_sModuleName);
+OUString aWindowTitle = 
vcl::CommandInfoProvider::GetLabelForCommand(aProperties);
+mxInterimPopover->SetText(aWindowTitle);
 
 mxInterimPopover->Show();
 
diff --git a/svx/uiconfig/ui/interimtearableparent.ui 
b/svx/uiconfig/ui/interimtearableparent.ui
new file mode 100644
index ..910472c2c258
--- /dev/null
+++ b/svx/uiconfig/ui/interimtearableparent.ui
@@ -0,0 +1,29 @@
+
+
+
+  
+  
+False
+True
+True
+4
+False
+True
+dock
+True
+
+  
+True
+False
+vertical
+6
+
+  
+
+  
+
+
+  
+
+  
+
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - include/svtools svtools/source

2020-09-21 Thread Tomofumi Yagi (via logerrit)
 include/svtools/filechangedchecker.hxx |2 +-
 svtools/source/misc/filechangedchecker.cxx |   21 -
 2 files changed, 13 insertions(+), 10 deletions(-)

New commits:
commit 1d28170d94893171e2a358274cda62cd73f7b834
Author: Tomofumi Yagi 
AuthorDate: Fri Sep 18 16:21:43 2020 +0900
Commit: Caolán McNamara 
CommitDate: Mon Sep 21 17:56:50 2020 +0200

tdf#134157 fix Edit with external tool causes a CPU hit

Switch Idle to 100ms Timer for fixing the bug

Change-Id: I85a9bdcb173edd28d952d8e91c1b93d748e69206
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102984
Tested-by: Jenkins
Reviewed-by: Noel Grandin 
(cherry picked from commit f110c037114f90d219ac8d149542bf96fe66a2f1)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103055
Reviewed-by: Caolán McNamara 

diff --git a/include/svtools/filechangedchecker.hxx 
b/include/svtools/filechangedchecker.hxx
index 3b7f817f3035..016fe9279800 100644
--- a/include/svtools/filechangedchecker.hxx
+++ b/include/svtools/filechangedchecker.hxx
@@ -29,7 +29,7 @@ class Timer;
 class UNLESS_MERGELIBS(SVT_DLLPUBLIC) FileChangedChecker
 {
 private:
-IdlemIdle;
+TimermTimer;
 OUString mFileName;
 TimeValuemLastModTime;
 ::std::function mpCallback;
diff --git a/svtools/source/misc/filechangedchecker.cxx 
b/svtools/source/misc/filechangedchecker.cxx
index 09e24c3fafb1..8536eb0bda57 100644
--- a/svtools/source/misc/filechangedchecker.cxx
+++ b/svtools/source/misc/filechangedchecker.cxx
@@ -16,7 +16,7 @@
 
 FileChangedChecker::FileChangedChecker(const OUString& rFilename,
 const ::std::function& rCallback)
-: mIdle("SVTools FileChangedChecker Idle")
+: mTimer("SVTools FileChangedChecker Timer")
 , mFileName(rFilename)
 , mLastModTime()
 , mpCallback(rCallback)
@@ -24,21 +24,24 @@ FileChangedChecker::FileChangedChecker(const OUString& 
rFilename,
 // Get the curren last file modified Status
 getCurrentModTime(mLastModTime);
 
-// associate the callback function for the Idle
-mIdle.SetInvokeHandler(LINK(this, FileChangedChecker, TimerHandler));
+// associate the callback function for the Timer
+mTimer.SetInvokeHandler(LINK(this, FileChangedChecker, TimerHandler));
 
-//start the timer
+// set timer interval
+mTimer.SetTimeout(100);
+
+// start the timer
 resetTimer();
 }
 
 void FileChangedChecker::resetTimer()
 {
-//Start the Idle if it's not active
-if(!mIdle.IsActive())
-mIdle.Start();
+// Start the Idle if it's not active
+if(!mTimer.IsActive())
+mTimer.Start();
 
 // Set lowest Priority
-mIdle.SetPriority(TaskPriority::LOWEST);
+mTimer.SetPriority(TaskPriority::LOWEST);
 }
 
 bool FileChangedChecker::getCurrentModTime(TimeValue& o_rValue) const
@@ -90,7 +93,7 @@ IMPL_LINK_NOARG(FileChangedChecker, TimerHandler, Timer *, 
void)
 mpCallback();
 }
 
-// Reset the Idle in any case
+// Reset the Timer in any case
 resetTimer();
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - include/svtools svtools/source

2020-09-11 Thread Caolán McNamara (via logerrit)
 include/svtools/valueset.hxx|2 ++
 svtools/source/control/valueset.cxx |   36 
 2 files changed, 22 insertions(+), 16 deletions(-)

New commits:
commit 51c17d2bdb35fdb4ab21a94d3bba40f97dc5c138
Author: Caolán McNamara 
AuthorDate: Tue Sep 8 20:24:14 2020 +0100
Commit: Adolfo Jayme Barrientos 
CommitDate: Fri Sep 11 21:49:13 2020 +0200

tdf#134413 must add scrollbar width on turning it off to occupy the same 
space

when scrollbars have width

Change-Id: I3f9f6951add23f8ac93a03cf3356add5a2b3ddd8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102288
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index 6c6055d0d982..b27885d9b72b 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -256,6 +256,8 @@ private:
 SVT_DLLPRIVATE void QueueReformat();
 SVT_DLLPRIVATE void SetFirstLine(sal_uInt16 nNewFirstLine); // set 
mnFirstLine and update scrollbar to match
 SVT_DLLPRIVATE void RecalcScrollBar();
+SVT_DLLPRIVATE void TurnOffScrollBar();
+SVT_DLLPRIVATE void TurnOnScrollBar();
 DECL_DLLPRIVATE_LINK(ImplScrollHdl, weld::ScrolledWindow&, void);
 
 Size   GetLargestItemSize();
diff --git a/svtools/source/control/valueset.cxx 
b/svtools/source/control/valueset.cxx
index 00bd7226478a..dde904d2b9a2 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -539,13 +539,29 @@ void ValueSet::RemoveItem( sal_uInt16 nItemId )
 QueueReformat();
 }
 
+void ValueSet::TurnOffScrollBar()
+{
+mxScrolledWindow->set_vpolicy(VclPolicyType::NEVER);
+weld::DrawingArea* pDrawingArea = GetDrawingArea();
+Size aPrefSize(pDrawingArea->get_preferred_size());
+pDrawingArea->set_size_request(aPrefSize.Width() + GetScrollWidth(), 
aPrefSize.Height());
+}
+
+void ValueSet::TurnOnScrollBar()
+{
+mxScrolledWindow->set_vpolicy(VclPolicyType::ALWAYS);
+weld::DrawingArea* pDrawingArea = GetDrawingArea();
+Size aPrefSize(pDrawingArea->get_preferred_size());
+pDrawingArea->set_size_request(aPrefSize.Width() - GetScrollWidth(), 
aPrefSize.Height());
+}
+
 void ValueSet::RecalcScrollBar()
 {
 // reset scrolled window state to initial value
 // so it will get configured to the right adjustment
 WinBits nStyle = GetStyle();
 if (mxScrolledWindow && (nStyle & WB_VSCROLL))
-mxScrolledWindow->set_vpolicy(VclPolicyType::NEVER);
+TurnOffScrollBar();
 }
 
 void ValueSet::Clear()
@@ -841,11 +857,7 @@ void ValueSet::Format(vcl::RenderContext const & 
rRenderContext)
 long nNoneSpace;
 
 if (mxScrolledWindow && !(nStyle & WB_VSCROLL) && 
mxScrolledWindow->get_vpolicy() != VclPolicyType::NEVER)
-{
-mxScrolledWindow->set_vpolicy(VclPolicyType::NEVER);
-Size aPrefSize(GetDrawingArea()->get_preferred_size());
-GetDrawingArea()->set_size_request(aPrefSize.Width() + 
GetScrollWidth(), aPrefSize.Height());
-}
+TurnOffScrollBar();
 
 // calculate item offset
 if (nStyle & WB_ITEMBORDER)
@@ -995,11 +1007,7 @@ void ValueSet::Format(vcl::RenderContext const & 
rRenderContext)
 }
 
 if (mxScrolledWindow && mxScrolledWindow->get_vpolicy() != 
VclPolicyType::NEVER)
-{
-mxScrolledWindow->set_vpolicy(VclPolicyType::NEVER);
-Size aPrefSize(GetDrawingArea()->get_preferred_size());
-GetDrawingArea()->set_size_request(aPrefSize.Width() + 
GetScrollWidth(), aPrefSize.Height());
-}
+TurnOffScrollBar();
 }
 else
 {
@@ -1151,11 +1159,7 @@ void ValueSet::Format(vcl::RenderContext const & 
rRenderContext)
 }
 
 if (bTurnScrollbarOn)
-{
-mxScrolledWindow->set_vpolicy(VclPolicyType::ALWAYS);
-Size aPrefSize(GetDrawingArea()->get_preferred_size());
-GetDrawingArea()->set_size_request(aPrefSize.Width() - 
GetScrollWidth(), aPrefSize.Height());
-}
+TurnOnScrollBar();
 }
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - include/svtools svtools/source svx/source

2020-08-24 Thread Caolán McNamara (via logerrit)
 include/svtools/editbrowsebox.hxx |   27 +--
 svtools/source/brwbox/ebbcontrols.cxx |   10 --
 svx/source/fmcomp/gridcell.cxx|   23 ++-
 svx/source/inc/gridcell.hxx   |7 +++
 4 files changed, 50 insertions(+), 17 deletions(-)

New commits:
commit 4771535e40feb6ec7f15e160e00592b2f253f3a5
Author: Caolán McNamara 
AuthorDate: Fri Aug 14 14:41:35 2020 +0100
Commit: Michael Stahl 
CommitDate: Mon Aug 24 12:15:43 2020 +0200

tdf#135550 make XListBox Item status changed event work again

Change-Id: I9a5fe6a097c5d06e3ac3ab6c4c77cbe082d1a17d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100747
Tested-by: Jenkins
Reviewed-by: Michael Stahl 

diff --git a/include/svtools/editbrowsebox.hxx 
b/include/svtools/editbrowsebox.hxx
index 61deadfdd4fa..ebd968d254ad 100644
--- a/include/svtools/editbrowsebox.hxx
+++ b/include/svtools/editbrowsebox.hxx
@@ -375,6 +375,11 @@ namespace svt
 //= ListBoxControl
 class SVT_DLLPUBLIC ListBoxControl final : public InterimItemWindow
 {
+private:
+std::unique_ptr m_xWidget;
+Link m_aModify1Hdl;
+Link m_aModify2Hdl;
+
 friend class ListBoxCellController;
 
 public:
@@ -382,9 +387,27 @@ namespace svt
 
 weld::ComboBox& get_widget() { return *m_xWidget; }
 
+// sets a link to call when the selection is changed by the user
+void SetModifyHdl(const Link& rHdl)
+{
+m_aModify1Hdl = rHdl;
+}
+
+// sets an additional link to call when the selection is changed by 
the user
+void SetAuxModifyHdl(const Link& rLink)
+{
+m_aModify2Hdl = rLink;
+}
+
 virtual void dispose() override;
 private:
-std::unique_ptr m_xWidget;
+DECL_LINK(SelectHdl, weld::ComboBox&, void);
+
+void CallModifyHdls()
+{
+m_aModify1Hdl.Call(nullptr);
+m_aModify2Hdl.Call(nullptr);
+}
 };
 
 //= ListBoxCellController
@@ -401,7 +424,7 @@ namespace svt
 protected:
 virtual bool MoveAllowed(const KeyEvent& rEvt) const override;
 private:
-DECL_LINK(ListBoxSelectHdl, weld::ComboBox&, void);
+DECL_LINK(ListBoxSelectHdl, LinkParamNone*, void);
 };
 
 //= FormattedFieldCellController
diff --git a/svtools/source/brwbox/ebbcontrols.cxx 
b/svtools/source/brwbox/ebbcontrols.cxx
index 4d4fc8ea72cf..1e0272aeeea9 100644
--- a/svtools/source/brwbox/ebbcontrols.cxx
+++ b/svtools/source/brwbox/ebbcontrols.cxx
@@ -115,6 +115,7 @@ namespace svt
 , m_xWidget(m_xBuilder->weld_combo_box("listbox"))
 {
 m_xWidget->set_size_request(42, -1); // so a later narrow size request 
can stick
+m_xWidget->connect_changed(LINK(this, ListBoxControl, SelectHdl));
 }
 
 void ListBoxControl::dispose()
@@ -123,11 +124,16 @@ namespace svt
 InterimItemWindow::dispose();
 }
 
+IMPL_LINK_NOARG(ListBoxControl, SelectHdl, weld::ComboBox&, void)
+{
+CallModifyHdls();
+}
+
 //= ListBoxCellController
 ListBoxCellController::ListBoxCellController(ListBoxControl* pWin)
  :CellController(pWin)
 {
-GetListBox().connect_changed(LINK(this, ListBoxCellController, 
ListBoxSelectHdl));
+static_cast(GetWindow()).SetModifyHdl(LINK(this, 
ListBoxCellController, ListBoxSelectHdl));
 }
 
 bool ListBoxCellController::MoveAllowed(const KeyEvent& rEvt) const
@@ -165,7 +171,7 @@ namespace svt
 GetListBox().save_value();
 }
 
-IMPL_LINK_NOARG(ListBoxCellController, ListBoxSelectHdl, weld::ComboBox&, 
void)
+IMPL_LINK_NOARG(ListBoxCellController, ListBoxSelectHdl, LinkParamNone*, 
void)
 {
 callModifyHdl();
 }
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index 8811f7ce29e1..b84805165c9e 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -3967,9 +3967,9 @@ FmXListBoxCell::FmXListBoxCell(DbGridColumn* pColumn, 
std::unique_ptr(m_pCellControl->GetWindow()).get_widget())
+  , m_pBox(_cast(m_pCellControl->GetWindow()))
 {
-m_pBox->connect_changed(LINK(this, FmXListBoxCell, ChangedHdl));
+m_pBox->SetAuxModifyHdl(LINK(this, FmXListBoxCell, ChangedHdl));
 }
 
 FmXListBoxCell::~FmXListBoxCell()
@@ -3988,7 +3988,7 @@ void FmXListBoxCell::disposing()
 m_aItemListeners.disposeAndClear(aEvt);
 m_aActionListeners.disposeAndClear(aEvt);
 
-m_pBox->connect_changed( Link() );
+m_pBox->SetAuxModifyHdl(Link());
 m_pBox = nullptr;
 
 FmXTextCell::disposing();
@@ -3996,9 +3996,14 @@ void FmXListBoxCell::disposing()
 
 IMPLEMENT_GET_IMPLEMENTATION_ID( FmXListBoxCell )
 
-IMPL_LINK_NOARG(FmXListBoxCell, ChangedHdl, weld::ComboBox&, void)
+IMPL_LINK_NOARG(FmXListBoxCell, ChangedHdl, LinkParamNone*, void)
 {
-if (!m_pBox || !m_pBox->changed_by_direct_pick())
+if 

[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - include/svtools svtools/source svx/source

2020-08-20 Thread Caolán McNamara (via logerrit)
 include/svtools/editbrowsebox.hxx |   27 +--
 svtools/source/brwbox/ebbcontrols.cxx |   10 ++--
 svx/source/fmcomp/gridcell.cxx|   39 +-
 svx/source/inc/gridcell.hxx   |9 +++
 4 files changed, 62 insertions(+), 23 deletions(-)

New commits:
commit 23c965a299315398c0931ecefbca49824cc21261
Author: Caolán McNamara 
AuthorDate: Fri Aug 14 16:26:52 2020 +0100
Commit: Michael Stahl 
CommitDate: Thu Aug 20 13:07:27 2020 +0200

tdf#135550 make XComboBox Item status changed event work again

Change-Id: I323a114d3b71a74267ee7a89c5fb29821611e57e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100704
Tested-by: Jenkins
Reviewed-by: Michael Stahl 

diff --git a/include/svtools/editbrowsebox.hxx 
b/include/svtools/editbrowsebox.hxx
index 2e9c7cb891cb..61deadfdd4fa 100644
--- a/include/svtools/editbrowsebox.hxx
+++ b/include/svtools/editbrowsebox.hxx
@@ -319,6 +319,11 @@ namespace svt
 //= ComboBoxControl
 class SVT_DLLPUBLIC ComboBoxControl final : public InterimItemWindow
 {
+private:
+std::unique_ptr m_xWidget;
+Link m_aModify1Hdl;
+Link m_aModify2Hdl;
+
 friend class ComboBoxCellController;
 
 public:
@@ -326,10 +331,28 @@ namespace svt
 
 weld::ComboBox& get_widget() { return *m_xWidget; }
 
+// sets a link to call when the selection is changed by the user
+void SetModifyHdl(const Link& rHdl)
+{
+m_aModify1Hdl = rHdl;
+}
+
+// sets an additional link to call when the selection is changed by 
the user
+void SetAuxModifyHdl(const Link& rLink)
+{
+m_aModify2Hdl = rLink;
+}
+
 virtual void dispose() override;
 
 private:
-std::unique_ptr m_xWidget;
+DECL_LINK(SelectHdl, weld::ComboBox&, void);
+
+void CallModifyHdls()
+{
+m_aModify1Hdl.Call(nullptr);
+m_aModify2Hdl.Call(nullptr);
+}
 };
 
 //= ComboBoxCellController
@@ -346,7 +369,7 @@ namespace svt
 protected:
 virtual bool MoveAllowed(const KeyEvent& rEvt) const override;
 private:
-DECL_LINK(ModifyHdl, weld::ComboBox&, void);
+DECL_LINK(ModifyHdl, LinkParamNone*, void);
 };
 
 //= ListBoxControl
diff --git a/svtools/source/brwbox/ebbcontrols.cxx 
b/svtools/source/brwbox/ebbcontrols.cxx
index 2c6291fd3f7e..4d4fc8ea72cf 100644
--- a/svtools/source/brwbox/ebbcontrols.cxx
+++ b/svtools/source/brwbox/ebbcontrols.cxx
@@ -32,6 +32,7 @@ namespace svt
 , m_xWidget(m_xBuilder->weld_combo_box("combobox"))
 {
 m_xWidget->set_entry_width_chars(1); // so a smaller than default 
width can be used
+m_xWidget->connect_changed(LINK(this, ComboBoxControl, SelectHdl));
 }
 
 void ComboBoxControl::dispose()
@@ -40,14 +41,19 @@ namespace svt
 InterimItemWindow::dispose();
 }
 
+IMPL_LINK_NOARG(ComboBoxControl, SelectHdl, weld::ComboBox&, void)
+{
+CallModifyHdls();
+}
+
 //= ComboBoxCellController
 ComboBoxCellController::ComboBoxCellController(ComboBoxControl* pWin)
  :CellController(pWin)
 {
-GetComboBox().connect_changed(LINK(this, ComboBoxCellController, 
ModifyHdl));
+static_cast(GetWindow()).SetModifyHdl(LINK(this, 
ComboBoxCellController, ModifyHdl));
 }
 
-IMPL_LINK_NOARG(ComboBoxCellController, ModifyHdl, weld::ComboBox&, void)
+IMPL_LINK_NOARG(ComboBoxCellController, ModifyHdl, LinkParamNone*, void)
 {
 callModifyHdl();
 }
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index fcbb633fb003..8811f7ce29e1 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -4031,10 +4031,10 @@ FmXComboBoxCell::FmXComboBoxCell( DbGridColumn* 
pColumn, std::unique_ptr(m_pCellControl->GetWindow()).get_widget())
+,m_pComboBox(_cast(m_pCellControl->GetWindow()))
 
,m_nLines(Application::GetSettings().GetStyleSettings().GetListBoxMaximumLineCount())
 {
-m_pComboBox->connect_changed(LINK(this, FmXComboBoxCell, ChangedHdl));
+m_pComboBox->SetAuxModifyHdl(LINK(this, FmXComboBoxCell, ChangedHdl));
 }
 
 FmXComboBoxCell::~FmXComboBoxCell()
@@ -4053,7 +4053,7 @@ void FmXComboBoxCell::disposing()
 m_aItemListeners.disposeAndClear(aEvt);
 m_aActionListeners.disposeAndClear(aEvt);
 
-m_pComboBox->connect_changed( Link() );
+m_pComboBox->SetAuxModifyHdl(Link());
 m_pComboBox = nullptr;
 
 FmXTextCell::disposing();
@@ -4105,7 +4105,8 @@ void SAL_CALL FmXComboBoxCell::addItem( const OUString& 
Item, sal_Int16 Pos )
 ::osl::MutexGuard aGuard( m_aMutex );
 if (!m_pComboBox)
 return;
-m_pComboBox->insert_text(Pos, Item);
+weld::ComboBox& rBox = m_pComboBox->get_widget();
+rBox.insert_text(Pos, Item);
 }
 
 void SAL_CALL FmXComboBoxCell::addItems( const 

[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - include/svtools svtools/source

2020-06-15 Thread Caolán McNamara (via logerrit)
 include/svtools/valueset.hxx|1 +
 svtools/source/control/valueset.cxx |   18 ++
 2 files changed, 15 insertions(+), 4 deletions(-)

New commits:
commit 3a3ab9c95c37bdd84fdceac82349621368e1bee1
Author: Caolán McNamara 
AuthorDate: Sun Jun 14 19:54:20 2020 +0100
Commit: Caolán McNamara 
CommitDate: Mon Jun 15 13:16:05 2020 +0200

Related: tdf#132966 scrollbar not tracking valueset cursor position

Change-Id: I408d872f89da67cd91f0282c1624fd33ddc6c538
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96298
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 
(cherry picked from commit 5cce65171b12cd652d6a9857a9c0bad1c608a65c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96333

diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index 29a17f530483..6c6055d0d982 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -254,6 +254,7 @@ private:
 SVT_DLLPRIVATE bool ImplHasAccessibleListeners();
 SVT_DLLPRIVATE void ImplTracking(const Point& rPos);
 SVT_DLLPRIVATE void QueueReformat();
+SVT_DLLPRIVATE void SetFirstLine(sal_uInt16 nNewFirstLine); // set 
mnFirstLine and update scrollbar to match
 SVT_DLLPRIVATE void RecalcScrollBar();
 DECL_DLLPRIVATE_LINK(ImplScrollHdl, weld::ScrolledWindow&, void);
 
diff --git a/svtools/source/control/valueset.cxx 
b/svtools/source/control/valueset.cxx
index 40f2280cda5d..4329d415f9a1 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -696,6 +696,16 @@ void ValueSet::RecalculateItemSizes()
 }
 }
 
+void ValueSet::SetFirstLine(sal_uInt16 nNewFirstLine)
+{
+if (nNewFirstLine != mnFirstLine)
+{
+mnFirstLine = nNewFirstLine;
+if (mxScrolledWindow)
+mxScrolledWindow->vadjustment_set_value(mnFirstLine);
+}
+}
+
 void ValueSet::SelectItem( sal_uInt16 nItemId )
 {
 size_t nItemPos = 0;
@@ -731,12 +741,12 @@ void ValueSet::SelectItem( sal_uInt16 nItemId )
 sal_uInt16 nNewLine = static_cast(nItemPos / mnCols);
 if ( nNewLine < mnFirstLine )
 {
-mnFirstLine = nNewLine;
+SetFirstLine(nNewLine);
 bNewLine = true;
 }
 else if ( nNewLine > o3tl::make_unsigned(mnFirstLine+mnVisLines-1) )
 {
-mnFirstLine = static_cast(nNewLine-mnVisLines+1);
+SetFirstLine(static_cast(nNewLine-mnVisLines+1));
 bNewLine = true;
 }
 }
@@ -924,12 +934,12 @@ void ValueSet::Format(vcl::RenderContext const & 
rRenderContext)
 
 if (mnLines <= mnVisLines)
 {
-mnFirstLine = 0;
+SetFirstLine(0);
 }
 else
 {
 if (mnFirstLine > o3tl::make_unsigned(mnLines - mnVisLines))
-mnFirstLine = static_cast(mnLines - mnVisLines);
+SetFirstLine(static_cast(mnLines - mnVisLines));
 }
 
 // calculate item size
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - include/svtools svtools/source

2020-06-15 Thread Caolán McNamara (via logerrit)
 include/svtools/valueset.hxx|1 
 svtools/source/control/valueset.cxx |   51 +++-
 2 files changed, 17 insertions(+), 35 deletions(-)

New commits:
commit dbe8bc3cea4d4cb7b3f90caede01c186c49fa51b
Author: Caolán McNamara 
AuthorDate: Sun Jun 14 19:41:04 2020 +0100
Commit: Caolán McNamara 
CommitDate: Mon Jun 15 10:06:04 2020 +0200

bundle copies of the same ValueSet pattern together as a method

Change-Id: Iea3c1de70ca840371aaffa3de678a622aa450c74
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96296
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 
(cherry picked from commit ec336de1bd600a131e6b7b0f2c2fdda98dd04fa3)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96281
Tested-by: Jenkins

diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index f1bdd154a790..29a17f530483 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -253,6 +253,7 @@ private:
 SVT_DLLPRIVATE void ImplFireAccessibleEvent( short nEventId, const 
css::uno::Any& rOldValue, const css::uno::Any& rNewValue );
 SVT_DLLPRIVATE bool ImplHasAccessibleListeners();
 SVT_DLLPRIVATE void ImplTracking(const Point& rPos);
+SVT_DLLPRIVATE void QueueReformat();
 SVT_DLLPRIVATE void RecalcScrollBar();
 DECL_DLLPRIVATE_LINK(ImplScrollHdl, weld::ScrolledWindow&, void);
 
diff --git a/svtools/source/control/valueset.cxx 
b/svtools/source/control/valueset.cxx
index 4bc20997393f..63d246b289d0 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -507,6 +507,14 @@ bool ValueSet::MouseMove(const MouseEvent& rMouseEvent)
 return CustomWidgetController::MouseMove(rMouseEvent);
 }
 
+void ValueSet::QueueReformat()
+{
+queue_resize();
+mbFormat = true;
+if ( IsReallyVisible() && IsUpdateMode() )
+Invalidate();
+}
+
 void ValueSet::RemoveItem( sal_uInt16 nItemId )
 {
 size_t nPos = GetItemPos( nItemId );
@@ -527,11 +535,7 @@ void ValueSet::RemoveItem( sal_uInt16 nItemId )
 mbNoSelection   = true;
 }
 
-queue_resize();
-
-mbFormat = true;
-if ( IsReallyVisible() && IsUpdateMode() )
-Invalidate();
+QueueReformat();
 }
 
 void ValueSet::RecalcScrollBar()
@@ -687,10 +691,7 @@ void ValueSet::RecalculateItemSizes()
 {
 mnUserItemWidth = aLargestItem.Width();
 mnUserItemHeight = aLargestItem.Height();
-mbFormat = true;
-queue_resize();
-if ( IsReallyVisible() && IsUpdateMode() )
-Invalidate();
+QueueReformat();
 }
 }
 
@@ -1456,10 +1457,7 @@ void ValueSet::SetColCount( sal_uInt16 nNewCols )
 if ( mnUserCols != nNewCols )
 {
 mnUserCols = nNewCols;
-mbFormat = true;
-queue_resize();
-if (IsReallyVisible() && IsUpdateMode())
-Invalidate();
+QueueReformat();
 }
 }
 
@@ -1636,11 +1634,7 @@ void ValueSet::ImplInsertItem( 
std::unique_ptr pItem, const size_t
 mItemList.push_back( std::move(pItem) );
 }
 
-queue_resize();
-
-mbFormat = true;
-if ( IsReallyVisible() && IsUpdateMode() )
-Invalidate();
+QueueReformat();
 }
 
 int ValueSet::GetScrollWidth() const
@@ -1690,10 +1684,7 @@ void ValueSet::SetLineCount( sal_uInt16 nNewLines )
 if ( mnUserVisLines != nNewLines )
 {
 mnUserVisLines = nNewLines;
-mbFormat = true;
-queue_resize();
-if ( IsReallyVisible() && IsUpdateMode() )
-Invalidate();
+QueueReformat();
 }
 }
 
@@ -1702,10 +1693,7 @@ void ValueSet::SetItemWidth( long nNewItemWidth )
 if ( mnUserItemWidth != nNewItemWidth )
 {
 mnUserItemWidth = nNewItemWidth;
-mbFormat = true;
-queue_resize();
-if ( IsReallyVisible() && IsUpdateMode() )
-Invalidate();
+QueueReformat();
 }
 }
 
@@ -1727,10 +1715,7 @@ void ValueSet::SetItemHeight( long nNewItemHeight )
 if ( mnUserItemHeight != nNewItemHeight )
 {
 mnUserItemHeight = nNewItemHeight;
-mbFormat = true;
-queue_resize();
-if ( IsReallyVisible() && IsUpdateMode() )
-Invalidate();
+QueueReformat();
 }
 }
 
@@ -1762,11 +1747,7 @@ void ValueSet::SetExtraSpacing( sal_uInt16 nNewSpacing )
 if ( GetStyle() & WB_ITEMBORDER )
 {
 mnSpacing = nNewSpacing;
-
-mbFormat = true;
-queue_resize();
-if ( IsReallyVisible() && IsUpdateMode() )
-Invalidate();
+QueueReformat();
 }
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits