fix issue 913 and rearrange zoom

presentation
Peter Klausing 7 years ago
parent 28111749a7
commit c7eeffe390
  1. 14
      src/control/Control.cpp
  2. 16
      src/control/zoom/ZoomControl.cpp
  3. 9
      src/control/zoom/ZoomControl.h
  4. 5
      src/gui/toolbarMenubar/ToolZoomSlider.cpp

@ -118,8 +118,8 @@ Control::Control(GladeSearchpath* gladeSearchPath)
setEmergencyDocument(this->doc);
this->zoom = new ZoomControl();
this->zoom->setZoomStep(this->settings->getZoomStep());
this->zoom->setZoomStepScroll(this->settings->getZoomStepScroll());
this->zoom->setZoomStep(this->settings->getZoomStep()/100.0);
this->zoom->setZoomStepScroll(this->settings->getZoomStepScroll()/100.0);
this->zoom->setZoom100(this->settings->getDisplayDpi() / 72.0);
this->toolHandler = new ToolHandler(this, this, this->settings);
@ -430,7 +430,7 @@ void Control::updatePageNumbers(size_t page, size_t pdfPage)
this->win->updatePageNumbers(page, this->doc->getPageCount(), pdfPage);
this->sidebar->selectPageNr(page, pdfPage);
this->metadata->storeMetadata(this->doc->getEvMetadataFilename().str(), page, getZoomControl()->getZoom());
this->metadata->storeMetadata(this->doc->getEvMetadataFilename().str(), page, getZoomControl()->getZoomReal());
int current = this->win->getXournal()->getCurrentPage();
int count = this->doc->getPageCount();
@ -2121,8 +2121,8 @@ void Control::showSettings()
enableAutosave(settings->isAutosaveEnabled());
this->zoom->setZoomStep(settings->getZoomStep());
this->zoom->setZoomStepScroll(settings->getZoomStepScroll());
this->zoom->setZoomStep(settings->getZoomStep()/100.0);
this->zoom->setZoomStepScroll(settings->getZoomStepScroll()/100.0);
this->zoom->setZoom100(settings->getDisplayDpi() / 72.0);
getWindow()->getXournal()->getTouchHelper()->reload();
@ -2397,8 +2397,8 @@ bool Control::loadMetadataCallback(MetadataCallbackData* data)
delete data;
return false;
}
data->ctrl->zoom->setZoom(data->md.zoom);
ZoomControl* zoom = data->ctrl->zoom;
zoom->setZoom(data->md.zoom * zoom->getZoom100());
data->ctrl->scrollHandler->scrollToPage(data->md.page);
delete data;

@ -8,7 +8,6 @@
ZoomControl::ZoomControl()
: view(NULL),
zoom(1.0),
zoomReal(1.0),
lastZoomValue(1.0),
zoomFitMode(true),
zoom100Value(1.0),
@ -228,6 +227,13 @@ double ZoomControl::getZoom()
return this->zoom;
}
double ZoomControl::getZoomReal()
{
XOJ_CHECK_TYPE(ZoomControl);
return this->zoom / this->zoom100Value;
}
void ZoomControl::setZoom(double zoom)
{
XOJ_CHECK_TYPE(ZoomControl);
@ -242,8 +248,8 @@ void ZoomControl::setZoom100(double zoom)
XOJ_CHECK_TYPE(ZoomControl);
this->zoom100Value = zoom;
this->zoomStep = (this->zoomStepReal * zoom)/100.0;
this->zoomStepScroll = (this->zoomStepScrollReal * zoom)/100.0;
setZoomStep(this->zoomStepReal);
setZoomStepScroll(this->zoomStepScrollReal);
this->zoomMax = this->zoomMaxReal * zoom;
this->zoomMin = this->zoomMinReal * zoom;
fireZoomRangeValueChanged();
@ -322,7 +328,7 @@ void ZoomControl::setZoomStep(double zoomStep)
XOJ_CHECK_TYPE(ZoomControl);
this->zoomStepReal = zoomStep;
this->zoomStep = (zoomStep * this->zoom100Value)/100.0;
this->zoomStep = zoomStep * this->zoom100Value;
}
double ZoomControl::getZoomStepScroll()
@ -344,7 +350,7 @@ void ZoomControl::setZoomStepScroll(double zoomStep)
XOJ_CHECK_TYPE(ZoomControl);
this->zoomStepScrollReal = zoomStep;
this->zoomStepScroll = (zoomStep * this->zoom100Value)/100.0;
this->zoomStepScroll = zoomStep * this->zoom100Value;
}
double ZoomControl::getZoomMax()

@ -68,6 +68,11 @@ public:
*/
double getZoom();
/**
* @return real zoom value in percent
*/
double getZoomReal();
/**
* Set the current zoom, does not preserve the current page position.
* Use startZoomSequence() / zoomSequnceChange() / endZoomSequence() to preserve position
@ -158,10 +163,6 @@ private:
* depends dpi (REAL_PERCENTAGE_VALUE * zoom100Value)
*/
double zoom;
/**
* Real current Zoom value
*/
double zoomReal;
/**
* for zoom sequence start zoom value

@ -79,7 +79,7 @@ void ToolZoomSlider::zoomChanged()
}
this->ignoreChange = true;
double slider_range = scaleFunc(this->zoom->getZoom()/this->zoom->getZoom100());
double slider_range = scaleFunc(this->zoom->getZoomReal());
gtk_range_set_value(GTK_RANGE(this->slider), slider_range);
this->ignoreChange = false;
}
@ -223,7 +223,8 @@ GtkToolItem* ToolZoomSlider::newItem()
gtk_container_add(GTK_CONTAINER(it), this->slider);
ignoreChange = true;
gtk_range_set_value(GTK_RANGE(this->slider), this->zoom->getZoom());
double slider_range = scaleFunc(this->zoom->getZoomReal());
gtk_range_set_value(GTK_RANGE(this->slider), slider_range);
ignoreChange = false;
updateScaleMarks();

Loading…
Cancel
Save