X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fui%2Fdialog%2Finkscape-preferences.cpp;h=e179f1581ed15db73203358a13d18df485ebd13c;hb=ba885512446fff2803585a4aaec34e7742841f05;hp=82f6ddf5b47ce62b6fcd121ffe5a5b00ce1a89b8;hpb=e082a7c482be81cc3fd2a4900b19a0a620455b6c;p=inkscape.git diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index 82f6ddf5b..e179f1581 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -79,9 +79,9 @@ InkscapePreferences::InkscapePreferences() _page_list_model = Gtk::TreeStore::create(_page_list_columns); _page_list.set_model(_page_list_model); _page_list.append_column("name",_page_list_columns._col_name); - Glib::RefPtr page_list_selection = _page_list.get_selection(); - page_list_selection->signal_changed().connect(sigc::mem_fun(*this, &InkscapePreferences::on_pagelist_selection_changed)); - page_list_selection->set_mode(Gtk::SELECTION_BROWSE); + Glib::RefPtr page_list_selection = _page_list.get_selection(); + page_list_selection->signal_changed().connect(sigc::mem_fun(*this, &InkscapePreferences::on_pagelist_selection_changed)); + page_list_selection->set_mode(Gtk::SELECTION_BROWSE); //Pages Gtk::VBox* vbox_page = Gtk::manage(new Gtk::VBox()); @@ -106,6 +106,7 @@ InkscapePreferences::InkscapePreferences() initPageImportExport(); initPageCMS(); initPageGrids(); + initPageSVGOutput(); initPageMisc(); signalPresent().connect(sigc::mem_fun(*this, &InkscapePreferences::_presentPages)); @@ -155,6 +156,9 @@ void InkscapePreferences::initPageMouse() _page_mouse.add_line(true, "",_mouse_use_ext_input, "", _("Use the capabilities of a tablet or other pressure-sensitive device. Disable this only if you have problems with the tablet (you can still use it as a mouse)")); + _mouse_switch_on_ext_input.init( _("Switch tool based on tablet device (requires restart)"), "options.switchonextinput", "value", false); + _page_mouse.add_line(true, "",_mouse_switch_on_ext_input, "", + _("Change tool as different devices are used on the tablet (pen, eraser, mouse)")); } void InkscapePreferences::initPageScrolling() @@ -337,10 +341,10 @@ void InkscapePreferences::initPageTools() _path_tools = _page_list.get_model()->get_path(iter_tools); _page_tools.add_group_header( _("Bounding box to use:")); - _t_bbox_visual.init ( _("Visual bounding box"), "tools", "bounding_box", "visual", false, 0); + _t_bbox_visual.init ( _("Visual bounding box"), "tools", "bounding_box", "0", false, 0); // 0 means visual _page_tools.add_line( true, "", _t_bbox_visual, "", _("This bounding box includes stroke width, markers, filter margins, etc.")); - _t_bbox_geometric.init ( _("Geometric bounding box"), "tools", "bounding_box", "geometric", true, &_t_bbox_visual); + _t_bbox_geometric.init ( _("Geometric bounding box"), "tools", "bounding_box", "1", true, &_t_bbox_visual); // 1 means geometric _page_tools.add_line( true, "", _t_bbox_geometric, "", _("This bounding box includes only the bare path")); @@ -348,6 +352,9 @@ void InkscapePreferences::initPageTools() _t_cvg_keep_objects.init ( _("Keep objects after conversion to guides"), "tools", "cvg_keep_objects", false); _page_tools.add_line( true, "", _t_cvg_keep_objects, "", _("When converting an object to guides, don't delete the object after the conversion.")); + _t_cvg_convert_whole_groups.init ( _("Treat groups as a single object"), "tools", "cvg_convert_whole_groups", false); + _page_tools.add_line( true, "", _t_cvg_convert_whole_groups, "", + _("Treat groups as a single object during conversion to guides rather than converting each child separately.")); _calligrapy_use_abs_size.init ( _("Width is in absolute units"), "tools.calligraphic", "abs_width", false); _calligrapy_keep_selected.init ( _("Select new path"), "tools.calligraphic", "keep_selected", true); @@ -379,6 +386,14 @@ void InkscapePreferences::initPageTools() this->AddPage(_page_node, _("Node"), iter_tools, PREFS_PAGE_TOOLS_NODE); AddSelcueCheckbox(_page_node, "tools.nodes", true); AddGradientCheckbox(_page_node, "tools.nodes", true); + _page_node.add_group_header( _("Path outline:")); + _t_node_pathoutline_color.init(_("Path outline color"), "tools.nodes", "highlight_color", 0xff0000ff); + _page_node.add_line( false, _("Path outline color"), _t_node_pathoutline_color, "", _("Selects the color used for showing the path outline."), false); + _t_node_pathflash_enabled.init ( _("Path outline flash on mouse-over"), "tools.nodes", "pathflash_enabled", false); + _page_node.add_line( true, "", _t_node_pathflash_enabled, "", _("When hovering over a path, briefly flash its outline.")); + _t_node_pathflash_timeout.init("tools.nodes", "pathflash_timeout", 0, 10000.0, 100.0, 100.0, 1000.0, true, false); + _page_node.add_line( false, _("Flash time"), _t_node_pathflash_timeout, "ms", _("Specifies how long the path outline will be visible after a mouse-over (in milliseconds). Specify 0 to have the outline shown until mouse leaves the path."), false); + //Tweak this->AddPage(_page_tweak, _("Tweak"), iter_tools, PREFS_PAGE_TOOLS_NODE); AddSelcueCheckbox(_page_tweak, "tools.tweak", true); @@ -435,6 +450,8 @@ void InkscapePreferences::initPageTools() this->AddPage(_page_paintbucket, _("Paint Bucket"), iter_tools, PREFS_PAGE_TOOLS_PAINTBUCKET); this->AddSelcueCheckbox(_page_paintbucket, "tools.paintbucket", false); this->AddNewObjectsStyle(_page_paintbucket, "tools.paintbucket"); + //Calligraphy + this->AddPage(_page_eraser, _("Eraser"), iter_tools, PREFS_PAGE_TOOLS_ERASER); //Text this->AddPage(_page_text, _("Text"), iter_tools, PREFS_PAGE_TOOLS_TEXT); this->AddSelcueCheckbox(_page_text, "tools.text", true); @@ -470,11 +487,6 @@ void InkscapePreferences::initPageWindows() _win_ontop_normal.init ( _("Normal"), "options.transientpolicy", "value", 1, true, &_win_ontop_none); _win_ontop_agressive.init ( _("Aggressive"), "options.transientpolicy", "value", 2, false, &_win_ontop_none); -// FIXME: Temporary Win32 special code to enable transient dialogs -#ifdef WIN32 - _win_ontop_win32.init ( _("Dialogs stay on top (experimental!)"), "options.dialogsontopwin32", "value", false); -#endif - _page_windows.add_group_header( _("Saving window geometry (size and position):")); _page_windows.add_line( false, "", _win_save_geom_off, "", _("Let the window manager determine placement of all windows")); @@ -489,17 +501,15 @@ void InkscapePreferences::initPageWindows() _page_windows.add_line( true, "", _win_floating, "", _("Floating")); - _page_windows.add_group_header( _("Dialogs on top:")); -#ifndef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs +#ifndef WIN32 // non-Win32 special code to enable transient dialogs + _page_windows.add_group_header( _("Dialogs on top:")); + _page_windows.add_line( true, "", _win_ontop_none, "", _("Dialogs are treated as regular windows")); _page_windows.add_line( true, "", _win_ontop_normal, "", _("Dialogs stay on top of document windows")); _page_windows.add_line( true, "", _win_ontop_agressive, "", _("Same as Normal but may work better with some window managers")); -#else - _page_windows.add_line( false, "", _win_ontop_win32, "", - _("Whether dialogs should stay on top of document windows. Read the ReleaseNotes on this issue! (Rightclick the taskbar button and press 'Restore' to bring back a minimized document window)")); #endif _page_windows.add_group_header( _("Miscellaneous:")); @@ -540,6 +550,7 @@ void InkscapePreferences::initPageClones() _page_clones.add_line( true, "", _clone_option_delete, "", _("Orphaned clones are deleted along with their original.")); + //TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page this->AddPage(_page_clones, _("Clones"), PREFS_PAGE_CLONES); } @@ -605,6 +616,10 @@ void InkscapePreferences::initPageFilters() _page_filters.add_line( true, "", _blur_quality_worst, "", _("Lowest quality (considerable artifacts), but display is fastest")); + _show_filters_info_box.init( _("Show filter primitives infobox"), "options.showfiltersinfobox", "value", true); + _page_filters.add_line(true, "", _show_filters_info_box, "", + _("Show icons and descriptions for the filter primitives available at the filter effects dialog.")); + this->AddPage(_page_filters, _("Filters"), PREFS_PAGE_FILTERS); } @@ -875,6 +890,43 @@ void InkscapePreferences::initPageGrids() this->AddPage(_page_grids, _("Grids"), PREFS_PAGE_GRIDS); } +void InkscapePreferences::initPageSVGOutput() +{ + _svgoutput_usenamedcolors.init( _("Use named colors"), "options.svgoutput", "usenamedcolors", false); + _page_svgoutput.add_line( false, "", _svgoutput_usenamedcolors, "", _("If set, write the CSS name of the color instead of it's numeric value."), false); + + _page_svgoutput.add_group_header( _("XML looks")); + + _svgoutput_inlineattrs.init( _("Inline attributes"), "options.svgoutput", "inlineattrs", false); + _page_svgoutput.add_line( false, "", _svgoutput_inlineattrs, "", _("Inline the XML attributes"), false); + + _svgoutput_indent.init("options.svgoutput", "indent", 0.0, 1000.0, 1.0, 2.0, 2.0, true, false); + _page_svgoutput.add_line( false, _("Indent spaces"), _svgoutput_indent, "", _("The number of spaces to use for indentation."), false); + + _page_svgoutput.add_group_header( _("Path string")); + + _svgoutput_allowrelativecoordinates.init( _("Allow relative coordinates"), "options.svgoutput", "allowrelativecoordinates", true); + _page_svgoutput.add_line( false, "", _svgoutput_allowrelativecoordinates, "", _("If set, relative coordinates may be used in path data"), false); + + /* seems this is never used in Inkscape code + _svgoutput_allowshorthands.init( _("Allow shorthands"), "options.svgoutput", "allowshorthands", true); + _page_svgoutput.add_line( false, "", _svgoutput_allowshorthands, "", _(""), false); + */ + + _svgoutput_forcerepeatcommands.init( _("Force repeat commands"), "options.svgoutput", "forcerepeatcommands", false); + _page_svgoutput.add_line( false, "", _svgoutput_forcerepeatcommands, "", _("If set, force repeating of the same command (i.e. output 'L 1,2 L 3,4' instead of 'L 1,2 3,4')."), false); + + _page_svgoutput.add_group_header( _("Numeric data")); + + _svgoutput_numericprecision.init("options.svgoutput", "numericprecision", 0.0, 1000.0, 1.0, 2.0, 8.0, true, false); + _page_svgoutput.add_line( false, _("Numeric precision"), _svgoutput_numericprecision, "", _("The number of digits to use behind the comma."), false); + + _svgoutput_minimumexponent.init("options.svgoutput", "minimumexponent", -100.0, 100.0, 1.0, 2.0, -8.0, true, false); + _page_svgoutput.add_line( false, _("Minimum exponent"), _svgoutput_minimumexponent, "", _("The minimum size of a number (10 to the power of this exponent), smaller numbers will be written as zero."), false); + + this->AddPage(_page_svgoutput, _("SVG Output"), PREFS_PAGE_SVGOUTPUT); +} + void InkscapePreferences::initPageMisc() { _misc_comment.init( _("Add label comments to printing output"), "printing.debug", "show-label-comments", false); @@ -887,28 +939,61 @@ void InkscapePreferences::initPageMisc() _page_misc.add_line( false, _("Simplification threshold:"), _misc_simpl, "", _("How strong is the Simplify command by default. If you invoke this command several times in quick succession, it will act more and more aggressively; invoking it again after a pause restores the default threshold."), false); - int const num_items = 5; - Glib::ustring labels[num_items] = {_("None"), _("2x2"), _("4x4"), _("8x8"), _("16x16")}; - int values[num_items] = {0, 1, 2, 3, 4}; - _misc_overs_bitmap.set_size_request(_sb_width); - _misc_overs_bitmap.init("options.bitmapoversample", "value", labels, values, num_items, 1); - _page_misc.add_line( false, _("Oversample bitmaps:"), _misc_overs_bitmap, "", "", false); + { + Glib::ustring labels[] = {_("None"), _("2x2"), _("4x4"), _("8x8"), _("16x16")}; + int values[] = {0, 1, 2, 3, 4}; + _misc_overs_bitmap.set_size_request(_sb_width); + _misc_overs_bitmap.init("options.bitmapoversample", "value", labels, values, G_N_ELEMENTS(values), 1); + _page_misc.add_line( false, _("Oversample bitmaps:"), _misc_overs_bitmap, "", "", false); + } // consider moving this to an UI tab: - _misc_small_toolbar.init( _("Make the commands toolbar icons smaller"), "toolbox", "small", true); - _page_misc.add_line( false, "", _misc_small_toolbar, "", - _("Make the commands toolbar use the 'secondary' toolbar size (requires restart)"), true); - _misc_small_tools.init( _("Make the main toolbar icons smaller"), "toolbox.tools", "small", true); - _page_misc.add_line( false, "", _misc_small_tools, "", - _("Make the main tools use the 'secondary' toolbar size (requires restart)"), true); + Glib::ustring sizeLabels[] = {_("Normal"), _("Medium"), _("Small")}; + int sizeValues[] = {0, 1, 2}; + + _misc_small_toolbar.init( "toolbox", "small", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 0 ); + _page_misc.add_line( false, _("Commands bar icon size"), _misc_small_toolbar, "", + _("Set the size for the commands toolbar to use (requires restart)"), false); + + _misc_small_secondary.init( "toolbox", "secondary", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 1 ); + _page_misc.add_line( false, _("Tool controls bar icon size"), _misc_small_secondary, "", + _("Set the size for the secondary toolbar to use (requires restart)"), false); + + _misc_small_tools.init( "toolbox.tools", "small", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 0 ); + _page_misc.add_line( false, _("Main toolbar icon size"), _misc_small_tools, "", + _("Set the size for the main tools to use (requires restart)"), false); _misc_recent.init("options.maxrecentdocuments", "value", 0.0, 1000.0, 1.0, 1.0, 1.0, true, false); _page_misc.add_line( false, _("Maximum number of recent documents:"), _misc_recent, "", _("The maximum length of the Open Recent list in the File menu"), false); _misc_simpl.init("options.simplifythreshold", "value", 0.0001, 1.0, 0.0001, 0.0010, 0.0010, false, false); + + // ----------- + + _misc_bitmap_autoreload.init(_("Automatically reload bitmaps"), "options.bitmapautoreload", "value", true); + _page_misc.add_line( false, "", _misc_bitmap_autoreload, "", + _("Enbles automatic reload of linked images when changed on disk.")); + gchar const *choices = prefs_get_string_attribute("options.bitmapeditor", "choices"); + if ( choices && choices[0] ) { + gchar** splits = g_strsplit(choices, ",", 0); + gint numIems = g_strv_length(splits); + + Glib::ustring labels[numIems]; + int values[numIems]; + for ( gint i = 0; i < numIems; i++) { + values[i] = i; + labels[i] = splits[i]; + } + _misc_bitmap_editor.init("options.bitmapeditor", "value", labels, values, numIems, 0); + _page_misc.add_line( false, _("Bitmap editor:"), _misc_bitmap_editor, "", "", false); + + g_strfreev(splits); + } + + this->AddPage(_page_misc, _("Misc"), PREFS_PAGE_MISC); }