From cb1b36fb2575d70c7d599d97ffd7ad2abc75b674 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Tue, 25 Jan 2011 23:55:54 +0000 Subject: [PATCH] Only display thumbnail icons once the folder is fully refreshed --- po/de.po | 40 +++++++++++++++++++------------------- po/es.po | 40 +++++++++++++++++++------------------- po/fr.po | 40 +++++++++++++++++++------------------- po/it.po | 40 +++++++++++++++++++------------------- src/browser.c | 54 +++++++++++++++++++++++++++++++++++++++++++++------ src/browser.h | 1 + 6 files changed, 129 insertions(+), 86 deletions(-) diff --git a/po/de.po b/po/de.po index 69b7bd8..6ed1510 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Browser 0.1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 00:48+0100\n" +"POT-Creation-Date: 2011-01-26 00:55+0100\n" "PO-Revision-Date: 2010-03-29 23:28+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: English\n" @@ -165,19 +165,19 @@ msgstr "" msgid "View as..." msgstr "" -#: ../src/browser.c:294 ../src/browser.c:1756 +#: ../src/browser.c:294 ../src/browser.c:1798 msgid "Details" msgstr "" -#: ../src/browser.c:301 ../src/browser.c:1757 +#: ../src/browser.c:301 ../src/browser.c:1799 msgid "Icons" msgstr "" -#: ../src/browser.c:308 ../src/browser.c:1758 +#: ../src/browser.c:308 ../src/browser.c:1800 msgid "List" msgstr "" -#: ../src/browser.c:315 ../src/browser.c:1759 +#: ../src/browser.c:315 ../src/browser.c:1801 msgid "Thumbnails" msgstr "" @@ -198,7 +198,7 @@ msgstr "Fehler" msgid "Open with..." msgstr "Offnen mit..." -#: ../src/browser.c:845 ../src/browser.c:1179 +#: ../src/browser.c:845 ../src/browser.c:1221 msgid "Refreshing folder: " msgstr "" @@ -207,59 +207,59 @@ msgstr "" msgid "%s%u file%c (%u hidden)" msgstr "" -#: ../src/browser.c:1481 +#: ../src/browser.c:1523 msgid "Filename" msgstr "" -#: ../src/browser.c:1483 +#: ../src/browser.c:1525 msgid "Size" msgstr "Größe" -#: ../src/browser.c:1485 +#: ../src/browser.c:1527 msgid "Owner" msgstr "" -#: ../src/browser.c:1487 +#: ../src/browser.c:1529 msgid "Group" msgstr "Gruppe" -#: ../src/browser.c:1489 +#: ../src/browser.c:1531 msgid "Date" msgstr "Datum" -#: ../src/browser.c:1491 +#: ../src/browser.c:1533 msgid "MIME type" msgstr "" -#: ../src/browser.c:1736 +#: ../src/browser.c:1778 msgid "File browser preferences" msgstr "File browser Einstellungen" -#: ../src/browser.c:1752 +#: ../src/browser.c:1794 msgid "Default view:" msgstr "" -#: ../src/browser.c:1765 +#: ../src/browser.c:1807 msgid "_Alternate rows in detailed view" msgstr "" -#: ../src/browser.c:1769 +#: ../src/browser.c:1811 msgid "_Confirm before deletion" msgstr "_Bestätigen vor löschung" -#: ../src/browser.c:1772 +#: ../src/browser.c:1814 msgid "Sort _folders first" msgstr "List _Ordner zuerst" -#: ../src/browser.c:1775 +#: ../src/browser.c:1817 msgid "Show _hidden files" msgstr "" -#: ../src/browser.c:1778 +#: ../src/browser.c:1820 msgid "_Appearance" msgstr "" -#: ../src/browser.c:1913 +#: ../src/browser.c:1955 msgid "Refreshing folder..." msgstr "Aktualisierung..." diff --git a/po/es.po b/po/es.po index 2c690c3..c5151b6 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Browser 0.1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 00:48+0100\n" +"POT-Creation-Date: 2011-01-26 00:55+0100\n" "PO-Revision-Date: 2010-03-30 01:04+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: Spanish\n" @@ -165,19 +165,19 @@ msgstr "" msgid "View as..." msgstr "" -#: ../src/browser.c:294 ../src/browser.c:1756 +#: ../src/browser.c:294 ../src/browser.c:1798 msgid "Details" msgstr "" -#: ../src/browser.c:301 ../src/browser.c:1757 +#: ../src/browser.c:301 ../src/browser.c:1799 msgid "Icons" msgstr "" -#: ../src/browser.c:308 ../src/browser.c:1758 +#: ../src/browser.c:308 ../src/browser.c:1800 msgid "List" msgstr "" -#: ../src/browser.c:315 ../src/browser.c:1759 +#: ../src/browser.c:315 ../src/browser.c:1801 msgid "Thumbnails" msgstr "" @@ -198,7 +198,7 @@ msgstr "" msgid "Open with..." msgstr "" -#: ../src/browser.c:845 ../src/browser.c:1179 +#: ../src/browser.c:845 ../src/browser.c:1221 msgid "Refreshing folder: " msgstr "" @@ -207,59 +207,59 @@ msgstr "" msgid "%s%u file%c (%u hidden)" msgstr "" -#: ../src/browser.c:1481 +#: ../src/browser.c:1523 msgid "Filename" msgstr "" -#: ../src/browser.c:1483 +#: ../src/browser.c:1525 msgid "Size" msgstr "" -#: ../src/browser.c:1485 +#: ../src/browser.c:1527 msgid "Owner" msgstr "" -#: ../src/browser.c:1487 +#: ../src/browser.c:1529 msgid "Group" msgstr "" -#: ../src/browser.c:1489 +#: ../src/browser.c:1531 msgid "Date" msgstr "" -#: ../src/browser.c:1491 +#: ../src/browser.c:1533 msgid "MIME type" msgstr "" -#: ../src/browser.c:1736 +#: ../src/browser.c:1778 msgid "File browser preferences" msgstr "File browser preferencias" -#: ../src/browser.c:1752 +#: ../src/browser.c:1794 msgid "Default view:" msgstr "" -#: ../src/browser.c:1765 +#: ../src/browser.c:1807 msgid "_Alternate rows in detailed view" msgstr "" -#: ../src/browser.c:1769 +#: ../src/browser.c:1811 msgid "_Confirm before deletion" msgstr "" -#: ../src/browser.c:1772 +#: ../src/browser.c:1814 msgid "Sort _folders first" msgstr "" -#: ../src/browser.c:1775 +#: ../src/browser.c:1817 msgid "Show _hidden files" msgstr "" -#: ../src/browser.c:1778 +#: ../src/browser.c:1820 msgid "_Appearance" msgstr "" -#: ../src/browser.c:1913 +#: ../src/browser.c:1955 msgid "Refreshing folder..." msgstr "" diff --git a/po/fr.po b/po/fr.po index fc878e1..6b54875 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Browser 0.1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 00:48+0100\n" +"POT-Creation-Date: 2011-01-26 00:55+0100\n" "PO-Revision-Date: 2010-03-29 23:28+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: French\n" @@ -165,19 +165,19 @@ msgstr "Gestionnaire de fichiers" msgid "View as..." msgstr "Vue..." -#: ../src/browser.c:294 ../src/browser.c:1756 +#: ../src/browser.c:294 ../src/browser.c:1798 msgid "Details" msgstr "Détails" -#: ../src/browser.c:301 ../src/browser.c:1757 +#: ../src/browser.c:301 ../src/browser.c:1799 msgid "Icons" msgstr "Icônes" -#: ../src/browser.c:308 ../src/browser.c:1758 +#: ../src/browser.c:308 ../src/browser.c:1800 msgid "List" msgstr "Liste" -#: ../src/browser.c:315 ../src/browser.c:1759 +#: ../src/browser.c:315 ../src/browser.c:1801 msgid "Thumbnails" msgstr "Vignettes" @@ -198,7 +198,7 @@ msgstr "Erreur" msgid "Open with..." msgstr "Ouvrir avec..." -#: ../src/browser.c:845 ../src/browser.c:1179 +#: ../src/browser.c:845 ../src/browser.c:1221 msgid "Refreshing folder: " msgstr "Actualisation du dossier : " @@ -207,59 +207,59 @@ msgstr "Actualisation du dossier : " msgid "%s%u file%c (%u hidden)" msgstr "%s%u fichier%c (%u cachés)" -#: ../src/browser.c:1481 +#: ../src/browser.c:1523 msgid "Filename" msgstr "Nom de fichier" -#: ../src/browser.c:1483 +#: ../src/browser.c:1525 msgid "Size" msgstr "Taille" -#: ../src/browser.c:1485 +#: ../src/browser.c:1527 msgid "Owner" msgstr "Propriétaire" -#: ../src/browser.c:1487 +#: ../src/browser.c:1529 msgid "Group" msgstr "Groupe" -#: ../src/browser.c:1489 +#: ../src/browser.c:1531 msgid "Date" msgstr "Date" -#: ../src/browser.c:1491 +#: ../src/browser.c:1533 msgid "MIME type" msgstr "Type MIME" -#: ../src/browser.c:1736 +#: ../src/browser.c:1778 msgid "File browser preferences" msgstr "Gestionnaire de fichiers - Préférences" -#: ../src/browser.c:1752 +#: ../src/browser.c:1794 msgid "Default view:" msgstr "Vue par défaut:" -#: ../src/browser.c:1765 +#: ../src/browser.c:1807 msgid "_Alternate rows in detailed view" msgstr "_Alterner les couleurs dans la vue détaillée" -#: ../src/browser.c:1769 +#: ../src/browser.c:1811 msgid "_Confirm before deletion" msgstr "_Confirmer l'effacement" -#: ../src/browser.c:1772 +#: ../src/browser.c:1814 msgid "Sort _folders first" msgstr "_Dossiers affichés en premier" -#: ../src/browser.c:1775 +#: ../src/browser.c:1817 msgid "Show _hidden files" msgstr "Afficher les fichiers cac_hés" -#: ../src/browser.c:1778 +#: ../src/browser.c:1820 msgid "_Appearance" msgstr "_Apparence" -#: ../src/browser.c:1913 +#: ../src/browser.c:1955 msgid "Refreshing folder..." msgstr "Actualisation du dossier..." diff --git a/po/it.po b/po/it.po index 0aedd7b..4f37a38 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Browser 0.1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 00:48+0100\n" +"POT-Creation-Date: 2011-01-26 00:55+0100\n" "PO-Revision-Date: 2010-04-07 23:18+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: Italian\n" @@ -165,19 +165,19 @@ msgstr "" msgid "View as..." msgstr "" -#: ../src/browser.c:294 ../src/browser.c:1756 +#: ../src/browser.c:294 ../src/browser.c:1798 msgid "Details" msgstr "" -#: ../src/browser.c:301 ../src/browser.c:1757 +#: ../src/browser.c:301 ../src/browser.c:1799 msgid "Icons" msgstr "" -#: ../src/browser.c:308 ../src/browser.c:1758 +#: ../src/browser.c:308 ../src/browser.c:1800 msgid "List" msgstr "" -#: ../src/browser.c:315 ../src/browser.c:1759 +#: ../src/browser.c:315 ../src/browser.c:1801 msgid "Thumbnails" msgstr "" @@ -198,7 +198,7 @@ msgstr "" msgid "Open with..." msgstr "" -#: ../src/browser.c:845 ../src/browser.c:1179 +#: ../src/browser.c:845 ../src/browser.c:1221 msgid "Refreshing folder: " msgstr "" @@ -207,59 +207,59 @@ msgstr "" msgid "%s%u file%c (%u hidden)" msgstr "" -#: ../src/browser.c:1481 +#: ../src/browser.c:1523 msgid "Filename" msgstr "" -#: ../src/browser.c:1483 +#: ../src/browser.c:1525 msgid "Size" msgstr "" -#: ../src/browser.c:1485 +#: ../src/browser.c:1527 msgid "Owner" msgstr "" -#: ../src/browser.c:1487 +#: ../src/browser.c:1529 msgid "Group" msgstr "" -#: ../src/browser.c:1489 +#: ../src/browser.c:1531 msgid "Date" msgstr "" -#: ../src/browser.c:1491 +#: ../src/browser.c:1533 msgid "MIME type" msgstr "" -#: ../src/browser.c:1736 +#: ../src/browser.c:1778 msgid "File browser preferences" msgstr "" -#: ../src/browser.c:1752 +#: ../src/browser.c:1794 msgid "Default view:" msgstr "" -#: ../src/browser.c:1765 +#: ../src/browser.c:1807 msgid "_Alternate rows in detailed view" msgstr "" -#: ../src/browser.c:1769 +#: ../src/browser.c:1811 msgid "_Confirm before deletion" msgstr "" -#: ../src/browser.c:1772 +#: ../src/browser.c:1814 msgid "Sort _folders first" msgstr "" -#: ../src/browser.c:1775 +#: ../src/browser.c:1817 msgid "Show _hidden files" msgstr "" -#: ../src/browser.c:1778 +#: ../src/browser.c:1820 msgid "_Appearance" msgstr "" -#: ../src/browser.c:1913 +#: ../src/browser.c:1955 msgid "Refreshing folder..." msgstr "" diff --git a/src/browser.c b/src/browser.c index c3a080c..e5e3884 100644 --- a/src/browser.c +++ b/src/browser.c @@ -981,17 +981,12 @@ static void _insert_all(Browser * browser, struct stat * lst, struct stat * st, #endif else if(browser->mime != NULL && *type == NULL && (*type = mime_type(browser->mime, path)) != NULL) - { mime_icons(browser->mime, browser->theme, *type, 24, icon_24, #if !GTK_CHECK_VERSION(2, 6, 0) -1); #else 48, icon_48, 96, icon_96, -1); - if(strncmp(*type, "image/", 6) == 0) - *icon_96 = gdk_pixbuf_new_from_file_at_size(path, 96, - 96, NULL); #endif - } } static char const * _insert_size(off_t size) @@ -1103,14 +1098,61 @@ static gboolean _refresh_new_idle(gpointer data) return FALSE; } +#if GTK_CHECK_VERSION(2, 6, 0) +static gboolean _done_thumbnails(gpointer data); +#endif static gboolean _done_timeout(gpointer data); static void _refresh_done(Browser * browser) { +#if GTK_CHECK_VERSION(2, 6, 0) + GtkTreeModel * model = GTK_TREE_MODEL(browser->store); + GtkTreeIter * iter = &browser->refresh_iter; +#endif + closedir(browser->refresh_dir); browser->refresh_dir = NULL; - browser->refresh_id = g_timeout_add(1000, _done_timeout, browser); +#if GTK_CHECK_VERSION(2, 6, 0) + if(gtk_tree_model_get_iter_first(model, iter) == TRUE) + browser->refresh_id = g_idle_add(_done_thumbnails, browser); + else +#endif + browser->refresh_id = g_timeout_add(1000, _done_timeout, + browser); } +#if GTK_CHECK_VERSION(2, 6, 0) +static gboolean _done_thumbnails(gpointer data) +{ + Browser * browser = data; + GtkTreeModel * model = GTK_TREE_MODEL(browser->store); + GtkTreeIter * iter = &browser->refresh_iter; + size_t i; + char * type; + char * path; + GdkPixbuf * icon; + + for(i = 0; i < IDLE_LOOP_ICON_CNT; i++) + { + gtk_tree_model_get(model, iter, BR_COL_MIME_TYPE, &type, + BR_COL_PATH, &path, -1); + if(type != NULL && path != NULL + && strncmp(type, "image/", 6) == 0 + && (icon = gdk_pixbuf_new_from_file_at_size( + path, 96, 96, NULL)) != NULL) + gtk_list_store_set(browser->store, iter, + BR_COL_PIXBUF_96, icon, -1); + free(type); + free(path); + if(gtk_tree_model_iter_next(model, iter) != TRUE) + break; + } + if(i == IDLE_LOOP_ICON_CNT) + return TRUE; + browser->refresh_id = g_timeout_add(1000, _done_timeout, browser); + return FALSE; +} +#endif + static gboolean _done_timeout(gpointer data) { Browser * browser = data; diff --git a/src/browser.h b/src/browser.h index c479360..78d3986 100644 --- a/src/browser.h +++ b/src/browser.h @@ -106,6 +106,7 @@ typedef struct _Browser time_t refresh_mti; unsigned int refresh_cnt; unsigned int refresh_hid; + GtkTreeIter refresh_iter; /* selection */ GList * selection;