[Goodies-commits] r6409 - in sion/trunk: . src
Enrico Troeger
enrico at xfce.org
Tue Jan 6 21:21:11 CET 2009
Author: enrico
Date: 2009-01-06 20:21:11 +0000 (Tue, 06 Jan 2009)
New Revision: 6409
Modified:
sion/trunk/ChangeLog
sion/trunk/src/bookmarkdialog.c
sion/trunk/src/bookmarkeditdialog.c
sion/trunk/src/bookmarkeditdialog.h
sion/trunk/src/window.c
Log:
Don't allow entering duplicate bookmark names.
When any input was missing or wrong in the Bookmark Edit dialog, put the input focus back to the text entry which failed.
Modified: sion/trunk/ChangeLog
===================================================================
--- sion/trunk/ChangeLog 2009-01-06 09:59:05 UTC (rev 6408)
+++ sion/trunk/ChangeLog 2009-01-06 20:21:11 UTC (rev 6409)
@@ -1,3 +1,12 @@
+2009-01-06 Enrico Tröger <enrico(at)xfce(dot)org>
+
+ * src/bookmarkdialog.c, src/bookmarkeditdialog.c,
+ src/bookmarkeditdialog.h, src/window.c:
+ Don't allow entering duplicate bookmark names.
+ When any input was missing or wrong in the Bookmark Edit dialog, put
+ the input focus back to the text entry which failed.
+
+
2009-01-02 Enrico Tröger <enrico(at)xfce(dot)org>
* src/compath.c, src/compat.h:
Modified: sion/trunk/src/bookmarkdialog.c
===================================================================
--- sion/trunk/src/bookmarkdialog.c 2009-01-06 09:59:05 UTC (rev 6408)
+++ sion/trunk/src/bookmarkdialog.c 2009-01-06 20:21:11 UTC (rev 6409)
@@ -141,8 +141,8 @@
static void add_button_click_cb(G_GNUC_UNUSED GtkButton *button, GtkWidget *dialog)
{
- GtkWidget *edit_dialog = sion_bookmark_edit_dialog_new(dialog, SION_BE_MODE_CREATE);
SionBookmarkDialogPrivate *priv = SION_BOOKMARK_DIALOG_GET_PRIVATE(dialog);
+ GtkWidget *edit_dialog = sion_bookmark_edit_dialog_new(dialog, priv->settings, SION_BE_MODE_CREATE);
SionBookmark *bm = NULL;
if (sion_bookmark_edit_dialog_run(SION_BOOKMARK_EDIT_DIALOG(edit_dialog)) == GTK_RESPONSE_OK)
@@ -180,7 +180,8 @@
gtk_tree_model_get(GTK_TREE_MODEL(priv->store), &iter, COL_BMREF, &bm, -1);
- edit_dialog = sion_bookmark_edit_dialog_new_with_bookmark(dialog, SION_BE_MODE_EDIT, bm);
+ edit_dialog = sion_bookmark_edit_dialog_new_with_bookmark(dialog,
+ priv->settings, SION_BE_MODE_EDIT, bm);
if (sion_bookmark_edit_dialog_run(SION_BOOKMARK_EDIT_DIALOG(edit_dialog)) == GTK_RESPONSE_OK)
{
/* this fills the values of the dialog into 'bm' */
Modified: sion/trunk/src/bookmarkeditdialog.c
===================================================================
--- sion/trunk/src/bookmarkeditdialog.c 2009-01-06 09:59:05 UTC (rev 6408)
+++ sion/trunk/src/bookmarkeditdialog.c 2009-01-06 20:21:11 UTC (rev 6409)
@@ -27,6 +27,7 @@
#include "common.h"
#include "compat.h"
+#include "settings.h"
#include "bookmark.h"
#include "bookmarkeditdialog.h"
@@ -37,6 +38,8 @@
struct _SionBookmarkEditDialogPrivate
{
+ SionSettings *settings;
+
GtkWidget *table;
GtkWidget *type_combo;
@@ -62,11 +65,7 @@
GtkWidget *share_label;
GtkWidget *share_entry;
-/*
- GtkWidget *share_entry;
- GtkWidget *domain_entry;
- GtkWidget *folder_entry;
-*/
+
SionBookmark *bookmark_init;
SionBookmark *bookmark_update;
};
@@ -192,7 +191,26 @@
error = TRUE;
sion_error_dialog((gpointer)dialog,
_("You must enter a name for the bookmark."), NULL);
+ gtk_widget_grab_focus(priv->name_entry);
}
+ else
+ { // check for duplicate bookmark names
+ SionBookmarkList *bml = sion_settings_get_bookmarks(priv->settings);
+ SionBookmark *bm;
+ guint i;
+
+ for (i = 0; i < bml->len && ! error; i++)
+ {
+ bm = g_ptr_array_index(bml, i);
+ if (sion_str_equal(tmp, sion_bookmark_get_name(bm)))
+ {
+ error = TRUE;
+ sion_error_dialog((gpointer)dialog,
+ _("The entered bookmark name is already in use. Please choose another one."), NULL);
+ gtk_widget_grab_focus(priv->name_entry);
+ }
+ }
+ }
}
if (! error && gtk_widget_get_parent(priv->server_entry) != NULL)
{
@@ -202,6 +220,7 @@
error = TRUE;
sion_error_dialog((gpointer)dialog,
_("You must enter a server address or name."), NULL);
+ gtk_widget_grab_focus(priv->server_entry);
}
}
if (! error && gtk_widget_get_parent(priv->share_entry) != NULL)
@@ -212,6 +231,7 @@
error = TRUE;
sion_error_dialog((gpointer)dialog,
_("You must enter a share name."), NULL);
+ gtk_widget_grab_focus(priv->share_entry);
}
}
if (! error && gtk_widget_get_parent(priv->uri_entry) != NULL)
@@ -222,6 +242,7 @@
error = TRUE;
sion_error_dialog((gpointer)dialog,
_("You must enter a valid URI for the connection."), NULL);
+ gtk_widget_grab_focus(priv->uri_entry);
}
}
if (! error)
@@ -783,24 +804,28 @@
}
-GtkWidget *sion_bookmark_edit_dialog_new(GtkWidget *parent, SionBookmarkEditDialogMode mode)
+GtkWidget *sion_bookmark_edit_dialog_new(GtkWidget *parent, SionSettings *settings, SionBookmarkEditDialogMode mode)
{
SionBookmarkEditDialog *dialog = g_object_new(SION_BOOKMARK_EDIT_DIALOG_TYPE,
"transient-for", parent,
"mode", mode,
NULL);
+ SionBookmarkEditDialogPrivate *priv = SION_BOOKMARK_EDIT_DIALOG_GET_PRIVATE(dialog);
+ priv->settings = settings;
return GTK_WIDGET(dialog);
}
-GtkWidget *sion_bookmark_edit_dialog_new_with_bookmark(GtkWidget *parent, SionBookmarkEditDialogMode mode, SionBookmark *bookmark)
+GtkWidget *sion_bookmark_edit_dialog_new_with_bookmark(GtkWidget *parent, SionSettings *settings, SionBookmarkEditDialogMode mode, SionBookmark *bookmark)
{
SionBookmarkEditDialog *dialog = g_object_new(SION_BOOKMARK_EDIT_DIALOG_TYPE,
"transient-for", parent,
"bookmark-init", bookmark,
"mode", mode,
NULL);
+ SionBookmarkEditDialogPrivate *priv = SION_BOOKMARK_EDIT_DIALOG_GET_PRIVATE(dialog);
+ priv->settings = settings;
return GTK_WIDGET(dialog);
}
Modified: sion/trunk/src/bookmarkeditdialog.h
===================================================================
--- sion/trunk/src/bookmarkeditdialog.h 2009-01-06 09:59:05 UTC (rev 6408)
+++ sion/trunk/src/bookmarkeditdialog.h 2009-01-06 20:21:11 UTC (rev 6409)
@@ -55,8 +55,8 @@
};
GType sion_bookmark_edit_dialog_get_type (void);
-GtkWidget* sion_bookmark_edit_dialog_new (GtkWidget *parent, SionBookmarkEditDialogMode mode);
-GtkWidget* sion_bookmark_edit_dialog_new_with_bookmark (GtkWidget *parent, SionBookmarkEditDialogMode, SionBookmark *bookmark);
+GtkWidget* sion_bookmark_edit_dialog_new (GtkWidget *parent, SionSettings *settings, SionBookmarkEditDialogMode mode);
+GtkWidget* sion_bookmark_edit_dialog_new_with_bookmark (GtkWidget *parent, SionSettings *settings, SionBookmarkEditDialogMode, SionBookmark *bookmark);
gint sion_bookmark_edit_dialog_run (SionBookmarkEditDialog *dialog);
G_END_DECLS
Modified: sion/trunk/src/window.c
===================================================================
--- sion/trunk/src/window.c 2009-01-06 09:59:05 UTC (rev 6408)
+++ sion/trunk/src/window.c 2009-01-06 20:21:11 UTC (rev 6409)
@@ -284,7 +284,8 @@
SionBookmark *bm = NULL;
GtkWidget *dialog;
- dialog = sion_bookmark_edit_dialog_new(GTK_WIDGET(window), SION_BE_MODE_CONNECT);
+ dialog = sion_bookmark_edit_dialog_new(GTK_WIDGET(window),
+ priv->settings, SION_BE_MODE_CONNECT);
if (sion_bookmark_edit_dialog_run(SION_BOOKMARK_EDIT_DIALOG(dialog)) == GTK_RESPONSE_OK)
{
bm = sion_bookmark_new();
@@ -750,7 +751,7 @@
// show the bookmark edit dialog and add the bookmark only if it was
// not cancelled
edit_dialog = sion_bookmark_edit_dialog_new_with_bookmark(
- GTK_WIDGET(window), SION_BE_MODE_EDIT, bm);
+ GTK_WIDGET(window), priv->settings, SION_BE_MODE_EDIT, bm);
if (sion_bookmark_edit_dialog_run(SION_BOOKMARK_EDIT_DIALOG(edit_dialog)) ==
GTK_RESPONSE_OK)
{
More information about the Goodies-commits
mailing list