[Goodies-commits] r3064 - in ristretto/trunk: . icons/16x16 icons/48x48 icons/scalable po src

Stephan Arts stephan at xfce.org
Fri Aug 24 12:56:17 CEST 2007


Author: stephan
Date: 2007-08-24 10:56:17 +0000 (Fri, 24 Aug 2007)
New Revision: 3064

Modified:
   ristretto/trunk/configure.in.in
   ristretto/trunk/icons/16x16/ristretto.png
   ristretto/trunk/icons/48x48/ristretto.png
   ristretto/trunk/icons/scalable/ristretto.svg
   ristretto/trunk/po/fr.po
   ristretto/trunk/po/nl.po
   ristretto/trunk/po/ristretto.pot
   ristretto/trunk/src/main.c
   ristretto/trunk/src/navigator.c
Log:
Add recent document support

Modified: ristretto/trunk/configure.in.in
===================================================================
--- ristretto/trunk/configure.in.in	2007-08-24 09:57:03 UTC (rev 3063)
+++ ristretto/trunk/configure.in.in	2007-08-24 10:56:17 UTC (rev 3064)
@@ -107,9 +107,9 @@
 XDT_I18N([@LINGUAS@])
 
 
-XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.2.0])
-XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.2.0])
-XDT_CHECK_PACKAGE([GOBJECT], [gobject-2.0], [2.2.0])
+XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.10.0])
+XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.12.0])
+XDT_CHECK_PACKAGE([GOBJECT], [gobject-2.0], [2.12.0])
 XDT_CHECK_PACKAGE([THUNAR_VFS], [thunar-vfs-1], [0.4.0])
 
 

Modified: ristretto/trunk/icons/16x16/ristretto.png
===================================================================
(Binary files differ)

Modified: ristretto/trunk/icons/48x48/ristretto.png
===================================================================
(Binary files differ)

Modified: ristretto/trunk/icons/scalable/ristretto.svg
===================================================================
--- ristretto/trunk/icons/scalable/ristretto.svg	2007-08-24 09:57:03 UTC (rev 3063)
+++ ristretto/trunk/icons/scalable/ristretto.svg	2007-08-24 10:56:17 UTC (rev 3064)
@@ -53,7 +53,7 @@
     <radialGradient
        inkscape:collect="always"
        xlink:href="#linearGradient3140"
-       id="radialGradient7086"
+       id="radialGradient2178"
        gradientUnits="userSpaceOnUse"
        gradientTransform="matrix(1.8385456,3.8898335e-2,-1.774223e-2,1.2926432,-324.48363,-275.08499)"
        cx="401.91992"
@@ -61,6 +61,18 @@
        fx="401.91992"
        fy="707.04498"
        r="139.39044" />
+    <filter
+       inkscape:collect="always"
+       x="-0.19506111"
+       width="1.3901222"
+       y="-0.92654028"
+       height="2.8530806"
+       id="filter4432">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="3.7061611"
+         id="feGaussianBlur4434" />
+    </filter>
   </defs>
   <sodipodi:namedview
      inkscape:window-height="703"
@@ -76,47 +88,65 @@
      id="base"
      width="48px"
      height="48px"
-     inkscape:zoom="1"
-     inkscape:cx="24"
-     inkscape:cy="24"
+     inkscape:zoom="6.6756757"
+     inkscape:cx="50.5"
+     inkscape:cy="16"
      inkscape:window-x="0"
      inkscape:window-y="32"
      inkscape:current-layer="svg2" />
   <path
-     sodipodi:type="arc"
-     style="fill:#e6e6e6;fill-opacity:1;stroke:#666666;stroke-width:10.14638519;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     id="path2164"
-     sodipodi:cx="395.30356"
-     sodipodi:cy="691.78125"
-     sodipodi:rx="197.65178"
-     sodipodi:ry="325.85834"
-     d="M 592.95534,691.78125 A 197.65178,325.85834 0 0 1 197.65718,694.19028 L 395.30356,691.78125 z"
-     sodipodi:start="0"
-     sodipodi:end="3.1341997"
-     transform="matrix(9.9017785e-2,0,0,9.8098883e-2,-15.142351,-54.26156)" />
+     style="fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#666666;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="M 37.748988,11.898786 C 40.445344,7.4048587 43.591094,9.3522271 43.591094,9.3522271 C 43.591094,9.3522271 46.88664,11.299596 45.238867,19.538462 C 43.591093,27.777329 35.052632,28.975709 35.052632,28.975709 C 35.052632,28.975709 35.651822,29.275305 36.251012,25.530366 C 40.595141,22.534414 40.972523,24.092854 42.242914,20.587046 C 43.544043,16.996416 43.591092,15.344129 43.1417,14.145749 C 42.323476,11.963818 37.898785,17.141701 37.898785,17.141701 L 37.748988,11.898786 z "
+     id="path4440"
+     sodipodi:nodetypes="ccsccsscc" />
   <path
      sodipodi:type="arc"
-     style="fill:#ececec;fill-opacity:1;stroke:#666666;stroke-width:12.07019329;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     id="path2159"
-     sodipodi:cx="372.60031"
-     sodipodi:cy="538.20044"
-     sodipodi:rx="204.32921"
-     sodipodi:ry="148.23883"
-     d="M 576.92952 538.20044 A 204.32921 148.23883 0 1 1  168.2711,538.20044 A 204.32921 148.23883 0 1 1  576.92952 538.20044 z"
-     transform="matrix(9.581905e-2,0,0,7.163408e-2,-11.702208,-25.50228)" />
-  <path
-     sodipodi:type="arc"
-     style="fill:url(#radialGradient7086);fill-opacity:1;stroke:#666666;stroke-width:9.3786726;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     id="path2161"
-     sodipodi:cx="395.30356"
-     sodipodi:cy="540.8714"
-     sodipodi:rx="138.89044"
-     sodipodi:ry="94.819435"
-     d="M 534.194 540.8714 A 138.89044 94.819435 0 1 1  256.41312,540.8714 A 138.89044 94.819435 0 1 1  534.194 540.8714 z"
-     transform="matrix(0.1188065,0,0,9.5692311e-2,-22.964641,-37.79208)" />
-  <path
-     style="fill:#552200;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-     d="M 16.263779,21.47417 C 25.518637,24.090024 32.902229,21.08114 32.902229,21.08114 C 32.902229,21.08114 24.910539,18.3299 16.263779,21.47417 z "
-     id="path3138"
-     sodipodi:nodetypes="ccc" />
+     style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4432)"
+     id="path3161"
+     sodipodi:cx="21"
+     sodipodi:cy="39"
+     sodipodi:rx="19"
+     sodipodi:ry="4"
+     d="M 40 39 A 19 4 0 1 1  2,39 A 19 4 0 1 1  40 39 z"
+     transform="matrix(0.7894737,0,0,0.7894737,4.5396884,10.368421)" />
+  <g
+     id="g3155">
+    <path
+       transform="matrix(8.9739838e-2,0,0,8.8907037e-2,-14.356084,-48.860724)"
+       sodipodi:end="3.1341997"
+       sodipodi:start="0"
+       d="M 592.95534,691.78125 A 197.65178,325.85834 0 0 1 197.65718,694.19028 L 395.30356,691.78125 z"
+       sodipodi:ry="325.85834"
+       sodipodi:rx="197.65178"
+       sodipodi:cy="691.78125"
+       sodipodi:cx="395.30356"
+       id="path2164"
+       style="fill:#e6e6e6;fill-opacity:1;stroke:#666666;stroke-width:11.19539165;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       transform="matrix(8.6840824e-2,0,0,6.4921981e-2,-11.238282,-22.796183)"
+       d="M 576.92952 538.20044 A 204.32921 148.23883 0 1 1  168.2711,538.20044 A 204.32921 148.23883 0 1 1  576.92952 538.20044 z"
+       sodipodi:ry="148.23883"
+       sodipodi:rx="204.32921"
+       sodipodi:cy="538.20044"
+       sodipodi:cx="372.60031"
+       id="path2159"
+       style="fill:#ececec;fill-opacity:1;stroke:#666666;stroke-width:13.31809629;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       transform="matrix(0.1076744,0,0,8.6725961e-2,-21.445427,-33.934431)"
+       d="M 534.194 540.8714 A 138.89044 94.819435 0 1 1  256.41312,540.8714 A 138.89044 94.819435 0 1 1  534.194 540.8714 z"
+       sodipodi:ry="94.819435"
+       sodipodi:rx="138.89044"
+       sodipodi:cy="540.8714"
+       sodipodi:cx="395.30356"
+       id="path2161"
+       style="fill:url(#radialGradient2178);fill-opacity:1;stroke:#666666;stroke-width:10.34830474;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="ccc"
+       id="path3138"
+       d="M 14.107298,19.778583 C 22.494977,22.149332 29.186728,19.42238 29.186728,19.42238 C 29.186728,19.42238 21.943858,16.92893 14.107298,19.778583 z "
+       style="fill:#552200;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  </g>
 </svg>

Modified: ristretto/trunk/po/fr.po
===================================================================
--- ristretto/trunk/po/fr.po	2007-08-24 09:57:03 UTC (rev 3063)
+++ ristretto/trunk/po/fr.po	2007-08-24 10:56:17 UTC (rev 3064)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ristretto\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-08-20 23:35+0200\n"
+"POT-Creation-Date: 2007-08-24 12:53+0200\n"
 "PO-Revision-Date: 2007-07-03 00:59:21+0200\n"
 "Last-Translator: Mike Massonnet <mmassonnet at xfce.org>\n"
 "Language-Team: French\n"
@@ -15,75 +15,79 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/main.c:186
+#: ../src/main.c:193
 msgid "_File"
 msgstr "_Fichier"
 
-#: ../src/main.c:188
+#: ../src/main.c:195
 msgid "O_pen Folder"
 msgstr "O_uvrir un répertoire"
 
-#: ../src/main.c:199
+#: ../src/main.c:196
+msgid "_Recently used"
+msgstr ""
+
+#: ../src/main.c:215
 msgid "_Edit"
 msgstr "_Editer"
 
-#: ../src/main.c:200
+#: ../src/main.c:216
 msgid "Rotate _Left"
 msgstr ""
 
-#: ../src/main.c:201
+#: ../src/main.c:217
 msgid "Rotate _Right"
 msgstr ""
 
-#: ../src/main.c:202
+#: ../src/main.c:218
 msgid "Flip _Vertically"
 msgstr ""
 
-#: ../src/main.c:203
+#: ../src/main.c:219
 msgid "Flip _Horizontally"
 msgstr ""
 
-#: ../src/main.c:212
+#: ../src/main.c:228
 msgid "_View"
 msgstr "A_fficher"
 
-#: ../src/main.c:213
+#: ../src/main.c:229
 msgid "Thumbnail Viewer"
 msgstr ""
 
-#: ../src/main.c:224
+#: ../src/main.c:240
 msgid "Show Horizontally"
 msgstr ""
 
-#: ../src/main.c:225
+#: ../src/main.c:241
 msgid "Show Vertically"
 msgstr ""
 
-#: ../src/main.c:226
+#: ../src/main.c:242
 msgid "Hide"
 msgstr ""
 
-#: ../src/main.c:232
+#: ../src/main.c:248
 msgid "_Go"
 msgstr ""
 
-#: ../src/main.c:260
+#: ../src/main.c:276
 msgid "_Help"
 msgstr "_Aide"
 
-#: ../src/main.c:391
+#: ../src/main.c:409
 msgid "Open image"
 msgstr "Ouvrir une image"
 
-#: ../src/main.c:428
+#: ../src/main.c:450
 msgid "Open folder"
 msgstr "Ouvrir un répertoire"
 
-#: ../src/main.c:474
+#: ../src/main.c:496
 msgid "Developer:"
 msgstr "Développeur :"
 
-#: ../src/main.c:483
+#: ../src/main.c:505
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
@@ -91,7 +95,7 @@
 "Ristretto est un visualiseur d'images léger et rapide pour l'environnement "
 "de bureau Xfce."
 
-#: ../src/main.c:490
+#: ../src/main.c:512
 msgid "translator-credits"
 msgstr ""
 

Modified: ristretto/trunk/po/nl.po
===================================================================
--- ristretto/trunk/po/nl.po	2007-08-24 09:57:03 UTC (rev 3063)
+++ ristretto/trunk/po/nl.po	2007-08-24 10:56:17 UTC (rev 3064)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ristretto 0.0.1-svn-r02537\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-08-20 23:35+0200\n"
+"POT-Creation-Date: 2007-08-24 12:53+0200\n"
 "PO-Revision-Date: 2007-07-13 00:48+0200\n"
 "Last-Translator: Stephan Arts <stephan at xfce.org>\n"
 "Language-Team: Dutch\n"
@@ -16,75 +16,79 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../src/main.c:186
+#: ../src/main.c:193
 msgid "_File"
 msgstr "_Bestand"
 
-#: ../src/main.c:188
+#: ../src/main.c:195
 msgid "O_pen Folder"
 msgstr "Map o_penen"
 
-#: ../src/main.c:199
+#: ../src/main.c:196
+msgid "_Recently used"
+msgstr "_Recent geopend"
+
+#: ../src/main.c:215
 msgid "_Edit"
 msgstr "B_ewerken"
 
-#: ../src/main.c:200
+#: ../src/main.c:216
 msgid "Rotate _Left"
 msgstr "_Linksom draaien"
 
-#: ../src/main.c:201
+#: ../src/main.c:217
 msgid "Rotate _Right"
 msgstr "_Rechtsom draaien"
 
-#: ../src/main.c:202
+#: ../src/main.c:218
 msgid "Flip _Vertically"
 msgstr "_Verticaal spiegelen"
 
-#: ../src/main.c:203
+#: ../src/main.c:219
 msgid "Flip _Horizontally"
 msgstr "_Horizontaal spiegelen"
 
-#: ../src/main.c:212
+#: ../src/main.c:228
 msgid "_View"
 msgstr "_Beeld"
 
-#: ../src/main.c:213
+#: ../src/main.c:229
 msgid "Thumbnail Viewer"
 msgstr "Miniatuur Weergave"
 
-#: ../src/main.c:224
+#: ../src/main.c:240
 msgid "Show Horizontally"
 msgstr "Horizontaal tonen"
 
-#: ../src/main.c:225
+#: ../src/main.c:241
 msgid "Show Vertically"
 msgstr "Verticaal tonen"
 
-#: ../src/main.c:226
+#: ../src/main.c:242
 msgid "Hide"
 msgstr "Verbergen"
 
-#: ../src/main.c:232
+#: ../src/main.c:248
 msgid "_Go"
 msgstr "_Ga"
 
-#: ../src/main.c:260
+#: ../src/main.c:276
 msgid "_Help"
 msgstr "_Help"
 
-#: ../src/main.c:391
+#: ../src/main.c:409
 msgid "Open image"
 msgstr "Afbeelding openen"
 
-#: ../src/main.c:428
+#: ../src/main.c:450
 msgid "Open folder"
 msgstr "Map openen"
 
-#: ../src/main.c:474
+#: ../src/main.c:496
 msgid "Developer:"
 msgstr "Ontwikkelaar:"
 
-#: ../src/main.c:483
+#: ../src/main.c:505
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
@@ -92,7 +96,7 @@
 "Ristretto is een snelle en lichtgewicht afbeeldingsweergave-programma voor "
 "de Xfce-desktop omgeving"
 
-#: ../src/main.c:490
+#: ../src/main.c:512
 msgid "translator-credits"
 msgstr "Stephan Arts <stephan at xfce.org>"
 

Modified: ristretto/trunk/po/ristretto.pot
===================================================================
--- ristretto/trunk/po/ristretto.pot	2007-08-24 09:57:03 UTC (rev 3063)
+++ ristretto/trunk/po/ristretto.pot	2007-08-24 10:56:17 UTC (rev 3064)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: stephan at xfce.org\n"
-"POT-Creation-Date: 2007-08-20 23:35+0200\n"
+"POT-Creation-Date: 2007-08-24 12:53+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -16,80 +16,84 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../src/main.c:186
+#: ../src/main.c:193
 msgid "_File"
 msgstr ""
 
-#: ../src/main.c:188
+#: ../src/main.c:195
 msgid "O_pen Folder"
 msgstr ""
 
-#: ../src/main.c:199
+#: ../src/main.c:196
+msgid "_Recently used"
+msgstr ""
+
+#: ../src/main.c:215
 msgid "_Edit"
 msgstr ""
 
-#: ../src/main.c:200
+#: ../src/main.c:216
 msgid "Rotate _Left"
 msgstr ""
 
-#: ../src/main.c:201
+#: ../src/main.c:217
 msgid "Rotate _Right"
 msgstr ""
 
-#: ../src/main.c:202
+#: ../src/main.c:218
 msgid "Flip _Vertically"
 msgstr ""
 
-#: ../src/main.c:203
+#: ../src/main.c:219
 msgid "Flip _Horizontally"
 msgstr ""
 
-#: ../src/main.c:212
+#: ../src/main.c:228
 msgid "_View"
 msgstr ""
 
-#: ../src/main.c:213
+#: ../src/main.c:229
 msgid "Thumbnail Viewer"
 msgstr ""
 
-#: ../src/main.c:224
+#: ../src/main.c:240
 msgid "Show Horizontally"
 msgstr ""
 
-#: ../src/main.c:225
+#: ../src/main.c:241
 msgid "Show Vertically"
 msgstr ""
 
-#: ../src/main.c:226
+#: ../src/main.c:242
 msgid "Hide"
 msgstr ""
 
-#: ../src/main.c:232
+#: ../src/main.c:248
 msgid "_Go"
 msgstr ""
 
-#: ../src/main.c:260
+#: ../src/main.c:276
 msgid "_Help"
 msgstr ""
 
-#: ../src/main.c:391
+#: ../src/main.c:409
 msgid "Open image"
 msgstr ""
 
-#: ../src/main.c:428
+#: ../src/main.c:450
 msgid "Open folder"
 msgstr ""
 
-#: ../src/main.c:474
+#: ../src/main.c:496
 msgid "Developer:"
 msgstr ""
 
-#: ../src/main.c:483
+#: ../src/main.c:505
 msgid ""
 "Ristretto is a fast and lightweight picture-viewer for the Xfce desktop "
 "environment."
 msgstr ""
 
-#: ../src/main.c:490
+#: ../src/main.c:512
 msgid "translator-credits"
 msgstr ""

Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c	2007-08-24 09:57:03 UTC (rev 3063)
+++ ristretto/trunk/src/main.c	2007-08-24 10:56:17 UTC (rev 3064)
@@ -54,6 +54,8 @@
 cb_rstto_open(GtkToolItem *item, RsttoNavigator *);
 static void
 cb_rstto_open_dir(GtkToolItem *item, RsttoNavigator *);
+static void
+cb_rstto_open_recent(GtkRecentChooser *chooser, RsttoNavigator *);
 
 static void
 cb_rstto_help_about(GtkToolItem *item, GtkWindow *);
@@ -94,6 +96,7 @@
 static GtkWidget *main_hbox;
 static GtkWidget *main_vbox1;
 static GtkWidget *thumbnail_viewer;
+static GtkRecentManager *recent_manager;
 
 int main(int argc, char **argv)
 {
@@ -114,6 +117,7 @@
     mime_dbase = thunar_vfs_mime_database_get_default();
 
     gtk_window_set_default_icon_name("ristretto");
+    recent_manager = gtk_recent_manager_get_default();
 
     GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     GtkAccelGroup *accel_group = gtk_accel_group_new();
@@ -168,6 +172,9 @@
                     filename = g_dir_read_name(dir);
                 }
             }
+            gchar *uri = thunar_vfs_path_dup_uri(info->path);
+            gtk_recent_manager_add_item(recent_manager, uri);
+            g_free(uri);
         }
         thunar_vfs_path_unref(path);
     }
@@ -186,6 +193,7 @@
     GtkWidget *menu_item_file = gtk_menu_item_new_with_mnemonic(_("_File"));
     GtkWidget *menu_item_open = gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, accel_group);
     GtkWidget *menu_item_open_dir = gtk_menu_item_new_with_mnemonic(_("O_pen Folder"));
+    GtkWidget *menu_item_recently = gtk_menu_item_new_with_mnemonic(_("_Recently used"));
     GtkWidget *menu_item_separator = gtk_separator_menu_item_new();
     GtkWidget *menu_item_quit = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, accel_group);
 
@@ -193,8 +201,16 @@
     gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_file), menu_file);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_open);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_open_dir);
+    gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_recently);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_separator);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu_file), menu_item_quit);
+    
+    GtkWidget *recent_chooser_menu = gtk_recent_chooser_menu_new_for_manager(GTK_RECENT_MANAGER(recent_manager));
+    GtkRecentFilter *filter = gtk_recent_filter_new();
+    gtk_recent_filter_add_application(filter, "ristretto");
+    gtk_recent_chooser_add_filter(GTK_RECENT_CHOOSER(recent_chooser_menu), filter);
+    
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_recently), recent_chooser_menu);
 
     GtkWidget *menu_item_edit = gtk_menu_item_new_with_mnemonic(_("_Edit"));
     GtkWidget *menu_item_rotate_left = gtk_menu_item_new_with_mnemonic(_("Rotate _Left"));
@@ -266,7 +282,7 @@
 
 
     gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_file);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_edit);
+    /*gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_edit);*/
     gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_view);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_go);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item_help);
@@ -326,6 +342,8 @@
     g_signal_connect(G_OBJECT(menu_item_open_dir), "activate", G_CALLBACK(cb_rstto_open_dir), navigator);
     g_signal_connect(G_OBJECT(menu_item_help_about), "activate", G_CALLBACK(cb_rstto_help_about), window);
 
+    g_signal_connect(G_OBJECT(recent_chooser_menu), "item-activated", G_CALLBACK(cb_rstto_open_recent), navigator);
+
     g_signal_connect(G_OBJECT(menu_item_forward), "activate", G_CALLBACK(cb_rstto_forward), navigator);
     g_signal_connect(G_OBJECT(menu_item_back), "activate", G_CALLBACK(cb_rstto_previous), navigator);
     g_signal_connect(G_OBJECT(menu_item_first), "activate", G_CALLBACK(cb_rstto_first), navigator);
@@ -409,6 +427,10 @@
             {
                 RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
                 rstto_navigator_add (navigator, entry);
+
+                gchar *uri = thunar_vfs_path_dup_uri(info->path);
+                gtk_recent_manager_add_item(recent_manager, uri);
+                g_free(uri);
             }
             g_free(file_media);
             thunar_vfs_path_unref(path);
@@ -712,3 +734,53 @@
         }
     }
 }
+
+static void
+cb_rstto_open_recent(GtkRecentChooser *chooser, RsttoNavigator *navigator)
+{
+    gchar *uri = gtk_recent_chooser_get_current_uri(chooser);
+    ThunarVfsPath *path = thunar_vfs_path_new(uri, NULL);
+    if (path)
+    {
+        ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
+        if(info)
+        {
+            if(strcmp(thunar_vfs_mime_info_get_name(info->mime_info), "inode/directory"))
+            {
+                RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
+                rstto_navigator_add (navigator, entry);
+            }
+            else
+            {
+                rstto_navigator_clear(navigator);
+                gchar *dir_path = thunar_vfs_path_dup_string(info->path);
+                GDir *dir = g_dir_open(dir_path, 0, NULL);
+                const gchar *filename = g_dir_read_name(dir);
+                while (filename)
+                {
+                    gchar *path_name = g_strconcat(dir_path,  "/", filename, NULL);
+                    ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
+                    if (file_path)
+                    {
+                        ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
+                        gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
+                        if(!strcmp(file_media, "image"))
+                        {
+                            RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
+                            rstto_navigator_add (navigator, entry);
+                        }
+                        g_free(file_media);
+                        thunar_vfs_path_unref(file_path);
+                    }
+                    g_free(path_name);
+                    filename = g_dir_read_name(dir);
+                }
+                g_free(dir_path);
+            }
+            gchar *uri = thunar_vfs_path_dup_uri(info->path);
+            gtk_recent_manager_add_item(recent_manager, uri);
+            g_free(uri);
+        }
+        thunar_vfs_path_unref(path);
+    }
+}

Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c	2007-08-24 09:57:03 UTC (rev 3063)
+++ ristretto/trunk/src/navigator.c	2007-08-24 10:56:17 UTC (rev 3064)
@@ -92,6 +92,7 @@
 static void
 rstto_navigator_init(RsttoNavigator *navigator)
 {
+    navigator->file_iter = NULL;
     navigator->compare_func = (GCompareFunc)rstto_navigator_entry_name_compare_func;
 }
 
@@ -161,6 +162,7 @@
     {
         g_list_foreach(navigator->file_list, (GFunc)rstto_navigator_entry_free, NULL);
         navigator->file_list = NULL;
+        navigator->file_iter = NULL;
     }
 }
 




More information about the Goodies-commits mailing list