Revision: 1900
http://gtkpod.svn.sourceforge.net/gtkpod/?rev=1900&view=rev
Author: Sikon
Date: 2008-01-02 09:00:05 -0800 (Wed, 02 Jan 2008)
Log Message:
-----------
Fixes for some (not all) prefs regressions
Modified Paths:
--------------
gtkpod/trunk/ChangeLog
gtkpod/trunk/data/gtkpod.glade
gtkpod/trunk/src/fileselection.c
gtkpod/trunk/src/prefsdlg.c
Modified: gtkpod/trunk/ChangeLog
===================================================================
--- gtkpod/trunk/ChangeLog 2008-01-02 13:32:15 UTC (rev 1899)
+++ gtkpod/trunk/ChangeLog 2008-01-02 17:00:05 UTC (rev 1900)
@@ -10,6 +10,15 @@
* data/gtkpod.glade:
Added Revert button.
+ Fixed: 'subwindows can be hidden by main window' (except for the sort
+ window, this is intended behavior and not a bug)
+ Fixed: 'assertion failed when clicking "remove" buttons'
+ Fixed: 'assertion `g_path_is_absolute (filename)' failed'
+ Fixed: 'signal `file_set' is invalid for instance `0x85d1160''
+
+ * src/fileselection.c:
+
+ Use the stock GTK directory selection dialog. Code cleanup.
2008-01-01 Matvey Kozhev <sikon at users.sourceforge.net>
Modified: gtkpod/trunk/data/gtkpod.glade
===================================================================
--- gtkpod/trunk/data/gtkpod.glade 2008-01-02 13:32:15 UTC (rev 1899)
+++ gtkpod/trunk/data/gtkpod.glade 2008-01-02 17:00:05 UTC (rev 1900)
@@ -16210,6 +16210,7 @@
<widget class="GtkFileChooserButton"
id="cmd_aacgain">
<property name="visible">True</property>
<property name="title" translatable="yes">Select A
File</property>
+ <signal name="file_set"
handler="on_cmd_aacgain_file_set"/>
</widget>
<packing>
<property name="left_attach">1</property>
@@ -16547,7 +16548,7 @@
</child>
</widget>
<packing>
- <property name="x_options"></property>
+ <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
@@ -16568,7 +16569,7 @@
<packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
- <property name="x_options"></property>
+ <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
@@ -16589,7 +16590,7 @@
<packing>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
- <property name="x_options"></property>
+ <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
Modified: gtkpod/trunk/src/fileselection.c
===================================================================
--- gtkpod/trunk/src/fileselection.c 2008-01-02 13:32:15 UTC (rev 1899)
+++ gtkpod/trunk/src/fileselection.c 2008-01-02 17:00:05 UTC (rev 1900)
@@ -59,8 +59,6 @@
* Data global to this module only
*/
-static Playlist *db_active_pl = NULL; /* playlist for dirbrowser */
-
static void error_dialog (const gchar *str)
{
GtkWidget *dialog;
@@ -635,94 +633,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-
-/* XPM */
-static char *db_folder[] =
-{
- "16 16 16 1",
- " c None",
- ". c #f4f7e4",
- "X c #dee4b5",
- "o c #e1e7b9",
- "O c #c6cba4",
- "+ c #dce2b8",
- "@ c #e9e9ec",
- "# c #d3d8ae",
- "$ c #d8daca",
- "% c #b2b2b5",
- "& c #767862",
- "* c #e3e6c3",
- "= c #1b1b1a",
- "- c #939684",
- "; c #555555",
- ": c #000000",
- " ",
- " ",
- " :::: ",
- " :.@@O: ",
- ":-&&&&&::::: ",
- ":.@@@@@*$O#O= ",
- ":@*+XXXX+##O: ",
- ":.*#oooXXXXX: ",
- ":@+XoXXXXXX#: ",
- ":@*ooXXXXXX#: ",
- ":@**XXXXXXX#: ",
- ":@*XXXXXXXX%: ",
- ":$.*OOOOOO%-: ",
- " ;::::::::::: ",
- " ",
- " "};
-
-/* Icon by Jakub Steiner <[EMAIL PROTECTED]> */
-
-/* XPM */
-static char *db_ofolder[] =
-{
- "16 16 16 1",
- " c None",
- ". c #a9ad93",
- "X c #60634d",
- "o c #dee4b5",
- "O c #9ca085",
- "+ c #0c0d04",
- "@ c #2f2f31",
- "# c #3b3d2c",
- "$ c #c8cda2",
- "% c #e6e6e9",
- "& c #b3b5a5",
- "* c #80826d",
- "= c #292a1c",
- "- c #fefef6",
- "; c #8f937b",
- ": c #000000",
- " ",
- " ",
- " :::: ",
- " :-%%&: ",
- ":-;;;OX::::: ",
- ":-;;;;O;O;&.: ",
- ":-*X##@@@@@=#: ",
- ":%*+-%%ooooooO: ",
- ":%X;%ooooooo.*: ",
- ":.+-%oooooooO: ",
- ":*O-oooooooo*: ",
- ":O-oooooooo.: ",
- ":*-%$$$$$$OX: ",
- " ::::::::::: ",
- " ",
- " "};
-
#define NODE_SPACING 4
-static GdkPixmap *db_folder_pixmap = NULL, *db_ofolder_pixmap;
-static GdkBitmap *db_folder_mask, *db_ofolder_mask;
-static GtkWidget *dirbrowser = NULL;
-
-static GtkWidget *xmms_create_dir_browser(const gchar *title,
- const gchar *current_path,
- GtkSelectionMode mode,
- void (*handler) (gchar *));
-
struct dirnode
{
unsigned int scanned : 1;
@@ -736,8 +648,9 @@
* ------------------------------------------------------------ */
/* Callback after one directory has been added */
-static void add_dir_selected (gchar *dir)
+static void add_dir_selected (gchar *dir, Playlist *db_active_pl)
{
+ g_return_if_fail (dir);
g_return_if_fail (db_active_pl);
if (dir)
@@ -765,398 +678,27 @@
separate callback for gtkpod.glade */
G_MODULE_EXPORT void dirbrowser_create_callback (void)
{
- Playlist *pl;
-
- pl = pm_get_selected_playlist ();
-
- dirbrowser_create (pl);
-}
-
-
-
-
-
-void dirbrowser_create (Playlist *pl)
-{
- gchar *cur_dir, *str;
- iTunesDB *itdb;
- ExtraiTunesDBData *eitdb;
- Playlist *mpl;
-
- /* we only allow one modal dirbrowser */
- g_return_if_fail (dirbrowser==NULL);
-
-
- if (!pl)
- {
- error_dialog (_("Please select a playlist or repository before adding
tracks."));
- return;
- }
-
- itdb = pl->itdb;
- g_return_if_fail (itdb);
- eitdb = itdb->userdata;
- g_return_if_fail (eitdb);
-
- if (!eitdb->itdb_imported)
- {
- error_dialog (_("Please load the iPod before adding tracks."));
- return;
- }
-
- /* FIXME: I don't like global variables */
- db_active_pl = pl;
-
- mpl = itdb_playlist_mpl (itdb);
- g_return_if_fail (mpl);
-
- /* Create window title */
- if (mpl == pl)
- {
- str = g_strdup_printf (_("Add directories to '%s'"), mpl->name);
- }
- else
- {
- str = g_strdup_printf (_("Add directories to '%s/%s'"), mpl->name,
pl->name);
- }
-
- cur_dir = prefs_get_string ("last_dir_browsed");
- dirbrowser = xmms_create_dir_browser (str,
- cur_dir,
- GTK_SELECTION_MULTIPLE,
- add_dir_selected);
- g_free (cur_dir);
- g_free (str);
- gtk_window_set_modal (GTK_WINDOW (dirbrowser), TRUE);
- gtk_widget_show (dirbrowser);
-}
-
-/* called when dirbrowser gets destroyed with the window-close button */
-static void dirbrowser_destroyed (GtkWidget *w, gpointer userdata)
-{
- g_return_if_fail (dirbrowser);
-
- dirbrowser = NULL;
-}
-
-
-/* called when the file selector is closed */
-static void add_dir_close (GtkWidget *w1, GtkWidget *w2)
-{
- gint x,y;
-
- g_return_if_fail (dirbrowser);
-
- gtk_window_get_size (GTK_WINDOW (dirbrowser), &x, &y);
- /* store size for next time */
- prefs_set_int("size_dirbr.x", x);
- prefs_set_int("size_dirbr.y", y);
- gtk_widget_destroy(dirbrowser);
- /* dirbrowser = NULL; -- will be done by the dirbrowser_destroy()
- as part of the callback */
-}
-
-
-/* ------------------------------------------------------------ *
- * end of added functions *
- * ------------------------------------------------------------ */
-
-static gboolean check_for_subdir(char *path)
-{
- DIR *dir;
- struct dirent *dirent;
- struct stat statbuf;
- char *npath;
-
- if ((dir = opendir(path)) != NULL)
- {
- while ((dirent = readdir(dir)) != NULL)
- {
- if (dirent->d_name[0] == '.')
- continue;
-
- npath = g_strconcat(path, dirent->d_name, NULL);
- if (stat(npath, &statbuf) != -1 &&
- S_ISDIR(statbuf.st_mode))
- {
- g_free(npath);
- closedir(dir);
- return TRUE;
- }
- g_free(npath);
- }
- closedir(dir);
- }
- return FALSE;
-}
-
-static void destroy_cb(gpointer data)
-{
- struct dirnode *node = data;
-
- g_free(node->path);
- g_free(node->dir);
- g_free(node);
-}
-
-static void add_dir(GtkCTree *tree, GtkCTreeNode *pnode, char* parent, char
*dir)
-{
- struct stat statbuf;
- char *path;
- gchar *dir_utf8;
-
- /* Don't show hidden dirs, nor . and .. */
- if (dir[0] == '.')
+ Playlist *pl = pm_get_selected_playlist ();
+ gchar *dir = NULL;
+
+ if(!pl)
return;
- path = g_strconcat(parent, dir, NULL);
- if (stat(path, &statbuf) != -1 && S_ISDIR(statbuf.st_mode))
- {
- gboolean has_subdir;
- char *text = "";
- GtkCTreeNode *node;
- struct dirnode *dirnode = g_malloc0(sizeof (struct dirnode));
- dirnode->path = g_strconcat(path, "/", NULL);
- dirnode->dir = g_strdup (dir);
- has_subdir = check_for_subdir(dirnode->path);
- dir_utf8 = charset_to_utf8 (dir);
- node = gtk_ctree_insert_node(tree, pnode, NULL, &dir_utf8,
- NODE_SPACING, db_folder_pixmap,
- db_folder_mask, db_ofolder_pixmap,
- db_ofolder_mask, !has_subdir,
FALSE);
- g_free (dir_utf8);
- gtk_ctree_node_set_row_data_full(tree, node, dirnode,
- destroy_cb);
- if (has_subdir)
- gtk_ctree_insert_node(tree, node, NULL, &text,
- NODE_SPACING, NULL, NULL,
- NULL, NULL, FALSE, FALSE);
- }
- g_free(path);
-}
+ GtkWidget *dialog = gtk_file_chooser_dialog_new (_("Add Folder"),
+
GTK_WINDOW (gtkpod_window),
+
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
+
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+
GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT,
+
NULL);
-static void expand_cb(GtkWidget *widget, GtkCTreeNode *parent_node)
-{
- struct dirent *dirent;
- GtkCTree *tree = GTK_CTREE(widget);
- struct dirnode *parent_dirnode;
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+ dir = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER
(dialog));
- parent_dirnode = gtk_ctree_node_get_row_data(tree, parent_node);
- if (!parent_dirnode->scanned)
+ gtk_widget_destroy (dialog);
+
+ if (dir)
{
- DIR *dir;
-
- gtk_clist_freeze(GTK_CLIST(widget));
- gtk_ctree_remove_node(tree,
- GTK_CTREE_ROW(parent_node)->children);
- if ((dir = opendir(parent_dirnode->path)) != NULL)
- {
- while ((dirent = readdir(dir)) != NULL)
- {
- add_dir(tree, parent_node,
- parent_dirnode->path, dirent->d_name);
- }
- closedir(dir);
- gtk_ctree_sort_node(tree, parent_node);
- }
- gtk_clist_thaw(GTK_CLIST(widget));
- parent_dirnode->scanned = TRUE;
+ add_dir_selected (dir, pl);
+ g_free (dir);
}
}
-
-static void select_row_cb(GtkWidget *widget, int row, int column,
GdkEventButton *bevent, gpointer data)
-{
- struct dirnode *dirnode;
- GtkCTreeNode *node;
- void (*handler) (char *);
-
- if (bevent && (bevent->type == GDK_2BUTTON_PRESS))
- {
- node = gtk_ctree_node_nth(GTK_CTREE(widget), row);
- dirnode = gtk_ctree_node_get_row_data(GTK_CTREE(widget), node);
- handler = gtk_object_get_user_data(GTK_OBJECT(widget));
- if (handler)
- handler(dirnode->path);
- if (handler) handler(NULL); /* call once with "NULL" to
- indicate "end" */
- }
-}
-
-static void show_cb(GtkWidget *widget, gpointer data)
-{
- GtkCTree *tree = GTK_CTREE(data);
- GtkCTreeNode *node = gtk_object_get_data(GTK_OBJECT(tree),
- "selected_node");
-
- if (node)
- gtk_ctree_node_moveto(tree, node, -1, 0.6, 0);
-}
-
-static void ok_clicked(GtkWidget *widget, GtkWidget *tree)
-{
- GtkCTreeNode *node;
- struct dirnode *dirnode;
- GList *list_node;
- GtkWidget *window;
- void (*handler) (char *) = NULL;
-
- window = gtk_object_get_user_data(GTK_OBJECT(widget));
- list_node = GTK_CLIST(tree)->selection;
- while (list_node)
- {
- node = list_node->data;
- dirnode = gtk_ctree_node_get_row_data(GTK_CTREE(tree), node);
- handler = gtk_object_get_user_data(GTK_OBJECT(tree));
- if (handler)
- handler(dirnode->path);
- list_node = g_list_next(list_node);
- }
- if (handler) handler(NULL); /* call once with "NULL" to
- indicate "end" */
- gtk_widget_hide(window);
- add_dir_close (widget, tree);
-}
-
-static GtkWidget *xmms_create_dir_browser (const char *title,
- const char *current_path,
- GtkSelectionMode mode,
- void (*handler) (char *))
-{
- GtkWidget *window, *scroll_win, *tree, *vbox, *bbox, *ok, *cancel, *sep;
- char *root_text = "/", *text = "";
- GtkCTreeNode *root_node, *node, *selected_node = NULL;
- GtkCTree *ctree;
- struct dirnode *dirnode;
- gint x,y;
-
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- x = prefs_get_int("size_dirbr.x");
- y = prefs_get_int("size_dirbr.y");
- gtk_window_set_default_size(GTK_WINDOW(window), x, y);
- gtk_window_set_title(GTK_WINDOW(window), title);
- gtk_container_border_width(GTK_CONTAINER(window), 10);
-
- vbox = gtk_vbox_new(FALSE, 10);
- gtk_container_add(GTK_CONTAINER(window), vbox);
-
- scroll_win = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_win),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- gtk_box_pack_start(GTK_BOX(vbox), scroll_win, TRUE, TRUE, 0);
- gtk_widget_show(scroll_win);
-
- gtk_widget_realize(window);
- if (!db_folder_pixmap)
- {
- db_folder_pixmap = gdk_pixmap_create_from_xpm_d(window->window,
- &db_folder_mask,
- NULL, db_folder);
- db_ofolder_pixmap = gdk_pixmap_create_from_xpm_d(window->window,
- &db_ofolder_mask,
- NULL, db_ofolder);
- }
-
- tree = gtk_ctree_new(1, 0);
- ctree = GTK_CTREE(tree);
- gtk_clist_set_column_auto_resize(GTK_CLIST(tree), 0, TRUE);
- gtk_clist_set_selection_mode(GTK_CLIST(tree), mode);
- gtk_ctree_set_line_style(ctree, GTK_CTREE_LINES_DOTTED);
- gtk_signal_connect(GTK_OBJECT(tree), "tree_expand",
- GTK_SIGNAL_FUNC(expand_cb), NULL);
- gtk_signal_connect(GTK_OBJECT(tree), "select_row",
- GTK_SIGNAL_FUNC(select_row_cb), NULL);
- gtk_signal_connect(GTK_OBJECT(window), "show",
- GTK_SIGNAL_FUNC(show_cb), tree);
- gtk_container_add(GTK_CONTAINER(scroll_win), tree);
- gtk_object_set_user_data(GTK_OBJECT(tree), handler);
-
- root_node = gtk_ctree_insert_node(ctree, NULL, NULL,
- &root_text, NODE_SPACING,
- db_folder_pixmap, db_folder_mask,
- db_ofolder_pixmap, db_ofolder_mask,
- FALSE, FALSE);
- dirnode = g_malloc0(sizeof (struct dirnode));
- dirnode->path = g_strdup("/");
- gtk_ctree_node_set_row_data_full(ctree, root_node,
- dirnode, destroy_cb);
- node = gtk_ctree_insert_node(ctree, root_node, NULL,
- &text, 4, NULL, NULL, NULL,
- NULL, TRUE, TRUE);
- gtk_ctree_expand(ctree, root_node);
- gtk_widget_show(tree);
-
- sep = gtk_hseparator_new();
- gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
- gtk_widget_show(sep);
-
- bbox = gtk_hbutton_box_new();
- gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
- gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
-
- ok = gtk_button_new_with_label(_("Ok"));
- gtk_object_set_user_data(GTK_OBJECT(ok), window);
- GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT);
- gtk_window_set_default(GTK_WINDOW(window), ok);
- gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0);
- gtk_signal_connect(GTK_OBJECT(ok), "clicked",
- GTK_SIGNAL_FUNC(ok_clicked), tree);
- gtk_widget_show(ok);
-
- cancel = gtk_button_new_with_label(_("Cancel"));
- GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT);
- gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0);
- gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked",
- GTK_SIGNAL_FUNC(add_dir_close),
- GTK_OBJECT(window));
- gtk_widget_show(cancel);
-
- gtk_signal_connect(GTK_OBJECT(window), "destroy",
- GTK_SIGNAL_FUNC(dirbrowser_destroyed),
- NULL);
-
- gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
- gtk_widget_show(bbox);
- gtk_widget_show(vbox);
-
- if (current_path && *current_path)
- {
- char **dir;
- int i;
-
- dir = g_strsplit(current_path, "/", 0);
- node = root_node;
- for (i = 0; dir[i] != NULL; i++)
- {
- if (dir[i][0] == '\0')
- continue;
-
- for (node = GTK_CTREE_ROW(node)->children; node != NULL;
- node = GTK_CTREE_ROW(node)->sibling)
- {
- struct dirnode *dn;
- dn = gtk_ctree_node_get_row_data(GTK_CTREE(tree), node);
- if (!strcmp(dir[i], dn->dir))
- break;
- }
- if (!node)
- break;
- if (!GTK_CTREE_ROW(node)->is_leaf && dir[i+1] && *dir[i+1])
- gtk_ctree_expand(ctree, node);
- else
- {
- selected_node = node;
- break;
- }
- }
- g_strfreev(dir);
- }
-
- if (!selected_node)
- selected_node = root_node;
-
- gtk_ctree_select(ctree, selected_node);
- gtk_object_set_data(GTK_OBJECT(tree), "selected_node", selected_node);
-
- return window;
-}
Modified: gtkpod/trunk/src/prefsdlg.c
===================================================================
--- gtkpod/trunk/src/prefsdlg.c 2008-01-02 13:32:15 UTC (rev 1899)
+++ gtkpod/trunk/src/prefsdlg.c 2008-01-02 17:00:05 UTC (rev 1900)
@@ -284,17 +284,20 @@
}
}
-static GtkTreeIter tree_get_current_iter (GtkTreeView *view)
+static gboolean tree_get_current_iter (GtkTreeView *view, GtkTreeIter *iter)
{
GtkTreeModel *model = gtk_tree_view_get_model (view);
GtkTreePath *path;
- GtkTreeIter iter;
gtk_tree_view_get_cursor (view, &path, NULL);
- gtk_tree_model_get_iter (model, &iter, path);
+
+ if (!path)
+ return FALSE;
+
+ gtk_tree_model_get_iter (model, iter, path);
gtk_tree_path_free (path);
- return iter;
+ return TRUE;
}
/*
@@ -616,6 +619,7 @@
GtkTreeModel *model;
GtkTreeIter iter;
+ gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW
(prefs_dialog));
setup_column_tree (view, FALSE);
/* User pressed Cancel */
@@ -628,7 +632,7 @@
/* User pressed Add */
model = gtk_tree_view_get_model (view);
- iter = tree_get_current_iter (view);
+ tree_get_current_iter (view, &iter);
gtk_tree_model_get (model, &iter, 1, &i, -1);
gtk_widget_destroy (dlg);
@@ -655,9 +659,9 @@
gint i;
GtkTreeView *view = GTK_TREE_VIEW (gtkpod_xml_get_widget (prefs_xml,
"displayed_columns"));
GtkTreeModel *model = gtk_tree_view_get_model (view);
- GtkTreeIter iter = tree_get_current_iter (view);
+ GtkTreeIter iter;
- if(!gtk_list_store_iter_is_valid (GTK_LIST_STORE (model), &iter))
+ if(!tree_get_current_iter (view, &iter) ||
!gtk_list_store_iter_is_valid (GTK_LIST_STORE (model), &iter))
return;
gtk_tree_model_get (model, &iter, 1, &i, -1);
@@ -734,6 +738,8 @@
GladeXML *xml = gtkpod_xml_new (xml_file, "prefs_encoding_dialog");
GtkWidget *dlg = gtkpod_xml_get_widget (xml, "prefs_encoding_dialog");
GtkWidget *combo = gtkpod_xml_get_widget (xml, "encoding_combo");
+
+ gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW
(prefs_dialog));
init_checkbox (GTK_TOGGLE_BUTTON (gtkpod_xml_get_widget (xml,
"use_encoding_for_update")),
xml, "update_charset", NULL);
@@ -769,6 +775,8 @@
GtkWidget *dlg = gtkpod_xml_get_widget (xml, "prefs_tag_parse_dialog");
gchar *temp = prefs_get_string("parsetags_template");
+ gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW
(prefs_dialog));
+
if(temp)
{
gtk_entry_set_text (GTK_ENTRY (gtkpod_xml_get_widget (xml,
"filename_pattern")),
@@ -803,6 +811,8 @@
GtkWidget *dlg = gtkpod_xml_get_widget (xml, "prefs_coverart_dialog");
gchar *temp = prefs_get_string("coverart_template");
+ gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW
(prefs_dialog));
+
if(temp)
{
gtk_entry_set_text (GTK_ENTRY (gtkpod_xml_get_widget (xml,
"coverart_pattern")),
@@ -838,6 +848,8 @@
GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
gchar *temp = prefs_get_string("exclude_file_mask");
+ gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW
(prefs_dialog));
+
if (temp)
{
gint i;
@@ -927,9 +939,9 @@
GladeXML *xml = GLADE_XML (g_object_get_data (G_OBJECT (sender),
"xml"));
GtkWidget *tree = gtkpod_xml_get_widget (xml, "exclusion_list");
GtkListStore *store = GTK_LIST_STORE (gtk_tree_view_get_model
(GTK_TREE_VIEW (tree)));
- GtkTreeIter iter = tree_get_current_iter (GTK_TREE_VIEW (tree));
+ GtkTreeIter iter;
- if(gtk_list_store_iter_is_valid (store, &iter))
+ if(!tree_get_current_iter (GTK_TREE_VIEW (tree), &iter) ||
gtk_list_store_iter_is_valid (store, &iter))
{
gtk_list_store_remove (store, &iter);
update_exclusions (store);
@@ -945,6 +957,8 @@
GtkWidget *dlg = gtkpod_xml_get_widget (xml, "prefs_mserv_dialog");
gchar *temp = prefs_get_string ("mserv_username");
+ gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW
(prefs_dialog));
+
if(temp)
{
gtk_entry_set_text (GTK_ENTRY (gtkpod_xml_get_widget (xml,
"mserv_username")),
@@ -1019,7 +1033,10 @@
GladeXML *xml = gtkpod_xml_new (xml_file, "prefs_commands_dialog");
GtkWidget *dlg = gtkpod_xml_get_widget (xml, "prefs_commands_dialog");
gchar *temp = prefs_get_string ("path_play_now");
+ gchar *path;
+ gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW
(prefs_dialog));
+
if(temp)
{
gtk_entry_set_text (GTK_ENTRY (gtkpod_xml_get_widget (xml,
"cmd_playnow")),
@@ -1042,20 +1059,26 @@
if(temp)
{
+ path = g_find_program_in_path (temp);
+
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER
(gtkpod_xml_get_widget (xml, "cmd_mp3gain")),
-
temp);
+
path);
g_free (temp);
+ g_free (path);
}
temp = prefs_get_string ("aacgain_path");
if(temp)
{
+ path = g_find_program_in_path (temp);
+
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER
(gtkpod_xml_get_widget (xml, "cmd_aacgain")),
temp);
g_free (temp);
+ g_free (path);
}
g_object_set_data (G_OBJECT (gtkpod_xml_get_widget (xml,
"browse_playnow")),
@@ -1114,6 +1137,8 @@
gchar *temp = prefs_get_string ("file_convert_cachedir");
gint i;
+ gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW
(prefs_dialog));
+
if(temp)
{
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER
(gtkpod_xml_get_widget (xml, "cache_folder")),
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2