mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
#9130 Text in main work area isn't rendered with high resolution
Draw version string to splash image with correct position and size
This commit is contained in:
parent
345ec48ed3
commit
84e6b98562
@ -164,23 +164,36 @@ public:
|
|||||||
// The font used to display the version info
|
// The font used to display the version info
|
||||||
font.setStyleHint(QFont::SansSerif);
|
font.setStyleHint(QFont::SansSerif);
|
||||||
font.setWeight(QFont::Bold);
|
font.setWeight(QFont::Bold);
|
||||||
font.setPointSize(int(toqstr(lyxrc.font_sizes[FONT_SIZE_LARGE]).toDouble()));
|
int size = int(toqstr(lyxrc.font_sizes[FONT_SIZE_LARGE]).toDouble());
|
||||||
|
size *= splashPixelRatio() / pixelRatio();
|
||||||
|
font.setPointSize(size);
|
||||||
pain.setFont(font);
|
pain.setFont(font);
|
||||||
pain.drawText(190, 225, text);
|
int x = 190;
|
||||||
|
int y = 225;
|
||||||
|
x *= splashPixelRatio() / pixelRatio();
|
||||||
|
y *= splashPixelRatio() / pixelRatio();
|
||||||
|
LYXERR(Debug::GUI,
|
||||||
|
"widget pixel ratio: " << pixelRatio() <<
|
||||||
|
" splash pixel ratio: " << splashPixelRatio() <<
|
||||||
|
" text position: @" << x << "+" << y);
|
||||||
|
pain.drawText(x, y, text);
|
||||||
setFocusPolicy(Qt::StrongFocus);
|
setFocusPolicy(Qt::StrongFocus);
|
||||||
}
|
}
|
||||||
|
|
||||||
void paintEvent(QPaintEvent *)
|
void paintEvent(QPaintEvent *)
|
||||||
{
|
{
|
||||||
QRectF r = splash_.rect();
|
int w = splash_.width();
|
||||||
#if QT_VERSION >= 0x050000
|
int h = splash_.height();
|
||||||
r.setWidth(r.width() / splash_.devicePixelRatio());
|
w /= splashPixelRatio();
|
||||||
r.setHeight(r.height() / splash_.devicePixelRatio());
|
h /= splashPixelRatio();
|
||||||
#endif
|
int x = (width() - w) / 2;
|
||||||
int x = (width() - r.width()) / 2;
|
int y = (height() - h) / 2;
|
||||||
int y = (height() - r.height()) / 2;
|
LYXERR(Debug::GUI,
|
||||||
|
"widget pixel ratio: " << pixelRatio() <<
|
||||||
|
" splash pixel ratio: " << splashPixelRatio() <<
|
||||||
|
" paint pixmap: " << w << "x" << h << "@" << x << "+" << y);
|
||||||
QPainter pain(this);
|
QPainter pain(this);
|
||||||
pain.drawPixmap(x, y, splash_);
|
pain.drawPixmap(x, y, w, h, splash_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void keyPressEvent(QKeyEvent * ev)
|
void keyPressEvent(QKeyEvent * ev)
|
||||||
@ -197,6 +210,24 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QPixmap splash_;
|
QPixmap splash_;
|
||||||
|
|
||||||
|
/// Current ratio between physical pixels and device-independent pixels
|
||||||
|
double pixelRatio() const {
|
||||||
|
#if QT_VERSION >= 0x050000
|
||||||
|
return devicePixelRatio();
|
||||||
|
#else
|
||||||
|
return 1.0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Ratio between physical pixels and device-independent pixels of splash image
|
||||||
|
double splashPixelRatio() const {
|
||||||
|
#if QT_VERSION >= 0x050000
|
||||||
|
return splash_.devicePixelRatio();
|
||||||
|
#else
|
||||||
|
return 1.0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user