summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEduard Braun <eduard.braun2@gmx.de>2018-01-07 03:35:34 +0000
committerEduard Braun <eduard.braun2@gmx.de>2018-01-07 16:37:02 +0000
commitdf4cb22cc7e5935293af6bb17e1c26959dc300ba (patch)
treeba3758e334fe5e6463b0f5d5c89042e1bc6922f3 /src
parentNamedview: Use proper monitor to derive monitor_geometry (diff)
downloadinkscape-df4cb22cc7e5935293af6bb17e1c26959dc300ba.tar.gz
inkscape-df4cb22cc7e5935293af6bb17e1c26959dc300ba.zip
Make stored geometry and default window size enums
Diffstat (limited to 'src')
-rw-r--r--src/enums.h16
-rw-r--r--src/sp-namedview.cpp22
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp10
-rw-r--r--src/ui/interface.cpp5
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);