diff options
| author | Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> | 2019-03-02 03:40:58 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marcjeanmougin@free.fr> | 2019-05-13 22:43:53 +0000 |
| commit | 4c82216535f138fb917b8258cebb799054e64cce (patch) | |
| tree | 75fe1e35cf9a9c98b6ba3599190c75983249283b /src/ui | |
| parent | packaging/macos: typos fixed (diff) | |
| download | inkscape-4c82216535f138fb917b8258cebb799054e64cce.tar.gz inkscape-4c82216535f138fb917b8258cebb799054e64cce.zip | |
Regression fix: hide some toolbar icons on startup
Pencil toolbar also given some checks for
gitlab.com/inkscape/inkscape/issues/92
Fixes gitlab.com/inkscape/inbox/issues/182
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/toolbar/pencil-toolbar.cpp | 85 | ||||
| -rw-r--r-- | src/ui/toolbar/spray-toolbar.cpp | 2 | ||||
| -rw-r--r-- | src/ui/toolbar/star-toolbar.cpp | 7 | ||||
| -rw-r--r-- | src/ui/toolbar/tweak-toolbar.cpp | 30 | ||||
| -rw-r--r-- | src/ui/tools/pencil-tool.cpp | 3 |
5 files changed, 56 insertions, 71 deletions
diff --git a/src/ui/toolbar/pencil-toolbar.cpp b/src/ui/toolbar/pencil-toolbar.cpp index 820db76d0..e781bf3bb 100644 --- a/src/ui/toolbar/pencil-toolbar.cpp +++ b/src/ui/toolbar/pencil-toolbar.cpp @@ -113,11 +113,6 @@ PencilToolbar::PencilToolbar(SPDesktop *desktop, _minpressure->set_tooltip_text(_("Min percent of pressure")); _minpressure->set_focus_widget(Glib::wrap(GTK_WIDGET(desktop->canvas))); _minpressure_adj->signal_value_changed().connect(sigc::mem_fun(*this, &PencilToolbar::minpressure_value_changed)); - if (prefs->getInt("/tools/freehand/pencil/freehand-mode", 0) == 3) { - _minpressure->set_visible(true); - } else { - _minpressure->set_visible(false); - } } /* max pressure */ { @@ -127,11 +122,6 @@ PencilToolbar::PencilToolbar(SPDesktop *desktop, _maxpressure->set_tooltip_text(_("Max percent of pressure")); _maxpressure->set_focus_widget(Glib::wrap(GTK_WIDGET(desktop->canvas))); _maxpressure_adj->signal_value_changed().connect(sigc::mem_fun(*this, &PencilToolbar::maxpressure_value_changed)); - if (prefs->getInt("/tools/freehand/pencil/freehand-mode", 0) == 3) { - _maxpressure->set_visible(true); - } else { - _maxpressure->set_visible(false); - } } /* Use pressure */ @@ -139,19 +129,16 @@ PencilToolbar::PencilToolbar(SPDesktop *desktop, _pressure_item = add_toggle_button(_("Use pressure input"), _("Use pressure input")); _pressure_item->set_icon_name(INKSCAPE_ICON("draw-use-pressure")); - bool pressure = prefs->getBool(freehand_tool_name() + "/pressure", false); + bool oldPressureMode = prefs->getIntLimited("/tools/freehand/pencil/freehand-mode", 0, 0, 3) == 3; + bool pressure = prefs->getBool(freehand_tool_name() + "/pressure", oldPressureMode); + if (oldPressureMode && pressure) { + prefs->setBool(freehand_tool_name() + "/pressure", true); + } _pressure_item->set_active(pressure); _pressure_item->signal_toggled().connect(sigc::mem_fun(*this, &PencilToolbar::use_pencil_pressure)); add(*_minpressure); add(*_maxpressure); - if (pressure) { - _minpressure->set_visible(true); - _maxpressure->set_visible(true); - } else { - _minpressure->set_visible(false); - _maxpressure->set_visible(false); - } } add(* Gtk::manage(new Gtk::SeparatorToolItem())); @@ -178,13 +165,9 @@ PencilToolbar::PencilToolbar(SPDesktop *desktop, _simplify->set_icon_name(INKSCAPE_ICON("interactive_simplify")); _simplify->set_active(prefs->getInt("/tools/freehand/pencil/simplify", 0)); _simplify->signal_toggled().connect(sigc::mem_fun(*this, &PencilToolbar::simplify_lpe)); - guint freehandMode = prefs->getInt("/tools/freehand/pencil/freehand-mode", 0); - if (freehandMode == 2) { - _simplify->set_visible(false); - } else { - _simplify->set_visible(true); - } + } + /* LPE simplify flatten */ { _flatten_simplify = Gtk::manage(new Gtk::ToolButton(_("LPE simplify flatten"))); @@ -192,12 +175,6 @@ PencilToolbar::PencilToolbar(SPDesktop *desktop, _flatten_simplify->set_icon_name(INKSCAPE_ICON("flatten")); _flatten_simplify->signal_clicked().connect(sigc::mem_fun(*this, &PencilToolbar::simplify_flatten)); add(*_flatten_simplify); - guint freehandMode = prefs->getInt("/tools/freehand/pencil/freehand-mode", 0); - if (freehandMode == 2 || !prefs->getInt("/tools/freehand/pencil/simplify", 0)) { - _flatten_simplify->set_visible(false); - } else { - _flatten_simplify->set_visible(true); - } } add(* Gtk::manage(new Gtk::SeparatorToolItem())); @@ -207,6 +184,35 @@ PencilToolbar::PencilToolbar(SPDesktop *desktop, add_advanced_shape_options(pencil_mode); show_all(); + + // Elements must be hidden after show_all() is called + guint freehandMode = prefs->getInt(( pencil_mode ? + "/tools/freehand/pencil/freehand-mode" : + "/tools/freehand/pen/freehand-mode" ), 0); + if (freehandMode != 1 && freehandMode != 2) { + _flatten_spiro_bspline->set_visible(false); + } + + if (pencil_mode) { + /* Pressure */ + if (!prefs->getBool(freehand_tool_name() + "/pressure", false)) { + _minpressure->set_visible(false); + _maxpressure->set_visible(false); + } + + /* LPE simplify based tolerance */ + if (freehandMode == 2) { + _simplify->set_visible(false); + } + + /* LPE simplify flatten */ + if (freehandMode == 2 || !prefs->getInt("/tools/freehand/pencil/simplify", 0)) { + _flatten_simplify->set_visible(false); + } + + /* Advanced shape options */ + _shape_item->set_visible(!prefs->getBool("/tools/freehand/pencil/pressure", false)); + } } GtkWidget * @@ -302,9 +308,6 @@ PencilToolbar::add_freehand_mode_toggle(bool tool_is_pencil) } auto prefs = Inkscape::Preferences::get(); - guint freehandMode = prefs->getInt(( tool_is_pencil ? - "/tools/freehand/pencil/freehand-mode" : - "/tools/freehand/pen/freehand-mode" ), 0); add(* Gtk::manage(new Gtk::SeparatorToolItem())); @@ -315,13 +318,12 @@ PencilToolbar::add_freehand_mode_toggle(bool tool_is_pencil) _flatten_spiro_bspline->signal_clicked().connect(sigc::mem_fun(*this, &PencilToolbar::flatten_spiro_bspline)); add(*_flatten_spiro_bspline); + guint freehandMode = prefs->getInt(( tool_is_pencil ? + "/tools/freehand/pencil/freehand-mode" : + "/tools/freehand/pen/freehand-mode" ), 0); + // freehandMode range is (0,5] for the pen tool, (0,3] for the pencil tool + // freehandMode = 3 is an old way of signifying pressure, set it to 0. _mode_buttons[(freehandMode < _mode_buttons.size()) ? freehandMode : 0]->set_active(); - - if (freehandMode == 1 || freehandMode == 2) { - _flatten_spiro_bspline->set_visible(true); - } else { - _flatten_spiro_bspline->set_visible(false); - } } void @@ -390,7 +392,6 @@ PencilToolbar::add_advanced_shape_options(bool tool_is_pencil) _("Last applied") }; - for (auto item:freehand_shape_dropdown_items_list) { _shape_combo->append(item); } @@ -403,10 +404,6 @@ PencilToolbar::add_advanced_shape_options(bool tool_is_pencil) hbox->add(*_shape_combo); - bool hide = prefs->getInt("/tools/freehand/pencil/freehand-mode", 0) == 3 || - (tool_is_pencil && prefs->getBool("/tools/freehand/pencil/pressure", false)); - _shape_item->set_visible( !hide ); - _shape_combo->signal_changed().connect(sigc::mem_fun(*this, &PencilToolbar::change_shape)); add(*_shape_item); diff --git a/src/ui/toolbar/spray-toolbar.cpp b/src/ui/toolbar/spray-toolbar.cpp index a2c9f2b55..620351a99 100644 --- a/src/ui/toolbar/spray-toolbar.cpp +++ b/src/ui/toolbar/spray-toolbar.cpp @@ -355,8 +355,8 @@ SprayToolbar::SprayToolbar(SPDesktop *desktop) : gint mode = prefs->getInt("/tools/spray/mode", 1); _mode_buttons[mode]->set_active(); - init(); show_all(); + init(); } GtkWidget * diff --git a/src/ui/toolbar/star-toolbar.cpp b/src/ui/toolbar/star-toolbar.cpp index d269fe431..13a295e5d 100644 --- a/src/ui/toolbar/star-toolbar.cpp +++ b/src/ui/toolbar/star-toolbar.cpp @@ -129,12 +129,6 @@ StarToolbar::StarToolbar(SPDesktop *desktop) : _spoke_item->set_focus_widget(Glib::wrap(GTK_WIDGET(desktop->canvas))); _spoke_adj->signal_value_changed().connect(sigc::mem_fun(*this, &StarToolbar::proportion_value_changed)); - if ( !isFlatSided ) { - _spoke_item->set_visible(true); - } else { - _spoke_item->set_visible(false); - } - add(*_spoke_item); } @@ -184,6 +178,7 @@ StarToolbar::StarToolbar(SPDesktop *desktop) : desktop->connectEventContextChanged(sigc::mem_fun(*this, &StarToolbar::watch_ec)); show_all(); + _spoke_item->set_visible(!isFlatSided); } StarToolbar::~StarToolbar() diff --git a/src/ui/toolbar/tweak-toolbar.cpp b/src/ui/toolbar/tweak-toolbar.cpp index 7b6025790..16c9b6009 100644 --- a/src/ui/toolbar/tweak-toolbar.cpp +++ b/src/ui/toolbar/tweak-toolbar.cpp @@ -189,10 +189,6 @@ TweakToolbar::TweakToolbar(SPDesktop *desktop) _fidelity_item->set_focus_widget(Glib::wrap(GTK_WIDGET(desktop->canvas))); _fidelity_adj->signal_value_changed().connect(sigc::mem_fun(*this, &TweakToolbar::fidelity_value_changed)); add(*_fidelity_item); - _fidelity_item->set_visible(true); - if (mode == Inkscape::UI::Tools::TWEAK_MODE_COLORPAINT || mode == Inkscape::UI::Tools::TWEAK_MODE_COLORJITTER) { - _fidelity_item->set_visible(false); - } } add(* Gtk::manage(new Gtk::SeparatorToolItem())); @@ -201,9 +197,6 @@ TweakToolbar::TweakToolbar(SPDesktop *desktop) _channels_label = Gtk::manage(new UI::Widget::LabelToolItem(_("Channels:"))); _channels_label->set_use_markup(true); add(*_channels_label); - if (mode != Inkscape::UI::Tools::TWEAK_MODE_COLORPAINT && mode != Inkscape::UI::Tools::TWEAK_MODE_COLORJITTER) { - _channels_label->set_visible(false); - } } { @@ -212,9 +205,6 @@ TweakToolbar::TweakToolbar(SPDesktop *desktop) _("In color mode, act on object's hue")); _doh_item->signal_toggled().connect(sigc::mem_fun(*this, &TweakToolbar::toggle_doh)); _doh_item->set_active(prefs->getBool("/tools/tweak/doh", true)); - if (mode != Inkscape::UI::Tools::TWEAK_MODE_COLORPAINT && mode != Inkscape::UI::Tools::TWEAK_MODE_COLORJITTER) { - _doh_item->set_visible(false); - } } { //TRANSLATORS: "S" here stands for saturation @@ -222,9 +212,6 @@ TweakToolbar::TweakToolbar(SPDesktop *desktop) _("In color mode, act on object's saturation")); _dos_item->signal_toggled().connect(sigc::mem_fun(*this, &TweakToolbar::toggle_dos)); _dos_item->set_active(prefs->getBool("/tools/tweak/dos", true)); - if (mode != Inkscape::UI::Tools::TWEAK_MODE_COLORPAINT && mode != Inkscape::UI::Tools::TWEAK_MODE_COLORJITTER) { - _dos_item->set_visible(false); - } } { //TRANSLATORS: "S" here stands for saturation @@ -232,9 +219,6 @@ TweakToolbar::TweakToolbar(SPDesktop *desktop) _("In color mode, act on object's lightness")); _dol_item->signal_toggled().connect(sigc::mem_fun(*this, &TweakToolbar::toggle_dol)); _dol_item->set_active(prefs->getBool("/tools/tweak/dol", true)); - if (mode != Inkscape::UI::Tools::TWEAK_MODE_COLORPAINT && mode != Inkscape::UI::Tools::TWEAK_MODE_COLORJITTER) { - _dol_item->set_visible(false); - } } { //TRANSLATORS: "O" here stands for opacity @@ -242,13 +226,21 @@ TweakToolbar::TweakToolbar(SPDesktop *desktop) _("In color mode, act on object's opacity")); _doo_item->signal_toggled().connect(sigc::mem_fun(*this, &TweakToolbar::toggle_doo)); _doo_item->set_active(prefs->getBool("/tools/tweak/doo", true)); - if (mode != Inkscape::UI::Tools::TWEAK_MODE_COLORPAINT && mode != Inkscape::UI::Tools::TWEAK_MODE_COLORJITTER) { - _doo_item->set_visible(false); - } } _mode_buttons[mode]->set_active(); show_all(); + + // Elements must be hidden after show_all() is called + if (mode == Inkscape::UI::Tools::TWEAK_MODE_COLORPAINT || mode == Inkscape::UI::Tools::TWEAK_MODE_COLORJITTER) { + _fidelity_item->set_visible(false); + } else { + _channels_label->set_visible(false); + _doh_item->set_visible(false); + _dos_item->set_visible(false); + _dol_item->set_visible(false); + _doo_item->set_visible(false); + } } GtkWidget * diff --git a/src/ui/tools/pencil-tool.cpp b/src/ui/tools/pencil-tool.cpp index 8e1966f4c..cbcba16b5 100644 --- a/src/ui/tools/pencil-tool.cpp +++ b/src/ui/tools/pencil-tool.cpp @@ -202,7 +202,8 @@ bool PencilTool::_handleButtonPress(GdkEventButton const &bevent) { pencil_drag_origin_w = Geom::Point(bevent.x,bevent.y); pencil_within_tolerance = true; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - tablet_enabled = prefs->getBool("/tools/freehand/pencil/pressure", false); + tablet_enabled = prefs->getBool("/tools/freehand/pencil/pressure", false) || + prefs->getInt("/tools/freehand/pencil/freehand-mode", 0) == 3; switch (this->_state) { case SP_PENCIL_CONTEXT_ADDLINE: /* Current segment will be finished with release */ |
