[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - vcl/inc vcl/qt5
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Dec 14 16:37:19 UTC 2018
vcl/inc/qt5/Qt5Frame.hxx | 2 ++
vcl/inc/qt5/Qt5Widget.hxx | 4 ++++
vcl/qt5/Qt5Frame.cxx | 9 +++++++++
vcl/qt5/Qt5Widget.cxx | 12 ++++++++++--
4 files changed, 25 insertions(+), 2 deletions(-)
New commits:
commit 077fc6cff20130587017bcc001721e9a158335d1
Author: Katarina Behrens <Katarina.Behrens at cib.de>
AuthorDate: Tue Dec 11 12:12:52 2018 +0100
Commit: Michael Weghorn <m.weghorn at posteo.de>
CommitDate: Fri Dec 14 17:36:41 2018 +0100
tdf#120454: Implement native rendering of tooltips
side-step the entire misery of proper positioning of non-native
tooltips just like in gtk3
Change-Id: I09a75fae672d3d999c946c50c547d5f2cfa3ec14
Reviewed-on: https://gerrit.libreoffice.org/64956
Tested-by: Jenkins
Reviewed-by: Katarina Behrens <Katarina.Behrens at cib.de>
(cherry picked from commit e4e28359d688992deb8be5fbfdb3bcae855a7fe2)
Qt5 fix the clang plugin build
... and fix the global Qt* and wrong included headers.
Change-Id: I436628d3a2d4469d5cc72f9fe7f394426d86fb2e
Reviewed-on: https://gerrit.libreoffice.org/65023
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>
Reviewed-on: https://gerrit.libreoffice.org/65166
Reviewed-by: Michael Weghorn <m.weghorn at posteo.de>
diff --git a/vcl/inc/qt5/Qt5Frame.hxx b/vcl/inc/qt5/Qt5Frame.hxx
index 766044a7b6d5..4ed3d7a2060a 100644
--- a/vcl/inc/qt5/Qt5Frame.hxx
+++ b/vcl/inc/qt5/Qt5Frame.hxx
@@ -108,6 +108,7 @@ private Q_SLOTS:
Q_SIGNALS:
void setVisibleSignal(bool);
+ void tooltipRequest(const OUString& rTooltip);
public:
Qt5Frame(Qt5Frame* pParent, SalFrameStyleFlags nSalFrameStyle, bool bUseCairo);
@@ -157,6 +158,7 @@ public:
virtual void SetPointer(PointerStyle ePointerStyle) override;
virtual void CaptureMouse(bool bMouse) override;
virtual void SetPointerPos(long nX, long nY) override;
+ virtual bool ShowTooltip(const OUString& rText, const tools::Rectangle& rHelpArea) override;
using SalFrame::Flush;
virtual void Flush() override;
virtual void SetInputContext(SalInputContext* pContext) override;
diff --git a/vcl/inc/qt5/Qt5Widget.hxx b/vcl/inc/qt5/Qt5Widget.hxx
index 9f14d44fd5ef..ad043650b32e 100644
--- a/vcl/inc/qt5/Qt5Widget.hxx
+++ b/vcl/inc/qt5/Qt5Widget.hxx
@@ -20,6 +20,7 @@
#pragma once
#include <QtWidgets/QWidget>
+#include <rtl/ustring.hxx>
class Qt5Frame;
class Qt5Object;
@@ -58,6 +59,9 @@ class Qt5Widget : public QWidget
const QString m_InternalMimeType = "application/x-libreoffice-dnditem";
+public slots:
+ static void showTooltip(const OUString& rTip);
+
public:
Qt5Widget(Qt5Frame& rFrame, Qt::WindowFlags f = Qt::WindowFlags());
Qt5Frame* m_pFrame;
diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx
index 3ab8ead48f50..1a39eefbab87 100644
--- a/vcl/qt5/Qt5Frame.cxx
+++ b/vcl/qt5/Qt5Frame.cxx
@@ -115,7 +115,10 @@ Qt5Frame::Qt5Frame(Qt5Frame* pParent, SalFrameStyleFlags nStyle, bool bUseCairo)
}
else
m_pQWidget = new Qt5Widget(*this, aWinFlags);
+
connect(this, SIGNAL(setVisibleSignal(bool)), SLOT(setVisible(bool)));
+ connect(this, &Qt5Frame::tooltipRequest, static_cast<Qt5Widget*>(m_pQWidget),
+ &Qt5Widget::showTooltip);
if (pParent && !(pParent->m_nStyle & SalFrameStyleFlags::PLUG))
{
@@ -637,6 +640,12 @@ void Qt5Frame::Flush()
// destroyed, so that state should be safely flushed.
}
+bool Qt5Frame::ShowTooltip(const OUString& rText, const tools::Rectangle& /*rHelpArea*/)
+{
+ emit tooltipRequest(rText);
+ return true;
+}
+
// do we even need it? void Qt5Frame::Flush(const tools::Rectangle& /*rRect*/) {}
void Qt5Frame::SetInputContext(SalInputContext* /*pContext*/)
diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx
index 2d108fa21cd5..ba839a6abaea 100644
--- a/vcl/qt5/Qt5Widget.cxx
+++ b/vcl/qt5/Qt5Widget.cxx
@@ -24,7 +24,8 @@
#include <Qt5Graphics.hxx>
#include <Qt5Tools.hxx>
-#include <QtCore/QtGlobal>
+#include <QtCore/QMimeData>
+#include <QtGui/QDrag>
#include <QtGui/QFocusEvent>
#include <QtGui/QImage>
#include <QtGui/QKeyEvent>
@@ -34,8 +35,9 @@
#include <QtGui/QResizeEvent>
#include <QtGui/QShowEvent>
#include <QtGui/QWheelEvent>
-#include <QtWidgets/QtWidgets>
#include <QtWidgets/QMainWindow>
+#include <QtWidgets/QToolTip>
+#include <QtWidgets/QWidget>
#include <cairo.h>
#include <headless/svpgdi.hxx>
@@ -410,6 +412,12 @@ void Qt5Widget::focusOutEvent(QFocusEvent*)
m_pFrame->CallCallback(SalEvent::LoseFocus, nullptr);
}
+void Qt5Widget::showTooltip(const OUString& rTooltip)
+{
+ QPoint pt = QCursor::pos();
+ QToolTip::showText(pt, toQString(rTooltip));
+}
+
Qt5Widget::Qt5Widget(Qt5Frame& rFrame, Qt::WindowFlags f)
: QWidget(Q_NULLPTR, f)
, m_pFrame(&rFrame)
More information about the Libreoffice-commits
mailing list