summaryrefslogtreecommitdiffstats
path: root/hoverwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hoverwindow.cpp')
-rw-r--r--hoverwindow.cpp30
1 files changed, 13 insertions, 17 deletions
diff --git a/hoverwindow.cpp b/hoverwindow.cpp
index 4bfdae4..5c9db7a 100644
--- a/hoverwindow.cpp
+++ b/hoverwindow.cpp
@@ -7,7 +7,6 @@
#include <QHBoxLayout>
#include <QLabel>
-#include <QApplication>
#include <QDesktopWidget>
#include <QSize>
#include <QTextDocument>
@@ -20,6 +19,7 @@
#include <QPen>
#include <QColor>
#include <QApplication>
+#include <QStaticText>
#include "hoverwindow.h"
#include "smglobals.h"
@@ -100,30 +100,26 @@ void HoverWindow::setData(const QList<QVariant> &data){
}
void HoverWindow::setCaption(const QString &caption){
- const QPixmap *pm = mLabel->pixmap();
+ const QPixmap *pm = mLabel->pixmap();
if(!pm){
return;
- }
+ }
QFontMetrics fm = qApp->fontMetrics();
- QString elidedCap = fm.elidedText(caption, Qt::ElideMiddle, pm->size().width() - 18, Qt::TextSingleLine);
- QSize captionSize = fm.size(Qt::TextSingleLine, elidedCap);
- QImage img = pm->toImage();
- QPainter *p = new QPainter(&img);
+ QString elidedCap = fm.elidedText(caption, Qt::ElideLeft, pm->size().width() - 18, Qt::TextSingleLine);
+ QStaticText myCap(elidedCap);
+ QImage img = pm->toImage();
+ QPainter *p = new QPainter(&img);
QColor bgColor(Qt::white);
p->setBrush(QBrush(bgColor));
p->setPen(Qt::NoPen);
- qreal xStart = (pm->size().width() - captionSize.width()) / 2.0;
- QRectF bgRect(xStart, 5, captionSize.width() + 6, captionSize.height());
- p->drawRect(bgRect);
+ p->setOpacity(0.4);
+ qreal xStart = (mLabel->width() - myCap.size().width() - 9) / 2.0;
+ p->drawRect(QRect(QPoint(xStart, 5), QSize(myCap.size().toSize())));
+ p->setOpacity(1.0);
p->setPen(Qt::black);
- p->drawText(bgRect.topLeft().x() + 3, bgRect.topLeft().y() + fm.ascent(), elidedCap);
+ p->drawStaticText(xStart, 5, myCap);
delete p;
- mLabel->setPixmap(QPixmap::fromImage(img));
-}
-
-int HoverWindow::pixmapHeight() const{
- const QPixmap *pm = mLabel->pixmap();
- return pm ? pm->height() : 0;
+ mLabel->setPixmap(QPixmap::fromImage(img));
}
void HoverWindow::setPos(){