- fix: can't compile under linux
- enhancement: support Devcie Pixel Ratio ( for linux )
This commit is contained in:
parent
13c7ea4d3b
commit
9302439fcb
2
NEWS.md
2
NEWS.md
|
@ -3,6 +3,8 @@ Red Panda C++ Version 1.0.3
|
||||||
the app is restored to normal state, no matter it's current state.
|
the app is restored to normal state, no matter it's current state.
|
||||||
- enhancement: input shortcut in the option dialog's general -> shortcut page by pressing keys.
|
- enhancement: input shortcut in the option dialog's general -> shortcut page by pressing keys.
|
||||||
- enhancement: shift+ctrl+down/up to move currenlt selection lines up / down
|
- enhancement: shift+ctrl+down/up to move currenlt selection lines up / down
|
||||||
|
- fix: can't compile under linux
|
||||||
|
- enhancement: support Devcie Pixel Ratio ( for linux )
|
||||||
|
|
||||||
Red Panda C++ Version 1.0.2
|
Red Panda C++ Version 1.0.2
|
||||||
- enhancement: press tab in column mode won't exit column mode
|
- enhancement: press tab in column mode won't exit column mode
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
#include <QTextBlock>
|
#include <QTextBlock>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
#include <QFileIconProvider>
|
#include <QFileIconProvider>
|
||||||
#include "MainWindow.h"
|
#include "mainwindow.h"
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QTextDocumentFragment>
|
#include <QTextDocumentFragment>
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,9 @@ SynEdit::SynEdit(QWidget *parent) : QAbstractScrollArea(parent),
|
||||||
mScrollHintColor = Qt::yellow;
|
mScrollHintColor = Qt::yellow;
|
||||||
mScrollHintFormat = SynScrollHintFormat::shfTopLineOnly;
|
mScrollHintFormat = SynScrollHintFormat::shfTopLineOnly;
|
||||||
|
|
||||||
mContentImage = std::make_shared<QImage>(clientWidth(),clientHeight(),QImage::Format_ARGB32);
|
qreal dpr=devicePixelRatioF();
|
||||||
|
mContentImage = std::make_shared<QImage>(clientWidth()*dpr,clientHeight()*dpr,QImage::Format_ARGB32);
|
||||||
|
mContentImage->setDevicePixelRatio(dpr);
|
||||||
|
|
||||||
mUseCodeFolding = true;
|
mUseCodeFolding = true;
|
||||||
m_blinkTimerId = 0;
|
m_blinkTimerId = 0;
|
||||||
|
@ -5970,7 +5972,14 @@ void SynEdit::paintEvent(QPaintEvent *event)
|
||||||
// only update caret
|
// only update caret
|
||||||
// calculate the needed invalid area for caret
|
// calculate the needed invalid area for caret
|
||||||
//qDebug()<<"update caret"<<rcCaret;
|
//qDebug()<<"update caret"<<rcCaret;
|
||||||
painter.drawImage(rcCaret,*mContentImage,rcCaret);
|
QRectF cacheRC;
|
||||||
|
qreal dpr = mContentImage->devicePixelRatioF();
|
||||||
|
cacheRC.setLeft(rcClip.left()*dpr);
|
||||||
|
cacheRC.setTop(rcClip.top()*dpr);
|
||||||
|
cacheRC.setWidth(rcClip.width()*dpr);
|
||||||
|
cacheRC.setHeight(rcClip.height()*dpr);
|
||||||
|
qDebug()<<rcClip<<rcCaret<<cacheRC;
|
||||||
|
painter.drawImage(rcCaret,*mContentImage,cacheRC);
|
||||||
} else {
|
} else {
|
||||||
QRect rcDraw;
|
QRect rcDraw;
|
||||||
int nL1, nL2, nC1, nC2;
|
int nL1, nL2, nC1, nC2;
|
||||||
|
@ -6009,7 +6018,13 @@ void SynEdit::paintEvent(QPaintEvent *event)
|
||||||
// If there is a custom paint handler call it.
|
// If there is a custom paint handler call it.
|
||||||
onPaint(painter);
|
onPaint(painter);
|
||||||
doOnPaintTransient(SynTransientType::ttAfter);
|
doOnPaintTransient(SynTransientType::ttAfter);
|
||||||
painter.drawImage(rcClip,*mContentImage,rcClip);
|
QRectF cacheRC;
|
||||||
|
qreal dpr = mContentImage->devicePixelRatioF();
|
||||||
|
cacheRC.setLeft(rcClip.left()*dpr);
|
||||||
|
cacheRC.setTop(rcClip.top()*dpr);
|
||||||
|
cacheRC.setWidth(rcClip.width()*dpr);
|
||||||
|
cacheRC.setHeight(rcClip.height()*dpr);
|
||||||
|
painter.drawImage(rcClip,*mContentImage,cacheRC);
|
||||||
}
|
}
|
||||||
paintCaret(painter, rcCaret);
|
paintCaret(painter, rcCaret);
|
||||||
}
|
}
|
||||||
|
@ -6017,8 +6032,10 @@ void SynEdit::paintEvent(QPaintEvent *event)
|
||||||
void SynEdit::resizeEvent(QResizeEvent *)
|
void SynEdit::resizeEvent(QResizeEvent *)
|
||||||
{
|
{
|
||||||
//resize the cache image
|
//resize the cache image
|
||||||
std::shared_ptr<QImage> image = std::make_shared<QImage>(clientWidth(),clientHeight(),
|
qreal dpr = devicePixelRatioF();
|
||||||
|
std::shared_ptr<QImage> image = std::make_shared<QImage>(clientWidth()*dpr,clientHeight()*dpr,
|
||||||
QImage::Format_ARGB32);
|
QImage::Format_ARGB32);
|
||||||
|
image->setDevicePixelRatio(dpr);
|
||||||
QRect newRect = image->rect().intersected(mContentImage->rect());
|
QRect newRect = image->rect().intersected(mContentImage->rect());
|
||||||
|
|
||||||
QPainter painter(image.get());
|
QPainter painter(image.get());
|
||||||
|
|
Loading…
Reference in New Issue