aboutsummaryrefslogtreecommitdiffhomepage
path: root/qt/ScintillaEditBase/PlatQt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt/ScintillaEditBase/PlatQt.cpp')
-rw-r--r--qt/ScintillaEditBase/PlatQt.cpp36
1 files changed, 17 insertions, 19 deletions
diff --git a/qt/ScintillaEditBase/PlatQt.cpp b/qt/ScintillaEditBase/PlatQt.cpp
index 275cb6e79..38f1d16d1 100644
--- a/qt/ScintillaEditBase/PlatQt.cpp
+++ b/qt/ScintillaEditBase/PlatQt.cpp
@@ -293,15 +293,13 @@ void SurfaceImpl::RectangleDraw(PRectangle rc,
{
PenColour(fore);
BrushColour(back);
- QRect rect = QRect(rc.left, rc.top, rc.Width() - 1, rc.Height() - 1);
+ QRectF rect(rc.left, rc.top, rc.Width() - 1, rc.Height() - 1);
GetPainter()->drawRect(rect);
}
void SurfaceImpl::FillRectangle(PRectangle rc, ColourDesired back)
{
- BrushColour(back);
- GetPainter()->setPen(Qt::NoPen);
- GetPainter()->drawRect(QRectFromPRect(rc));
+ GetPainter()->fillRect(QRectFFromPRect(rc), QColorFromCA(back));
}
void SurfaceImpl::FillRectangle(PRectangle rc, Surface &surfacePattern)
@@ -329,7 +327,7 @@ void SurfaceImpl::RoundedRectangle(PRectangle rc,
{
PenColour(fore);
BrushColour(back);
- GetPainter()->drawRoundRect(QRectFromPRect(rc));
+ GetPainter()->drawRoundRect(QRectFFromPRect(rc));
}
void SurfaceImpl::AlphaRectangle(PRectangle rc,
@@ -350,7 +348,7 @@ void SurfaceImpl::AlphaRectangle(PRectangle rc,
// A radius of 1 shows no curve so add 1
qreal radius = cornerSize+1;
- QRect rect(rc.left, rc.top, rc.Width() - 1, rc.Height() - 1);
+ QRectF rect(rc.left, rc.top, rc.Width() - 1, rc.Height() - 1);
GetPainter()->drawRoundedRect(rect, radius, radius);
}
@@ -378,7 +376,7 @@ void SurfaceImpl::Ellipse(PRectangle rc,
{
PenColour(fore);
BrushColour(back);
- GetPainter()->drawEllipse(QRectFromPRect(rc));
+ GetPainter()->drawEllipse(QRectFFromPRect(rc));
}
void SurfaceImpl::Copy(PRectangle rc, Point from, Surface &surfaceSource)
@@ -436,7 +434,7 @@ void SurfaceImpl::DrawTextTransparent(PRectangle rc,
void SurfaceImpl::SetClip(PRectangle rc)
{
- GetPainter()->setClipRect(QRectFromPRect(rc));
+ GetPainter()->setClipRect(QRectFFromPRect(rc));
}
static size_t utf8LengthFromLead(unsigned char uch)
@@ -475,11 +473,11 @@ void SurfaceImpl::MeasureWidths(Font &font,
int codeUnits = (lenChar < 4) ? 1 : 2;
qreal xPosition = tl.cursorToX(ui+codeUnits);
for (unsigned int bytePos=0; (bytePos<lenChar) && (i<len); bytePos++) {
- positions[i++] = qRound(xPosition);
+ positions[i++] = xPosition;
}
ui += codeUnits;
}
- int lastPos = 0;
+ XYPOSITION lastPos = 0;
if (i > 0)
lastPos = positions[i-1];
while (i<len) {
@@ -492,21 +490,21 @@ void SurfaceImpl::MeasureWidths(Font &font,
size_t lenChar = Platform::IsDBCSLeadByte(codePage, s[i]) ? 2 : 1;
qreal xPosition = tl.cursorToX(ui+1);
for (unsigned int bytePos=0; (bytePos<lenChar) && (i<len); bytePos++) {
- positions[i++] = qRound(xPosition);
+ positions[i++] = xPosition;
}
ui++;
}
} else {
// Single byte encoding
for (int i=0; i<len; i++) {
- positions[i] = qRound(tl.cursorToX(i+1));
+ positions[i] = tl.cursorToX(i+1);
}
}
}
XYPOSITION SurfaceImpl::WidthText(Font &font, const char *s, int len)
{
- QFontMetrics metrics(*FontPointer(font), device);
+ QFontMetricsF metrics(*FontPointer(font), device);
SetCodec(font);
QString string = codec->toUnicode(s, len);
return metrics.width(string);
@@ -514,19 +512,19 @@ XYPOSITION SurfaceImpl::WidthText(Font &font, const char *s, int len)
XYPOSITION SurfaceImpl::WidthChar(Font &font, char ch)
{
- QFontMetrics metrics(*FontPointer(font), device);
+ QFontMetricsF metrics(*FontPointer(font), device);
return metrics.width(ch);
}
XYPOSITION SurfaceImpl::Ascent(Font &font)
{
- QFontMetrics metrics(*FontPointer(font), device);
+ QFontMetricsF metrics(*FontPointer(font), device);
return metrics.ascent();
}
XYPOSITION SurfaceImpl::Descent(Font &font)
{
- QFontMetrics metrics(*FontPointer(font), device);
+ QFontMetricsF metrics(*FontPointer(font), device);
// Qt returns 1 less than true descent
// See: QFontEngineWin::descent which says:
// ### we subtract 1 to even out the historical +1 in QFontMetrics's
@@ -541,19 +539,19 @@ XYPOSITION SurfaceImpl::InternalLeading(Font & /* font */)
XYPOSITION SurfaceImpl::ExternalLeading(Font &font)
{
- QFontMetrics metrics(*FontPointer(font), device);
+ QFontMetricsF metrics(*FontPointer(font), device);
return metrics.leading();
}
XYPOSITION SurfaceImpl::Height(Font &font)
{
- QFontMetrics metrics(*FontPointer(font), device);
+ QFontMetricsF metrics(*FontPointer(font), device);
return metrics.height();
}
XYPOSITION SurfaceImpl::AverageCharWidth(Font &font)
{
- QFontMetrics metrics(*FontPointer(font), device);
+ QFontMetricsF metrics(*FontPointer(font), device);
return metrics.averageCharWidth();
}