close zoom slider when it loses its focus

This commit is contained in:
Luis Ángel San Martín 2015-12-09 22:38:28 +01:00
parent 84ea312b0e
commit be0ef4f20f
2 changed files with 20 additions and 1 deletions

View File

@ -28,6 +28,8 @@ void YACReaderSliderAction::updateZoomRatio(int value)
YACReaderSlider::YACReaderSlider(QWidget *parent) YACReaderSlider::YACReaderSlider(QWidget *parent)
:QWidget(parent) :QWidget(parent)
{ {
setFocusPolicy(Qt::StrongFocus);
QHBoxLayout* pLayout = new QHBoxLayout(); QHBoxLayout* pLayout = new QHBoxLayout();
pLayout->addStretch(); pLayout->addStretch();
@ -71,12 +73,26 @@ YACReaderSlider::YACReaderSlider(QWidget *parent)
slider->setMaximum(500); slider->setMaximum(500);
slider->setPageStep(5); slider->setPageStep(5);
slider->setFocusPolicy(Qt::NoFocus);
int value = Configuration::getConfiguration().getZoomLevel()*100; int value = Configuration::getConfiguration().getZoomLevel()*100;
slider->setValue(value); slider->setValue(value);
percentageLabel->setText(QString("%1 %").arg(value)); percentageLabel->setText(QString("%1 %").arg(value));
connect(slider,SIGNAL(valueChanged(int)),this,SLOT(updateText(int))); connect(slider,SIGNAL(valueChanged(int)),this,SLOT(updateText(int)));
} }
void YACReaderSlider::show()
{
QWidget::show();
setFocus();
}
void YACReaderSlider::focusOutEvent(QFocusEvent * event)
{
QWidget::focusOutEvent(event);
hide();
}
void YACReaderSlider::updateText(int value) void YACReaderSlider::updateText(int value)
{ {
percentageLabel->setText(QString("%1 %").arg(value)); percentageLabel->setText(QString("%1 %").arg(value));

View File

@ -14,8 +14,11 @@ private:
QSlider * slider; QSlider * slider;
public: public:
YACReaderSlider (QWidget * parent = 0); YACReaderSlider (QWidget * parent = 0);
void show();
protected:
virtual void focusOutEvent(QFocusEvent * event);
public slots: public slots:
void updateText(int value); void updateText(int value);