kopia lustrzana https://gitlab.com/eliggett/wfview
Meter combo box goes away if outside click.
rodzic
c41d697ab7
commit
e99e3caa09
34
meter.cpp
34
meter.cpp
|
@ -63,9 +63,9 @@ meter::meter(QWidget *parent) : QWidget(parent)
|
||||||
connect(combo, SIGNAL(activated(int)), this, SLOT(acceptComboItem(int)));
|
connect(combo, SIGNAL(activated(int)), this, SLOT(acceptComboItem(int)));
|
||||||
//connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(acceptComboItem(int)));
|
//connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(acceptComboItem(int)));
|
||||||
|
|
||||||
|
this->setToolTip("");
|
||||||
combo->hide();
|
combo->hide();
|
||||||
this->installEventFilter(this);
|
this->installEventFilter(this);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void meter::setCompReverse(bool reverse) {
|
void meter::setCompReverse(bool reverse) {
|
||||||
|
@ -125,12 +125,23 @@ void meter::clearMeter()
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void meter::setMeterType(meter_t type)
|
void meter::setMeterType(meter_t m_type_req)
|
||||||
{
|
{
|
||||||
if(type == meterType)
|
if(m_type_req == meterType)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
meterType = type;
|
if( (m_type_req == meterS) || (m_type_req == meterPower) ) {
|
||||||
|
this->setToolTip("");
|
||||||
|
} else {
|
||||||
|
this->setToolTip("Double-click to select meter type.");
|
||||||
|
}
|
||||||
|
|
||||||
|
int m_index = combo->findData(m_type_req);
|
||||||
|
combo->blockSignals(true);
|
||||||
|
combo->setCurrentIndex(m_index);
|
||||||
|
combo->blockSignals(false);
|
||||||
|
|
||||||
|
meterType = m_type_req;
|
||||||
// clear average and peak vectors:
|
// clear average and peak vectors:
|
||||||
this->clearMeter();
|
this->clearMeter();
|
||||||
}
|
}
|
||||||
|
@ -179,13 +190,26 @@ void meter::handleDoubleClick() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool meter::eventFilter(QObject *object, QEvent *event) {
|
bool meter::eventFilter(QObject *object, QEvent *event) {
|
||||||
|
|
||||||
|
if( (freezeDrawing) && (event->type() == QEvent::MouseButtonPress) ) {
|
||||||
|
combo->hide();
|
||||||
|
freezeDrawing = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( (freezeDrawing) && (event->type() == QEvent::MouseButtonDblClick) ) {
|
||||||
|
combo->hide();
|
||||||
|
freezeDrawing = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if(event->type() == QEvent::MouseButtonDblClick) {
|
if(event->type() == QEvent::MouseButtonDblClick) {
|
||||||
qDebug() << "Mouse double click event in meter widget";
|
|
||||||
if( !(meterType == meterS || meterType == meterPower)) {
|
if( !(meterType == meterS || meterType == meterPower)) {
|
||||||
handleDoubleClick();
|
handleDoubleClick();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
(void)object;
|
(void)object;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue