Hi,

I tried the new keyword dialogue and found some disadvantages. For two I
add patches to this mail.

   - The "Add keyword" dialog has the focus on the OK button which needs
     one more klick. For many keywords to add this is a pain. (See patch
     0001)

   - I like to add keywords inside another (nested) when adding them
     with focus on the parent or just appended if focus is not on
     another keyword. (See patch 0002)

   - In fact it is undocumented that it is possible to add several
     keywords at once by comma separate them. Maybe we can add a bubble
     or so? Ah yes, and the string should be changed from "Add keyword"
     to "Add keywords".

   - Is it really a good idea to compare keywords case insensitive?
     Sometimes I use keywords which just differ in case. I think that
     should be configurable.

Then I have a other, performance issue. With gqview in a directory with
many images I get the window just instantly. With geeqie it takes
several seconds until the window appears. I do not know what do the
performance issue but it should be solved or at least add a splash
screen to inform the user that something happens.

Regards
   Klaus
-- 
Klaus Ethgen                            http://www.ethgen.de/
pub  2048R/D1A4EDE5 2000-02-26 Klaus Ethgen <kl...@ethgen.de>
Fingerprint: D7 67 71 C4 99 A6 D4 FE  EA 40 30 57 3C 88 26 2B
>From 4342e39defd0e1cfa500283c8ac77729328ba31c Mon Sep 17 00:00:00 2001
From: Klaus Ethgen <kl...@ethgen.de>
Date: Sun, 5 Apr 2009 14:25:09 +0100
Subject: [PATCH 1/2] Set the focus for new keyword dialog

---
 src/bar_keywords.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/bar_keywords.c b/src/bar_keywords.c
index 7f2b40b..270ace6 100644
--- a/src/bar_keywords.c
+++ b/src/bar_keywords.c
@@ -905,6 +905,8 @@ static void bar_pane_keywords_edit_dialog(PaneKeywordsData *pkd, gboolean edit_e
 				      G_CALLBACK(bar_pane_keywords_conf_set_helper), cdd);
 	g_free(name);
 
+	gtk_widget_grab_focus(cdd->edit_widget);
+
 	gtk_widget_show(gd->dialog);
 }
 
-- 
1.6.2.1

>From f1f28705ab652ead2de4e3c59ded34d5721382de Mon Sep 17 00:00:00 2001
From: Klaus Ethgen <kl...@ethgen.de>
Date: Sun, 5 Apr 2009 15:24:06 +0100
Subject: [PATCH 2/2] Nest new keywords inside existing

It is boring to first add a bunch of keywords and then move them to the
new location. It is more natural to add them as child to existing ons.
---
 src/bar_keywords.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/bar_keywords.c b/src/bar_keywords.c
index 270ace6..da6832a 100644
--- a/src/bar_keywords.c
+++ b/src/bar_keywords.c
@@ -794,26 +794,31 @@ static void bar_pane_keywords_edit_ok_cb(GenericDialog *gd, gpointer data)
 	else
 		{
 		GList *work = keywords;
+		gboolean append_to = FALSE;
 
 		while (work)
 			{
 			GtkTreeIter add;
-			if (keyword_exists(keyword_tree, NULL, have_dest ? &kw_iter : NULL, work->data, FALSE, NULL))
+			if (keyword_exists(keyword_tree, NULL, (have_dest || append_to) ? &kw_iter : NULL, work->data, FALSE, NULL))
 				{
 				work = work->next;
 				continue;
 				}
 			if (have_dest)
 				{
+				gtk_tree_store_append(GTK_TREE_STORE(keyword_tree), &add, &kw_iter);
+				}
+			else if (append_to)
+				{
 				gtk_tree_store_insert_after(GTK_TREE_STORE(keyword_tree), &add, NULL, &kw_iter);
 				}
 			else
 				{
 				gtk_tree_store_append(GTK_TREE_STORE(keyword_tree), &add, NULL);
-				have_dest = TRUE;
+				append_to = TRUE;
+				kw_iter = add;
 				}
-			kw_iter = add;
-			keyword_set(GTK_TREE_STORE(keyword_tree), &kw_iter, work->data, cdd->is_keyword);
+			keyword_set(GTK_TREE_STORE(keyword_tree), &add, work->data, cdd->is_keyword);
 			work = work->next;
 			}
 		}
-- 
1.6.2.1

Attachment: signature.asc
Description: Digital signature

------------------------------------------------------------------------------
_______________________________________________
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel

Reply via email to