[Goodies-commits] r3400 - in ristretto/trunk: . src
Stephan Arts
stephan at xfce.org
Fri Oct 19 21:22:56 CEST 2007
Author: stephan
Date: 2007-10-19 19:22:56 +0000 (Fri, 19 Oct 2007)
New Revision: 3400
Modified:
ristretto/trunk/configure.in.in
ristretto/trunk/src/Makefile.am
ristretto/trunk/src/main_window.c
Log:
Add file properties dialog
Modified: ristretto/trunk/configure.in.in
===================================================================
--- ristretto/trunk/configure.in.in 2007-10-18 22:30:16 UTC (rev 3399)
+++ ristretto/trunk/configure.in.in 2007-10-19 19:22:56 UTC (rev 3400)
@@ -112,6 +112,7 @@
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])
+XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.34])
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.4.0])
Modified: ristretto/trunk/src/Makefile.am
===================================================================
--- ristretto/trunk/src/Makefile.am 2007-10-18 22:30:16 UTC (rev 3399)
+++ ristretto/trunk/src/Makefile.am 2007-10-19 19:22:56 UTC (rev 3400)
@@ -10,6 +10,7 @@
ristretto_CFLAGS = \
$(GTK_CFLAGS) \
$(GLIB_CFLAGS) \
+ $(DBUS_GLIB_CFLAGS) \
$(LIBEXIF_CFLAGS) \
$(LIBXFCE4UTIL_CFLAGS) \
$(THUNAR_VFS_CFLAGS) \
@@ -20,6 +21,7 @@
ristretto_LDADD = \
$(GTK_LIBS) \
$(GLIB_LIBS) \
+ $(DBUS_GLIB_LIBS) \
$(LIBEXIF_LIBS) \
$(LIBXFCE4UTIL_LIBS) \
$(THUNAR_VFS_LIBS)
Modified: ristretto/trunk/src/main_window.c
===================================================================
--- ristretto/trunk/src/main_window.c 2007-10-18 22:30:16 UTC (rev 3399)
+++ ristretto/trunk/src/main_window.c 2007-10-19 19:22:56 UTC (rev 3400)
@@ -20,6 +20,7 @@
#include <string.h>
#include <thunar-vfs/thunar-vfs.h>
#include <libexif/exif-data.h>
+#include <dbus/dbus-glib.h>
#include "navigator.h"
#include "thumbnail_viewer.h"
@@ -39,6 +40,9 @@
GList *menu_apps_list;
gdouble zoom_factor;
+ DBusGConnection *connection;
+ DBusGProxy *filemanager_proxy;
+
struct {
GtkWidget *main_vbox;
GtkWidget *s_window;
@@ -65,6 +69,8 @@
GtkWidget *menu_item_clear;
} recently;
GtkWidget *menu_item_separator_1;
+ GtkWidget *menu_item_file_properties;
+ GtkWidget *menu_item_separator_2;
GtkWidget *menu_item_close;
GtkWidget *menu_item_quit;
} file;
@@ -196,6 +202,8 @@
static void
cb_rstto_main_window_close(GtkWidget *widget, RsttoMainWindow *window);
static void
+cb_rstto_main_window_file_properties(GtkWidget *widget, RsttoMainWindow *window);
+static void
cb_rstto_main_window_quit(GtkWidget *widget, RsttoMainWindow *window);
static void
cb_rstto_main_window_about(GtkWidget *widget, RsttoMainWindow *window);
@@ -277,6 +285,8 @@
window->priv->menus.file.menu_item_open_folder = gtk_menu_item_new_with_mnemonic(_("O_pen Folder"));
window->priv->menus.file.menu_item_open_recently = gtk_menu_item_new_with_mnemonic(_("_Recently used"));
window->priv->menus.file.menu_item_separator_1 = gtk_separator_menu_item_new();
+ window->priv->menus.file.menu_item_file_properties = gtk_image_menu_item_new_from_stock(GTK_STOCK_PROPERTIES, accel_group);
+ window->priv->menus.file.menu_item_separator_2 = gtk_separator_menu_item_new();
window->priv->menus.file.menu_item_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_group);
window->priv->menus.file.menu_item_quit = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, accel_group);
@@ -285,10 +295,13 @@
gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_open_folder);
gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_open_recently);
gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_separator_1);
+ gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_file_properties);
+ gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_separator_2);
gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_close);
gtk_menu_shell_append(GTK_MENU_SHELL(window->priv->menus.file.menu), window->priv->menus.file.menu_item_quit);
gtk_widget_set_sensitive(window->priv->menus.file.menu_item_close, FALSE);
+ gtk_widget_set_sensitive(window->priv->menus.file.menu_item_file_properties, FALSE);
window->priv->menus.file.recently.menu = gtk_recent_chooser_menu_new_for_manager(GTK_RECENT_MANAGER(window->priv->manager));
window->priv->menus.file.recently.menu_item_clear = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLEAR, accel_group);
@@ -514,7 +527,14 @@
rstto_picture_viewer_set_menu(RSTTO_PICTURE_VIEWER(window->priv->picture_viewer),
GTK_MENU(window->priv->menus._picture_viewer.menu));
+/* D-Bus stuff */
+ window->priv->connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
+ window->priv->filemanager_proxy = dbus_g_proxy_new_for_name(window->priv->connection,
+ "org.xfce.FileManager",
+ "/org/xfce/FileManager",
+ "org.xfce.FileManager");
+
/* Connect signals */
/* Thumbnail-viewer */
@@ -567,6 +587,9 @@
g_signal_connect(G_OBJECT(window->priv->menus.file.recently.menu),
"item-activated",
G_CALLBACK(cb_rstto_main_window_open_recent), window);
+ g_signal_connect(window->priv->menus.file.menu_item_file_properties,
+ "activate",
+ G_CALLBACK(cb_rstto_main_window_file_properties), window);
g_signal_connect(window->priv->menus.file.menu_item_quit,
"activate",
G_CALLBACK(cb_rstto_main_window_quit), window);
@@ -1171,6 +1194,25 @@
}
static void
+cb_rstto_main_window_file_properties(GtkWidget *widget, RsttoMainWindow *window)
+{
+ RsttoNavigatorEntry *entry = rstto_navigator_get_file(window->priv->navigator);
+ if (entry)
+ {
+ ThunarVfsInfo *info = rstto_navigator_entry_get_info(entry);
+ if(info)
+ {
+ gchar *uri = thunar_vfs_path_dup_uri(info->path);
+ if(dbus_g_proxy_call(window->priv->filemanager_proxy, "DisplayFileProperties", NULL, G_TYPE_STRING, uri, G_TYPE_STRING, "", NULL) == FALSE)
+ {
+ g_warning("Could not contact dbus-service");
+ }
+ g_free(uri);
+ }
+ }
+}
+
+static void
cb_rstto_main_window_nav_iter_changed(RsttoNavigator *navigator, gint nr, RsttoNavigatorEntry *entry, RsttoMainWindow *window)
{
ThunarVfsInfo *info = NULL;
@@ -1182,6 +1224,7 @@
info = rstto_navigator_entry_get_info(entry);
filename = info->display_name;
gtk_widget_set_sensitive(window->priv->menus.file.menu_item_close, TRUE);
+ gtk_widget_set_sensitive(window->priv->menus.file.menu_item_file_properties, TRUE);
gtk_widget_set_sensitive(window->priv->menus.go.menu_item_first, TRUE);
gtk_widget_set_sensitive(window->priv->menus.go.menu_item_last, TRUE);
gtk_widget_set_sensitive(window->priv->menus.go.menu_item_previous, TRUE);
@@ -1286,6 +1329,8 @@
gtk_widget_set_sensitive(window->priv->menus.go.menu_item_next, FALSE);
gtk_widget_set_sensitive(window->priv->menus.go.menu_item_play, FALSE);
gtk_widget_set_sensitive(window->priv->menus.go.menu_item_pause, FALSE);
+ gtk_widget_set_sensitive(window->priv->menus.file.menu_item_file_properties, FALSE);
+
gtk_widget_set_sensitive(GTK_WIDGET(window->priv->toolbar.tool_item_next), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(window->priv->toolbar.tool_item_previous), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(window->priv->toolbar.tool_item_zoom_in), FALSE);
More information about the Goodies-commits
mailing list