[nautilus] all: compute emblem names to ignore automatically
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] all: compute emblem names to ignore automatically
- Date: Tue, 8 May 2012 16:05:57 +0000 (UTC)
commit 61d09c72b06d1b0e893622e3c319431660436392
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Mon May 7 18:29:14 2012 -0400
all: compute emblem names to ignore automatically
Consolidate identical code that builds a list of emblems to ignore
inside nautilus_file_get_emblem_icons()
libnautilus-private/nautilus-file.c | 29 +++++++++++++++++++----------
libnautilus-private/nautilus-file.h | 3 +--
src/nautilus-icon-view-container.c | 8 +-------
src/nautilus-list-model.c | 19 +------------------
src/nautilus-tree-sidebar-model.c | 16 +---------------
src/nautilus-view.c | 22 ----------------------
src/nautilus-view.h | 1 -
7 files changed, 23 insertions(+), 75 deletions(-)
---
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 2050362..6e406c5 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -6413,15 +6413,16 @@ nautilus_file_is_launchable (NautilusFile *file)
*
**/
GList *
-nautilus_file_get_emblem_icons (NautilusFile *file,
- char **exclude)
+nautilus_file_get_emblem_icons (NautilusFile *file)
{
+ NautilusFile *parent_file;
GList *keywords, *l;
GList *icons;
char *icon_names[2];
+ char *exclude[3];
char *keyword;
- int i;
GIcon *icon;
+ int i;
if (file == NULL) {
return NULL;
@@ -6429,20 +6430,28 @@ nautilus_file_get_emblem_icons (NautilusFile *file,
g_return_val_if_fail (NAUTILUS_IS_FILE (file), NULL);
+ i = 0;
+ parent_file = nautilus_file_get_parent (file);
+ exclude[i++] = NAUTILUS_FILE_EMBLEM_NAME_TRASH;
+ if (parent_file) {
+ if (!nautilus_file_can_write (parent_file)) {
+ exclude[i++] = NAUTILUS_FILE_EMBLEM_NAME_CANT_WRITE;
+ }
+ nautilus_file_unref (parent_file);
+ }
+ exclude[i++] = NULL;
+
keywords = nautilus_file_get_keywords (file);
keywords = prepend_automatic_keywords (file, keywords);
icons = NULL;
for (l = keywords; l != NULL; l = l->next) {
keyword = l->data;
-
- if (exclude) {
- for (i = 0; exclude[i] != NULL; i++) {
- if (strcmp (exclude[i], keyword) == 0) {
- continue;
- }
+ for (i = 0; exclude[i] != NULL; i++) {
+ if (strcmp (exclude[i], keyword) == 0) {
+ continue;
}
- }
+ }
icon_names[0] = g_strconcat ("emblem-", keyword, NULL);
icon_names[1] = keyword;
diff --git a/libnautilus-private/nautilus-file.h b/libnautilus-private/nautilus-file.h
index f0f126c..93b6358 100644
--- a/libnautilus-private/nautilus-file.h
+++ b/libnautilus-private/nautilus-file.h
@@ -206,8 +206,7 @@ gboolean nautilus_file_should_show_thumbnail (Nautilu
gboolean nautilus_file_should_show_directory_item_count (NautilusFile *file);
gboolean nautilus_file_should_show_type (NautilusFile *file);
GList * nautilus_file_get_keywords (NautilusFile *file);
-GList * nautilus_file_get_emblem_icons (NautilusFile *file,
- char **exclude);
+GList * nautilus_file_get_emblem_icons (NautilusFile *file);
char * nautilus_file_get_top_left_text (NautilusFile *file);
char * nautilus_file_peek_top_left_text (NautilusFile *file,
gboolean need_large_text,
diff --git a/src/nautilus-icon-view-container.c b/src/nautilus-icon-view-container.c
index 4dd33f1..4c986ac 100644
--- a/src/nautilus-icon-view-container.c
+++ b/src/nautilus-icon-view-container.c
@@ -59,7 +59,6 @@ nautilus_icon_view_container_get_icon_images (NautilusIconContainer *container,
gboolean *has_window_open)
{
NautilusIconView *icon_view;
- char **emblems_to_ignore;
NautilusFile *file;
gboolean use_embedding;
NautilusFileIconFlags flags;
@@ -99,13 +98,8 @@ nautilus_icon_view_container_get_icon_images (NautilusIconContainer *container,
flags |= NAUTILUS_FILE_ICON_FLAGS_FOR_DRAG_ACCEPT;
}
- emblems_to_ignore = nautilus_view_get_emblem_names_to_exclude
- (NAUTILUS_VIEW (icon_view));
- emblem_icons = nautilus_file_get_emblem_icons (file,
- emblems_to_ignore);
- g_strfreev (emblems_to_ignore);
-
icon_info = nautilus_file_get_icon (file, size, flags);
+ emblem_icons = nautilus_file_get_emblem_icons (file);
/* apply emblems */
if (emblem_icons != NULL) {
diff --git a/src/nautilus-list-model.c b/src/nautilus-list-model.c
index f5bc2df..4b3aff4 100644
--- a/src/nautilus-list-model.c
+++ b/src/nautilus-list-model.c
@@ -255,9 +255,6 @@ nautilus_list_model_get_value (GtkTreeModel *tree_model, GtkTreeIter *iter, int
GList *emblem_icons, *l;
int icon_size;
NautilusZoomLevel zoom_level;
- NautilusFile *parent_file;
- char *emblems_to_ignore[3];
- int i;
NautilusFileIconFlags flags;
model = (NautilusListModel *)tree_model;
@@ -314,21 +311,7 @@ nautilus_list_model_get_value (GtkTreeModel *tree_model, GtkTreeIter *iter, int
}
gicon = G_ICON (nautilus_file_get_icon_pixbuf (file, icon_size, TRUE, flags));
-
- /* render emblems with GEmblemedIcon */
- parent_file = nautilus_file_get_parent (file);
- i = 0;
- emblems_to_ignore[i++] = NAUTILUS_FILE_EMBLEM_NAME_TRASH;
- if (parent_file) {
- if (!nautilus_file_can_write (parent_file)) {
- emblems_to_ignore[i++] = NAUTILUS_FILE_EMBLEM_NAME_CANT_WRITE;
- }
- nautilus_file_unref (parent_file);
- }
- emblems_to_ignore[i++] = NULL;
-
- emblem_icons = nautilus_file_get_emblem_icons (file,
- emblems_to_ignore);
+ emblem_icons = nautilus_file_get_emblem_icons (file);
/* pick only the first emblem we can render for the list view */
for (l = emblem_icons; l != NULL; l = l->next) {
diff --git a/src/nautilus-tree-sidebar-model.c b/src/nautilus-tree-sidebar-model.c
index 16fcb40..ac23902 100644
--- a/src/nautilus-tree-sidebar-model.c
+++ b/src/nautilus-tree-sidebar-model.c
@@ -273,26 +273,12 @@ get_menu_icon_for_file (TreeNode *node,
int size;
FMTreeModel *model;
GList *emblem_icons, *l;
- char *emblems_to_ignore[3];
- int i;
size = nautilus_get_icon_size_for_stock_size (GTK_ICON_SIZE_MENU);
gicon = G_ICON (nautilus_file_get_icon_pixbuf (file, size, TRUE, flags));
- i = 0;
- emblems_to_ignore[i++] = NAUTILUS_FILE_EMBLEM_NAME_TRASH;
-
- if (node->parent && node->parent->file) {
- if (!nautilus_file_can_write (node->parent->file)) {
- emblems_to_ignore[i++] = NAUTILUS_FILE_EMBLEM_NAME_CANT_WRITE;
- }
- }
-
- emblems_to_ignore[i++] = NULL;
-
emblem = NULL;
- emblem_icons = nautilus_file_get_emblem_icons (node->file,
- emblems_to_ignore);
+ emblem_icons = nautilus_file_get_emblem_icons (node->file);
/* pick only the first emblem we can render for the tree view */
for (l = emblem_icons; l != NULL; l = l->next) {
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index 1204ed7..34a7191 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -676,28 +676,6 @@ nautilus_view_scroll_to_file (NautilusView *view,
NAUTILUS_VIEW_CLASS (G_OBJECT_GET_CLASS (view))->scroll_to_file (view, uri);
}
-char **
-nautilus_view_get_emblem_names_to_exclude (NautilusView *view)
-{
- char **excludes;
- int i;
-
- g_assert (NAUTILUS_IS_VIEW (view));
-
- excludes = g_new (char *, 3);
-
- i = 0;
- excludes[i++] = g_strdup (NAUTILUS_FILE_EMBLEM_NAME_TRASH);
-
- if (!nautilus_file_can_write (view->details->directory_as_file)) {
- excludes[i++] = g_strdup (NAUTILUS_FILE_EMBLEM_NAME_CANT_WRITE);
- }
-
- excludes[i++] = NULL;
-
- return excludes;
-}
-
/**
* nautilus_view_get_selection:
*
diff --git a/src/nautilus-view.h b/src/nautilus-view.h
index d94d7a2..a208e18 100644
--- a/src/nautilus-view.h
+++ b/src/nautilus-view.h
@@ -390,7 +390,6 @@ void nautilus_view_load_location (NautilusView *v
GFile *location);
void nautilus_view_stop_loading (NautilusView *view);
-char ** nautilus_view_get_emblem_names_to_exclude (NautilusView *view);
char * nautilus_view_get_first_visible_file (NautilusView *view);
void nautilus_view_scroll_to_file (NautilusView *view,
const char *uri);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]