[brasero: 13/18] Some more fixes for crashes and size retrieval
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Subject: [brasero: 13/18] Some more fixes for crashes and size retrieval
- Date: Mon, 4 May 2009 14:16:49 -0400 (EDT)
commit b85a515fc74fc344931c2f422d6dddf478397e97
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Sun May 3 14:44:06 2009 +0200
Some more fixes for crashes and size retrieval
---
libbrasero-burn/brasero-data-project.c | 12 ++++++------
libbrasero-burn/brasero-data-project.h | 10 +++++-----
libbrasero-burn/brasero-data-session.c | 4 ++--
libbrasero-burn/brasero-track-data-cfg.c | 24 ++++++++++++++----------
src/brasero-data-disc.c | 10 +++++-----
5 files changed, 32 insertions(+), 28 deletions(-)
diff --git a/libbrasero-burn/brasero-data-project.c b/libbrasero-burn/brasero-data-project.c
index 1d0871f..aa8893c 100644
--- a/libbrasero-burn/brasero-data-project.c
+++ b/libbrasero-burn/brasero-data-project.c
@@ -2988,8 +2988,8 @@ brasero_data_project_sum_graft_size_cb (gpointer key,
*sum_value += BRASERO_FILE_NODE_SECTORS (node);
}
-guint
-brasero_data_project_get_size (BraseroDataProject *self)
+goffset
+brasero_data_project_get_sectors (BraseroDataProject *self)
{
BraseroDataProjectPrivate *priv;
guint retval = 0;
@@ -3004,7 +3004,7 @@ brasero_data_project_get_size (BraseroDataProject *self)
}
struct _BraseroFileSize {
- guint sum;
+ goffset sum;
BraseroFileNode *node;
};
typedef struct _BraseroFileSize BraseroFileSize;
@@ -3030,9 +3030,9 @@ brasero_data_project_folder_size_cb (const gchar *uri,
}
}
-guint
-brasero_data_project_get_folder_size (BraseroDataProject *self,
- BraseroFileNode *node)
+goffset
+brasero_data_project_get_folder_sectors (BraseroDataProject *self,
+ BraseroFileNode *node)
{
BraseroDataProjectPrivate *priv;
BraseroFileSize size;
diff --git a/libbrasero-burn/brasero-data-project.h b/libbrasero-burn/brasero-data-project.h
index ac16698..27e4c79 100644
--- a/libbrasero-burn/brasero-data-project.h
+++ b/libbrasero-burn/brasero-data-project.h
@@ -120,12 +120,12 @@ GType brasero_data_project_get_type (void) G_GNUC_CONST;
void
brasero_data_project_reset (BraseroDataProject *project);
-guint
-brasero_data_project_get_size (BraseroDataProject *project);
+goffset
+brasero_data_project_get_sectors (BraseroDataProject *project);
-guint
-brasero_data_project_get_folder_size (BraseroDataProject *project,
- BraseroFileNode *node);
+goffset
+brasero_data_project_get_folder_sectors (BraseroDataProject *project,
+ BraseroFileNode *node);
gboolean
brasero_data_project_get_contents (BraseroDataProject *project,
diff --git a/libbrasero-burn/brasero-data-session.c b/libbrasero-burn/brasero-data-session.c
index c3cf5a2..f8f58d4 100644
--- a/libbrasero-burn/brasero-data-session.c
+++ b/libbrasero-burn/brasero-data-session.c
@@ -216,11 +216,11 @@ brasero_data_session_check_size (BraseroDataSession *self)
BraseroDataSessionPrivate *priv;
gint64 max_sectors = 0;
gint64 medium_sect = 0;
- gint64 sectors = 0;
+ goffset sectors = 0;
priv = BRASERO_DATA_SESSION_PRIVATE (self);
- sectors = brasero_data_project_get_size (BRASERO_DATA_PROJECT (self));
+ sectors = brasero_data_project_get_sectors (BRASERO_DATA_PROJECT (self));
brasero_medium_get_free_space (priv->loaded,
NULL,
&medium_sect);
diff --git a/libbrasero-burn/brasero-track-data-cfg.c b/libbrasero-burn/brasero-track-data-cfg.c
index dcd3e7b..3dd76af 100644
--- a/libbrasero-burn/brasero-track-data-cfg.c
+++ b/libbrasero-burn/brasero-track-data-cfg.c
@@ -704,17 +704,18 @@ brasero_track_data_cfg_get_value (GtkTreeModel *model,
case BRASERO_DATA_TREE_MODEL_PERCENT:
g_value_init (value, G_TYPE_INT);
if (!node->is_imported && !brasero_data_vfs_is_active (BRASERO_DATA_VFS (priv->tree))) {
- gint64 size;
- guint node_size;
+ gint64 sectors;
+ goffset node_sectors;
- size = brasero_data_project_get_size (BRASERO_DATA_PROJECT (priv->tree));
+ sectors = brasero_data_project_get_sectors (BRASERO_DATA_PROJECT (priv->tree));
if (!node->is_file)
- node_size = brasero_data_project_get_folder_size (BRASERO_DATA_PROJECT (priv->tree), node);
+ node_sectors = brasero_data_project_get_folder_sectors (BRASERO_DATA_PROJECT (priv->tree), node);
else
- node_size = BRASERO_FILE_NODE_SECTORS (node);
- if (size)
- g_value_set_int (value, MAX (0, MIN (node_size * 100 / size, 100)));
+ node_sectors = BRASERO_FILE_NODE_SECTORS (node);
+
+ if (sectors)
+ g_value_set_int (value, MAX (0, MIN (node_sectors * 100 / sectors, 100)));
else
g_value_set_int (value, 0);
}
@@ -1570,6 +1571,9 @@ brasero_track_data_cfg_add (BraseroTrackDataCfg *track,
return FALSE;
parent_node = brasero_track_data_cfg_path_to_node (track, parent);
+ if (parent_node && parent_node->is_file)
+ parent_node = parent_node->parent;
+
return (brasero_data_project_add_loading_node (BRASERO_DATA_PROJECT (BRASERO_DATA_PROJECT (priv->tree)), uri, parent_node) != NULL);
}
@@ -1960,13 +1964,13 @@ brasero_track_data_cfg_get_size (BraseroTrack *track,
goffset *block_size)
{
BraseroTrackDataCfgPrivate *priv;
- goffset bytes = 0;
+ goffset sectors = 0;
priv = BRASERO_TRACK_DATA_CFG_PRIVATE (track);
- bytes = brasero_data_project_get_size (BRASERO_DATA_PROJECT (priv->tree));
+ sectors = brasero_data_project_get_sectors (BRASERO_DATA_PROJECT (priv->tree));
if (blocks)
- *blocks = BRASERO_BYTES_TO_SECTORS (bytes, 2048);
+ *blocks = sectors;
if (block_size)
*block_size = 2048;
diff --git a/src/brasero-data-disc.c b/src/brasero-data-disc.c
index a86b113..db274b6 100644
--- a/src/brasero-data-disc.c
+++ b/src/brasero-data-disc.c
@@ -924,7 +924,7 @@ brasero_data_disc_deep_directory_cb (BraseroTrackDataCfg *project,
static gboolean
brasero_data_disc_size_changed (gpointer user_data)
{
- gint64 bytes;
+ goffset sectors;
BraseroDataDisc *self;
BraseroDataDiscPrivate *priv;
@@ -932,9 +932,9 @@ brasero_data_disc_size_changed (gpointer user_data)
priv = BRASERO_DATA_DISC_PRIVATE (self);
brasero_track_get_size (BRASERO_TRACK (priv->project),
- NULL,
- &bytes);
- brasero_disc_size_changed (BRASERO_DISC (self), bytes);
+ §ors,
+ NULL);
+ brasero_disc_size_changed (BRASERO_DISC (self), sectors);
priv->size_changed_id = 0;
return FALSE;
@@ -1482,7 +1482,7 @@ brasero_data_disc_get_status (BraseroDisc *disc,
brasero_status_free (status);
- if (gtk_tree_model_iter_n_children (GTK_TREE_MODEL (priv->project), NULL))
+ if (!gtk_tree_model_iter_n_children (GTK_TREE_MODEL (priv->project), NULL))
return BRASERO_DISC_ERROR_EMPTY_SELECTION;
return BRASERO_DISC_OK;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]