diff options
| author | Eduard Braun <eduard.braun2@gmx.de> | 2018-01-07 03:35:34 +0000 |
|---|---|---|
| committer | Eduard Braun <eduard.braun2@gmx.de> | 2018-01-07 16:37:02 +0000 |
| commit | df4cb22cc7e5935293af6bb17e1c26959dc300ba (patch) | |
| tree | ba3758e334fe5e6463b0f5d5c89042e1bc6922f3 /src | |
| parent | Namedview: Use proper monitor to derive monitor_geometry (diff) | |
| download | inkscape-df4cb22cc7e5935293af6bb17e1c26959dc300ba.tar.gz inkscape-df4cb22cc7e5935293af6bb17e1c26959dc300ba.zip | |
Make stored geometry and default window size enums
Diffstat (limited to 'src')
| -rw-r--r-- | src/enums.h | 16 | ||||
| -rw-r--r-- | src/sp-namedview.cpp | 22 | ||||
| -rw-r--r-- | src/ui/dialog/inkscape-preferences.cpp | 10 | ||||
| -rw-r--r-- | src/ui/interface.cpp | 5 |
4 files changed, 36 insertions, 17 deletions
diff --git a/src/enums.h b/src/enums.h index 2a30fc4a8..99bb5648c 100644 --- a/src/enums.h +++ b/src/enums.h @@ -111,5 +111,21 @@ enum PrefsMaskobjectGrouping { PREFS_MASKOBJECT_GROUPING_ALL = 2, }; +/* save window geometry preference values (/options/savewindowgeometry/value) */ + +enum PrefsSaveWindowGeometry { + PREFS_WINDOW_GEOMETRY_NONE = 0, + PREFS_WINDOW_GEOMETRY_FILE = 1, + PREFS_WINDOW_GEOMETRY_LAST = 2, +}; + +/* default window size preference values (/options/defaultwindowsize/value) */ + +enum PrefsDefaultWindowSize { + PREFS_WINDOW_SIZE_SMALL = 0, + PREFS_WINDOW_SIZE_LARGE = 1, + PREFS_WINDOW_SIZE_MAXIMIZED = 2, +}; + #endif diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp index 4e5da13c3..8fdb34af0 100644 --- a/src/sp-namedview.cpp +++ b/src/sp-namedview.cpp @@ -27,6 +27,7 @@ #include "document.h" #include "document-undo.h" #include "desktop-events.h" +#include "enums.h" #include "sp-guide.h" #include "sp-item-group.h" @@ -778,19 +779,19 @@ void sp_namedview_window_from_document(SPDesktop *desktop) { SPNamedView *nv = desktop->namedview; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - bool geometry_from_file = (1 == prefs->getInt("/options/savewindowgeometry/value", 0)); - bool geometry_from_last = (2 == prefs->getInt("/options/savewindowgeometry/value", 0)); - gint default_geometry = prefs->getInt("/options/defaultwindowsize/value", 1); + int window_geometry = prefs->getInt("/options/savewindowgeometry/value", PREFS_WINDOW_GEOMETRY_NONE); + int default_size = prefs->getInt("/options/defaultwindowsize/value", PREFS_WINDOW_SIZE_LARGE); bool new_document = (nv->window_width <= 0) || (nv->window_height <= 0); bool show_dialogs = true; // restore window size and position stored with the document Gtk::Window *win = desktop->getToplevel(); g_assert(win); - if (geometry_from_last) { + if (window_geometry == PREFS_WINDOW_GEOMETRY_LAST) { // do nothing, as we already have code for that in interface.cpp // TODO: Probably should not do similar things in two places - } else if ((geometry_from_file && nv->window_maximized) || (new_document && (default_geometry == 2))) { + } else if ((window_geometry == PREFS_WINDOW_GEOMETRY_FILE && nv->window_maximized) || + (new_document && (default_size == PREFS_WINDOW_SIZE_MAXIMIZED))) { win->maximize(); } else { Gdk::Rectangle monitor_geometry; @@ -807,14 +808,14 @@ void sp_namedview_window_from_document(SPDesktop *desktop) int h = monitor_geometry.get_height(); bool move_to_screen = false; - if (geometry_from_file and !new_document) { + if (window_geometry == PREFS_WINDOW_GEOMETRY_FILE && !new_document) { w = MIN(w, nv->window_width); - h = MIN(h, nv->window_height); + h = MIN(h, nv->window_height); move_to_screen = true; - } else if (default_geometry == 1) { + } else if (default_size == PREFS_WINDOW_SIZE_LARGE) { w *= NEWDOC_X_SCALE; h *= NEWDOC_Y_SCALE; - } else if (default_geometry == 0) { + } else if (default_size == PREFS_WINDOW_SIZE_SMALL) { w = h = 0; // use the smallest possible window size; could be a factor like NEWDOC_X_SCALE in future } if ((w > 0) && (h > 0)) { @@ -903,7 +904,8 @@ void sp_namedview_update_layers_from_document (SPDesktop *desktop) void sp_namedview_document_from_window(SPDesktop *desktop) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - bool save_geometry_in_file = (1 == prefs->getInt("/options/savewindowgeometry/value", 0)); + int window_geometry = prefs->getInt("/options/savewindowgeometry/value", PREFS_WINDOW_GEOMETRY_NONE); + bool save_geometry_in_file = window_geometry == PREFS_WINDOW_GEOMETRY_FILE; bool save_viewport_in_file = prefs->getBool("/options/savedocviewport/value", true); Inkscape::XML::Node *view = desktop->namedview->getRepr(); Geom::Rect const r = desktop->get_display_area(); diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index 0ac12d15c..ba0758d3c 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -684,9 +684,9 @@ void InkscapePreferences::initPageUI() } // Windows - _win_save_geom.init ( _("Save and restore window geometry for each document"), "/options/savewindowgeometry/value", 1, true, 0); - _win_save_geom_prefs.init ( _("Remember and use last window's geometry"), "/options/savewindowgeometry/value", 2, false, &_win_save_geom); - _win_save_geom_off.init ( _("Don't save window geometry"), "/options/savewindowgeometry/value", 0, false, &_win_save_geom); + _win_save_geom.init ( _("Save and restore window geometry for each document"), "/options/savewindowgeometry/value", PREFS_WINDOW_GEOMETRY_FILE, true, 0); + _win_save_geom_prefs.init ( _("Remember and use last window's geometry"), "/options/savewindowgeometry/value", PREFS_WINDOW_GEOMETRY_LAST, false, &_win_save_geom); + _win_save_geom_off.init ( _("Don't save window geometry"), "/options/savewindowgeometry/value", PREFS_WINDOW_GEOMETRY_NONE, false, &_win_save_geom); _win_save_dialog_pos_on.init ( _("Save and restore dialogs status"), "/options/savedialogposition/value", 1, true, 0); _win_save_dialog_pos_off.init ( _("Don't save dialogs status"), "/options/savedialogposition/value", 0, false, &_win_save_dialog_pos_on); @@ -708,9 +708,9 @@ void InkscapePreferences::initPageUI() { Glib::ustring defaultSizeLabels[] = {C_("Window size", "Small"), C_("Window size", "Large"), C_("Window size", "Maximized")}; - int defaultSizeValues[] = {0, 1, 2}; + int defaultSizeValues[] = {PREFS_WINDOW_SIZE_SMALL, PREFS_WINDOW_SIZE_LARGE, PREFS_WINDOW_SIZE_MAXIMIZED}; - _win_default_size.init( "/options/defaultwindowsize/value", defaultSizeLabels, defaultSizeValues, G_N_ELEMENTS(defaultSizeLabels), 1 ); + _win_default_size.init( "/options/defaultwindowsize/value", defaultSizeLabels, defaultSizeValues, G_N_ELEMENTS(defaultSizeLabels), PREFS_WINDOW_SIZE_LARGE); _page_windows.add_line( false, _("Default window size:"), _win_default_size, "", _("Set the default window size"), false); } diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 3671380fe..816f4e337 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -30,6 +30,7 @@ #include "file.h" #include <glibmm/miscutils.h> +#include "enums.h" #include "inkscape.h" #include "extension/db.h" #include "extension/effect.h" @@ -161,8 +162,8 @@ sp_create_window(SPViewWidget *vw, bool editable) win->signal_focus_in_event().connect(sigc::mem_fun(*desktop_widget, &SPDesktopWidget::onFocusInEvent)); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - gint prefs_geometry = (2==prefs->getInt("/options/savewindowgeometry/value", 0)); - if (prefs_geometry) { + int window_geometry = prefs->getInt("/options/savewindowgeometry/value", PREFS_WINDOW_GEOMETRY_NONE); + if (window_geometry == PREFS_WINDOW_GEOMETRY_LAST) { gint pw = prefs->getInt("/desktop/geometry/width", -1); gint ph = prefs->getInt("/desktop/geometry/height", -1); gint px = prefs->getInt("/desktop/geometry/x", -1); |
