X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fui%2Fdialog%2Finkscape-preferences.cpp;h=62c8750e2b46b1293ac38e8767de2da6d1b64aad;hb=2eff5d815d33c0d2005d7cb11ff4a352c3438d4c;hp=e179f1581ed15db73203358a13d18df485ebd13c;hpb=77ff64899055fbf116b55e2eca4c53ad75c7124f;p=inkscape.git diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index e179f1581..62c8750e2 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -86,27 +86,35 @@ InkscapePreferences::InkscapePreferences() //Pages Gtk::VBox* vbox_page = Gtk::manage(new Gtk::VBox()); Gtk::Frame* title_frame = Gtk::manage(new Gtk::Frame()); - hbox_list_page->pack_start(*vbox_page, true, true, 0); + + Gtk::ScrolledWindow* pageScroller = Gtk::manage(new Gtk::ScrolledWindow()); + pageScroller->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); + pageScroller->add(*vbox_page); + hbox_list_page->pack_start(*pageScroller, true, true, 0); + title_frame->add(_page_title); vbox_page->pack_start(*title_frame, false, false, 0); vbox_page->pack_start(_page_frame, true, true, 0); _page_frame.set_shadow_type(Gtk::SHADOW_IN); title_frame->set_shadow_type(Gtk::SHADOW_IN); - initPageMouse(); - initPageScrolling(); - initPageSteps(); initPageTools(); - initPageWindows(); + initPageSelecting(); + initPageTransforms(); initPageClones(); initPageMasks(); - initPageTransforms(); initPageFilters(); - initPageSelecting(); - initPageImportExport(); + initPageBitmaps(); initPageCMS(); initPageGrids(); initPageSVGOutput(); + initPageAutosave(); + initPageImportExport(); + initPageUI(); + initPageMouse(); + initPageScrolling(); + initPageSteps(); + initPageWindows(); initPageMisc(); signalPresent().connect(sigc::mem_fun(*this, &InkscapePreferences::_presentPages)); @@ -298,11 +306,12 @@ void StyleFromSelectionToTool(gchar const *prefs_path, StyleSwatch *swatch) } } -void InkscapePreferences::AddNewObjectsStyle(DialogPage& p, const std::string& prefs_path) +void InkscapePreferences::AddNewObjectsStyle(DialogPage& p, const std::string& prefs_path, const gchar* banner) { - - - p.add_group_header( _("Create new objects with:")); + if (banner) + p.add_group_header(banner); + else + p.add_group_header( _("Create new objects with:")); PrefRadioButton* current = Gtk::manage( new PrefRadioButton); current->init ( _("Last used style"), prefs_path, "usecurrent", 1, true, 0); p.add_line( true, "", *current, "", @@ -395,49 +404,56 @@ void InkscapePreferences::initPageTools() _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); + this->AddPage(_page_tweak, _("Tweak"), iter_tools, PREFS_PAGE_TOOLS_TWEAK); + this->AddNewObjectsStyle(_page_tweak, "tools.tweak", _("Paint objects with:")); AddSelcueCheckbox(_page_tweak, "tools.tweak", true); AddGradientCheckbox(_page_tweak, "tools.tweak", false); + //Zoom this->AddPage(_page_zoom, _("Zoom"), iter_tools, PREFS_PAGE_TOOLS_ZOOM); AddSelcueCheckbox(_page_zoom, "tools.zoom", true); AddGradientCheckbox(_page_zoom, "tools.zoom", false); + //Shapes Gtk::TreeModel::iterator iter_shapes = this->AddPage(_page_shapes, _("Shapes"), iter_tools, PREFS_PAGE_TOOLS_SHAPES); _path_shapes = _page_list.get_model()->get_path(iter_shapes); this->AddSelcueCheckbox(_page_shapes, "tools.shapes", true); this->AddGradientCheckbox(_page_shapes, "tools.shapes", true); + //Rectangle this->AddPage(_page_rectangle, _("Rectangle"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_RECT); this->AddNewObjectsStyle(_page_rectangle, "tools.shapes.rect"); this->AddConvertGuidesCheckbox(_page_rectangle, "tools.shapes.rect", true); + //3D box this->AddPage(_page_3dbox, _("3D Box"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_3DBOX); this->AddNewObjectsStyle(_page_3dbox, "tools.shapes.3dbox"); this->AddConvertGuidesCheckbox(_page_3dbox, "tools.shapes.3dbox", true); + //ellipse this->AddPage(_page_ellipse, _("Ellipse"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_ELLIPSE); this->AddNewObjectsStyle(_page_ellipse, "tools.shapes.arc"); + //star this->AddPage(_page_star, _("Star"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_STAR); this->AddNewObjectsStyle(_page_star, "tools.shapes.star"); + //spiral this->AddPage(_page_spiral, _("Spiral"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_SPIRAL); this->AddNewObjectsStyle(_page_spiral, "tools.shapes.spiral"); + //Pencil this->AddPage(_page_pencil, _("Pencil"), iter_tools, PREFS_PAGE_TOOLS_PENCIL); this->AddSelcueCheckbox(_page_pencil, "tools.freehand.pencil", true); - _t_pencil_tolerance.init ( "tools.freehand.pencil", "tolerance", 0.0, 100.0, 0.5, 1.0, 10.0, false, false); - _page_pencil.add_line( false, _("Tolerance:"), _t_pencil_tolerance, "", - _("This value affects the amount of smoothing applied to freehand lines; lower values produce more uneven paths with more nodes"), - false ); this->AddNewObjectsStyle(_page_pencil, "tools.freehand.pencil"); this->AddDotSizeSpinbutton(_page_pencil, "tools.freehand.pencil", 3.0); + //Pen this->AddPage(_page_pen, _("Pen"), iter_tools, PREFS_PAGE_TOOLS_PEN); this->AddSelcueCheckbox(_page_pen, "tools.freehand.pen", true); this->AddNewObjectsStyle(_page_pen, "tools.freehand.pen"); this->AddDotSizeSpinbutton(_page_pen, "tools.freehand.pen", 3.0); + //Calligraphy this->AddPage(_page_calligraphy, _("Calligraphy"), iter_tools, PREFS_PAGE_TOOLS_CALLIGRAPHY); this->AddSelcueCheckbox(_page_calligraphy, "tools.calligraphic", false); @@ -450,16 +466,25 @@ 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 + + //Eraser this->AddPage(_page_eraser, _("Eraser"), iter_tools, PREFS_PAGE_TOOLS_ERASER); + this->AddNewObjectsStyle(_page_eraser, "tools.eraser"); + + //LPETool + this->AddPage(_page_lpetool, _("LPE Tool"), iter_tools, PREFS_PAGE_TOOLS_LPETOOL); + this->AddNewObjectsStyle(_page_lpetool, "tools.lpetool"); + //Text this->AddPage(_page_text, _("Text"), iter_tools, PREFS_PAGE_TOOLS_TEXT); this->AddSelcueCheckbox(_page_text, "tools.text", true); this->AddGradientCheckbox(_page_text, "tools.text", true); this->AddNewObjectsStyle(_page_text, "tools.text"); + //Gradient this->AddPage(_page_gradient, _("Gradient"), iter_tools, PREFS_PAGE_TOOLS_GRADIENT); this->AddSelcueCheckbox(_page_gradient, "tools.gradient", true); + //Connector this->AddPage(_page_connector, _("Connector"), iter_tools, PREFS_PAGE_TOOLS_CONNECTOR); this->AddSelcueCheckbox(_page_connector, "tools.connector", true); @@ -502,7 +527,7 @@ void InkscapePreferences::initPageWindows() _("Floating")); #ifndef WIN32 // non-Win32 special code to enable transient dialogs - _page_windows.add_group_header( _("Dialogs on top:")); + _page_windows.add_group_header( _("Dialogs on top:")); _page_windows.add_line( true, "", _win_ontop_none, "", _("Dialogs are treated as regular windows")); @@ -550,6 +575,12 @@ void InkscapePreferences::initPageClones() _page_clones.add_line( true, "", _clone_option_delete, "", _("Orphaned clones are deleted along with their original.")); + _page_clones.add_group_header( _("When duplicating original+clones:")); + + _clone_relink_on_duplicate.init ( _("Relink duplicated clones"), "options.relinkclonesonduplicate", "value", false); + _page_clones.add_line(true, "", _clone_relink_on_duplicate, "", + _("When duplicating a selection containing both a clone and its original (possibly in groups), relink the duplicated clone to the duplicated original instead of the old original")); + //TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page this->AddPage(_page_clones, _("Clones"), PREFS_PAGE_CLONES); } @@ -859,13 +890,13 @@ void InkscapePreferences::initPageGrids() _grids_xy.add_line( false, _("Spacing Y"), _grids_xy_spacing_y, "", _("Distance between horizontal grid lines"), false); _grids_xy_color.init(_("Grid line color"), "options.grids.xy", "color", 0x0000ff20); - _grids_xy.add_line( false, _("Grid line color"), _grids_xy_color, "", _("Selects the color used for normal grid lines."), false); + _grids_xy.add_line( false, _("Grid line color"), _grids_xy_color, "", _("Color used for normal grid lines"), false); _grids_xy_empcolor.init(_("Major grid line color"), "options.grids.xy", "empcolor", 0x0000ff40); - _grids_xy.add_line( false, _("Major grid line color"), _grids_xy_empcolor, "", _("Selects the color used for major (highlighted) grid lines."), false); + _grids_xy.add_line( false, _("Major grid line color"), _grids_xy_empcolor, "", _("Color used for major (highlighted) grid lines"), false); _grids_xy_empspacing.init("options.grids.xy", "empspacing", 1.0, 1000.0, 1.0, 5.0, 5.0, true, false); _grids_xy.add_line( false, _("Major grid line every"), _grids_xy_empspacing, "", "", false); _grids_xy_dotted.init( _("Show dots instead of lines"), "options.grids.xy", "dotted", false); - _grids_xy.add_line( false, "", _grids_xy_dotted, "", _("If set, displays dots at gridpoints instead of gridlines"), false); + _grids_xy.add_line( false, "", _grids_xy_dotted, "", _("If set, display dots at gridpoints instead of gridlines"), false); // CanvasAxonomGrid properties: _grids_axonom_units.init("options.grids.axonom", "units"); @@ -881,9 +912,9 @@ void InkscapePreferences::initPageGrids() _grids_axonom.add_line( false, _("Angle X"), _grids_axonom_angle_x, "", _("Angle of x-axis"), false); _grids_axonom.add_line( false, _("Angle Z"), _grids_axonom_angle_z, "", _("Angle of z-axis"), false); _grids_axonom_color.init(_("Grid line color"), "options.grids.axonom", "color", 0x0000ff20); - _grids_axonom.add_line( false, _("Grid line color"), _grids_axonom_color, "", _("Selects the color used for normal grid lines."), false); + _grids_axonom.add_line( false, _("Grid line color"), _grids_axonom_color, "", _("Color used for normal grid lines"), false); _grids_axonom_empcolor.init(_("Major grid line color"), "options.grids.axonom", "empcolor", 0x0000ff40); - _grids_axonom.add_line( false, _("Major grid line color"), _grids_axonom_empcolor, "", _("Selects the color used for major (highlighted) grid lines."), false); + _grids_axonom.add_line( false, _("Major grid line color"), _grids_axonom_empcolor, "", _("Color used for major (highlighted) grid lines"), false); _grids_axonom_empspacing.init("options.grids.axonom", "empspacing", 1.0, 1000.0, 1.0, 5.0, 5.0, true, false); _grids_axonom.add_line( false, _("Major grid line every"), _grids_axonom_empspacing, "", "", false); @@ -893,89 +924,104 @@ void InkscapePreferences::initPageGrids() 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_line( false, "", _svgoutput_usenamedcolors, "", _("If set, write the CSS name of the color when available (e.g. 'red' or 'magenta') instead of the numeric value"), false); - _page_svgoutput.add_group_header( _("XML looks")); + _page_svgoutput.add_group_header( _("XML formatting")); _svgoutput_inlineattrs.init( _("Inline attributes"), "options.svgoutput", "inlineattrs", false); - _page_svgoutput.add_line( false, "", _svgoutput_inlineattrs, "", _("Inline the XML attributes"), false); + _page_svgoutput.add_line( false, "", _svgoutput_inlineattrs, "", _("Put attributes on the same line as the element tag"), 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_line( false, _("Indent, spaces"), _svgoutput_indent, "", _("The number of spaces to use for indenting nested elements; set to 0 for no indentation"), false); - _page_svgoutput.add_group_header( _("Path string")); + _page_svgoutput.add_group_header( _("Path data")); _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_line( false, "", _svgoutput_forcerepeatcommands, "", _("Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead of 'L 1,2 3,4')"), false); - _page_svgoutput.add_group_header( _("Numeric data")); + _page_svgoutput.add_group_header( _("Numbers")); - _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_numericprecision.init("options.svgoutput", "numericprecision", 1.0, 16.0, 1.0, 2.0, 8.0, true, false); + _page_svgoutput.add_line( false, _("Numeric precision"), _svgoutput_numericprecision, "", _("How many digits to write after the decimal dot"), 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); + _svgoutput_minimumexponent.init("options.svgoutput", "minimumexponent", -32.0, -1, 1.0, 2.0, -8.0, true, false); + _page_svgoutput.add_line( false, _("Minimum exponent"), _svgoutput_minimumexponent, "", _("The smallest number written to SVG is 10 to the power of this exponent; anything smaller is written as zero."), false); - this->AddPage(_page_svgoutput, _("SVG Output"), PREFS_PAGE_SVGOUTPUT); + this->AddPage(_page_svgoutput, _("SVG output"), PREFS_PAGE_SVGOUTPUT); } -void InkscapePreferences::initPageMisc() +void InkscapePreferences::initPageUI() { - _misc_comment.init( _("Add label comments to printing output"), "printing.debug", "show-label-comments", false); - _page_misc.add_line( false, "", _misc_comment, "", - _("When on, a comment will be added to the raw print output, marking the rendered output for an object with its label"), true); - - _misc_forkvectors.init( _("Prevent sharing of gradient definitions"), "options.forkgradientvectors", "value", true); - _page_misc.add_line( false, "", _misc_forkvectors, "", - _("When on, shared gradient definitions are automatically forked on change; uncheck to allow sharing of gradient definitions so that editing one object may affect other objects using the same gradient"), true); - - _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); - { - 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: - - Glib::ustring sizeLabels[] = {_("Normal"), _("Medium"), _("Small")}; + 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, "", + _page_ui.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, "", + _page_ui.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, "", + _page_ui.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, "", + _page_ui.add_line( false, _("Maximum documents in Open Recent:"), _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); + this->AddPage(_page_ui, _("Interface"), PREFS_PAGE_UI); +} + + +void InkscapePreferences::initPageAutosave() +{ + // Autosave options + _autosave_autosave_enable.init( _("Enable autosave (requires restart)"), "options.autosave", "enable", false); + _page_autosave.add_line(false, "", _autosave_autosave_enable, "", _("Automatically save the current document(s) at a given interval, thus minimizing loss in case of a crash"), false); + _autosave_autosave_interval.init("options.autosave", "interval", 1.0, 10800.0, 1.0, 10.0, 10.0, true, false); + _page_autosave.add_line(true, _("Interval (in minutes)"), _autosave_autosave_interval, "", _("Interval (in minutes) at which document will be autosaved"), false); + _autosave_autosave_path.init("options.autosave", "path", true); + _page_autosave.add_line(true, _("Path"), _autosave_autosave_path, "", _("The directory where autosaves will be written"), false); + _autosave_autosave_max.init("options.autosave", "max", 1.0, 100.0, 1.0, 10.0, 10.0, true, false); + _page_autosave.add_line(true, _("Maximum number of autosaves"), _autosave_autosave_max, "", _("Maximum number of autosaved files; use this to limit the storage space used"), false); + + /* When changing the interval or enabling/disabling the autosave function, + * update our running configuration + * + * FIXME! + * the inkscape_autosave_init should be called AFTER the values have been changed + * (which cannot be guaranteed from here) + * + * For now, autosave-settings will not change until restart + */ + /* + _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); + _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); + */ // ----------- + this->AddPage(_page_autosave, _("Autosave"), PREFS_PAGE_AUTOSAVE); +} + +void InkscapePreferences::initPageBitmaps() +{ + { + 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_bitmaps.add_line( false, _("Oversample bitmaps:"), _misc_overs_bitmap, "", "", 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.")); + _page_bitmaps.add_line( false, "", _misc_bitmap_autoreload, "", + _("Automatically reload linked images when file is changed on disk")); gchar const *choices = prefs_get_string_attribute("options.bitmapeditor", "choices"); if ( choices && choices[0] ) { gchar** splits = g_strsplit(choices, ",", 0); @@ -988,11 +1034,40 @@ void InkscapePreferences::initPageMisc() 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); + _page_bitmaps.add_line( false, _("Bitmap editor:"), _misc_bitmap_editor, "", "", false); g_strfreev(splits); } + _bitmap_copy_res.init("options.createbitmap", "resolution", 1.0, 6000.0, 1.0, 1.0, PX_PER_IN, true, false); + _page_bitmaps.add_line( false, _("Resolution for Create Bitmap Copy:"), _bitmap_copy_res, _("dpi"), + _("Resolution used by the Create Bitmap Copy command"), false); + + this->AddPage(_page_bitmaps, _("Bitmaps"), PREFS_PAGE_BITMAPS); +} + + +void InkscapePreferences::initPageMisc() +{ + _misc_comment.init( _("Add label comments to printing output"), "printing.debug", "show-label-comments", false); + _page_misc.add_line( false, "", _misc_comment, "", + _("When on, a comment will be added to the raw print output, marking the rendered output for an object with its label"), true); + + _misc_forkvectors.init( _("Prevent sharing of gradient definitions"), "options.forkgradientvectors", "value", true); + _page_misc.add_line( false, "", _misc_forkvectors, "", + _("When on, shared gradient definitions are automatically forked on change; uncheck to allow sharing of gradient definitions so that editing one object may affect other objects using the same gradient"), true); + + _misc_simpl.init("options.simplifythreshold", "value", 0.0001, 1.0, 0.0001, 0.0010, 0.0010, false, false); + _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); + + _misc_latency_skew.init("debug.latency", "skew", 0.5, 2.0, 0.01, 0.10, 1.0, false, false); + _page_misc.add_line( false, _("Latency skew:"), _misc_latency_skew, _("(requires restart)"), + _("Factor by which the event clock is skewed from the actual time (0.9766 on some systems)."), false); + + _misc_namedicon_delay.init( _("Pre-render named icons"), "options.iconrender", "named_nodelay", false); + _page_misc.add_line( false, "", _misc_namedicon_delay, "", + _("When on, named icons will be rendered before displaying the ui. This is for working around bugs in GTK+ named icon notification"), true); this->AddPage(_page_misc, _("Misc"), PREFS_PAGE_MISC); }