added option for selecting whether to use the extended zoom levels

This commit is contained in:
Alberto Griggio
2017-03-17 09:04:07 +01:00
parent 674cdb93be
commit 51f909a21e
6 changed files with 23 additions and 3 deletions

View File

@@ -103,7 +103,9 @@ void CropWindow::initZoomSteps()
float z = 10./float(s);
sprintf(lbl, "% 2d%%", int(z * 100));
bool is_major = (s == s/10 * 10);
zoomSteps.push_back(ZoomStep(lbl, z, s, is_major));
if (is_major || options.extendedZoomLevelsForFit) {
zoomSteps.push_back(ZoomStep(lbl, z, s, is_major));
}
}
zoom11index = zoomSteps.size();
for (int s = 1; s <= 8; ++s) {

View File

@@ -348,6 +348,7 @@ void Options::setDefaults ()
lastScale = 5;
panAccelFactor = 5;
rememberZoomAndPan = true;
extendedZoomLevelsForFit = false;
lastCropSize = 1;
fbOnlyRaw = false;
fbShowDateTime = true;
@@ -1348,6 +1349,10 @@ int Options::readFromFile (Glib::ustring fname)
rememberZoomAndPan = keyFile.get_boolean ("GUI", "RememberZoomAndPan");
}
if (keyFile.has_key ("GUI", "ExtendedZoomLevelsForFit")) {
extendedZoomLevelsForFit = keyFile.get_boolean ("GUI", "ExtendedZoomLevelsForFit");
}
if (keyFile.has_key ("GUI", "LastCropSize")) {
lastCropSize = keyFile.get_integer ("GUI", "LastCropSize");
}
@@ -2023,6 +2028,7 @@ int Options::saveToFile (Glib::ustring fname)
keyFile.set_integer ("GUI", "LastPreviewScale", lastScale);
keyFile.set_integer ("GUI", "PanAccelFactor", panAccelFactor);
keyFile.set_boolean ("GUI", "RememberZoomAndPan", rememberZoomAndPan);
keyFile.set_boolean ("GUI", "ExtendedZoomLevelsForFit", extendedZoomLevelsForFit);
keyFile.set_integer ("GUI", "LastCropSize", lastCropSize);
keyFile.set_boolean ("GUI", "ShowHistory", showHistory);
keyFile.set_integer ("GUI", "ShowFilePanelState", showFilePanelState);

View File

@@ -215,6 +215,7 @@ public:
bool filmStripShowFileNames;
bool tabbedUI;
bool rememberZoomAndPan;
bool extendedZoomLevelsForFit;
int multiDisplayMode; // 0=none, 1=Edit panels on other display
std::vector<double> cutOverlayBrush; // Red;Green;Blue;Alpha , all ranging 0..1
std::vector<double> navGuideBrush; // Red;Green;Blue;Alpha , all ranging 0..1

View File

@@ -1132,11 +1132,17 @@ Gtk::Widget* Preferences::getGeneralPanel ()
navigationGrid->attach_next_to(*panFactorLabel, Gtk::POS_LEFT, 1, 1);
navigationGrid->attach_next_to(*panFactor, *panFactorLabel, Gtk::POS_RIGHT, 1, 1);
Gtk::HBox *zoombox = Gtk::manage(new Gtk::HBox());
rememberZoomPanCheckbutton = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_REMEMBERZOOMPAN")) );
setExpandAlignProperties(rememberZoomPanCheckbutton, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE);
rememberZoomPanCheckbutton->set_tooltip_text(M("PREFERENCES_REMEMBERZOOMPAN_TOOLTIP"));
extendedZoomLevelsCheckbutton = Gtk::manage( new Gtk::CheckButton (M("PREFERENCES_EXTENDEDZOOMLEVELS")) );
extendedZoomLevelsCheckbutton->set_tooltip_text(M("PREFERENCES_EXTENDEDZOOMLEVELS_TOOLTIP"));
zoombox->set_spacing(10);
zoombox->pack_start(*rememberZoomPanCheckbutton);
zoombox->pack_start(*extendedZoomLevelsCheckbutton);
setExpandAlignProperties(zoombox, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE);
navigationGrid->attach_next_to(*rememberZoomPanCheckbutton, *panFactorLabel, Gtk::POS_BOTTOM, 2, 1);
navigationGrid->attach_next_to(*zoombox, *panFactorLabel, Gtk::POS_BOTTOM, 2, 1);
fnav->add (*navigationGrid);
mvbsd->attach_next_to(*fnav, *fclip, Gtk::POS_RIGHT, 1, 1);
@@ -1570,6 +1576,7 @@ void Preferences::storePreferences ()
moptions.dateFormat = dateformat->get_text();
moptions.panAccelFactor = (int)panFactor->get_value();
moptions.rememberZoomAndPan = rememberZoomPanCheckbutton->get_active();
moptions.extendedZoomLevelsForFit = extendedZoomLevelsCheckbutton->get_active();
moptions.fbShowDateTime = showDateTime->get_active ();
moptions.fbShowBasicExif = showBasicExif->get_active ();
moptions.fbShowExpComp = showExpComp->get_active ();
@@ -1792,6 +1799,7 @@ void Preferences::fillPreferences ()
dateformat->set_text (moptions.dateFormat);
panFactor->set_value (moptions.panAccelFactor);
rememberZoomPanCheckbutton->set_active (moptions.rememberZoomAndPan);
extendedZoomLevelsCheckbutton->set_active (moptions.extendedZoomLevelsForFit);
ctiffserialize->set_active(moptions.serializeTiffRead);
setActiveTextOrIndex (*prtProfile, moptions.rtSettings.printerProfile, 0);

View File

@@ -121,6 +121,7 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener
Gtk::SpinButton* panFactor;
Gtk::CheckButton* rememberZoomPanCheckbutton;
Gtk::CheckButton* extendedZoomLevelsCheckbutton;
Gtk::ComboBoxText* view;
Gtk::ComboBoxText* grey;