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 7fdd8083ff9b87a093f194269c85f6d02a1d6aa5 Author: Katarina Behrens <katarina.behr...@cib.de> AuthorDate: Tue Dec 11 12:12:52 2018 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Tue Jan 15 17:33:59 2019 +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.behr...@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 <glo...@fbihome.de> Reviewed-on: https://gerrit.libreoffice.org/65166 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> (cherry picked from commit 077fc6cff20130587017bcc001721e9a158335d1) Reviewed-on: https://gerrit.libreoffice.org/66302 Tested-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/inc/qt5/Qt5Frame.hxx b/vcl/inc/qt5/Qt5Frame.hxx index 9d7b15792731..34cbc0b33001 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); @@ -156,6 +157,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 30d1504347ff..9a70b9a6e391 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)) { @@ -635,6 +638,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) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits