diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/qt5/Qt5Frame.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/qt5/Qt5Widget.hxx | 4 | ||||
-rw-r--r-- | vcl/qt5/Qt5Frame.cxx | 9 | ||||
-rw-r--r-- | vcl/qt5/Qt5Widget.cxx | 7 |
4 files changed, 22 insertions, 0 deletions
diff --git a/vcl/inc/qt5/Qt5Frame.hxx b/vcl/inc/qt5/Qt5Frame.hxx index 766044a7b6d5..86f22e9d95eb 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); 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..ce68e1892c8c 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: + 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..373977693e0a 100644 --- a/vcl/qt5/Qt5Widget.cxx +++ b/vcl/qt5/Qt5Widget.cxx @@ -33,6 +33,7 @@ #include <QtGui/QPaintEvent> #include <QtGui/QResizeEvent> #include <QtGui/QShowEvent> +#include <QtGui/QToolTip> #include <QtGui/QWheelEvent> #include <QtWidgets/QtWidgets> #include <QtWidgets/QMainWindow> @@ -410,6 +411,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) |