From: Juergen Spitzmueller Date: Wed, 22 Feb 2023 10:16:46 +0000 (+0100) Subject: Disable zoom in/out buttons when threshold is reached (#12676) X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=1e99920b355a1aad71f79f314f9e2d063b5abc5e;p=features.git Disable zoom in/out buttons when threshold is reached (#12676) --- diff --git a/src/frontends/qt/GuiView.cpp b/src/frontends/qt/GuiView.cpp index 461b09cfd5..f7222e402e 100644 --- a/src/frontends/qt/GuiView.cpp +++ b/src/frontends/qt/GuiView.cpp @@ -692,10 +692,12 @@ GuiView::GuiView(int id) zoom_out_->setAlignment(Qt::AlignCenter); statusBar()->addPermanentWidget(zoom_out_); - zoom_out_->setEnabled(currentBufferView()); + zoom_out_->setEnabled(currentBufferView() + && zoom_slider_->value() > zoom_slider_->minimum()); statusBar()->addPermanentWidget(zoom_slider_); zoom_slider_->setEnabled(currentBufferView()); - zoom_in_->setEnabled(currentBufferView()); + zoom_in_->setEnabled(currentBufferView() + && zoom_slider_->value() < zoom_slider_->maximum()); statusBar()->addPermanentWidget(zoom_in_); connect(zoom_slider_, SIGNAL(sliderMoved(int)), this, SLOT(zoomSliderMoved(int))); @@ -829,6 +831,10 @@ void GuiView::zoomSliderMoved(int value) dispatch(FuncRequest(LFUN_BUFFER_ZOOM, convert(value)), dr); scheduleRedrawWorkAreas(); zoom_value_->setText(toqstr(bformat(_("[[ZOOM]]%1$d%"), value))); + zoom_in_->setEnabled(currentBufferView() + && value < zoom_slider_->maximum()); + zoom_out_->setEnabled(currentBufferView() + && value > zoom_slider_->minimum()); } @@ -1011,6 +1017,8 @@ void GuiView::setCurrentZoom(const int v) { lyxrc.currentZoom = v; zoom_value_->setText(toqstr(bformat(_("[[ZOOM]]%1$d%"), v))); + zoom_in_->setEnabled(currentBufferView() && v < zoom_slider_->maximum()); + zoom_out_->setEnabled(currentBufferView() && v > zoom_slider_->minimum()); Q_EMIT currentZoomChanged(v); } @@ -1560,8 +1568,10 @@ void GuiView::onBufferViewChanged() updateDialogs(); zoom_slider_->setEnabled(currentBufferView()); zoom_value_->setEnabled(currentBufferView()); - zoom_in_->setEnabled(currentBufferView()); - zoom_out_->setEnabled(currentBufferView()); + zoom_in_->setEnabled(currentBufferView() + && zoom_slider_->value() < zoom_slider_->maximum()); + zoom_out_->setEnabled(currentBufferView() + && zoom_slider_->value() > zoom_slider_->minimum()); }