##// END OF EJS Templates
New Peripheral view almost done.
New Peripheral view almost done.

File last commit:

r19:1cb664ab4bb3 tip default
r19:1cb664ab4bb3 tip default
Show More
collapsableperipheralwidget.cpp
110 lines | 2.7 KiB | text/x-c | CppLexer
/ src / collapsableperipheralwidget.cpp
#include "collapsableperipheralwidget.h"
#include "ui_collapsableperipheralwidget.h"
#include <QCursor>
CollapsablePeripheralWidget::CollapsablePeripheralWidget(peripheralWidget *periph, QWidget *parent) :
QWidget(parent),
ui(new Ui::CollapsablePeripheralWidget)
{
m_periph=0;
m_collapsed = true;
ui->setupUi(this);
tthidetmr.setSingleShot(true);
tthidetmr.setInterval(200);
connect(this->ui->collapseQpb,SIGNAL(clicked()),this,SLOT(collapse()));
connect(this->ui->periphName,SIGNAL(clicked()),this,SLOT(collapse()));
connect(this->ui->periphName,SIGNAL(enter()),this,SLOT(showTooltip()));
connect(this->ui->periphName,SIGNAL(leave()),&this->tthidetmr,SLOT(start()));
connect(&this->tthidetmr,SIGNAL(timeout()),this,SLOT(hideTooltip()));
setPeripheralWidget(periph);
}
CollapsablePeripheralWidget::~CollapsablePeripheralWidget()
{
delete ui;
}
void CollapsablePeripheralWidget::setPeripheralWidget(peripheralWidget *periph)
{
if(periph)
{
this->m_periph = periph;
this->ui->gridLayout->addWidget(periph,1,0,1,-1);
this->ui->periphName->setText(periph->name());
this->m_periph->setVisible(false);
}
}
peripheralWidget *CollapsablePeripheralWidget::getPeripheralWidget()
{
return m_periph;
}
void CollapsablePeripheralWidget::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void CollapsablePeripheralWidget::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
void CollapsablePeripheralWidget::collapse()
{
this->m_periph->setVisible(m_collapsed);
if(this->m_collapsed)
{
this->ui->collapseQpb->setIcon(QIcon(":/img/Gnome-list-remove.svg"));
}
else
{
this->ui->collapseQpb->setIcon(QIcon(":/img/Gnome-list-add.svg"));
}
m_collapsed = !m_collapsed;
}
void CollapsablePeripheralWidget::setName(const QString &name)
{
if(m_periph)
{
this->ui->periphName->setText(name);
}
}
void CollapsablePeripheralWidget::showTooltip()
{
if(!m_periph->isVisible() && m_collapsed)
{
m_periph->show();
}
}
void CollapsablePeripheralWidget::hideTooltip()
{
if(m_periph->isVisible() && m_collapsed)
{
QRect temprect = this->geometry();
temprect.moveTo(this->mapToGlobal(mapFromParent(QPoint(this->x(),this->y()))));
if(temprect.contains(QCursor::pos()))
{
this->tthidetmr.start();
}
else
{
m_periph->hide();
}
}
}