summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-10-30 16:45:39 +0000
committerjabiertxof <jabier.arraiza@marker.es>2015-10-30 16:45:39 +0000
commit0798ff4618d8e961cab364fdf827993c18aa69ac (patch)
tree71bd1b711b54ed190c365ab7ff88d288dd55e765 /src
parentSome fixes to new pressure options (diff)
downloadinkscape-0798ff4618d8e961cab364fdf827993c18aa69ac.tar.gz
inkscape-0798ff4618d8e961cab364fdf827993c18aa69ac.zip
Open trace dialog on click on pick toogle
(bzr r14422.1.30)
Diffstat (limited to 'src')
-rw-r--r--src/ui/dialog/clonetiler.cpp14
-rw-r--r--src/ui/dialog/clonetiler.h4
-rw-r--r--src/widgets/spray-toolbar.cpp22
3 files changed, 32 insertions, 8 deletions
diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
index 0b1d0ecf2..266d61ed5 100644
--- a/src/ui/dialog/clonetiler.cpp
+++ b/src/ui/dialog/clonetiler.cpp
@@ -101,7 +101,7 @@ CloneTiler::CloneTiler () :
contents->pack_start (*Gtk::manage(Glib::wrap(mainbox)), true, true, 0);
- GtkWidget *nb = gtk_notebook_new ();
+ nb = gtk_notebook_new ();
gtk_box_pack_start (GTK_BOX (mainbox), nb, FALSE, FALSE, 0);
@@ -776,7 +776,6 @@ CloneTiler::CloneTiler () :
// Trace
{
GtkWidget *vb = clonetiler_new_tab (nb, _("_Trace"));
-
{
#if GTK_CHECK_VERSION(3,0,0)
GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
@@ -791,11 +790,11 @@ CloneTiler::CloneTiler () :
gtk_notebook_set_current_page (GTK_NOTEBOOK(nb),5);
}
- GtkWidget *b = gtk_check_button_new_with_label (_("Trace the drawing under the tiles/spray tool"));
+ b = gtk_check_button_new_with_label (_("Trace the drawing under the tiles/spray tool"));
g_object_set_data (G_OBJECT(b), "uncheckable", GINT_TO_POINTER(TRUE));
bool old = prefs->getBool(prefs_path + "dotrace");
gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
- gtk_widget_set_tooltip_text (b, _("For each clone, pick a value from the drawing in that clone's location and apply it to the clone"));
+ gtk_widget_set_tooltip_text (b, _("For each clone/ Sprayed item, pick a value from the drawing in that clone's or item spayed location and apply it"));
gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(b), "toggled",
@@ -3008,6 +3007,13 @@ void CloneTiler::clonetiler_do_pick_toggled(GtkToggleButton *tb, GtkWidget *dlg)
}
}
+void CloneTiler::show_page_trace()
+{
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(nb),6);
+ gtk_toggle_button_set_active ((GtkToggleButton *) b, true);
+}
+
+
}
}
}
diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h
index e5f5638b2..a8f1df0a0 100644
--- a/src/ui/dialog/clonetiler.h
+++ b/src/ui/dialog/clonetiler.h
@@ -31,7 +31,7 @@ public:
virtual ~CloneTiler();
static CloneTiler &getInstance() { return *new CloneTiler(); }
-
+ void show_page_trace();
protected:
GtkWidget * clonetiler_new_tab(GtkWidget *nb, const gchar *label);
@@ -113,6 +113,8 @@ private:
CloneTiler& operator=(CloneTiler const &d);
GtkWidget *dlg;
+ GtkWidget *nb;
+ GtkWidget *b;
SPDesktop *desktop;
DesktopTracker deskTrack;
Inkscape::UI::Widget::ColorPicker *color_picker;
diff --git a/src/widgets/spray-toolbar.cpp b/src/widgets/spray-toolbar.cpp
index bc994d1b7..1e7d42378 100644
--- a/src/widgets/spray-toolbar.cpp
+++ b/src/widgets/spray-toolbar.cpp
@@ -42,6 +42,7 @@
#include "toolbox.h"
#include "ui/dialog/clonetiler.h"
#include "ui/dialog/dialog-manager.h"
+#include "ui/dialog/panel-dialog.h"
#include "ui/icon-names.h"
#include <glibmm/i18n.h>
@@ -81,6 +82,20 @@ static void sp_stb_sensitivize( GObject *tbl )
}
}
+Inkscape::UI::Dialog::CloneTiler *get_clone_tiler_panel(SPDesktop *desktop)
+{
+ if (Inkscape::UI::Dialog::PanelDialogBase *panel_dialog =
+ dynamic_cast<Inkscape::UI::Dialog::PanelDialogBase *>(desktop->_dlg_mgr->getDialog("CloneTiler"))) {
+ try {
+ Inkscape::UI::Dialog::CloneTiler &clone_tiler =
+ dynamic_cast<Inkscape::UI::Dialog::CloneTiler &>(panel_dialog->getPanel());
+ return &clone_tiler;
+ } catch (std::exception &e) { }
+ }
+
+ return 0;
+}
+
static void sp_spray_width_value_changed( GtkAdjustment *adj, GObject * /*tbl*/ )
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
@@ -182,10 +197,11 @@ static void sp_toggle_picker( GtkToggleAction* act, gpointer data )
GtkToggleAction *visible = GTK_TOGGLE_ACTION( g_object_get_data(tbl, "visible") );
gtk_toggle_action_set_active(visible, false);
prefs->setBool("/dialogs/clonetiler/dotrace", true);
- prefs->setBool("/dialogs/clonetiler/opentrace", true);
SPDesktop *dt = SP_ACTIVE_DESKTOP;
- dt->_dlg_mgr->showDialog("CloneTiler");
- prefs->setBool("/dialogs/clonetiler/opentrace", false);
+ if (Inkscape::UI::Dialog::CloneTiler *ct = get_clone_tiler_panel(dt)){
+ dt->_dlg_mgr->showDialog("CloneTiler");
+ ct->show_page_trace();
+ }
}
}