[brasero] Fixes for BraseroTrackDataCfg when it's used as a GtkTreeModel
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Subject: [brasero] Fixes for BraseroTrackDataCfg when it's used as a GtkTreeModel
- Date: Wed, 15 Jul 2009 18:50:55 +0000 (UTC)
commit 75aaa4595c3d6535fa6600da79d024cc7a600b82
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Wed Jul 15 20:12:00 2009 +0200
Fixes for BraseroTrackDataCfg when it's used as a GtkTreeModel
libbrasero-burn/brasero-track-data-cfg.c | 32 +++++++++++++++++++++--------
1 files changed, 23 insertions(+), 9 deletions(-)
---
diff --git a/libbrasero-burn/brasero-track-data-cfg.c b/libbrasero-burn/brasero-track-data-cfg.c
index 6c902c8..4550702 100644
--- a/libbrasero-burn/brasero-track-data-cfg.c
+++ b/libbrasero-burn/brasero-track-data-cfg.c
@@ -225,7 +225,7 @@ brasero_track_data_cfg_nth_child (BraseroFileNode *parent,
guint nth)
{
BraseroFileNode *peers;
- guint pos;
+ gint pos;
if (!parent)
return NULL;
@@ -235,11 +235,11 @@ brasero_track_data_cfg_nth_child (BraseroFileNode *parent,
peers = peers->next;
for (pos = 0; pos < nth && peers; pos ++) {
- /* Don't include hidden */
- if (peers->is_hidden)
- pos --;
-
peers = peers->next;
+
+ /* Skip hidden */
+ while (peers && peers->is_hidden)
+ peers = peers->next;
}
return peers;
@@ -385,14 +385,22 @@ brasero_track_data_cfg_iter_children (GtkTreeModel *model,
if (!parent) {
BraseroFileNode *root;
+ BraseroFileNode *node;
/* This is for the top directory */
root = brasero_data_project_get_root (BRASERO_DATA_PROJECT (priv->tree));
- if (!root || !brasero_track_data_cfg_get_n_children (root))
+ if (!root)
return FALSE;
+ node = BRASERO_FILE_NODE_CHILDREN (root);
+ while (node && node->is_hidden)
+ node = node->next;
+
+ if (!node || node->is_hidden)
+ return FALSE;
+
+ iter->user_data = node;
iter->stamp = priv->stamp;
- iter->user_data = BRASERO_FILE_NODE_CHILDREN (root);
iter->user_data2 = GINT_TO_POINTER (BRASERO_ROW_REGULAR);
return TRUE;
}
@@ -449,10 +457,16 @@ brasero_track_data_cfg_iter_next (GtkTreeModel *model,
}
node = iter->user_data;
- iter->user_data = node->next;
- if (!node->next || node->next->is_hidden)
+ node = node->next;
+
+ /* skip all hidden files */
+ while (node && node->is_hidden)
+ node = node->next;
+
+ if (!node || node->is_hidden)
return FALSE;
+ iter->user_data = node;
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]