mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
Performance update, the previous version kept reloading the svg files and was a bit stupid, sorry. Now only updates when the value is changed.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@497 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
15e8f69a0e
commit
dbecc014b7
@ -24,27 +24,6 @@ void BasicSvgDial::setRenderer(RendererType type)
|
||||
void BasicSvgDial::paintEvent(QPaintEvent *event) {
|
||||
qDebug() << "in painEvent()";
|
||||
|
||||
QGraphicsScene *s = scene();
|
||||
s->clear();
|
||||
m_backgroundItem = new QGraphicsSvgItem(backgroundFile);
|
||||
m_backgroundItem->setZValue(-1);
|
||||
|
||||
m_needleItem = new QGraphicsSvgItem(needleFile);
|
||||
QRectF rect = m_needleItem->boundingRect();
|
||||
m_needleItem->translate(rect.width()/2,rect.height()/2);
|
||||
m_needleItem->rotate(angle);
|
||||
m_needleItem->translate(-rect.width()/2,-rect.height()/2);
|
||||
m_needleItem->setZValue(0);
|
||||
|
||||
m_foregroundItem = new QGraphicsSvgItem(foregroundFile);
|
||||
m_foregroundItem->setZValue(1);
|
||||
|
||||
s->addItem(m_backgroundItem);
|
||||
s->addItem(m_needleItem);
|
||||
s->addItem(m_foregroundItem);
|
||||
|
||||
s->setSceneRect(m_backgroundItem->boundingRect());
|
||||
|
||||
QGraphicsView::paintEvent(event);
|
||||
|
||||
qDebug() << "out paintEvent()";
|
||||
@ -58,6 +37,7 @@ void BasicSvgDial::paintEvent(QPaintEvent *event) {
|
||||
void BasicSvgDial::setAngle(int i) {
|
||||
qDebug() << "BasicDial::setAngle()";
|
||||
angle = value2angle(i);
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
@ -79,6 +59,26 @@ qreal BasicSvgDial::value2angle(qreal value) {
|
||||
void BasicSvgDial::setValue(qreal value) {
|
||||
angle = value2angle(value);
|
||||
currentValue = value;
|
||||
QGraphicsScene *s = scene();
|
||||
s->clear();
|
||||
m_backgroundItem = new QGraphicsSvgItem(backgroundFile);
|
||||
m_backgroundItem->setZValue(-1);
|
||||
|
||||
m_needleItem = new QGraphicsSvgItem(needleFile);
|
||||
QRectF rect = m_needleItem->boundingRect();
|
||||
m_needleItem->translate(rect.width()/2,rect.height()/2);
|
||||
m_needleItem->rotate(angle);
|
||||
m_needleItem->translate(-rect.width()/2,-rect.height()/2);
|
||||
m_needleItem->setZValue(0);
|
||||
|
||||
m_foregroundItem = new QGraphicsSvgItem(foregroundFile);
|
||||
m_foregroundItem->setZValue(1);
|
||||
|
||||
s->addItem(m_backgroundItem);
|
||||
s->addItem(m_needleItem);
|
||||
s->addItem(m_foregroundItem);
|
||||
|
||||
s->setSceneRect(m_backgroundItem->boundingRect());
|
||||
update();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user