[anjuta] am-project: Display only available target type in new target dialog, fix reading and loading of data
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta] am-project: Display only available target type in new target dialog, fix reading and loading of data
- Date: Tue, 15 Feb 2011 22:00:31 +0000 (UTC)
commit 59b45881462659a0dc5eb29c247e55b92119be5a
Author: Sébastien Granjoux <seb sfo free fr>
Date: Tue Feb 15 22:49:19 2011 +0100
am-project: Display only available target type in new target dialog, fix reading and loading of data targets (_PYTHON, _MAN...)
libanjuta/anjuta-project.h | 29 +++++++++++++++--------------
plugins/am-project/am-project.c | 26 +++++++++-----------------
plugins/project-manager/dialogs.c | 6 +++---
3 files changed, 27 insertions(+), 34 deletions(-)
---
diff --git a/libanjuta/anjuta-project.h b/libanjuta/anjuta-project.h
index 687f0f3..e7aa3c3 100644
--- a/libanjuta/anjuta-project.h
+++ b/libanjuta/anjuta-project.h
@@ -93,20 +93,21 @@ typedef enum
ANJUTA_PROJECT_MKENUMS,
ANJUTA_PROJECT_GENMARSHAL,
ANJUTA_PROJECT_SCRIPT,
- ANJUTA_PROJECT_PROXY = 1 << 12,
- ANJUTA_PROJECT_PROJECT = 1 << 13,
- ANJUTA_PROJECT_PRIMARY = 1 << 14,
- ANJUTA_PROJECT_EXECUTABLE = 1 << 15,
- ANJUTA_PROJECT_ID_MASK = 0xFFF,
- ANJUTA_PROJECT_FLAG_MASK = 0x0F << 12,
- ANJUTA_PROJECT_TYPE_MASK = 0xFFFF << 16,
- ANJUTA_PROJECT_ROOT = 1 << 16,
- ANJUTA_PROJECT_GROUP = 2 << 16,
- ANJUTA_PROJECT_TARGET = 3 << 16,
- ANJUTA_PROJECT_SOURCE = 4 << 16 ,
- ANJUTA_PROJECT_MODULE = 5 << 16,
- ANJUTA_PROJECT_PACKAGE = 6 << 16,
- ANJUTA_PROJECT_VARIABLE = 7 << 16
+ ANJUTA_PROJECT_PROXY = 1 << 16,
+ ANJUTA_PROJECT_PROJECT = 1 << 17,
+ ANJUTA_PROJECT_PRIMARY = 1 << 18,
+ ANJUTA_PROJECT_EXECUTABLE = 1 << 19,
+ ANJUTA_PROJECT_READ_ONLY = 1 << 20, /* Node cannot be created by the backend */
+ ANJUTA_PROJECT_ID_MASK = 0xFFFF << 0,
+ ANJUTA_PROJECT_FLAG_MASK = 0xFF << 16,
+ ANJUTA_PROJECT_TYPE_MASK = 0xFF << 24,
+ ANJUTA_PROJECT_ROOT = 1 << 24,
+ ANJUTA_PROJECT_GROUP = 2 << 24,
+ ANJUTA_PROJECT_TARGET = 3 << 24,
+ ANJUTA_PROJECT_SOURCE = 4 << 24,
+ ANJUTA_PROJECT_MODULE = 5 << 24,
+ ANJUTA_PROJECT_PACKAGE = 6 << 24,
+ ANJUTA_PROJECT_VARIABLE = 7 << 24
} AnjutaProjectNodeType;
typedef enum
diff --git a/plugins/am-project/am-project.c b/plugins/am-project/am-project.c
index 2926a1e..edf0f5d 100644
--- a/plugins/am-project/am-project.c
+++ b/plugins/am-project/am-project.c
@@ -99,7 +99,7 @@ static AmpNodeInfo AmpNodeInformations[] = {
NULL,
NULL},
- {{ANJUTA_PROJECT_TARGET | ANJUTA_PROJECT_UNKNOWN,
+ {{ANJUTA_PROJECT_TARGET | ANJUTA_PROJECT_UNKNOWN | ANJUTA_PROJECT_READ_ONLY,
/* Translator: Unknown here is a target type, if not unknown it can
* be a program or a shared library by example */
N_("Unknown"),
@@ -134,14 +134,14 @@ static AmpNodeInfo AmpNodeInformations[] = {
"application/x-python"},
AM_TOKEN__PYTHON,
"_PYTHON",
- NULL},
+ "python"},
{{ANJUTA_PROJECT_TARGET | ANJUTA_PROJECT_JAVA,
N_("Java Module"),
"application/x-java"},
AM_TOKEN__JAVA,
"_JAVA",
- NULL},
+ "java"},
{{ANJUTA_PROJECT_TARGET | ANJUTA_PROJECT_LISP,
N_("Lisp Module"),
@@ -1030,7 +1030,7 @@ project_load_sources (AmpProject *project, AnjutaToken *name, AnjutaToken *list,
}
static AnjutaToken*
-project_load_data (AmpProject *project, AnjutaToken *name, AnjutaToken *list, AnjutaProjectNode *parent, GHashTable *orphan_properties)
+project_load_data (AmpProject *project, AnjutaToken *name, AnjutaTokenType token_type, AnjutaToken *list, AnjutaProjectNode *parent, GHashTable *orphan_properties)
{
gchar *install = NULL;
AmpTargetNode *target;
@@ -1051,14 +1051,6 @@ project_load_data (AmpProject *project, AnjutaToken *name, AnjutaToken *list, An
target_id = anjuta_token_evaluate (name);
split_automake_variable (target_id, &flags, &install, NULL);
- /*if (target_id)
- {
- gchar *end = strrchr (target_id, '_');
- if (end)
- {
- *end = '\0';
- }
- }*/
amp_group_node_add_token (AMP_GROUP_NODE (parent), name, AM_GROUP_TARGET);
@@ -1296,18 +1288,18 @@ amp_project_set_am_variable (AmpProject* project, AmpGroupNode* group, AnjutaTok
project_load_subdirs (project, list, ANJUTA_PROJECT_NODE (group), TRUE);
break;
case AM_TOKEN__DATA:
- project_load_data (project, name, list, ANJUTA_PROJECT_NODE (group), orphan_properties);
- break;
case AM_TOKEN__HEADERS:
- case AM_TOKEN__LIBRARIES:
case AM_TOKEN__LISP:
- case AM_TOKEN__LTLIBRARIES:
case AM_TOKEN__MANS:
- case AM_TOKEN__PROGRAMS:
case AM_TOKEN__PYTHON:
case AM_TOKEN__JAVA:
case AM_TOKEN__SCRIPTS:
case AM_TOKEN__TEXINFOS:
+ project_load_data (project, name, variable, list, ANJUTA_PROJECT_NODE (group), orphan_properties);
+ break;
+ case AM_TOKEN__LIBRARIES:
+ case AM_TOKEN__LTLIBRARIES:
+ case AM_TOKEN__PROGRAMS:
project_load_target (project, name, variable, list, ANJUTA_PROJECT_NODE (group), orphan_properties);
break;
case AM_TOKEN__SOURCES:
diff --git a/plugins/project-manager/dialogs.c b/plugins/project-manager/dialogs.c
index 60aab9f..1f065cd 100644
--- a/plugins/project-manager/dialogs.c
+++ b/plugins/project-manager/dialogs.c
@@ -1194,7 +1194,7 @@ enum {
/* create a tree model with the target types */
static GtkListStore *
-build_types_store (AnjutaPmProject *project)
+build_types_store (AnjutaPmProject *project, AnjutaProjectNodeType store_type)
{
GtkListStore *store;
GtkTreeIter iter;
@@ -1213,7 +1213,7 @@ build_types_store (AnjutaPmProject *project)
AnjutaProjectNodeType type;
type = anjuta_project_node_info_type ((AnjutaProjectNodeInfo *)node->data);
- if (type & ANJUTA_PROJECT_TARGET)
+ if ((store_type == 0) || ((type & ANJUTA_PROJECT_TYPE_MASK) == store_type) && !(type & ANJUTA_PROJECT_READ_ONLY))
{
name = anjuta_project_node_info_name ((AnjutaProjectNodeInfo *)node->data);
pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default(),
@@ -1287,7 +1287,7 @@ anjuta_pm_project_new_target (ProjectManagerPlugin *plugin,
gtk_widget_show (groups_view);
/* setup target types combo box */
- types_store = build_types_store (plugin->project);
+ types_store = build_types_store (plugin->project, ANJUTA_PROJECT_TARGET);
gtk_combo_box_set_model (GTK_COMBO_BOX (target_type_combo),
GTK_TREE_MODEL (types_store));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]