static void on_value_removed (AnjutaPlugin *plugin, const gchar *name, gpointer data) { AnjutaShell* shell = anjuta_plugin_get_shell (plugin); StarterPlugin* splugin = ANJUTA_PLUGIN_STARTER (plugin); IAnjutaDocumentManager* docman = anjuta_shell_get_interface (shell, IAnjutaDocumentManager, NULL); IAnjutaProjectManager* pm = anjuta_shell_get_interface (shell, IAnjutaProjectManager, NULL); if (!(docman && ianjuta_document_manager_get_doc_widgets (docman, NULL)) && !(pm && ianjuta_project_manager_get_current_project (pm, NULL))) { DEBUG_PRINT ("Showing starter"); splugin->priv->starter = create_starter_widget (splugin); anjuta_shell_add_widget (shell, splugin->priv->starter, "AnjutaStarter", _("Start"), GTK_STOCK_ABOUT, ANJUTA_SHELL_PLACEMENT_CENTER, NULL); anjuta_shell_present_widget (shell, splugin->priv->starter, NULL); g_object_unref (splugin->priv->starter); } }
static void on_show_in_file_manager (GtkAction* action, AnjutaFileManager* file_manager) { IAnjutaDocumentManager* docman; IAnjutaDocument* document; GFile* file; docman = anjuta_shell_get_interface (ANJUTA_PLUGIN (file_manager)->shell, IAnjutaDocumentManager, NULL); g_return_if_fail (docman); document = ianjuta_document_manager_get_current_document (docman, NULL); if (!IANJUTA_IS_FILE (document)) return; file = ianjuta_file_get_file (IANJUTA_FILE (document), NULL); if (!file) return; file_view_set_selected (file_manager->fv, file); g_object_unref (file); anjuta_shell_present_widget (ANJUTA_PLUGIN (file_manager)->shell, file_manager->sw, NULL); }
void git_pane_create_message_view (Git *plugin) { IAnjutaMessageManager *message_manager; message_manager = anjuta_shell_get_interface (ANJUTA_PLUGIN (plugin)->shell, IAnjutaMessageManager, NULL); plugin->message_view = ianjuta_message_manager_get_view_by_name (message_manager, _("Git"), NULL); if (!plugin->message_view) { plugin->message_view = ianjuta_message_manager_add_view (message_manager, _("Git"), ICON_FILE, NULL); g_object_weak_ref (G_OBJECT (plugin->message_view), (GWeakNotify) on_message_view_destroyed, plugin); } ianjuta_message_view_clear (plugin->message_view, NULL); ianjuta_message_manager_set_current_view (message_manager, plugin->message_view, NULL); }
void on_diff_button_clicked (GtkAction *action, Git *plugin) { IAnjutaDocumentManager *document_manager; IAnjutaEditor *editor; GitDiffCommand *diff_command; document_manager = anjuta_shell_get_interface (ANJUTA_PLUGIN (plugin)->shell, IAnjutaDocumentManager, NULL); editor = ianjuta_document_manager_add_buffer (document_manager,/* Translators: default file name for git diff's output */ _("Uncommitted Changes.diff"), "", NULL); diff_command = git_diff_command_new (plugin->project_root_directory); g_signal_connect (G_OBJECT (diff_command), "data-arrived", G_CALLBACK (git_pane_send_raw_output_to_editor), editor); g_signal_connect (G_OBJECT (diff_command), "command-finished", G_CALLBACK (git_pane_report_errors), plugin); g_signal_connect (G_OBJECT (diff_command), "command-finished", G_CALLBACK (g_object_unref), NULL); anjuta_command_start (ANJUTA_COMMAND (diff_command)); }
static void on_dialog_response(GtkDialog* dialog, gint response_id, gpointer user_data) { QuickOpenPlugin* self = user_data; gtk_widget_hide(GTK_WIDGET(dialog)); if (response_id == GTK_RESPONSE_ACCEPT) { GObject* object; object = quick_open_dialog_get_selected_object(self->dialog); if (!object) return; if (IANJUTA_IS_DOCUMENT(object)) { ianjuta_document_manager_set_current_document(self->docman, IANJUTA_DOCUMENT(object), NULL); } else if (G_IS_FILE(object)) { IAnjutaFileLoader* loader; loader = anjuta_shell_get_interface (ANJUTA_PLUGIN (self)->shell, IAnjutaFileLoader, NULL); g_return_if_fail (loader != NULL); ianjuta_file_loader_load (loader, G_FILE(object), FALSE, NULL); } g_object_unref(object); } }
static void run_plugin_child_free (RunProgramPlugin *plugin, GPid pid) { GList *child; for (child = g_list_first (plugin->child); child != NULL; child = g_list_next (child)) { if (((RunProgramChild *)child->data)->pid == pid) { if (((RunProgramChild *)child->data)->use_signal) { g_return_if_fail (plugin->child_exited_connection > 0); plugin->child_exited_connection--; if (plugin->child_exited_connection == 0) { IAnjutaTerminal *term; term = anjuta_shell_get_interface (ANJUTA_PLUGIN (plugin)->shell, IAnjutaTerminal, NULL); g_signal_handlers_disconnect_by_func (term, on_child_terminated, plugin); } } else if (((RunProgramChild *)child->data)->source) { g_source_remove (((RunProgramChild *)child->data)->source); } g_free (child->data); plugin->child = g_list_delete_link (plugin->child, child); break; } } run_plugin_update_menu_sensitivity (plugin); }
static void on_package_deactivated (AnjutaPkgConfigChooser *self, const gchar* package, gpointer data) { CppJavaPlugin* plugin; IAnjutaSymbolManager *isymbol_manager; gchar* version; plugin = ANJUTA_PLUGIN_CPP_JAVA (data); DEBUG_PRINT ("deactivated %s", package); isymbol_manager = anjuta_shell_get_interface (ANJUTA_PLUGIN (plugin)->shell, IAnjutaSymbolManager, NULL); version = anjuta_pkg_config_get_version (package); if (version) { ianjuta_symbol_manager_deactivate_package (isymbol_manager, package, version, NULL); } g_free (version); cpp_java_plugin_update_user_packages (plugin, self); }
static IAnjutaIterable* language_support_find_symbol (CppJavaPlugin* lang_plugin, IAnjutaEditor* editor, const gchar* handler) { IAnjutaSymbolManager *isymbol_manager = anjuta_shell_get_interface ( ANJUTA_PLUGIN (lang_plugin)->shell, IAnjutaSymbolManager, NULL); IAnjutaSymbolQuery *symbol_query = ianjuta_symbol_manager_create_query ( isymbol_manager, IANJUTA_SYMBOL_QUERY_SEARCH_FILE, IANJUTA_SYMBOL_QUERY_DB_PROJECT, NULL); IAnjutaSymbolField field = IANJUTA_SYMBOL_FIELD_FILE_POS; ianjuta_symbol_query_set_fields (symbol_query, 1, &field, NULL); GFile* file = ianjuta_file_get_file (IANJUTA_FILE (editor), NULL); IAnjutaIterable *iter = ianjuta_symbol_query_search_file (symbol_query, handler, file, NULL); g_object_unref (file); g_object_unref (symbol_query); return iter; }
static void cpp_packages_activate_libc (CppPackages* packages) { IAnjutaSymbolManager* sm = anjuta_shell_get_interface (anjuta_plugin_get_shell (ANJUTA_PLUGIN(packages->plugin)), IAnjutaSymbolManager, NULL); if (!ianjuta_symbol_manager_activate_package (sm, LIBC, LIBC_VERSION, NULL)) { /* Create file list*/ GList* files = NULL; const gchar** file; for (file = libc_files; *file != NULL; file++) { gchar* real_file = g_build_filename (LIBC_LOCATION, *file, NULL); if (g_file_test (real_file, G_FILE_TEST_EXISTS)) files = g_list_append (files, real_file); else g_free (real_file); } /* Add package */ ianjuta_symbol_manager_add_package (sm, LIBC, LIBC_VERSION, files, NULL); anjuta_util_glist_strings_free (files); } }
IAnjutaMessageView* npw_plugin_create_view (NPWPlugin* plugin) { if (plugin->view == NULL) { IAnjutaMessageManager* man; man = anjuta_shell_get_interface (ANJUTA_PLUGIN (plugin)->shell, IAnjutaMessageManager, NULL); plugin->view = ianjuta_message_manager_add_view (man, _("New Project Assistant"), ICON_FILE, NULL); if (plugin->view != NULL) { g_signal_connect (G_OBJECT (plugin->view), "buffer_flushed", G_CALLBACK (on_message_buffer_flush), plugin); g_object_add_weak_pointer (G_OBJECT (plugin->view), (gpointer *)(gpointer)&plugin->view); } } else { ianjuta_message_view_clear (plugin->view, NULL); } return plugin->view; }
static gboolean glade_widget_already_in_scope (IAnjutaEditor* editor, gchar* widget_name, gchar* mark, CppJavaPlugin* lang_plugin) { gboolean ret = FALSE; IAnjutaIterable *mark_position; IAnjutaSymbolQuery *query_scope; IAnjutaIterable *scope; IAnjutaSymbolQuery *query_members; mark_position = language_support_get_mark_position (editor, mark); if (!mark_position) return FALSE; int line = ianjuta_editor_get_line_from_position (editor, mark_position, NULL); g_object_unref(mark_position); IAnjutaSymbolManager *symbol_manager = anjuta_shell_get_interface (ANJUTA_PLUGIN (lang_plugin)->shell, IAnjutaSymbolManager, NULL); query_scope = ianjuta_symbol_manager_create_query (symbol_manager, IANJUTA_SYMBOL_QUERY_SEARCH_SCOPE, IANJUTA_SYMBOL_QUERY_DB_PROJECT, NULL); if (!query_scope) return FALSE; GFile *file = ianjuta_file_get_file (IANJUTA_FILE(editor), NULL); gchar* path = g_file_get_path (file); scope = ianjuta_symbol_query_search_scope (query_scope, path, line, NULL); g_object_unref(query_scope); if (!scope) return FALSE; query_members = ianjuta_symbol_manager_create_query (symbol_manager, IANJUTA_SYMBOL_QUERY_SEARCH_MEMBERS, IANJUTA_SYMBOL_QUERY_DB_PROJECT, NULL); if (query_members) { IAnjutaIterable *members = ianjuta_symbol_query_search_members ( query_members, IANJUTA_SYMBOL(scope), NULL); g_object_unref(query_members); if (members) { ret = glade_widget_member_of_scope (widget_name, members); g_object_unref(members); } } g_object_unref(scope); return ret; }
static void new_file_clicked_cb (GtkWidget *button, Starter *wcm) { IAnjutaDocumentManager *docman = anjuta_shell_get_interface (wcm->priv->shell, IAnjutaDocumentManager, NULL); if (docman) ianjuta_document_manager_add_buffer (docman, NULL, NULL, NULL); }
void on_recent_project_activated (GtkListBox *box, GtkListBoxRow *row, gpointer user_data) { GFile *file; IAnjutaFileLoader *loader; loader = anjuta_shell_get_interface (anjuta_plugin_get_shell (ANJUTA_PLUGIN (user_data)), IAnjutaFileLoader, NULL); file = g_file_new_for_uri ((const char*) g_object_get_data (G_OBJECT (row), URI_KEY)); ianjuta_file_loader_load (IANJUTA_FILE_LOADER (loader), file, FALSE, NULL); }
static void cpp_packages_load_user (CppPackages* packages, gboolean force) { CppJavaPlugin* plugin = ANJUTA_PLUGIN_CPP_JAVA(packages->plugin); AnjutaShell* shell = anjuta_plugin_get_shell (ANJUTA_PLUGIN (plugin)); IAnjutaSymbolManager* sm = anjuta_shell_get_interface (shell, IAnjutaSymbolManager, NULL); gboolean loaded = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (shell), USER_LOADED)); if (!loaded || force) { gchar* packages_str = g_settings_get_string (plugin->settings, PREF_USER_PACKAGES); GStrv pkgs = g_strsplit (packages_str, ";", -1); gchar** package; GList* packages_to_add = NULL; GList* pkg; ianjuta_symbol_manager_deactivate_all (sm, NULL); for (package = pkgs; *package != NULL; package++) { cpp_packages_activate_package (sm, *package, &packages_to_add); } g_strfreev (pkgs); g_free (packages_str); if (packages_to_add) { packages->loading = TRUE; packages->queue = anjuta_command_queue_new (ANJUTA_COMMAND_QUEUE_EXECUTE_MANUAL); for (pkg = packages_to_add; pkg != NULL; pkg = g_list_next (pkg)) { PackageData* pkg_data = pkg->data; AnjutaCommand* command = anjuta_pkg_scanner_new (pkg_data->pkg, pkg_data->version); g_signal_connect (command, "command-finished", G_CALLBACK (on_package_ready), sm); anjuta_command_queue_push (packages->queue, command); } g_list_foreach (packages_to_add, (GFunc) pkg_data_free, NULL); g_list_free (packages_to_add); g_object_set_data (G_OBJECT (shell), USER_LOADED, GINT_TO_POINTER (TRUE)); g_signal_connect (packages->queue, "finished", G_CALLBACK (on_queue_finished), packages); /* Make sure the pointer is valid when the queue finishes */ g_object_ref (packages); anjuta_command_queue_start (packages->queue); } } }
void on_commit_diff_button_clicked (GtkAction *action, Git *plugin) { GitRevision *revision; gchar *sha; gchar *short_sha; gchar *editor_name; IAnjutaDocumentManager *document_manager; IAnjutaEditor *editor; GitDiffTreeCommand *diff_command; revision = git_log_pane_get_selected_revision (GIT_LOG_PANE (plugin->log_pane)); if (revision) { sha = git_revision_get_sha (revision); short_sha = git_revision_get_short_sha (revision); /* Translators: file name for an existing commits diff, %s is an SHASUM of a commit */ editor_name = g_strdup_printf (_("Commit %s.diff"), short_sha); document_manager = anjuta_shell_get_interface (ANJUTA_PLUGIN (plugin)->shell, IAnjutaDocumentManager, NULL); editor = ianjuta_document_manager_add_buffer (document_manager, editor_name, "", NULL); diff_command = git_diff_tree_command_new (plugin->project_root_directory, sha); g_signal_connect (G_OBJECT (diff_command), "data-arrived", G_CALLBACK (git_pane_send_raw_output_to_editor), editor); g_signal_connect (G_OBJECT (diff_command), "command-finished", G_CALLBACK (git_pane_report_errors), plugin); g_signal_connect (G_OBJECT (diff_command), "command-finished", G_CALLBACK (g_object_unref), NULL); anjuta_command_start (ANJUTA_COMMAND (diff_command)); g_object_unref (revision); g_free (sha); g_free (short_sha); g_free (editor_name); } else anjuta_util_dialog_error (NULL, _("No revision selected")); }
static void recent_project_clicked_cb (GtkButton *button, Starter *wcm) { GFile *file; IAnjutaFileLoader *loader = anjuta_shell_get_interface (wcm->priv->shell, IAnjutaFileLoader, NULL); file = g_object_get_data (G_OBJECT (button), "file"); ianjuta_file_loader_load (IANJUTA_FILE_LOADER (loader), file, FALSE, NULL); }
static void cpp_packages_finalize (GObject* object) { CppPackages *packages = CPP_PACKAGES (object); AnjutaShell* shell = packages->plugin->shell; IAnjutaProjectManager* pm = anjuta_shell_get_interface (shell, IAnjutaProjectManager, NULL); g_signal_handlers_disconnect_by_func (pm, cpp_packages_load_real, packages); G_OBJECT_CLASS (cpp_packages_parent_class)->finalize (object); }
static void on_file_view_open_file (AnjutaFileView* view, GFile* file, AnjutaFileManager* file_manager) { IAnjutaFileLoader *loader; g_return_if_fail (file != NULL); loader = anjuta_shell_get_interface (ANJUTA_PLUGIN (file_manager)->shell, IAnjutaFileLoader, NULL); g_return_if_fail (loader != NULL); ianjuta_file_loader_load (loader, file, FALSE, NULL); }
static IAnjutaProject* iproject_backend_new_project (IAnjutaProjectBackend* backend, GFile *file, GError** err) { IAnjutaProject *project; IAnjutaLanguage* langman; DEBUG_PRINT("create new amp project"); langman = anjuta_shell_get_interface (ANJUTA_PLUGIN (backend)->shell, IAnjutaLanguage, NULL); project = (IAnjutaProject *)amp_project_new (file, langman, err); return project; }
/* Complete the document addition process */ void vim_widget_add_document_complete (VimWidget *widget, VimEditor *editor) { IAnjutaDocumentManager *docman; if (g_ptr_array_find (widget->priv->unloaded, editor) != -1) g_ptr_array_remove (widget->priv->unloaded, editor); g_ptr_array_add (widget->priv->documents, editor); editor->priv->loaded = TRUE; vim_editor_update_variables (editor); docman = anjuta_shell_get_interface (ANJUTA_PLUGIN(widget->priv->plugin)->shell, IAnjutaDocumentManager, NULL); ianjuta_document_manager_add_document (docman, IANJUTA_DOCUMENT(editor), NULL); }
void cpp_packages_load (CppPackages* packages, gboolean force) { CppJavaPlugin* plugin = ANJUTA_PLUGIN_CPP_JAVA(packages->plugin); if (g_settings_get_boolean (plugin->settings, PREF_PROJECT_PACKAGES)) { IAnjutaProjectManager* pm = anjuta_shell_get_interface (packages->plugin->shell, IAnjutaProjectManager, NULL); IAnjutaProject* project; g_signal_connect_swapped (pm, "project-loaded", G_CALLBACK (cpp_packages_load_real), packages); project = ianjuta_project_manager_get_current_project (pm, NULL); /* Only load the packages if necessary */ if (project && ianjuta_project_is_loaded (project, NULL)) { gboolean loaded = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (project), PROJECT_LOADED)); if (!loaded && !packages->loading) { cpp_packages_load_real (packages, NULL, pm); g_object_set_data (G_OBJECT (project), PROJECT_LOADED, GINT_TO_POINTER (TRUE)); } } } else { if (packages->loading) { if (!packages->idle_id) { packages->idle_id = g_idle_add ((GSourceFunc)cpp_packages_idle_load_user, packages); g_object_ref (packages); } return; } else { cpp_packages_load_user (packages, force); } } g_signal_connect (plugin->settings, "changed::PREF_LIBC", G_CALLBACK (on_load_libc), packages); on_load_libc (plugin->settings, PREF_LIBC, packages); }
static IAnjutaEditor* language_support_get_editor_from_file (CppJavaPlugin* lang_plugin, GFile *file) { IAnjutaDocumentManager *document_manager = anjuta_shell_get_interface ( ANJUTA_PLUGIN (lang_plugin)->shell, IAnjutaDocumentManager, NULL); IAnjutaDocument *document = ianjuta_document_manager_find_document_with_file (document_manager, file, NULL); return IANJUTA_EDITOR (document); }
void vim_signal_buf_enter_cb (DBusGProxy *proxy, const guint bufno, const gchar* filename, VimWidget *widget) { IAnjutaDocumentManager *docman; VimEditor *editor = vim_widget_get_document_bufno (widget, bufno, NULL); if (!editor) return; editor->priv->bufno = bufno; if (widget->priv->current_editor != editor) { widget->priv->current_editor = editor; /* Set the current editor */ docman = anjuta_shell_get_interface (ANJUTA_PLUGIN(widget->priv->plugin)->shell, IAnjutaDocumentManager, NULL); ianjuta_document_manager_set_current_document (docman, IANJUTA_DOCUMENT(editor), NULL); } }
/** * anjuta_docman_add_editor: * @docman: pointer to docman data struct * @uri: string with uri of file to edit, may be "" or NULL * @name: string with name of file to edit, may be absolute path or just a basename or "" or NULL * * Add a new editor, working on specified uri or filename if any * * Return value: the editor */ IAnjutaEditor * anjuta_docman_add_editor (AnjutaDocman *docman, GFile* file, const gchar *name) { IAnjutaEditor *te; IAnjutaEditorFactory* factory; factory = anjuta_shell_get_interface (docman->shell, IAnjutaEditorFactory, NULL); te = ianjuta_editor_factory_new_editor (factory, file, name, NULL); /* if file cannot be loaded, text-editor brings up an error dialog ? */ if (te != NULL) { if (IANJUTA_IS_EDITOR (te)) ianjuta_editor_set_popup_menu (te, docman->priv->popup_menu, NULL); anjuta_docman_add_document (docman, IANJUTA_DOCUMENT (te), file); } return te; }
static gboolean check_target (RunProgramPlugin *plugin) { IAnjutaBuilder *builder; gchar *prog_uri; anjuta_shell_get (ANJUTA_PLUGIN (plugin)->shell, RUN_PROGRAM_URI, G_TYPE_STRING, &prog_uri, NULL); builder = anjuta_shell_get_interface (ANJUTA_PLUGIN (plugin)->shell, IAnjutaBuilder, NULL); if (builder != NULL) { if (plugin->build_uri) { /* a build operation is currently running */ if (strcmp (plugin->build_uri, prog_uri) == 0) { /* It is the same one, just ignore */ return TRUE; } else { /* Cancel old operation */ ianjuta_builder_cancel (builder, plugin->build_handle, NULL); } } plugin->build_uri = prog_uri; /* Check if target is up to date */ plugin->build_handle = ianjuta_builder_is_built (builder, plugin->build_uri, on_is_built_finished, plugin, NULL); return plugin->build_handle != 0; } else { plugin->build_uri = prog_uri; /* Unable to build target, just run it */ return run_program (plugin); } }
static void cpp_packages_load_real (CppPackages* packages, GError* error, IAnjutaProjectManager* pm) { IAnjutaSymbolManager* sm = anjuta_shell_get_interface (anjuta_plugin_get_shell (ANJUTA_PLUGIN(packages->plugin)), IAnjutaSymbolManager, NULL); GList* pkgs; GList* pkg; GList* packages_to_add = NULL; if (!pm || !sm) return; ianjuta_symbol_manager_deactivate_all (sm, NULL); pkgs = ianjuta_project_manager_get_packages (pm, NULL); for (pkg = pkgs; pkg != NULL; pkg = g_list_next (pkg)) { cpp_packages_activate_package (sm, pkg->data, &packages_to_add); } g_list_free (pkgs); if (packages_to_add) { packages->loading = TRUE; packages->queue = anjuta_command_queue_new (ANJUTA_COMMAND_QUEUE_EXECUTE_MANUAL); for (pkg = packages_to_add; pkg != NULL; pkg = g_list_next (pkg)) { PackageData* pkg_data = pkg->data; AnjutaCommand* command = anjuta_pkg_scanner_new (pkg_data->pkg, pkg_data->version); g_signal_connect (command, "command-finished", G_CALLBACK (on_package_ready), sm); anjuta_command_queue_push (packages->queue, command); } g_list_foreach (packages_to_add, (GFunc) pkg_data_free, NULL); g_list_free (packages_to_add); g_signal_connect (packages->queue, "finished", G_CALLBACK (on_queue_finished), packages); /* Make sure the pointer is valid when the queue finishes */ g_object_ref (packages); anjuta_command_queue_start (packages->queue); } }
static void on_load_libc (GSettings* settings, gchar* key, CppPackages* packages) { gboolean load = g_settings_get_boolean (ANJUTA_PLUGIN_CPP_JAVA(packages->plugin)->settings, key); if (load) { cpp_packages_activate_libc (packages); } else { IAnjutaSymbolManager* sm = anjuta_shell_get_interface (anjuta_plugin_get_shell (ANJUTA_PLUGIN(packages->plugin)), IAnjutaSymbolManager, NULL); ianjuta_symbol_manager_deactivate_package (sm, LIBC, LIBC_VERSION, NULL); } }
SymbolDBSystem * symbol_db_system_new (SymbolDBPlugin *sdb_plugin, const SymbolDBEngine *sdbe) { SymbolDBSystem *sdbs; SymbolDBSystemPriv *priv; g_return_val_if_fail (sdbe != NULL, NULL); sdbs = g_object_new (SYMBOL_TYPE_DB_SYSTEM, NULL); priv = sdbs->priv; priv->sdbe_globals = (SymbolDBEngine*)sdbe; priv->lang_manager = anjuta_shell_get_interface (ANJUTA_PLUGIN(sdb_plugin)->shell, IAnjutaLanguage, NULL); g_signal_connect (G_OBJECT (priv->sdbe_globals), "single-file-scan-end", G_CALLBACK (on_engine_package_single_file_scan_end), sdbs); return sdbs; }
static gboolean deactivate_plugin (AnjutaPlugin *plugin) { EditorPlugin* editor = ANJUTA_PLUGIN_EDITOR (plugin); IAnjutaSymbolManager *manager = anjuta_shell_get_interface (plugin->shell, IAnjutaSymbolManager, NULL); AnjutaUI *ui; /* Remove menu items */ ui = anjuta_shell_get_ui (ANJUTA_PLUGIN (plugin)->shell, NULL); anjuta_ui_unmerge (ui, editor->uiid); anjuta_ui_remove_action_group (ui, editor->group); /* Disconnect signals */ g_signal_handlers_disconnect_by_func (G_OBJECT (manager), G_CALLBACK (on_project_symbol_scanned), editor->query_project); g_signal_handlers_disconnect_by_func (G_OBJECT (manager), G_CALLBACK (on_system_symbol_scanned), editor->query_system); g_object_unref (editor->query_project); g_object_unref (editor->query_system); return TRUE; }
static void quick_open_plugin_setup_document_handling(QuickOpenPlugin* self) { GList* documents, *l; self->docman = anjuta_shell_get_interface(ANJUTA_PLUGIN(self)->shell, IAnjutaDocumentManager, NULL); g_return_if_fail(self->docman); g_object_add_weak_pointer(G_OBJECT(self->docman), (void**)&self->docman); documents = ianjuta_document_manager_get_doc_widgets(self->docman, NULL); for (l = documents; l; l = l->next) { IAnjutaDocument* doc = IANJUTA_DOCUMENT(l->data); quick_open_dialog_add_document(self->dialog, doc); } g_list_free(documents); g_signal_connect(self->docman, "document-added", G_CALLBACK(on_document_added), self); g_signal_connect(self->docman, "document-removed", G_CALLBACK(on_document_removed), self); }