static void chat_view_dispose(GObject *object) { ChatView *view; ChatViewPrivate *priv; view = CHAT_VIEW(object); priv = CHAT_VIEW_GET_PRIVATE(view); QObject::disconnect(priv->new_message_connection); QObject::disconnect(priv->message_changed_connection); QObject::disconnect(priv->update_name); /* Destroying the box will also destroy its children, and we wouldn't * want that. So we remove the webkit_chat_container from the box. */ if (priv->webkit_chat_container) { /* disconnect for webkit signals */ g_signal_handler_disconnect(priv->webkit_chat_container, priv->webkit_ready); priv->webkit_ready = 0; gtk_container_remove( GTK_CONTAINER(priv->box_webkit_chat_container), GTK_WIDGET(priv->webkit_chat_container) ); priv->webkit_chat_container = nullptr; } G_OBJECT_CLASS(chat_view_parent_class)->dispose(object); }
static void chat_view_dispose(GObject *object) { ChatView *view; ChatViewPrivate *priv; view = CHAT_VIEW(object); priv = CHAT_VIEW_GET_PRIVATE(view); QObject::disconnect(priv->new_message_connection); G_OBJECT_CLASS(chat_view_parent_class)->dispose(object); }
GtkWidget * chat_view_new_call(Call *call) { g_return_val_if_fail(call, nullptr); ChatView *self = CHAT_VIEW(g_object_new(CHAT_VIEW_TYPE, NULL)); ChatViewPrivate *priv = CHAT_VIEW_GET_PRIVATE(self); priv->call = call; auto cm = priv->call->peerContactMethod(); print_text_recording(cm->textRecording(), self); return (GtkWidget *)self; }
GtkWidget * chat_view_new_person(WebKitChatContainer *webkit_chat_container, Person *p) { g_return_val_if_fail(p, nullptr); ChatView *self = CHAT_VIEW(g_object_new(CHAT_VIEW_TYPE, NULL)); ChatViewPrivate *priv = CHAT_VIEW_GET_PRIVATE(self); priv->webkit_chat_container = GTK_WIDGET(webkit_chat_container); priv->person = p; build_chat_view(self); return (GtkWidget *)self; }
GtkWidget * chat_view_new_cm(WebKitChatContainer *webkit_chat_container, ContactMethod *cm) { g_return_val_if_fail(cm, nullptr); ChatView *self = CHAT_VIEW(g_object_new(CHAT_VIEW_TYPE, NULL)); ChatViewPrivate *priv = CHAT_VIEW_GET_PRIVATE(self); priv->webkit_chat_container = GTK_WIDGET(webkit_chat_container); priv->cm = cm; build_chat_view(self); return (GtkWidget *)self; }
GtkWidget * chat_view_new_cm(ContactMethod *cm) { g_return_val_if_fail(cm, nullptr); ChatView *self = CHAT_VIEW(g_object_new(CHAT_VIEW_TYPE, NULL)); ChatViewPrivate *priv = CHAT_VIEW_GET_PRIVATE(self); priv->cm = cm; print_text_recording(priv->cm->textRecording(), self); update_name(self); gtk_widget_show(priv->hbox_chat_info); return (GtkWidget *)self; }
GtkWidget * chat_view_new_person(Person *p) { g_return_val_if_fail(p, nullptr); ChatView *self = CHAT_VIEW(g_object_new(CHAT_VIEW_TYPE, NULL)); ChatViewPrivate *priv = CHAT_VIEW_GET_PRIVATE(self); priv->person = p; /* connect to the changed signal before setting the cm combo box, so that the correct * conversation will get displayed */ g_signal_connect(priv->combobox_cm, "changed", G_CALLBACK(selected_cm_changed), self); update_contact_methods(self); update_name(self); gtk_widget_show(priv->hbox_chat_info); return (GtkWidget *)self; }