mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-22 12: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) {
|
void BasicSvgDial::paintEvent(QPaintEvent *event) {
|
||||||
qDebug() << "in painEvent()";
|
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);
|
QGraphicsView::paintEvent(event);
|
||||||
|
|
||||||
qDebug() << "out paintEvent()";
|
qDebug() << "out paintEvent()";
|
||||||
@ -58,6 +37,7 @@ void BasicSvgDial::paintEvent(QPaintEvent *event) {
|
|||||||
void BasicSvgDial::setAngle(int i) {
|
void BasicSvgDial::setAngle(int i) {
|
||||||
qDebug() << "BasicDial::setAngle()";
|
qDebug() << "BasicDial::setAngle()";
|
||||||
angle = value2angle(i);
|
angle = value2angle(i);
|
||||||
|
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,6 +59,26 @@ qreal BasicSvgDial::value2angle(qreal value) {
|
|||||||
void BasicSvgDial::setValue(qreal value) {
|
void BasicSvgDial::setValue(qreal value) {
|
||||||
angle = value2angle(value);
|
angle = value2angle(value);
|
||||||
currentValue = 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();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user