diff options
| author | Liam P. White <inkscapebronyat-signgmaildotcom> | 2014-03-30 00:42:24 +0000 |
|---|---|---|
| committer | Liam P. White <inkscapebronyat-signgmaildotcom> | 2014-03-30 00:42:24 +0000 |
| commit | 189ec94a227498b9d1e3f720bddd4099e9de8652 (patch) | |
| tree | 89278142aafd94d61b00109c316e8e2a82ab1d4c /src | |
| parent | Minor fixes (diff) | |
| parent | Removed obsolete header file. (diff) | |
| download | inkscape-189ec94a227498b9d1e3f720bddd4099e9de8652.tar.gz inkscape-189ec94a227498b9d1e3f720bddd4099e9de8652.zip | |
Update to trunk
(bzr r13090.1.38)
Diffstat (limited to 'src')
| -rw-r--r-- | src/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/Makefile_insert | 1 | ||||
| -rw-r--r-- | src/gradient-drag.cpp | 20 | ||||
| -rw-r--r-- | src/gradient-drag.h | 16 | ||||
| -rw-r--r-- | src/knot-holder-entity.cpp | 8 | ||||
| -rw-r--r-- | src/knot-holder-entity.h | 1 | ||||
| -rw-r--r-- | src/knot.cpp | 66 | ||||
| -rw-r--r-- | src/knot.h | 32 | ||||
| -rw-r--r-- | src/main.cpp | 2 | ||||
| -rw-r--r-- | src/modifier-fns.h | 64 | ||||
| -rw-r--r-- | src/seltrans.cpp | 16 | ||||
| -rw-r--r-- | src/sp-guide.cpp | 2 | ||||
| -rw-r--r-- | src/ui/dialog/dialog.cpp | 4 | ||||
| -rw-r--r-- | src/ui/dialog/guides.cpp | 43 | ||||
| -rw-r--r-- | src/ui/dialog/guides.h | 2 | ||||
| -rw-r--r-- | src/ui/dialog/pixelartdialog.cpp | 152 | ||||
| -rw-r--r-- | src/ui/tools/connector-tool.cpp | 22 | ||||
| -rw-r--r-- | src/ui/tools/pencil-tool.cpp | 21 | ||||
| -rw-r--r-- | src/ui/tools/pencil-tool.h | 4 | ||||
| -rw-r--r-- | src/ui/tools/tool-base.cpp | 2 | ||||
| -rw-r--r-- | src/ui/tools/tool-base.h | 2 | ||||
| -rw-r--r-- | src/vanishing-point.cpp | 10 | ||||
| -rw-r--r-- | src/vanishing-point.h | 9 |
23 files changed, 253 insertions, 247 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c34bd2e62..e1e0afa79 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -369,7 +369,6 @@ set(inkscape_SRC message.h mod360-test.h mod360.h - modifier-fns.h number-opt-number.h object-edit.h object-hierarchy.h diff --git a/src/Makefile_insert b/src/Makefile_insert index 5ff44b253..8872b045d 100644 --- a/src/Makefile_insert +++ b/src/Makefile_insert @@ -94,7 +94,6 @@ ink_common_sources += \ message.h \ message-stack.cpp message-stack.h \ mod360.cpp mod360.h \ - modifier-fns.h \ object-edit.cpp object-edit.h \ object-hierarchy.cpp object-hierarchy.h \ object-snapper.cpp object-snapper.h \ diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 7b9daf57e..ee4c1bc8c 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -1595,10 +1595,10 @@ GrDragger::GrDragger(GrDrag *parent, Geom::Point p, GrDraggable *draggable) this->knot->setMode(SP_KNOT_MODE_XOR); this->knot->setFill(GR_KNOT_COLOR_NORMAL, GR_KNOT_COLOR_MOUSEOVER, GR_KNOT_COLOR_MOUSEOVER); this->knot->setStroke(0x0000007f, 0x0000007f, 0x0000007f); - this->knot->update_ctrl(); + this->knot->updateCtrl(); // move knot to the given point - this->knot->set_position(p, SP_KNOT_STATE_NORMAL); + this->knot->setPosition(p, SP_KNOT_STATE_NORMAL); this->knot->show(); // connect knot's signals @@ -1608,15 +1608,15 @@ GrDragger::GrDragger(GrDrag *parent, Geom::Point p, GrDraggable *draggable) || (draggable->point_type == POINT_RG_MID1) || (draggable->point_type == POINT_RG_MID2) ) ) { - this->_moved_connection = this->knot->_moved_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_moved_midpoint_handler), this)); + this->_moved_connection = this->knot->moved_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_moved_midpoint_handler), this)); } else { - this->_moved_connection = this->knot->_moved_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_moved_handler), this)); + this->_moved_connection = this->knot->moved_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_moved_handler), this)); } - this->_clicked_connection = this->knot->_click_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_clicked_handler), this)); - this->_doubleclicked_connection = this->knot->_doubleclicked_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_doubleclicked_handler), this)); - this->_grabbed_connection = this->knot->_grabbed_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_grabbed_handler), this)); - this->_ungrabbed_connection = this->knot->_ungrabbed_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_ungrabbed_handler), this)); + this->_clicked_connection = this->knot->click_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_clicked_handler), this)); + this->_doubleclicked_connection = this->knot->doubleclicked_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_doubleclicked_handler), this)); + this->_grabbed_connection = this->knot->grabbed_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_grabbed_handler), this)); + this->_ungrabbed_connection = this->knot->ungrabbed_signal.connect(sigc::bind(sigc::ptr_fun(gr_knot_ungrabbed_handler), this)); // add the initial draggable if (draggable) { @@ -2045,7 +2045,7 @@ void GrDrag::addDraggersMesh(SPMeshGradient *mg, SPItem *item, Inkscape::PaintTa void GrDrag::grabKnot(GrDragger *dragger, gint x, gint y, guint32 etime) { if (dragger) { - dragger->knot->start_dragging(dragger->point, x, y, etime); + dragger->knot->startDragging(dragger->point, x, y, etime); } } @@ -2057,7 +2057,7 @@ void GrDrag::grabKnot(SPItem *item, GrPointType point_type, gint point_i, Inksca { GrDragger *dragger = getDraggerFor(item, point_type, point_i, fill_or_stroke); if (dragger) { - dragger->knot->start_dragging(dragger->point, x, y, etime); + dragger->knot->startDragging(dragger->point, x, y, etime); } } diff --git a/src/gradient-drag.h b/src/gradient-drag.h index e22b48e19..4ee59bb0f 100644 --- a/src/gradient-drag.h +++ b/src/gradient-drag.h @@ -86,15 +86,6 @@ struct GrDragger { // position of the knot before it began to drag; updated when released Geom::Point point_original; - /** Connection to \a knot's "moved" signal, for blocking it (unused?). */ - //guint handler_id; - - sigc::connection _moved_connection; - sigc::connection _clicked_connection; - sigc::connection _doubleclicked_connection; - sigc::connection _grabbed_connection; - sigc::connection _ungrabbed_connection; - GSList *draggables; void addDraggable(GrDraggable *draggable); @@ -123,6 +114,13 @@ struct GrDragger { bool isA(SPItem *item, GrPointType point_type, gint point_i, Inkscape::PaintTarget fill_or_stroke); void fireDraggables(bool write_repr, bool scale_radial = false, bool merging_focus = false); + +private: + sigc::connection _moved_connection; + sigc::connection _clicked_connection; + sigc::connection _doubleclicked_connection; + sigc::connection _grabbed_connection; + sigc::connection _ungrabbed_connection; }; /** diff --git a/src/knot-holder-entity.cpp b/src/knot-holder-entity.cpp index 48096489e..6471124ec 100644 --- a/src/knot-holder-entity.cpp +++ b/src/knot-holder-entity.cpp @@ -54,9 +54,9 @@ void KnotHolderEntity::create(SPDesktop *desktop, SPItem *item, KnotHolder *pare update_knot(); knot->show(); - _moved_connection = knot->_moved_signal.connect(sigc::mem_fun(*parent_holder, &KnotHolder::knot_moved_handler)); - _click_connection = knot->_click_signal.connect(sigc::mem_fun(*parent_holder, &KnotHolder::knot_clicked_handler)); - _ungrabbed_connection = knot->_ungrabbed_signal.connect(sigc::mem_fun(*parent_holder, &KnotHolder::knot_ungrabbed_handler)); + _moved_connection = knot->moved_signal.connect(sigc::mem_fun(*parent_holder, &KnotHolder::knot_moved_handler)); + _click_connection = knot->click_signal.connect(sigc::mem_fun(*parent_holder, &KnotHolder::knot_clicked_handler)); + _ungrabbed_connection = knot->ungrabbed_signal.connect(sigc::mem_fun(*parent_holder, &KnotHolder::knot_ungrabbed_handler)); } @@ -85,7 +85,7 @@ KnotHolderEntity::update_knot() Geom::Point dp(knot_get() * i2dt); _moved_connection.block(); - knot->set_position(dp, SP_KNOT_STATE_NORMAL); + knot->setPosition(dp, SP_KNOT_STATE_NORMAL); _moved_connection.unblock(); } diff --git a/src/knot-holder-entity.h b/src/knot-holder-entity.h index a4e6528cf..2737f23e1 100644 --- a/src/knot-holder-entity.h +++ b/src/knot-holder-entity.h @@ -84,6 +84,7 @@ public: /** Connection to \a knot's "ungrabbed" signal. */ guint _ungrab_handler_id; +private: sigc::connection _moved_connection; sigc::connection _click_connection; sigc::connection _ungrabbed_connection; diff --git a/src/knot.cpp b/src/knot.cpp index 59d048d8b..61d0dff39 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -60,7 +60,9 @@ void knot_unref(SPKnot* knot) { static int sp_knot_handler(SPCanvasItem *item, GdkEvent *event, SPKnot *knot); -SPKnot::SPKnot(SPDesktop *desktop, const gchar *tip) : ref_count(1) { +SPKnot::SPKnot(SPDesktop *desktop, gchar const *tip) + : ref_count(1) +{ this->desktop = NULL; this->item = NULL; this->owner = NULL; @@ -162,7 +164,7 @@ SPKnot::~SPKnot() { } } -void SPKnot::start_dragging(Geom::Point const &p, gint x, gint y, guint32 etime) { +void SPKnot::startDragging(Geom::Point const &p, gint x, gint y, guint32 etime) { // save drag origin xp = x; yp = y; @@ -175,7 +177,7 @@ void SPKnot::start_dragging(Geom::Point const &p, gint x, gint y, guint32 etime) sp_canvas_item_grab(this->item, KNOT_EVENT_MASK, this->cursor[SP_KNOT_STATE_DRAGGING], etime); } - this->set_flag(SP_KNOT_GRABBED, TRUE); + this->setFlag(SP_KNOT_GRABBED, TRUE); grabbed = TRUE; } @@ -189,7 +191,7 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot g_assert(SP_IS_KNOT(knot)); /* Run client universal event handler, if present */ - bool consumed = knot->_event_signal.emit(knot, event); + bool consumed = knot->event_signal.emit(knot, event); if (consumed) { return true; @@ -203,7 +205,7 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot switch (event->type) { case GDK_2BUTTON_PRESS: if (event->button.button == 1) { - knot->_doubleclicked_signal.emit(knot, event->button.state); + knot->doubleclicked_signal.emit(knot, event->button.state); grabbed = FALSE; moved = FALSE; @@ -213,7 +215,7 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot case GDK_BUTTON_PRESS: if ((event->button.button == 1) && knot->desktop && knot->desktop->event_context && !knot->desktop->event_context->space_panning) { Geom::Point const p = knot->desktop->w2d(Geom::Point(event->button.x, event->button.y)); - knot->start_dragging(p, (gint) event->button.x, (gint) event->button.y, event->button.time); + knot->startDragging(p, (gint) event->button.x, (gint) event->button.y, event->button.time); consumed = TRUE; } @@ -233,18 +235,18 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot transform_escaped = false; consumed = TRUE; } else { - knot->set_flag(SP_KNOT_GRABBED, FALSE); + knot->setFlag(SP_KNOT_GRABBED, FALSE); if (!nograb) { sp_canvas_item_ungrab(knot->item, event->button.time); } if (moved) { - knot->set_flag(SP_KNOT_DRAGGING, FALSE); + knot->setFlag(SP_KNOT_DRAGGING, FALSE); - knot->_ungrabbed_signal.emit(knot, event->button.state); + knot->ungrabbed_signal.emit(knot, event->button.state); } else { - knot->_click_signal.emit(knot, event->button.state); + knot->click_signal.emit(knot, event->button.state); } grabbed = FALSE; @@ -275,9 +277,9 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot } if (!moved) { - knot->_grabbed_signal.emit(knot, event->motion.state); + knot->grabbed_signal.emit(knot, event->motion.state); - knot->set_flag(SP_KNOT_DRAGGING, TRUE); + knot->setFlag(SP_KNOT_DRAGGING, TRUE); } sp_event_context_snap_delay_handler(knot->desktop->event_context, NULL, (gpointer) knot, (GdkEventMotion *)event, Inkscape::UI::Tools::DelayedSnapEvent::KNOT_HANDLER); @@ -286,8 +288,8 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot } break; case GDK_ENTER_NOTIFY: - knot->set_flag(SP_KNOT_MOUSEOVER, TRUE); - knot->set_flag(SP_KNOT_GRABBED, FALSE); + knot->setFlag(SP_KNOT_MOUSEOVER, TRUE); + knot->setFlag(SP_KNOT_GRABBED, FALSE); if (knot->tip && knot->desktop && knot->desktop->event_context) { knot->desktop->event_context->defaultMessageContext()->set(Inkscape::NORMAL_MESSAGE, knot->tip); @@ -298,8 +300,8 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot consumed = TRUE; break; case GDK_LEAVE_NOTIFY: - knot->set_flag(SP_KNOT_MOUSEOVER, FALSE); - knot->set_flag(SP_KNOT_GRABBED, FALSE); + knot->setFlag(SP_KNOT_MOUSEOVER, FALSE); + knot->setFlag(SP_KNOT_GRABBED, FALSE); if (knot->tip && knot->desktop && knot->desktop->event_context) { knot->desktop->event_context->defaultMessageContext()->clear(); @@ -312,16 +314,16 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot case GDK_KEY_PRESS: // keybindings for knot switch (Inkscape::UI::Tools::get_group0_keyval(&event->key)) { case GDK_KEY_Escape: - knot->set_flag(SP_KNOT_GRABBED, FALSE); + knot->setFlag(SP_KNOT_GRABBED, FALSE); if (!nograb) { sp_canvas_item_ungrab(knot->item, event->button.time); } if (moved) { - knot->set_flag(SP_KNOT_DRAGGING, FALSE); + knot->setFlag(SP_KNOT_DRAGGING, FALSE); - knot->_ungrabbed_signal.emit(knot, event->button.state); + knot->ungrabbed_signal.emit(knot, event->button.state); DocumentUndo::undo(sp_desktop_document(knot->desktop)); knot->desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Node or handle drag canceled.")); @@ -353,7 +355,7 @@ void sp_knot_handler_request_position(GdkEvent *event, SPKnot *knot) { Geom::Point const motion_dt = knot->desktop->w2d(motion_w); Geom::Point p = motion_dt - knot->grabbed_rel_pos; - knot->request_position(p, event->motion.state); + knot->requestPosition(p, event->motion.state); knot->desktop->scroll_to_point (motion_dt); knot->desktop->set_coordinate_status(knot->pos); // display the coordinate of knot, not cursor - they may be different! @@ -363,30 +365,30 @@ void sp_knot_handler_request_position(GdkEvent *event, SPKnot *knot) { } void SPKnot::show() { - this->set_flag(SP_KNOT_VISIBLE, TRUE); + this->setFlag(SP_KNOT_VISIBLE, TRUE); } void SPKnot::hide() { - this->set_flag(SP_KNOT_VISIBLE, FALSE); + this->setFlag(SP_KNOT_VISIBLE, FALSE); } -void SPKnot::request_position(Geom::Point const &p, guint state) { - bool done = this->_request_signal.emit(this, &const_cast<Geom::Point&>(p), state); +void SPKnot::requestPosition(Geom::Point const &p, guint state) { + bool done = this->request_signal.emit(this, &const_cast<Geom::Point&>(p), state); /* If user did not complete, we simply move knot to new position */ if (!done) { - this->set_position(p, state); + this->setPosition(p, state); } } -void SPKnot::set_position(Geom::Point const &p, guint state) { +void SPKnot::setPosition(Geom::Point const &p, guint state) { this->pos = p; if (this->item) { SP_CTRL(this->item)->moveto(p); } - this->_moved_signal.emit(this, p, state); + this->moved_signal.emit(this, p, state); } void SPKnot::moveto(Geom::Point const &p) { @@ -401,7 +403,7 @@ Geom::Point SPKnot::position() const { return this->pos; } -void SPKnot::set_flag(guint flag, bool set) { +void SPKnot::setFlag(guint flag, bool set) { if (set) { this->flags |= flag; } else { @@ -418,7 +420,7 @@ void SPKnot::set_flag(guint flag, bool set) { break; case SP_KNOT_MOUSEOVER: case SP_KNOT_DRAGGING: - this->set_ctrl_state(); + this->_setCtrlState(); break; case SP_KNOT_GRABBED: break; @@ -428,7 +430,7 @@ void SPKnot::set_flag(guint flag, bool set) { } } -void SPKnot::update_ctrl() { +void SPKnot::updateCtrl() { if (!this->item) { return; } @@ -442,10 +444,10 @@ void SPKnot::update_ctrl() { g_object_set(this->item, "pixbuf", this->pixbuf, NULL); } - this->set_ctrl_state(); + this->_setCtrlState(); } -void SPKnot::set_ctrl_state() { +void SPKnot::_setCtrlState() { int state = SP_KNOT_STATE_NORMAL; if (this->flags & SP_KNOT_DRAGGING) { diff --git a/src/knot.h b/src/knot.h index c8812a466..b18f89566 100644 --- a/src/knot.h +++ b/src/knot.h @@ -38,7 +38,7 @@ struct SPCanvasItem; */ class SPKnot { public: - SPKnot(SPDesktop *desktop, const gchar *tip); + SPKnot(SPDesktop *desktop, gchar const *tip); virtual ~SPKnot(); @@ -74,14 +74,14 @@ public: double pressure; /**< The tablet pen pressure when the knot is being dragged. */ - sigc::signal<void, SPKnot *, guint> _click_signal; - sigc::signal<void, SPKnot*, guint> _doubleclicked_signal; - sigc::signal<void, SPKnot*, guint> _grabbed_signal; - sigc::signal<void, SPKnot *, guint> _ungrabbed_signal; - sigc::signal<void, SPKnot *, Geom::Point const &, guint> _moved_signal; - sigc::signal<bool, SPKnot*, GdkEvent*> _event_signal; + sigc::signal<void, SPKnot *, guint> click_signal; + sigc::signal<void, SPKnot*, guint> doubleclicked_signal; + sigc::signal<void, SPKnot*, guint> grabbed_signal; + sigc::signal<void, SPKnot *, guint> ungrabbed_signal; + sigc::signal<void, SPKnot *, Geom::Point const &, guint> moved_signal; + sigc::signal<bool, SPKnot*, GdkEvent*> event_signal; - sigc::signal<bool, SPKnot*, Geom::Point*, guint> _request_signal; + sigc::signal<bool, SPKnot*, Geom::Point*, guint> request_signal; //TODO: all the members above should eventualle become private, accessible via setters/getters @@ -110,27 +110,27 @@ public: /** * Set flag in knot, with side effects. */ - void set_flag(guint flag, bool set); + void setFlag(guint flag, bool set); /** * Update knot's pixbuf and set its control state. */ - void update_ctrl(); + void updateCtrl(); /** * Request or set new position for knot. */ - void request_position(Geom::Point const &pos, guint state); + void requestPosition(Geom::Point const &pos, guint state); /** * Update knot for dragging and tell canvas an item was grabbed. */ - void start_dragging(Geom::Point const &p, gint x, gint y, guint32 etime); + void startDragging(Geom::Point const &p, gint x, gint y, guint32 etime); /** * Move knot to new position and emits "moved" signal. */ - void set_position(Geom::Point const &p, guint state); + void setPosition(Geom::Point const &p, guint state); /** * Move knot to new position, without emitting a MOVED signal. @@ -143,13 +143,13 @@ public: Geom::Point position() const; private: - SPKnot(const SPKnot&); - SPKnot& operator=(const SPKnot&); + SPKnot(SPKnot const&); + SPKnot& operator=(SPKnot const&); /** * Set knot control state (dragging/mouseover/normal). */ - void set_ctrl_state(); + void _setCtrlState(); }; void knot_ref(SPKnot* knot); diff --git a/src/main.cpp b/src/main.cpp index 25f813c2b..00d0fcbb6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -925,7 +925,7 @@ namespace Inkscape { namespace UI { namespace Tools { -guint get_group0_keyval(GdkEventKey* event); +guint get_group0_keyval(GdkEventKey const* event); } } diff --git a/src/modifier-fns.h b/src/modifier-fns.h deleted file mode 100644 index cab110467..000000000 --- a/src/modifier-fns.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef SEEN_MODIFIER_FNS_H -#define SEEN_MODIFIER_FNS_H - -/** \file - * Functions on GdkEventKey.state that test modifier keys. - * - * The MOD__SHIFT macro in macros.h is equivalent to mod_shift(event-\>key.state). - */ - -/* - * Hereby placed in public domain. - */ - -#include <gdk/gdk.h> -#include <glib.h> - -inline bool -mod_shift(guint const state) -{ - return state & GDK_SHIFT_MASK; -} - -inline bool -mod_ctrl(guint const state) -{ - return state & GDK_CONTROL_MASK; -} - -inline bool -mod_alt(guint const state) -{ - return state & GDK_MOD1_MASK; -} - -inline bool -mod_shift_only(guint const state) -{ - return (state & GDK_SHIFT_MASK) && !(state & GDK_CONTROL_MASK) && !(state & GDK_MOD1_MASK); -} - -inline bool -mod_ctrl_only(guint const state) -{ - return !(state & GDK_SHIFT_MASK) && (state & GDK_CONTROL_MASK) && !(state & GDK_MOD1_MASK); -} - -inline bool -mod_alt_only(guint const state) -{ - return !(state & GDK_SHIFT_MASK) && !(state & GDK_CONTROL_MASK) && (state & GDK_MOD1_MASK); -} - -#endif /* !SEEN_MODIFIER_FNS_H */ - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/seltrans.cpp b/src/seltrans.cpp index 858985625..60a0bfa11 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -650,14 +650,14 @@ void Inkscape::SelTrans::_makeHandles() knots[i]->setFill(info.color[0], info.color[1], info.color[2]); knots[i]->setStroke(info.color[3], info.color[4], info.color[5]); knots[i]->setPixbuf(handles[hands[i].control]); - knots[i]->update_ctrl(); + knots[i]->updateCtrl(); - knots[i]->_request_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_request), &hands[i])); - knots[i]->_moved_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_new_event), &hands[i])); - knots[i]->_grabbed_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_grab), &hands[i])); - knots[i]->_ungrabbed_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_ungrab), &hands[i])); - knots[i]->_click_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_click), &hands[i])); - knots[i]->_event_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_event), &hands[i])); + knots[i]->request_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_request), &hands[i])); + knots[i]->moved_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_new_event), &hands[i])); + knots[i]->grabbed_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_grab), &hands[i])); + knots[i]->ungrabbed_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_ungrab), &hands[i])); + knots[i]->click_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_click), &hands[i])); + knots[i]->event_signal.connect(sigc::bind(sigc::ptr_fun(sp_sel_trans_handle_event), &hands[i])); } } @@ -796,7 +796,7 @@ gboolean Inkscape::SelTrans::handleRequest(SPKnot *knot, Geom::Point *position, return TRUE; } if (request(handle, *position, state)) { - knot->set_position(*position, state); + knot->setPosition(*position, state); SP_CTRL(_grip)->moveto(*position); if (handle.type == HANDLE_CENTER) { SP_CTRL(_norm)->moveto(*position); diff --git a/src/sp-guide.cpp b/src/sp-guide.cpp index a0aa9692e..60f15a79d 100644 --- a/src/sp-guide.cpp +++ b/src/sp-guide.cpp @@ -183,6 +183,8 @@ void SPGuide::release() { void SPGuide::set(unsigned int key, const gchar *value) { switch (key) { case SP_ATTR_INKSCAPE_LABEL: + if (this->label) g_free(this->label); + if (value) { this->label = g_strdup(value); } else { diff --git a/src/ui/dialog/dialog.cpp b/src/ui/dialog/dialog.cpp index 3cc3f3d88..645294bb5 100644 --- a/src/ui/dialog/dialog.cpp +++ b/src/ui/dialog/dialog.cpp @@ -26,11 +26,11 @@ #include "ui/tools/tool-base.h" #include "desktop.h" #include "desktop-handles.h" -#include "modifier-fns.h" #include "shortcuts.h" #include "preferences.h" #include "interface.h" #include "verbs.h" +#include "ui/tool/event-utils.h" #include <gtk/gtk.h> @@ -279,7 +279,7 @@ bool Dialog::_onEvent(GdkEvent *event) case GDK_KEY_F4: case GDK_KEY_w: case GDK_KEY_W: { - if (mod_ctrl_only(event->key.state)) { + if (Inkscape::UI::held_only_control(event->key)) { _close(); ret = true; } diff --git a/src/ui/dialog/guides.cpp b/src/ui/dialog/guides.cpp index e84f25733..80740113c 100644 --- a/src/ui/dialog/guides.cpp +++ b/src/ui/dialog/guides.cpp @@ -68,20 +68,6 @@ void GuidelinePropertiesDialog::showDialog(SPGuide *guide, SPDesktop *desktop) { dialog.run(); } -void GuidelinePropertiesDialog::_colorChanged() -{ -#if WITH_GTKMM_3_0 - const Gdk::RGBA c = _color.get_rgba(); - unsigned r = c.get_red_u()/257, g = c.get_green_u()/257, b = c.get_blue_u()/257; -#else - const Gdk::Color c = _color.get_color(); - unsigned r = c.get_red()/257, g = c.get_green()/257, b = c.get_blue()/257; -#endif - //TODO: why 257? verify this! - - sp_guide_set_color(*_guide, r, g, b, true); -} - void GuidelinePropertiesDialog::_modeChanged() { _mode = !_relative_toggle.get_active(); @@ -100,7 +86,7 @@ void GuidelinePropertiesDialog::_modeChanged() } } -void GuidelinePropertiesDialog::_onApply() +void GuidelinePropertiesDialog::_onOK() { double deg_angle = _spin_angle.getValue(DEG); if (!_mode) @@ -124,18 +110,26 @@ void GuidelinePropertiesDialog::_onApply() sp_guide_moveto(*_guide, newpos, true); - const gchar* name = _label_entry.getEntry()->get_text().c_str(); + const gchar* name = g_strdup( _label_entry.getEntry()->get_text().c_str() ); + sp_guide_set_label(*_guide, name, true); + g_free((gpointer) name); + +#if WITH_GTKMM_3_0 + const Gdk::RGBA c = _color.get_rgba(); + unsigned r = c.get_red_u()/257, g = c.get_green_u()/257, b = c.get_blue_u()/257; +#else + const Gdk::Color c = _color.get_color(); + unsigned r = c.get_red()/257, g = c.get_green()/257, b = c.get_blue()/257; +#endif + //TODO: why 257? verify this! + + sp_guide_set_color(*_guide, r, g, b, true); DocumentUndo::done(_guide->document, SP_VERB_NONE, _("Set guide properties")); } -void GuidelinePropertiesDialog::_onOK() -{ - _onApply(); -} - void GuidelinePropertiesDialog::_onDelete() { SPDocument *doc = _guide->document; @@ -157,10 +151,6 @@ void GuidelinePropertiesDialog::_response(gint response) break; case Gtk::RESPONSE_DELETE_EVENT: break; -/* case GTK_RESPONSE_APPLY: - _onApply(); - break; -*/ default: g_assert_not_reached(); } @@ -222,9 +212,6 @@ void GuidelinePropertiesDialog::_setup() { 1, 3, 3, 4, Gtk::EXPAND | Gtk::FILL, Gtk::FILL); #endif - _color.signal_color_set().connect(sigc::mem_fun(*this, &GuidelinePropertiesDialog::_colorChanged)); - - // unitmenus /* fixme: We should allow percents here too, as percents of the canvas size */ _unit_menu.setUnitType(UNIT_TYPE_LINEAR); diff --git a/src/ui/dialog/guides.h b/src/ui/dialog/guides.h index 422fed7fe..22bf5097a 100644 --- a/src/ui/dialog/guides.h +++ b/src/ui/dialog/guides.h @@ -62,13 +62,11 @@ public: protected: void _setup(); - void _onApply(); void _onOK(); void _onDelete(); void _response(gint response); void _modeChanged(); - void _colorChanged(); private: GuidelinePropertiesDialog(GuidelinePropertiesDialog const &); // no copy diff --git a/src/ui/dialog/pixelartdialog.cpp b/src/ui/dialog/pixelartdialog.cpp index ce5b6584d..31449d4e7 100644 --- a/src/ui/dialog/pixelartdialog.cpp +++ b/src/ui/dialog/pixelartdialog.cpp @@ -16,6 +16,16 @@ # include <config.h> #endif +#ifdef GLIBMM_DISABLE_DEPRECATED +# undef GLIBMM_DISABLE_DEPRECATED +# include <glibmm/thread.h> +# include <glibmm/dispatcher.h> +# define GLIBMM_DISABLE_DEPRECATED 1 +#else // GLIBMM_DISABLE_DEPRECATED +# include <glibmm/thread.h> +# include <glibmm/dispatcher.h> +#endif // GLIBMM_DISABLE_DEPRECATED + #include "pixelartdialog.h" #include <gtkmm/radiobutton.h> #include <gtkmm/stock.h> @@ -54,18 +64,6 @@ namespace Inkscape { namespace UI { namespace Dialog { -template<class T> -T move(T &obj) -{ -#ifdef LIBDEPIXELIZE_ENABLE_CPP11 - return std::move(obj); -#else - T ret; - std::swap(obj, ret); - return ret; -#endif // LIBDEPIXELIZE_ENABLE_CPP11 -} - /** * A dialog for adjusting pixel art -> vector tracing parameters */ @@ -77,6 +75,23 @@ public: ~PixelArtDialogImpl(); private: + struct Input + { + Glib::RefPtr<Gdk::Pixbuf> pixbuf; + SVGLength x; + SVGLength y; + }; + struct Output + { + Output(Tracer::Splines splines, SVGLength x, SVGLength y) : + splines(splines), x(x), y(y) + {} + + Tracer::Splines splines; + SVGLength x; + SVGLength y; + }; + void setDesktop(SPDesktop *desktop); void setTargetDesktop(SPDesktop *desktop); @@ -89,7 +104,8 @@ private: Tracer::Kopf2011::Options options(); void vectorize(); - void processLibdepixelize(SPImage *img); + void processLibdepixelize(const Input &image); + void importOutput(const Output &out); void setDefaults(); void updatePreview(); @@ -133,9 +149,21 @@ private: Gtk::RadioButton optimizeRadioButton; #endif // LIBDEPIXELIZE_INKSCAPE_ENABLE_SMOOTH + //############ UI Logic data + SPDesktop *desktop; DesktopTracker deskTrack; sigc::connection desktopChangeConn; + + //############ Threads + void workerThread(); + void onWorkerThreadFinished(); + Glib::Thread *thread; + volatile gint abortThread; // C++11's atomic stuff is sooo much nicer + Glib::Dispatcher dispatcher; + std::vector<Input> queue; + std::vector<Output> output; + Tracer::Kopf2011::Options lastOptions; }; void PixelArtDialogImpl::setDesktop(SPDesktop *desktop) @@ -288,6 +316,9 @@ PixelArtDialogImpl::PixelArtDialogImpl() : deskTrack.connect(GTK_WIDGET(gobj())); signalResponse().connect(sigc::mem_fun(*this, &PixelArtDialogImpl::responseCallback)); + + dispatcher.connect( + sigc::mem_fun(*this, &PixelArtDialogImpl::onWorkerThreadFinished) ); } void PixelArtDialogImpl::responseCallback(int response_id) @@ -295,7 +326,8 @@ void PixelArtDialogImpl::responseCallback(int response_id) if (response_id == GTK_RESPONSE_OK) { vectorize(); } else if (response_id == GTK_RESPONSE_CANCEL) { - // TODO + // libdepixelize's interface need to be extended to allow aborts + g_atomic_int_set(&abortThread, true); } else if (response_id == GTK_RESPONSE_HELP) { setDefaults(); } else { @@ -340,39 +372,53 @@ void PixelArtDialogImpl::vectorize() return; } - bool found = false; - for ( GSList const *list = desktop->selection->itemList() ; list ; list = list->next ) { if ( !SP_IS_IMAGE(list->data) ) continue; - found = true; + SPImage *img = SP_IMAGE(list->data); + Input input; + input.pixbuf = Glib::wrap(img->pixbuf->getPixbufRaw(), true); + input.x = img->x; + input.y = img->y; + + if ( input.pixbuf->get_width() > 256 + || input.pixbuf->get_height() > 256 ) { + char *msg = _("Image looks too big. Process may take a while and is" + " wise to save your document before continue." + "\n\nContinue the procedure (without saving)?"); + Gtk::MessageDialog dialog(msg, false, Gtk::MESSAGE_WARNING, + Gtk::BUTTONS_OK_CANCEL, true); + + if ( dialog.run() != Gtk::RESPONSE_OK ) + continue; + } - processLibdepixelize(SP_IMAGE(list->data)); + queue.push_back(input); } - if ( !found ) { + if ( !queue.size() ) { char *msg = _("Select an <b>image</b> to trace"); msgStack->flash(Inkscape::ERROR_MESSAGE, msg); return; } - DocumentUndo::done(desktop->doc(), SP_VERB_SELECTION_PIXEL_ART, - _("Trace pixel art")); + mainCancelButton->set_sensitive(true); + mainOkButton->set_sensitive(false); - // Flush pending updates - desktop->doc()->ensureUpToDate(); + lastOptions = options(); + + g_atomic_int_set(&abortThread, false); + thread = Glib::Thread::create( + sigc::mem_fun(*this, &PixelArtDialogImpl::workerThread) ); } -void PixelArtDialogImpl::processLibdepixelize(SPImage *img) +void PixelArtDialogImpl::processLibdepixelize(const Input &input) { Tracer::Splines out; - Glib::RefPtr<Gdk::Pixbuf> pixbuf - = Glib::wrap(img->pixbuf->getPixbufRaw(), true); - - if ( pixbuf->get_width() > 256 || pixbuf->get_height() > 256 ) { + if ( input.pixbuf->get_width() > 256 || input.pixbuf->get_height() > 256 ) { char *msg = _("Image looks too big. Process may take a while and it is" " wise to save your document before continuing." "\n\nContinue the procedure (without saving)?"); @@ -384,16 +430,23 @@ void PixelArtDialogImpl::processLibdepixelize(SPImage *img) } if ( voronoiRadioButton.get_active() ) { - out = Tracer::Kopf2011::to_voronoi(pixbuf, options()); + output.push_back(Output(Tracer::Kopf2011::to_voronoi(input.pixbuf, + lastOptions), + input.x, input.y)); } else { - out = Tracer::Kopf2011::to_splines(pixbuf, options()); + output.push_back(Output(Tracer::Kopf2011::to_splines(input.pixbuf, + lastOptions), + input.x, input.y)); } +} +void PixelArtDialogImpl::importOutput(const Output &output) +{ Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc(); Inkscape::XML::Node *group = xml_doc->createElement("svg:g"); - for ( Tracer::Splines::iterator it = out.begin(), end = out.end() - ; it != end ; ++it ) { + for ( Tracer::Splines::const_iterator it = output.splines.begin(), + end = output.splines.end() ; it != end ; ++it ) { Inkscape::XML::Node *repr = xml_doc->createElement("svg:path"); { @@ -421,7 +474,7 @@ void PixelArtDialogImpl::processLibdepixelize(SPImage *img) sp_repr_css_attr_unref(css); } - gchar *str = sp_svg_write_path(Dialog::move(it->pathVector)); + gchar *str = sp_svg_write_path(it->pathVector); repr->setAttribute("d", str); g_free(str); @@ -433,14 +486,20 @@ void PixelArtDialogImpl::processLibdepixelize(SPImage *img) { group->setAttribute("transform", (std::string("translate(") - + sp_svg_length_write_with_units(img->x) - + ' ' + sp_svg_length_write_with_units(img->y) + + sp_svg_length_write_with_units(output.x) + + ' ' + sp_svg_length_write_with_units(output.y) + ')').c_str()); } desktop->currentLayer()->appendChildRepr(group); Inkscape::GC::release(group); + + DocumentUndo::done(desktop->doc(), SP_VERB_SELECTION_PIXEL_ART, + _("Trace pixel art")); + + // Flush pending updates + desktop->doc()->ensureUpToDate(); } void PixelArtDialogImpl::setDefaults() @@ -481,6 +540,29 @@ void PixelArtDialogImpl::updatePreview() pendingPreview = false; } +void PixelArtDialogImpl::workerThread() +{ + for ( std::vector<Input>::iterator it = queue.begin(), end = queue.end() + ; it != end && !g_atomic_int_get(&abortThread) ; ++it ) { + processLibdepixelize(*it); + } + queue.clear(); + dispatcher(); +} + +void PixelArtDialogImpl::onWorkerThreadFinished() +{ + thread->join(); + thread = NULL; + for ( std::vector<Output>::const_iterator it = output.begin(), + end = output.end() ; it != end ; ++it ) { + importOutput(*it); + } + output.clear(); + mainCancelButton->set_sensitive(false); + mainOkButton->set_sensitive(true); +} + /** * Factory method. Use this to create a new PixelArtDialog */ diff --git a/src/ui/tools/connector-tool.cpp b/src/ui/tools/connector-tool.cpp index 4f918b483..d1355e807 100644 --- a/src/ui/tools/connector-tool.cpp +++ b/src/ui/tools/connector-tool.cpp @@ -366,7 +366,7 @@ cc_select_handle(SPKnot* knot) knot->setSize(10); knot->setAnchor(SP_ANCHOR_CENTER); knot->setFill(0x0000ffff, 0x0000ffff, 0x0000ffff); - knot->update_ctrl(); + knot->updateCtrl(); } static void @@ -376,7 +376,7 @@ cc_deselect_handle(SPKnot* knot) knot->setSize(8); knot->setAnchor(SP_ANCHOR_CENTER); knot->setFill(0xffffff00, 0xff0000ff, 0xff0000ff); - knot->update_ctrl(); + knot->updateCtrl(); } bool ConnectorTool::item_handler(SPItem* item, GdkEvent* event) { @@ -981,7 +981,7 @@ cc_generic_knot_handler(SPCanvasItem *, GdkEvent *event, SPKnot *knot) gchar const *knot_tip = "Click to join at this point"; switch (event->type) { case GDK_ENTER_NOTIFY: - knot->set_flag(SP_KNOT_MOUSEOVER, TRUE); + knot->setFlag(SP_KNOT_MOUSEOVER, TRUE); cc->active_handle = knot; if (knot_tip) @@ -993,7 +993,7 @@ cc_generic_knot_handler(SPCanvasItem *, GdkEvent *event, SPKnot *knot) consumed = TRUE; break; case GDK_LEAVE_NOTIFY: - knot->set_flag(SP_KNOT_MOUSEOVER, FALSE); + knot->setFlag(SP_KNOT_MOUSEOVER, FALSE); /* FIXME: the following test is a workaround for LP Bug #1273510. * It seems that a signal is not correctly disconnected, maybe @@ -1076,7 +1076,7 @@ void ConnectorTool::_activeShapeAddKnot(SPItem* item) { knot->setSize(8); knot->setAnchor(SP_ANCHOR_CENTER); knot->setFill(0xffffff00, 0xff0000ff, 0xff0000ff); - knot->update_ctrl(); + knot->updateCtrl(); // We don't want to use the standard knot handler. g_signal_handler_disconnect(G_OBJECT(knot->item), @@ -1087,7 +1087,7 @@ void ConnectorTool::_activeShapeAddKnot(SPItem* item) { g_signal_connect(G_OBJECT(knot->item), "event", G_CALLBACK(cc_generic_knot_handler), knot); - knot->set_position(item->avoidRef->getConnectionPointPos() * desktop->doc2dt(), 0); + knot->setPosition(item->avoidRef->getConnectionPointPos() * desktop->doc2dt(), 0); knot->show(); this->knots[knot] = 1; } @@ -1159,10 +1159,10 @@ void ConnectorTool::cc_set_active_conn(SPItem *item) { { // Just adjust handle positions. Geom::Point startpt = *(curve->first_point()) * i2dt; - this->endpt_handle[0]->set_position(startpt, 0); + this->endpt_handle[0]->setPosition(startpt, 0); Geom::Point endpt = *(curve->last_point()) * i2dt; - this->endpt_handle[1]->set_position(endpt, 0); + this->endpt_handle[1]->setPosition(endpt, 0); } return; @@ -1195,7 +1195,7 @@ void ConnectorTool::cc_set_active_conn(SPItem *item) { knot->setAnchor(SP_ANCHOR_CENTER); knot->setFill(0xffffff00, 0xff0000ff, 0xff0000ff); knot->setStroke(0x000000ff, 0x000000ff, 0x000000ff); - knot->update_ctrl(); + knot->updateCtrl(); // We don't want to use the standard knot handler, // since we don't want this knot to be draggable. @@ -1235,10 +1235,10 @@ void ConnectorTool::cc_set_active_conn(SPItem *item) { } Geom::Point startpt = *(curve->first_point()) * i2dt; - this->endpt_handle[0]->set_position(startpt, 0); + this->endpt_handle[0]->setPosition(startpt, 0); Geom::Point endpt = *(curve->last_point()) * i2dt; - this->endpt_handle[1]->set_position(endpt, 0); + this->endpt_handle[1]->setPosition(endpt, 0); this->endpt_handle[0]->show(); this->endpt_handle[1]->show(); diff --git a/src/ui/tools/pencil-tool.cpp b/src/ui/tools/pencil-tool.cpp index 374846539..fb4e82c32 100644 --- a/src/ui/tools/pencil-tool.cpp +++ b/src/ui/tools/pencil-tool.cpp @@ -26,7 +26,6 @@ #include "draw-anchor.h" #include "message-stack.h" #include "message-context.h" -#include "modifier-fns.h" #include "sp-path.h" #include "preferences.h" #include "snap.h" @@ -45,6 +44,7 @@ #include "display/curve.h" #include "livarot/Path.h" #include "tool-factory.h" +#include "ui/tool/event-utils.h" namespace Inkscape { namespace UI { @@ -131,11 +131,11 @@ bool PencilTool::root_handler(GdkEvent* event) { break; case GDK_KEY_PRESS: - ret = this->_handleKeyPress(get_group0_keyval (&event->key), event->key.state); + ret = this->_handleKeyPress(event->key); break; case GDK_KEY_RELEASE: - ret = this->_handleKeyRelease(get_group0_keyval (&event->key), event->key.state); + ret = this->_handleKeyRelease(event->key); break; default: @@ -467,16 +467,16 @@ void PencilTool::_cancel() { this->desktop->canvas->endForcedFullRedraws(); } -bool PencilTool::_handleKeyPress(guint const keyval, guint const state) { +bool PencilTool::_handleKeyPress(GdkEventKey const &event) { bool ret = false; - switch (keyval) { + switch (get_group0_keyval(&event)) { case GDK_KEY_Up: case GDK_KEY_Down: case GDK_KEY_KP_Up: case GDK_KEY_KP_Down: // Prevent the zoom field from activation. - if (!mod_ctrl_only(state)) { + if (!Inkscape::UI::held_only_control(event)) { ret = true; } break; @@ -491,7 +491,7 @@ bool PencilTool::_handleKeyPress(guint const keyval, guint const state) { break; case GDK_KEY_z: case GDK_KEY_Z: - if (mod_ctrl_only(state) && this->npoints != 0) { + if (Inkscape::UI::held_only_control(event) && this->npoints != 0) { // if drawing, cancel, otherwise pass it up for undo if (this->state != SP_PENCIL_CONTEXT_IDLE) { this->_cancel(); @@ -501,7 +501,7 @@ bool PencilTool::_handleKeyPress(guint const keyval, guint const state) { break; case GDK_KEY_g: case GDK_KEY_G: - if (mod_shift_only(state)) { + if (Inkscape::UI::held_only_shift(event)) { sp_selection_to_guides(this->desktop); ret = true; } @@ -520,9 +520,10 @@ bool PencilTool::_handleKeyPress(guint const keyval, guint const state) { return ret; } -bool PencilTool::_handleKeyRelease(guint const keyval, guint const /*state*/) { +bool PencilTool::_handleKeyRelease(GdkEventKey const &event) { bool ret = false; - switch (keyval) { + + switch (get_group0_keyval(&event)) { case GDK_KEY_Alt_L: case GDK_KEY_Alt_R: case GDK_KEY_Meta_L: diff --git a/src/ui/tools/pencil-tool.h b/src/ui/tools/pencil-tool.h index e01b0afb5..e8d156dbd 100644 --- a/src/ui/tools/pencil-tool.h +++ b/src/ui/tools/pencil-tool.h @@ -57,8 +57,8 @@ private: bool _handleButtonPress(GdkEventButton const &bevent); bool _handleMotionNotify(GdkEventMotion const &mevent); bool _handleButtonRelease(GdkEventButton const &revent); - bool _handleKeyPress(guint const keyval, guint const state); - bool _handleKeyRelease(guint const keyval, guint const state); + bool _handleKeyPress(GdkEventKey const &event); + bool _handleKeyRelease(GdkEventKey const &event); void _setStartpoint(Geom::Point const &p); void _setEndpoint(Geom::Point const &p); diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp index 96ac95926..4195c9eb2 100644 --- a/src/ui/tools/tool-base.cpp +++ b/src/ui/tools/tool-base.cpp @@ -1132,7 +1132,7 @@ void sp_event_show_modifier_tip(Inkscape::MessageContext *message_context, * Use this instead of simply event->keyval, so that your keyboard shortcuts * work regardless of layouts (e.g., in Cyrillic). */ -guint get_group0_keyval(GdkEventKey *event) { +guint get_group0_keyval(GdkEventKey const *event) { guint keyval = 0; gdk_keymap_translate_keyboard_state(gdk_keymap_get_for_display( diff --git a/src/ui/tools/tool-base.h b/src/ui/tools/tool-base.h index e11a22296..b27de9030 100644 --- a/src/ui/tools/tool-base.h +++ b/src/ui/tools/tool-base.h @@ -244,7 +244,7 @@ gint gobble_motion_events(gint mask); void sp_event_show_modifier_tip(Inkscape::MessageContext *message_context, GdkEvent *event, gchar const *ctrl_tip, gchar const *shift_tip, gchar const *alt_tip); -guint get_group0_keyval(GdkEventKey *event); +guint get_group0_keyval(GdkEventKey const *event); SPItem *sp_event_context_find_item (SPDesktop *desktop, Geom::Point const &p, bool select_under, bool into_groups); SPItem *sp_event_context_over_item (SPDesktop *desktop, SPItem *item, Geom::Point const &p); diff --git a/src/vanishing-point.cpp b/src/vanishing-point.cpp index a0f3692a5..bb6a2c4d7 100644 --- a/src/vanishing-point.cpp +++ b/src/vanishing-point.cpp @@ -281,18 +281,18 @@ VPDragger::VPDragger(VPDrag *parent, Geom::Point p, VanishingPoint &vp) this->knot->setMode(SP_KNOT_MODE_XOR); this->knot->setFill(VP_KNOT_COLOR_NORMAL, VP_KNOT_COLOR_NORMAL, VP_KNOT_COLOR_NORMAL); this->knot->setStroke(0x000000ff, 0x000000ff, 0x000000ff); - this->knot->update_ctrl(); + this->knot->updateCtrl(); knot->item->ctrlType = CTRL_TYPE_ANCHOR; ControlManager::getManager().track(knot->item); // move knot to the given point - this->knot->set_position(this->point, SP_KNOT_STATE_NORMAL); + this->knot->setPosition(this->point, SP_KNOT_STATE_NORMAL); this->knot->show(); // connect knot's signals - this->_moved_connection = this->knot->_moved_signal.connect(sigc::bind(sigc::ptr_fun(vp_knot_moved_handler), this)); - this->_grabbed_connection = this->knot->_grabbed_signal.connect(sigc::bind(sigc::ptr_fun(vp_knot_grabbed_handler), this)); - this->_ungrabbed_connection = this->knot->_ungrabbed_signal.connect(sigc::bind(sigc::ptr_fun(vp_knot_ungrabbed_handler), this)); + this->_moved_connection = this->knot->moved_signal.connect(sigc::bind(sigc::ptr_fun(vp_knot_moved_handler), this)); + this->_grabbed_connection = this->knot->grabbed_signal.connect(sigc::bind(sigc::ptr_fun(vp_knot_grabbed_handler), this)); + this->_ungrabbed_connection = this->knot->ungrabbed_signal.connect(sigc::bind(sigc::ptr_fun(vp_knot_ungrabbed_handler), this)); // add the initial VP (which may be NULL!) this->addVP (vp); diff --git a/src/vanishing-point.h b/src/vanishing-point.h index ed66aab0a..ca34d9118 100644 --- a/src/vanishing-point.h +++ b/src/vanishing-point.h @@ -133,10 +133,6 @@ public: bool dragging_started; - sigc::connection _moved_connection; - sigc::connection _grabbed_connection; - sigc::connection _ungrabbed_connection; - std::list<VanishingPoint> vps; void addVP(VanishingPoint &vp, bool update_pos = false); @@ -156,6 +152,11 @@ public: void updateZOrders(); void printVPs(); + +private: + sigc::connection _moved_connection; + sigc::connection _grabbed_connection; + sigc::connection _ungrabbed_connection; }; struct VPDrag { |
