/**
|
/**
|
* @file
|
* @file
|
* @copyright Copyright 2016 GNSS Sensor Ltd. All right reserved.
|
* @copyright Copyright 2016 GNSS Sensor Ltd. All right reserved.
|
* @author Sergey Khabarov - sergeykhbr@gmail.com
|
* @author Sergey Khabarov - sergeykhbr@gmail.com
|
* @brief LED's area renderer definition.
|
* @brief LED's area renderer definition.
|
*/
|
*/
|
|
|
#include "LedArea.h"
|
#include "LedArea.h"
|
#include "moc_LedArea.h"
|
#include "moc_LedArea.h"
|
|
|
#include <QtGui/QPainter>
|
#include <QtGui/QPainter>
|
|
|
namespace debugger {
|
namespace debugger {
|
|
|
LedArea::LedArea(QWidget *parent) : QWidget(parent) {
|
LedArea::LedArea(QWidget *parent) : QWidget(parent) {
|
ledTotal_.make_int64(8);
|
ledTotal_.make_int64(8);
|
leds_ = 0xF0;
|
leds_ = 0xF0;
|
|
|
QImage img1(tr(":/images/led_on.png"));
|
QImage img1(tr(":/images/led_on.png"));
|
pixmapOn_ = QPixmap(size()).fromImage(img1);
|
pixmapOn_ = QPixmap(size()).fromImage(img1);
|
|
|
QImage img2(tr(":/images/led_off.png"));
|
QImage img2(tr(":/images/led_off.png"));
|
pixmapOff_ = QPixmap(size()).fromImage(img2);
|
pixmapOff_ = QPixmap(size()).fromImage(img2);
|
|
|
setMinimumWidth(pixmapOff_.size().width() * ledTotal_.to_int());
|
setMinimumWidth(pixmapOff_.size().width() * ledTotal_.to_int());
|
setMinimumHeight(pixmapOff_.size().height());
|
setMinimumHeight(pixmapOff_.size().height());
|
}
|
}
|
|
|
|
|
void LedArea::paintEvent(QPaintEvent *event) {
|
void LedArea::paintEvent(QPaintEvent *event) {
|
QPainter p(this);
|
QPainter p(this);
|
|
|
for (int i = 0; i < ledTotal_.to_int(); i++) {
|
for (int i = 0; i < ledTotal_.to_int(); i++) {
|
QPoint pos(i * pixmapOff_.width(), 0);
|
QPoint pos(i * pixmapOff_.width(), 0);
|
|
|
// Count from left (LED[0]) to right (LED[n-1])
|
// Count from left (LED[0]) to right (LED[n-1])
|
if (((leds_ >> (ledTotal_.to_int() - 1 - i)) & 0x1) == 0) {
|
if (((leds_ >> (ledTotal_.to_int() - 1 - i)) & 0x1) == 0) {
|
p.drawPixmap(pos, pixmapOff_);
|
p.drawPixmap(pos, pixmapOff_);
|
} else {
|
} else {
|
p.drawPixmap(pos, pixmapOn_);
|
p.drawPixmap(pos, pixmapOn_);
|
}
|
}
|
}
|
}
|
p.end();
|
p.end();
|
}
|
}
|
|
|
void LedArea::slotUpdate(uint32_t value) {
|
void LedArea::slotUpdate(uint32_t value) {
|
leds_ = value;
|
leds_ = value;
|
update();
|
update();
|
}
|
}
|
|
|
} // namespace debugger
|
} // namespace debugger
|
|
|