Example #1
0
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);
	}
}
Example #2
0
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);
}
Example #3
0
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);
}
Example #4
0
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));
}
Example #5
0
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);
    }
}
Example #6
0
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);
}
Example #7
0
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);
}
Example #8
0
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;
}
Example #9
0
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);
	}
}
Example #10
0
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;
}
Example #11
0
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;
}
Example #12
0
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);
}
Example #13
0
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);
}
Example #14
0
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);
		}
	}
}
Example #15
0
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"));
}
Example #16
0
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);
}
Example #17
0
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);
}
Example #18
0
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);
}
Example #19
0
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;
}
Example #20
0
/* 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);
}
Example #21
0
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);
}
Example #22
0
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);
}
Example #23
0
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);
    }
}
Example #24
0
/**
 * 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;
}
Example #25
0
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);
	}	
}
Example #26
0
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);
	}
}
Example #27
0
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);
	}	
}
Example #28
0
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;
}
Example #29
0
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;
}
Example #30
0
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);
}