[Goodies-commits] r6116 - in xfce4-screenshooter-plugin/trunk: . lib
Jerome Guelfucci
jeromeg at xfce.org
Sun Nov 16 10:58:06 CET 2008
Author: jeromeg
Date: 2008-11-16 09:58:06 +0000 (Sun, 16 Nov 2008)
New Revision: 6116
Modified:
xfce4-screenshooter-plugin/trunk/ChangeLog
xfce4-screenshooter-plugin/trunk/lib/screenshooter-dialogs.c
xfce4-screenshooter-plugin/trunk/lib/screenshooter-dialogs.h
xfce4-screenshooter-plugin/trunk/lib/screenshooter-utils.c
xfce4-screenshooter-plugin/trunk/lib/screenshooter-utils.h
Log:
* lib/screenshooter-utils.c, lib/screenshooter-dialogs.c
- update some code comments.
- move (screenshooter_save_screenshot) to the dialogs file.
- move (generate_filename_for_uri) and the callbacks to the dialogs
file.
Modified: xfce4-screenshooter-plugin/trunk/ChangeLog
===================================================================
--- xfce4-screenshooter-plugin/trunk/ChangeLog 2008-11-16 09:47:24 UTC (rev 6115)
+++ xfce4-screenshooter-plugin/trunk/ChangeLog 2008-11-16 09:58:06 UTC (rev 6116)
@@ -1,5 +1,13 @@
2008-11-16 jeromeg
+ * lib/screenshooter-utils.c, lib/screenshooter-dialogs.c
+ - update some code comments.
+ - move (screenshooter_save_screenshot) to the dialogs file.
+ - move (generate_filename_for_uri) and the callbacks to the dialogs
+ file.
+
+2008-11-16 jeromeg
+
* lib/screenshooter-utils.c:
- fix indentation in some places.
- Update the code comments.
Modified: xfce4-screenshooter-plugin/trunk/lib/screenshooter-dialogs.c
===================================================================
--- xfce4-screenshooter-plugin/trunk/lib/screenshooter-dialogs.c 2008-11-16 09:47:24 UTC (rev 6115)
+++ xfce4-screenshooter-plugin/trunk/lib/screenshooter-dialogs.c 2008-11-16 09:58:06 UTC (rev 6116)
@@ -23,26 +23,39 @@
/* Prototypes */
-static void cb_fullscreen_screen_toggled (GtkToggleButton *tb,
- ScreenshotData *sd);
-static void cb_active_window_toggled (GtkToggleButton *tb,
- ScreenshotData *sd);
-static void cb_show_save_dialog_toggled (GtkToggleButton *tb,
- ScreenshotData *sd);
-static void cb_default_folder (GtkWidget *chooser,
- ScreenshotData *sd);
-static void cb_delay_spinner_changed (GtkWidget *spinner,
- ScreenshotData *sd);
+static void
+cb_fullscreen_screen_toggled (GtkToggleButton *tb,
+ ScreenshotData *sd);
+static void
+cb_active_window_toggled (GtkToggleButton *tb,
+ ScreenshotData *sd);
+static void
+cb_show_save_dialog_toggled (GtkToggleButton *tb,
+ ScreenshotData *sd);
+static void
+cb_default_folder (GtkWidget *chooser,
+ ScreenshotData *sd);
+static void
+cb_delay_spinner_changed (GtkWidget *spinner,
+ ScreenshotData *sd);
+static gchar
+*generate_filename_for_uri (char *uri);
+
#ifdef HAVE_GIO
-static void cb_combo_active_item_changed (GtkWidget *box,
- ScreenshotData *sd);
-static void cb_combo_active_item_set_sensitive (GtkWidget *box,
- GtkWidget *button);
-static void add_item (GAppInfo *app_info,
- GtkWidget *liststore);
-static void populate_liststore (GtkListStore *liststore);
-static void set_default_item (GtkWidget *combobox,
- gchar *default_app);
+static void
+cb_combo_active_item_changed (GtkWidget *box,
+ ScreenshotData *sd);
+static void
+cb_combo_active_item_set_sensitive (GtkWidget *box,
+ GtkWidget *button);
+static void
+add_item (GAppInfo *app_info,
+ GtkWidget *liststore);
+static void
+populate_liststore (GtkListStore *liststore);
+static void
+set_default_item (GtkWidget *combobox,
+ gchar *default_app);
#endif
@@ -112,6 +125,68 @@
+/* Generates filename Screenshot-n.png (where n is the first integer
+ * greater than 0) so that Screenshot-n.jpg does not exist in the folder
+ * whose URI is *uri.
+ * @uri: uri of the folder for which the filename should be generated.
+ * returns: the filename or NULL if *uri == NULL.
+*/
+static gchar *generate_filename_for_uri(char *uri)
+{
+ gchar *file_name;
+ unsigned int i = 0;
+
+ if ( uri == NULL )
+ {
+ return NULL;
+ }
+
+ file_name = g_strdup (_("Screenshot.png"));
+
+ /* If the plain filename matches the condition, go for it. */
+ if (g_access (g_build_filename (uri, file_name, NULL), F_OK) != 0)
+ {
+ return file_name;
+ }
+
+ /* Else, we find the first n that matches the condition */
+ do
+ {
+ i++;
+ g_free (file_name);
+ file_name = g_strdup_printf (_("Screenshot-%d.png"), i);
+ }
+ while (g_access (g_build_filename (uri, file_name, NULL), F_OK) == 0);
+
+ return file_name;
+}
+
+
+
+/* Generate a correct file name when setting a folder in chooser
+GtkFileChooser *chooser: the file chooser we are using.
+gpointer user_data: not used here.
+*/
+static void
+cb_current_folder_changed (GtkFileChooser *chooser, gpointer user_data)
+{
+ gchar *current_folder =
+ gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (chooser));
+
+ if (current_folder)
+ {
+ gchar *new_filename = generate_filename_for_uri (current_folder);
+
+ gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (chooser),
+ new_filename);
+ g_free (new_filename);
+ }
+
+ g_free (current_folder);
+}
+
+
+
#ifdef HAVE_GIO
/* Set sd->app as per the active item in the combobox */
static void cb_combo_active_item_changed (GtkWidget *box, ScreenshotData *sd)
@@ -550,3 +625,93 @@
}
gtk_widget_destroy (GTK_WIDGET (chooser));
}
+
+
+
+/* Saves the screenshot according to the options in sd.
+ * @screenshot: a GdkPixbuf containing our screenshot
+ * show_save_dialog: whether the save dialog should be shown.
+ * @default_dir: the default save location.
+ */
+gchar
+*screenshooter_save_screenshot (GdkPixbuf *screenshot,
+ gboolean show_save_dialog,
+ gchar *default_dir)
+{
+ GdkPixbuf *thumbnail;
+ gchar *filename = NULL, *savename = NULL;;
+ GtkWidget *preview;
+ GtkWidget *chooser;
+ gint dialog_response;
+
+ filename = generate_filename_for_uri (default_dir);
+
+ if (show_save_dialog)
+ {
+ /* If the user wants a save dialog, we run it, and grab the filename
+ the user has chosen. */
+
+ chooser =
+ gtk_file_chooser_dialog_new (_("Save screenshot as..."),
+ NULL,
+ GTK_FILE_CHOOSER_ACTION_SAVE,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL,
+ GTK_STOCK_SAVE,
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_window_set_icon_name (GTK_WINDOW (chooser),
+ "applets-screenshooter");
+ gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (chooser),
+ TRUE);
+ gtk_dialog_set_default_response (GTK_DIALOG (chooser),
+ GTK_RESPONSE_ACCEPT);
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (chooser),
+ default_dir);
+
+ preview = gtk_image_new ();
+
+ gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (chooser),
+ filename);
+ gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (chooser),
+ preview);
+
+ thumbnail =
+ gdk_pixbuf_scale_simple (screenshot,
+ gdk_pixbuf_get_width(screenshot)/5,
+ gdk_pixbuf_get_height(screenshot)/5,
+ GDK_INTERP_BILINEAR);
+
+ gtk_image_set_from_pixbuf (GTK_IMAGE (preview), thumbnail);
+ g_object_unref (thumbnail);
+
+ /* We the user opens a folder in the fine_chooser, we set a valid
+ filename */
+ g_signal_connect (G_OBJECT (chooser), "current-folder-changed",
+ G_CALLBACK(cb_current_folder_changed), NULL);
+
+ dialog_response = gtk_dialog_run (GTK_DIALOG (chooser));
+
+ if (dialog_response == GTK_RESPONSE_ACCEPT)
+ {
+ savename =
+ gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser) );
+ gdk_pixbuf_save (screenshot, savename, "png", NULL, NULL);
+ }
+
+ gtk_widget_destroy ( GTK_WIDGET ( chooser ) );
+ }
+ else
+ {
+
+ /* Else, we just save the file in the default folder */
+
+ savename = g_build_filename (default_dir, filename, NULL);
+ gdk_pixbuf_save (screenshot, savename, "png", NULL, NULL);
+
+ }
+
+ g_free (filename);
+
+ return savename;
+}
Modified: xfce4-screenshooter-plugin/trunk/lib/screenshooter-dialogs.h
===================================================================
--- xfce4-screenshooter-plugin/trunk/lib/screenshooter-dialogs.h 2008-11-16 09:47:24 UTC (rev 6115)
+++ xfce4-screenshooter-plugin/trunk/lib/screenshooter-dialogs.h 2008-11-16 09:58:06 UTC (rev 6116)
@@ -42,4 +42,7 @@
void
screenshooter_preferences_dialog (gchar *rc_file,
gchar *current_default_dir);
-
+gchar
+*screenshooter_save_screenshot (GdkPixbuf *screenshot,
+ gboolean show_save_dialog,
+ gchar *default_dir);
Modified: xfce4-screenshooter-plugin/trunk/lib/screenshooter-utils.c
===================================================================
--- xfce4-screenshooter-plugin/trunk/lib/screenshooter-utils.c 2008-11-16 09:47:24 UTC (rev 6115)
+++ xfce4-screenshooter-plugin/trunk/lib/screenshooter-utils.c 2008-11-16 09:58:06 UTC (rev 6116)
@@ -21,8 +21,6 @@
/* Prototypes */
static
-gchar *generate_filename_for_uri (char *uri);
-static
Window find_toplevel_window (Window xid);
static
void cb_current_folder_changed (GtkFileChooser *chooser,
@@ -67,67 +65,6 @@
-/* Generates filename Screenshot-n.png (where n is the first integer
- * greater than 0) so that Screenshot-n.jpg does not exist in the folder
- * whose URI is *uri.
- * @uri: uri of the folder for which the filename should be generated.
- * returns: the filename or NULL if *uri == NULL.
-*/
-static gchar *generate_filename_for_uri(char *uri)
-{
- gchar *file_name;
- unsigned int i = 0;
-
- if ( uri == NULL )
- {
- return NULL;
- }
-
- file_name = g_strdup (_("Screenshot.png"));
-
- /* If the plain filename matches the condition, go for it. */
- if (g_access (g_build_filename (uri, file_name, NULL), F_OK) != 0)
- {
- return file_name;
- }
-
- /* Else, we find the first n that matches the condition */
- do
- {
- i++;
- g_free (file_name);
- file_name = g_strdup_printf (_("Screenshot-%d.png"), i);
- }
- while (g_access (g_build_filename (uri, file_name, NULL), F_OK) == 0);
-
- return file_name;
-}
-
-
-
-/* Generate a correct file name when setting a folder in chooser
-GtkFileChooser *chooser: the file chooser we are using.
-gpointer user_data: not used here.
-*/
-static void
-cb_current_folder_changed (GtkFileChooser *chooser, gpointer user_data)
-{
- gchar *current_folder =
- gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (chooser));
-
- if (current_folder)
- {
- gchar *new_filename = generate_filename_for_uri (current_folder);
-
- gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (chooser),
- new_filename);
- g_free (new_filename);
- }
-
- g_free (current_folder);
-}
-
-
static GdkWindow
*get_active_window (GdkScreen *screen, gboolean *needs_unref)
{
@@ -269,94 +206,6 @@
-/* Saves the screenshot according to the options in sd.
-*screenshot: a GdkPixbuf containing our screenshot
-*sd: a ScreenshotData struct containing the save options.*/
-gchar
-*screenshooter_save_screenshot (GdkPixbuf *screenshot,
- gboolean show_save_dialog,
- gchar *default_dir)
-{
- GdkPixbuf *thumbnail;
- gchar *filename = NULL, *savename = NULL;;
- GtkWidget *preview;
- GtkWidget *chooser;
- gint dialog_response;
-
- filename = generate_filename_for_uri (default_dir);
-
- if (show_save_dialog)
- {
- /* If the user wants a save dialog, we run it, and grab the filename
- the user has chosen. */
-
- chooser =
- gtk_file_chooser_dialog_new (_("Save screenshot as..."),
- NULL,
- GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE,
- GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_window_set_icon_name (GTK_WINDOW (chooser),
- "applets-screenshooter");
- gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (chooser),
- TRUE);
- gtk_dialog_set_default_response (GTK_DIALOG (chooser),
- GTK_RESPONSE_ACCEPT);
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (chooser),
- default_dir);
-
- preview = gtk_image_new ();
-
- gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (chooser),
- filename);
- gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (chooser),
- preview);
-
- thumbnail =
- gdk_pixbuf_scale_simple (screenshot,
- gdk_pixbuf_get_width(screenshot)/5,
- gdk_pixbuf_get_height(screenshot)/5,
- GDK_INTERP_BILINEAR);
-
- gtk_image_set_from_pixbuf (GTK_IMAGE (preview), thumbnail);
- g_object_unref (thumbnail);
-
- /* We the user opens a folder in the fine_chooser, we set a valid
- filename */
- g_signal_connect (G_OBJECT (chooser), "current-folder-changed",
- G_CALLBACK(cb_current_folder_changed), NULL);
-
- dialog_response = gtk_dialog_run (GTK_DIALOG (chooser));
-
- if (dialog_response == GTK_RESPONSE_ACCEPT)
- {
- savename =
- gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser) );
- gdk_pixbuf_save (screenshot, savename, "png", NULL, NULL);
- }
-
- gtk_widget_destroy ( GTK_WIDGET ( chooser ) );
- }
- else
- {
-
- /* Else, we just save the file in the default folder */
-
- savename = g_build_filename (default_dir, filename, NULL);
- gdk_pixbuf_save (screenshot, savename, "png", NULL, NULL);
-
- }
-
- g_free (filename);
-
- return savename;
-}
-
-
-
/* Read the options from file and sets the sd values.
@file: the path to the rc file.
@sd: the ScreenshotData to be set.
Modified: xfce4-screenshooter-plugin/trunk/lib/screenshooter-utils.h
===================================================================
--- xfce4-screenshooter-plugin/trunk/lib/screenshooter-utils.h 2008-11-16 09:47:24 UTC (rev 6115)
+++ xfce4-screenshooter-plugin/trunk/lib/screenshooter-utils.h 2008-11-16 09:58:06 UTC (rev 6116)
@@ -71,11 +71,6 @@
*screenshooter_take_screenshot (gint mode,
gint delay);
-gchar
-*screenshooter_save_screenshot (GdkPixbuf *screenshot,
- gboolean show_save_dialog,
- gchar *default_dir);
-
void
screenshooter_read_rc_file (gchar *file,
ScreenshotData *sd,
More information about the Goodies-commits
mailing list