diff options
Diffstat (limited to 'qt/ScintillaEditBase/PlatQt.cpp')
-rw-r--r-- | qt/ScintillaEditBase/PlatQt.cpp | 36 |
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(); } |