From ac1267c88dbc7f5f307d09a15b58ab2203b963a9 Mon Sep 17 00:00:00 2001 From: Gres Date: Sun, 29 Mar 2020 11:16:28 +0300 Subject: [PATCH] Show current languages for capture area --- src/capture/capturearea.cpp | 6 ++++++ src/capture/capturearea.h | 2 ++ src/capture/captureareaselector.cpp | 20 +++++++++++++++----- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/capture/capturearea.cpp b/src/capture/capturearea.cpp index 3580ebf..04c29a5 100644 --- a/src/capture/capturearea.cpp +++ b/src/capture/capturearea.cpp @@ -42,3 +42,9 @@ void CaptureArea::setRect(const QRect &rect) { rect_ = rect; } + +QString CaptureArea::toolTip() const +{ + return doTranslation_ ? sourceLanguage_ + "->" + targetLanguage_ + : sourceLanguage_; +} diff --git a/src/capture/capturearea.h b/src/capture/capturearea.h index 4294cef..ab763f9 100644 --- a/src/capture/capturearea.h +++ b/src/capture/capturearea.h @@ -17,6 +17,8 @@ public: const QRect& rect() const; void setRect(const QRect& rect); + QString toolTip() const; + private: friend class CaptureAreaEditor; diff --git a/src/capture/captureareaselector.cpp b/src/capture/captureareaselector.cpp index 5767eaf..9d5bc74 100644 --- a/src/capture/captureareaselector.cpp +++ b/src/capture/captureareaselector.cpp @@ -86,9 +86,8 @@ void CaptureAreaSelector::paintEvent(QPaintEvent * /*event*/) if (!selection.isValid()) return; - painter.setBrush({}); - painter.setPen(Qt::red); - painter.drawRect(selection); + const auto area = CaptureArea(selection, settings_); + drawCaptureArea(painter, area); } bool CaptureAreaSelector::updateCurrentHelpRects() @@ -128,13 +127,24 @@ void CaptureAreaSelector::drawHelpRects(QPainter &painter, void CaptureAreaSelector::drawCaptureArea(QPainter &painter, const CaptureArea &area) const { + const auto areaRect = area.rect(); + const auto toolTip = area.toolTip(); + auto toolTipRect = painter.boundingRect(QRect(), 0, toolTip); + toolTipRect.moveTopLeft(areaRect.topLeft() - QPoint(0, toolTipRect.height())); + painter.setBrush(QBrush(QColor(200, 200, 200, 50))); painter.setPen(Qt::NoPen); - painter.drawRect(area.rect()); + painter.drawRect(areaRect); + + painter.setBrush(QBrush(QColor(200, 200, 200, 150))); + painter.drawRect(toolTipRect); painter.setBrush({}); painter.setPen(Qt::red); - painter.drawRect(area.rect()); + painter.drawRect(areaRect); + + painter.setPen(Qt::white); + painter.drawText(toolTipRect, 0, toolTip); } void CaptureAreaSelector::showEvent(QShowEvent * /*event*/)