diff options
| author | Liam P. White <inkscapebrony@gmail.com> | 2014-06-26 17:49:17 +0000 |
|---|---|---|
| committer | Liam P. White <inkscapebrony@gmail.com> | 2014-06-26 17:49:17 +0000 |
| commit | 6dfb9b4eade77ac55d11f05669c2192352b9b8fa (patch) | |
| tree | b5925ceaf9684f21ff9cfb9b8e639be9e0937957 /src/widgets | |
| parent | Update to exp. r13409 (diff) | |
| download | inkscape-6dfb9b4eade77ac55d11f05669c2192352b9b8fa.tar.gz inkscape-6dfb9b4eade77ac55d11f05669c2192352b9b8fa.zip | |
4. further refactor Application class; create proper singleton, encapsulate members, simplify signals
(bzr r13341.5.6)
Diffstat (limited to 'src/widgets')
| -rw-r--r-- | src/widgets/gradient-vector.cpp | 9 | ||||
| -rw-r--r-- | src/widgets/icon.cpp | 4 | ||||
| -rw-r--r-- | src/widgets/sp-widget.cpp | 40 |
3 files changed, 36 insertions, 17 deletions
diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 9fb439a28..9c27da1f8 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -1033,19 +1033,18 @@ GtkWidget * sp_gradient_vector_editor_new(SPGradient *gradient, SPStop *stop) wd.win = dlg; wd.stop = 0; - INKSCAPE->signal_activate_desktop.connect(sigc::bind(sigc::ptr_fun(&sp_transientize_callback), &wd)); + INKSCAPE->signal_activate_desktop.connect(sigc::bind<0>(sigc::bind(sigc::ptr_fun(&sp_transientize_callback), &wd), INKSCAPE)); g_signal_connect(G_OBJECT(dlg), "event", G_CALLBACK(sp_dialog_event_handler), dlg); g_signal_connect(G_OBJECT(dlg), "destroy", G_CALLBACK(sp_gradient_vector_dialog_destroy), dlg); g_signal_connect(G_OBJECT(dlg), "delete_event", G_CALLBACK(sp_gradient_vector_dialog_delete), dlg); INKSCAPE->signal_shut_down.connect( - sigc::hide<0>( sigc::hide_return( sigc::bind(sigc::ptr_fun(&sp_gradient_vector_dialog_delete), (GtkWidget *) NULL, (GdkEvent *) NULL, (GtkWidget *) NULL) - ))); - INKSCAPE->signal_dialogs_hide.connect(sigc::hide<0>(sigc::bind(sigc::ptr_fun(>k_widget_hide), dlg))); - INKSCAPE->signal_dialogs_unhide.connect(sigc::hide<0>(sigc::bind(sigc::ptr_fun(>k_widget_show), dlg))); + )); + INKSCAPE->signal_dialogs_hide.connect(sigc::bind(sigc::ptr_fun(>k_widget_hide), dlg)); + INKSCAPE->signal_dialogs_unhide.connect(sigc::bind(sigc::ptr_fun(>k_widget_show), dlg)); gtk_container_set_border_width(GTK_CONTAINER(dlg), PAD); diff --git a/src/widgets/icon.cpp b/src/widgets/icon.cpp index 0814d56d6..214990b6b 100644 --- a/src/widgets/icon.cpp +++ b/src/widgets/icon.cpp @@ -1568,7 +1568,7 @@ void IconImpl::addPreRender( GtkIconSize lsize, gchar const *name ) } gboolean IconImpl::prerenderTask(gpointer /*data*/) { - if ( inkscapeIsCrashing() ) { + if ( Inkscape::Application::isCrashing() ) { // stop } else if (!pendingRenders.empty()) { bool workDone = false; @@ -1580,7 +1580,7 @@ gboolean IconImpl::prerenderTask(gpointer /*data*/) { } while (!pendingRenders.empty() && !workDone); } - if (!inkscapeIsCrashing() && !pendingRenders.empty()) { + if (!Inkscape::Application::isCrashing() && !pendingRenders.empty()) { return TRUE; } else { callbackHooked = false; diff --git a/src/widgets/sp-widget.cpp b/src/widgets/sp-widget.cpp index 322b444b9..08344d9b2 100644 --- a/src/widgets/sp-widget.cpp +++ b/src/widgets/sp-widget.cpp @@ -211,12 +211,21 @@ void SPWidgetImpl::show(GtkWidget *widget) if (spw->inkscape) { // Connect signals - spw->selModified = spw->inkscape->signal_selection_modified.connect(sigc::bind(sigc::ptr_fun(SPWidgetImpl::modifySelectionCB), spw)); - spw->selChanged = spw->inkscape->signal_selection_changed.connect(sigc::bind(sigc::ptr_fun(SPWidgetImpl::changeSelectionCB), spw)); - spw->selSet = spw->inkscape->signal_selection_set.connect(sigc::bind(sigc::ptr_fun(SPWidgetImpl::setSelectionCB), spw)); - //g_signal_connect(spw->inkscape, "modify_selection", G_CALLBACK(SPWidgetImpl::modifySelectionCB), spw); - //g_signal_connect(spw->inkscape, "change_selection", G_CALLBACK(SPWidgetImpl::changeSelectionCB), spw); - //g_signal_connect(spw->inkscape, "set_selection", G_CALLBACK(SPWidgetImpl::setSelectionCB), spw); + spw->selModified = spw->inkscape->signal_selection_modified.connect( + sigc::bind<0>( + sigc::bind( + sigc::ptr_fun(SPWidgetImpl::modifySelectionCB), spw), spw->inkscape + )); + spw->selChanged = spw->inkscape->signal_selection_changed.connect( + sigc::bind<0>( + sigc::bind( + sigc::ptr_fun(SPWidgetImpl::changeSelectionCB), spw), spw->inkscape + )); + spw->selSet = spw->inkscape->signal_selection_set.connect( + sigc::bind<0>( + sigc::bind( + sigc::ptr_fun(SPWidgetImpl::setSelectionCB), spw), spw->inkscape + )); } if (reinterpret_cast<GtkWidgetClass *>(parentClass)->show) { @@ -233,7 +242,6 @@ void SPWidgetImpl::hide(GtkWidget *widget) spw->selModified.disconnect(); spw->selChanged.disconnect(); spw->selSet.disconnect(); - //sp_signal_disconnect_by_data(spw->inkscape, spw); } if (reinterpret_cast<GtkWidgetClass *>(parentClass)->hide) { @@ -311,9 +319,21 @@ GtkWidget *SPWidgetImpl::constructGlobal(SPWidget *spw, Inkscape::Application *i spw->inkscape = inkscape; if (gtk_widget_get_visible(GTK_WIDGET(spw))) { - spw->selModified = spw->inkscape->signal_selection_modified.connect(sigc::bind(sigc::ptr_fun(SPWidgetImpl::modifySelectionCB), spw)); - spw->selChanged = spw->inkscape->signal_selection_changed.connect(sigc::bind(sigc::ptr_fun(SPWidgetImpl::changeSelectionCB), spw)); - spw->selSet = spw->inkscape->signal_selection_set.connect(sigc::bind(sigc::ptr_fun(SPWidgetImpl::setSelectionCB), spw)); + spw->selModified = spw->inkscape->signal_selection_modified.connect( + sigc::bind<0>( + sigc::bind( + sigc::ptr_fun(SPWidgetImpl::modifySelectionCB), spw), spw->inkscape + )); + spw->selChanged = spw->inkscape->signal_selection_changed.connect( + sigc::bind<0>( + sigc::bind( + sigc::ptr_fun(SPWidgetImpl::changeSelectionCB), spw), spw->inkscape + )); + spw->selSet = spw->inkscape->signal_selection_set.connect( + sigc::bind<0>( + sigc::bind( + sigc::ptr_fun(SPWidgetImpl::setSelectionCB), spw), spw->inkscape + )); } g_signal_emit(spw, signals[CONSTRUCT], 0); |
