summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorNathan Lee <2431820-nathanal@users.noreply.gitlab.com>2019-03-02 03:40:58 +0000
committerMarc Jeanmougin <marcjeanmougin@free.fr>2019-05-13 22:43:53 +0000
commit4c82216535f138fb917b8258cebb799054e64cce (patch)
tree75fe1e35cf9a9c98b6ba3599190c75983249283b /src/ui
parentpackaging/macos: typos fixed (diff)
downloadinkscape-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.cpp85
-rw-r--r--src/ui/toolbar/spray-toolbar.cpp2
-rw-r--r--src/ui/toolbar/star-toolbar.cpp7
-rw-r--r--src/ui/toolbar/tweak-toolbar.cpp30
-rw-r--r--src/ui/tools/pencil-tool.cpp3
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 */