brasero r961 - in trunk: . src
- From: philippr svn gnome org
- To: svn-commits-list gnome org
- Subject: brasero r961 - in trunk: . src
- Date: Wed, 9 Jul 2008 12:58:23 +0000 (UTC)
Author: philippr
Date: Wed Jul 9 12:58:23 2008
New Revision: 961
URL: http://svn.gnome.org/viewvc/brasero?rev=961&view=rev
Log:
Fix crash for #508502 â Can\'t add files from FAT32 partitions
and improve use of GINT_TO_POINTER ()
* src/brasero-data-tree-model.c
(brasero_data_tree_model_iter_parent),
(brasero_data_tree_model_iter_nth_child),
(brasero_data_tree_model_iter_n_children),
(brasero_data_tree_model_iter_has_child),
(brasero_data_tree_model_iter_children),
(brasero_data_tree_model_iter_next),
(brasero_data_tree_model_node_shown),
(brasero_data_tree_model_node_hidden),
(brasero_data_tree_model_get_value),
(brasero_data_tree_model_get_path):
Modified:
trunk/ChangeLog
trunk/src/brasero-data-tree-model.c
Modified: trunk/src/brasero-data-tree-model.c
==============================================================================
--- trunk/src/brasero-data-tree-model.c (original)
+++ trunk/src/brasero-data-tree-model.c Wed Jul 9 12:58:23 2008
@@ -105,7 +105,7 @@
g_return_val_if_fail (child->user_data != NULL, FALSE);
node = child->user_data;
- if (GPOINTER_TO_INT (child->user_data2) == BRASERO_ROW_BOGUS) {
+ if (iter->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS)) {
/* This is a bogus row intended for empty directories
* user_data has the parent empty directory. */
iter->user_data2 = GINT_TO_POINTER (BRASERO_ROW_REGULAR);
@@ -141,7 +141,7 @@
g_return_val_if_fail (priv->stamp == parent->stamp, FALSE);
g_return_val_if_fail (parent->user_data != NULL, FALSE);
- if (GPOINTER_TO_INT (parent->user_data2) == BRASERO_ROW_BOGUS) {
+ if (iter->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS)) {
/* This is a bogus row intended for empty directories,
* it hasn't got children. */
return FALSE;
@@ -180,7 +180,7 @@
g_return_val_if_fail (priv->stamp == iter->stamp, 0);
g_return_val_if_fail (iter->user_data != NULL, 0);
- if (GPOINTER_TO_INT (iter->user_data2) == BRASERO_ROW_BOGUS)
+ if (iter->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS))
return 0;
node = iter->user_data;
@@ -207,7 +207,7 @@
g_return_val_if_fail (priv->stamp == iter->stamp, FALSE);
g_return_val_if_fail (iter->user_data != NULL, FALSE);
- if (GPOINTER_TO_INT (iter->user_data2) == BRASERO_ROW_BOGUS) {
+ if (iter->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS)) {
/* This is a bogus row intended for empty directories
* it hasn't got children */
return FALSE;
@@ -239,10 +239,24 @@
priv = BRASERO_DATA_TREE_MODEL_PRIVATE (model);
/* make sure that iter comes from us */
+ if (!parent) {
+ BraseroFileNode *root;
+
+ /* This is for the top directory */
+ root = brasero_data_project_get_root (BRASERO_DATA_PROJECT (model));
+ if (!BRASERO_FILE_NODE_CHILDREN (root))
+ return FALSE;
+
+ iter->stamp = priv->stamp;
+ iter->user_data = BRASERO_FILE_NODE_CHILDREN (root);
+ iter->user_data2 = GINT_TO_POINTER (BRASERO_ROW_REGULAR);
+ return TRUE;
+ }
+
g_return_val_if_fail (priv->stamp == parent->stamp, FALSE);
g_return_val_if_fail (parent->user_data != NULL, FALSE);
- if (GPOINTER_TO_INT (parent->user_data2) == BRASERO_ROW_BOGUS) {
+ if (parent->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS)) {
iter->user_data = NULL;
return FALSE;
}
@@ -281,7 +295,7 @@
g_return_val_if_fail (priv->stamp == iter->stamp, FALSE);
g_return_val_if_fail (iter->user_data != NULL, FALSE);
- if (GPOINTER_TO_INT (iter->user_data2) == BRASERO_ROW_BOGUS) {
+ if (iter->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS)) {
/* This is a bogus row intended for empty directories
* user_data has the parent empty directory. It hasn't
* got any peer.*/
@@ -311,7 +325,7 @@
/* Check if that's a BOGUS row. In this case that means the parent was
* expanded. Therefore ask vfs to increase its priority if it's loading
* its contents. */
- if (GPOINTER_TO_INT (iter->user_data2) == BRASERO_ROW_BOGUS) {
+ if (iter->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS)) {
/* NOTE: this has to be a directory */
/* NOTE: there is no need to check for is_loading case here
* since before showing its BOGUS row the tree will have shown
@@ -368,7 +382,7 @@
/* if it's a BOGUS row stop here since they are not added to shown list.
* In the same way returns if it is a file. */
- if (GPOINTER_TO_INT (iter->user_data2) == BRASERO_ROW_BOGUS)
+ if (iter->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS))
return;
node = iter->user_data;
@@ -407,7 +421,7 @@
node = iter->user_data;
- if (GPOINTER_TO_INT (iter->user_data2) == BRASERO_ROW_BOGUS) {
+ if (iter->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS)) {
switch (column) {
case BRASERO_DATA_TREE_MODEL_NAME:
g_value_init (value, G_TYPE_STRING);
@@ -692,7 +706,7 @@
}
/* Add index 0 for empty bogus row */
- if (GPOINTER_TO_INT (iter->user_data2) == BRASERO_ROW_BOGUS)
+ if (iter->user_data2 == GINT_TO_POINTER (BRASERO_ROW_BOGUS))
gtk_tree_path_append_index (path, 0);
return path;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]