[Libreoffice-commits] core.git: 2 commits - extensions/source include/vcl vcl/source vcl/unx
Jim Raykowski (via logerrit)
logerrit at kemper.freedesktop.org
Mon Dec 9 12:30:25 UTC 2019
extensions/source/propctrlr/browserline.cxx | 1
extensions/source/propctrlr/browserline.hxx | 2 -
extensions/source/propctrlr/browserlistbox.cxx | 1
extensions/source/propctrlr/browserlistbox.hxx | 2 -
extensions/source/propctrlr/commoncontrol.cxx | 1
extensions/source/propctrlr/inspectorhelpwindow.hxx | 2 -
extensions/source/propctrlr/standardcontrol.cxx | 3 --
extensions/source/propctrlr/usercontrol.hxx | 1
include/vcl/treelistbox.hxx | 2 +
include/vcl/weld.hxx | 8 +++++++
vcl/source/app/salvtables.cxx | 19 +++++++++++++++++
vcl/source/treelist/treelistbox.cxx | 9 ++++++--
vcl/unx/gtk3/gtk3gtkinst.cxx | 22 ++++++++++++++++++++
13 files changed, 58 insertions(+), 15 deletions(-)
New commits:
commit 6303f8ac291233b1f6888a8d71e769debe0f9fb0
Author: Jim Raykowski <raykowj at gmail.com>
AuthorDate: Thu Dec 5 12:14:37 2019 -0900
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Dec 9 13:29:32 2019 +0100
tdf#108458 related: Add tooltip handling to TreeView
Supports GtkInstanceTreeView and SalInstanceTreeView
Change-Id: I33984f78c26135319531eace2a3e2e2e28712af1
Reviewed-on: https://gerrit.libreoffice.org/84587
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze at documentfoundation.org>
Tested-by: Heiko Tietze <heiko.tietze at documentfoundation.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/include/vcl/treelistbox.hxx b/include/vcl/treelistbox.hxx
index cb4945a96717..ba088cee8c6f 100644
--- a/include/vcl/treelistbox.hxx
+++ b/include/vcl/treelistbox.hxx
@@ -200,6 +200,7 @@ class VCL_DLLPUBLIC SvTreeListBox
Link<SvTreeListBox*,void> aSelectHdl;
Link<SvTreeListBox*,void> aDeselectHdl;
Link<const CommandEvent&, bool> aPopupMenuHdl;
+ Link<const HelpEvent&, void> aTooltipHdl;
Image aPrevInsertedExpBmp;
Image aPrevInsertedColBmp;
@@ -433,6 +434,7 @@ public:
void SetExpandingHdl(const Link<SvTreeListBox*,bool>& rNewHdl){aExpandingHdl=rNewHdl;}
void SetExpandedHdl(const Link<SvTreeListBox*,void>& rNewHdl){aExpandedHdl=rNewHdl;}
void SetPopupMenuHdl(const Link<const CommandEvent&, bool>& rLink) { aPopupMenuHdl = rLink; }
+ void SetTooltipHdl(const Link<const HelpEvent&, void>& rLink) { aTooltipHdl = rLink; }
virtual void ExpandedHdl();
virtual bool ExpandingHdl();
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index e68d46c420d6..54a72e80c32d 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -730,7 +730,15 @@ protected:
return m_aEditingDoneHdl.Call(rIterText);
}
+ Link<const TreeIter&, OUString> m_aQueryTooltipHdl;
+ OUString signal_query_tooltip(const TreeIter& rIter) { return m_aQueryTooltipHdl.Call(rIter); }
+
public:
+ void connect_query_tooltip(const Link<const TreeIter&, OUString>& rLink)
+ {
+ m_aQueryTooltipHdl = rLink;
+ }
+
virtual void insert(const TreeIter* pParent, int pos, const OUString* pStr, const OUString* pId,
const OUString* pIconName, VirtualDevice* pImageSurface,
const OUString* pExpanderName, bool bChildrenOnDemand, TreeIter* pRet)
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 844281cb806e..e26a6a3713fe 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3469,6 +3469,7 @@ private:
DECL_LINK(VisibleRangeChangedHdl, SvTreeListBox*, void);
DECL_LINK(CompareHdl, const SvSortData&, sal_Int32);
DECL_LINK(PopupMenuHdl, const CommandEvent&, bool);
+ DECL_LINK(TooltipHdl, const HelpEvent&, void);
bool IsDummyEntry(SvTreeListEntry* pEntry) const
{
@@ -3490,6 +3491,7 @@ public:
m_xTreeView->SetDoubleClickHdl(LINK(this, SalInstanceTreeView, DoubleClickHdl));
m_xTreeView->SetExpandingHdl(LINK(this, SalInstanceTreeView, ExpandingHdl));
m_xTreeView->SetPopupMenuHdl(LINK(this, SalInstanceTreeView, PopupMenuHdl));
+ m_xTreeView->SetTooltipHdl(LINK(this, SalInstanceTreeView, TooltipHdl));
const long aTabPositions[] = { 0 };
m_xTreeView->SetTabs(SAL_N_ELEMENTS(aTabPositions), aTabPositions);
LclHeaderTabListBox* pHeaderBox = dynamic_cast<LclHeaderTabListBox*>(m_xTreeView.get());
@@ -4625,9 +4627,26 @@ public:
m_xTreeView->SetSelectHdl(Link<SvTreeListBox*, void>());
m_xTreeView->SetDeselectHdl(Link<SvTreeListBox*, void>());
m_xTreeView->SetScrolledHdl(Link<SvTreeListBox*, void>());
+ m_xTreeView->SetTooltipHdl(Link<const HelpEvent&, void>());
}
};
+IMPL_LINK(SalInstanceTreeView, TooltipHdl, const HelpEvent&, rHEvt, void)
+{
+ if (notify_events_disabled())
+ return;
+ Point aPos(m_xTreeView->ScreenToOutputPixel(rHEvt.GetMousePosPixel()));
+ SvTreeListEntry* pEntry = m_xTreeView->GetEntry(aPos);
+ if (pEntry)
+ {
+ SalInstanceTreeIter aIter(pEntry);
+ OUString aTooltip = signal_query_tooltip(aIter);
+ Size aSize(m_xTreeView->GetOutputSizePixel().Width(), m_xTreeView->GetEntryHeight());
+ tools::Rectangle aScreenRect(m_xTreeView->OutputToScreenPixel(m_xTreeView->GetEntryPosition(pEntry)), aSize);
+ Help::ShowQuickHelp(m_xTreeView, aScreenRect, aTooltip);
+ }
+}
+
IMPL_LINK(SalInstanceTreeView, CompareHdl, const SvSortData&, rSortData, sal_Int32)
{
const SvTreeListEntry* pLHS = rSortData.pLeft;
diff --git a/vcl/source/treelist/treelistbox.cxx b/vcl/source/treelist/treelistbox.cxx
index fc73a389bfb2..a192fa7ddb03 100644
--- a/vcl/source/treelist/treelistbox.cxx
+++ b/vcl/source/treelist/treelistbox.cxx
@@ -3322,8 +3322,13 @@ void SvTreeListBox::GetLastTab( SvLBoxTabFlags nFlagMask, sal_uInt16& rTabPos )
void SvTreeListBox::RequestHelp( const HelpEvent& rHEvt )
{
- if( !pImpl->RequestHelp( rHEvt ) )
- Control::RequestHelp( rHEvt );
+ if (aTooltipHdl.IsSet())
+ aTooltipHdl.Call(rHEvt);
+ else
+ {
+ if( !pImpl->RequestHelp( rHEvt ) )
+ Control::RequestHelp( rHEvt );
+ }
}
sal_Int32 SvTreeListBox::DefaultCompare(const SvLBoxString* pLeftText, const SvLBoxString* pRightText)
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 5c7b8ae9ac5c..504355c09189 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -8037,6 +8037,7 @@ private:
gulong m_nDragDataDeleteignalId;
gulong m_nDragGetSignalId;
gulong m_nKeyPressSignalId;
+ gulong m_nQueryTooltipSignalId;
ImplSVEvent* m_pChangeEvent;
DECL_LINK(async_signal_changed, void*, void);
@@ -8521,6 +8522,24 @@ private:
return pThis->signal_key_press(pEvent);
}
+ static gboolean signalQueryTooltip(GtkWidget* /*pGtkWidget*/, gint x, gint y,
+ gboolean keyboard_tip, GtkTooltip *tooltip,
+ gpointer widget)
+ {
+ GtkInstanceTreeView* pThis = static_cast<GtkInstanceTreeView*>(widget);
+ GtkTreeIter iter;
+ GtkTreeView *pTreeView = pThis->m_pTreeView;
+ GtkTreeModel *pModel = gtk_tree_view_get_model(pTreeView);
+ GtkTreePath *pPath = nullptr;
+ if (!gtk_tree_view_get_tooltip_context(pTreeView, &x, &y, keyboard_tip, &pModel, &pPath, &iter))
+ return false;
+ OUString aTooltip = pThis->signal_query_tooltip(GtkInstanceTreeIter(iter));
+ gtk_tooltip_set_text(tooltip, OUStringToOString(aTooltip, RTL_TEXTENCODING_UTF8).getStr());
+ gtk_tree_view_set_tooltip_row(pTreeView, tooltip, pPath);
+ gtk_tree_path_free(pPath);
+ return true;
+ }
+
public:
GtkInstanceTreeView(GtkTreeView* pTreeView, GtkInstanceBuilder* pBuilder, bool bTakeOwnership)
: GtkInstanceContainer(GTK_CONTAINER(pTreeView), pBuilder, bTakeOwnership)
@@ -8543,6 +8562,7 @@ public:
, m_nDragDataDeleteignalId(0)
, m_nDragGetSignalId(0)
, m_nKeyPressSignalId(g_signal_connect(pTreeView, "key-press-event", G_CALLBACK(signalKeyPress), this))
+ , m_nQueryTooltipSignalId(g_signal_connect(pTreeView, "query-tooltip", G_CALLBACK(signalQueryTooltip), this))
, m_pChangeEvent(nullptr)
{
m_pColumns = gtk_tree_view_get_columns(m_pTreeView);
@@ -10007,6 +10027,8 @@ public:
m_aColumnSignalIds.pop_back();
}
g_list_free(m_pColumns);
+
+ g_signal_handler_disconnect(m_pTreeView, m_nQueryTooltipSignalId);
}
};
commit 961c3dd1332901289ee6b67036657d6b8a87c59c
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sun Dec 8 20:53:12 2019 +0000
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Dec 9 13:29:02 2019 +0100
drop some unnecessary includes
Change-Id: I9f06ce16f6e40b3e0760469217c56cba2ae22f8d
Reviewed-on: https://gerrit.libreoffice.org/84730
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/extensions/source/propctrlr/browserline.cxx b/extensions/source/propctrlr/browserline.cxx
index 6dcd483dc941..9d8d0360ba8e 100644
--- a/extensions/source/propctrlr/browserline.cxx
+++ b/extensions/source/propctrlr/browserline.cxx
@@ -28,7 +28,6 @@
#include <comphelper/string.hxx>
#include <tools/debug.hxx>
#include <tools/diagnose_ex.h>
-#include <toolkit/helper/vclunohelper.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
diff --git a/extensions/source/propctrlr/browserline.hxx b/extensions/source/propctrlr/browserline.hxx
index fb841740ac48..0610f8220faa 100644
--- a/extensions/source/propctrlr/browserline.hxx
+++ b/extensions/source/propctrlr/browserline.hxx
@@ -21,8 +21,6 @@
#define INCLUDED_EXTENSIONS_SOURCE_PROPCTRLR_BROWSERLINE_HXX
#include <com/sun/star/inspection/XPropertyControl.hpp>
-#include <vcl/fixed.hxx>
-#include <vcl/button.hxx>
#include <vcl/weld.hxx>
namespace com { namespace sun { namespace star { namespace inspection { namespace PropertyLineElement
diff --git a/extensions/source/propctrlr/browserlistbox.cxx b/extensions/source/propctrlr/browserlistbox.cxx
index 11b6ecf178e6..e2b5f82999f6 100644
--- a/extensions/source/propctrlr/browserlistbox.cxx
+++ b/extensions/source/propctrlr/browserlistbox.cxx
@@ -34,7 +34,6 @@
#include <cppuhelper/implbase.hxx>
#include <vcl/commandevent.hxx>
#include <vcl/event.hxx>
-#include <vcl/lstbox.hxx>
#include <vcl/svapp.hxx>
#include <osl/mutex.hxx>
diff --git a/extensions/source/propctrlr/browserlistbox.hxx b/extensions/source/propctrlr/browserlistbox.hxx
index 8ebbee9c573f..a250816dd7fb 100644
--- a/extensions/source/propctrlr/browserlistbox.hxx
+++ b/extensions/source/propctrlr/browserlistbox.hxx
@@ -26,8 +26,6 @@
#include <com/sun/star/inspection/XPropertyControl.hpp>
#include <com/sun/star/inspection/XPropertyHandler.hpp>
-#include <vcl/scrbar.hxx>
-#include <vcl/button.hxx>
#include <vcl/weld.hxx>
#include <tools/link.hxx>
#include <rtl/ref.hxx>
diff --git a/extensions/source/propctrlr/commoncontrol.cxx b/extensions/source/propctrlr/commoncontrol.cxx
index f224349da8ea..b60ecdc8763f 100644
--- a/extensions/source/propctrlr/commoncontrol.cxx
+++ b/extensions/source/propctrlr/commoncontrol.cxx
@@ -21,7 +21,6 @@
#include "pcrcommon.hxx"
#include <tools/debug.hxx>
#include <tools/diagnose_ex.h>
-#include <vcl/combobox.hxx>
namespace pcr
diff --git a/extensions/source/propctrlr/inspectorhelpwindow.hxx b/extensions/source/propctrlr/inspectorhelpwindow.hxx
index 5c2a672019fe..fb8d15290eff 100644
--- a/extensions/source/propctrlr/inspectorhelpwindow.hxx
+++ b/extensions/source/propctrlr/inspectorhelpwindow.hxx
@@ -19,9 +19,7 @@
#ifndef INCLUDED_EXTENSIONS_SOURCE_PROPCTRLR_INSPECTORHELPWINDOW_HXX
#define INCLUDED_EXTENSIONS_SOURCE_PROPCTRLR_INSPECTORHELPWINDOW_HXX
-#include <vcl/fixed.hxx>
#include <vcl/weld.hxx>
-#include <svtools/svmedit.hxx>
namespace pcr
{
diff --git a/extensions/source/propctrlr/standardcontrol.cxx b/extensions/source/propctrlr/standardcontrol.cxx
index 6d2cba9c2ac3..6b5b8519a01d 100644
--- a/extensions/source/propctrlr/standardcontrol.cxx
+++ b/extensions/source/propctrlr/standardcontrol.cxx
@@ -38,18 +38,15 @@
#include <svx/drawitem.hxx>
#include <svx/xtable.hxx>
-#include <vcl/floatwin.hxx>
#include <svtools/svmedit.hxx>
#include <svtools/colorcfg.hxx>
#include <svl/zforlist.hxx>
#include <unotools/syslocale.hxx>
#include <unotools/datetime.hxx>
#include <i18nlangtag/languagetag.hxx>
-#include <vcl/button.hxx>
#include <vcl/event.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
-#include <vcl/ptrstyle.hxx>
#include <cstdlib>
#include <limits>
diff --git a/extensions/source/propctrlr/usercontrol.hxx b/extensions/source/propctrlr/usercontrol.hxx
index a80127311c5a..b13766c1bc82 100644
--- a/extensions/source/propctrlr/usercontrol.hxx
+++ b/extensions/source/propctrlr/usercontrol.hxx
@@ -21,7 +21,6 @@
#define INCLUDED_EXTENSIONS_SOURCE_PROPCTRLR_USERCONTROL_HXX
#include "commoncontrol.hxx"
-#include <vcl/fmtfield.hxx>
#include <svtools/fileurlbox.hxx>
#include <svl/zforlist.hxx>
#include "standardcontrol.hxx"
More information about the Libreoffice-commits
mailing list