summaryrefslogtreecommitdiff
path: root/src/trg-files-model.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-12-21 01:58:55 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-12-21 01:58:55 +0000
commit1db7752cc705eea685f4eeccb243da571afbf466 (patch)
treed60f16046200c828494e86e81842840cca20daa7 /src/trg-files-model.c
parent03cd50289ea357e9ca6d60920bf6babc50fa0f57 (diff)
fix int/int64 mismatch crash and don't update if increment is < 1
Diffstat (limited to 'src/trg-files-model.c')
-rw-r--r--src/trg-files-model.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/trg-files-model.c b/src/trg-files-model.c
index 1fe9e9c..3da542a 100644
--- a/src/trg-files-model.c
+++ b/src/trg-files-model.c
@@ -89,7 +89,7 @@ static gboolean trg_files_update_all_parents(GtkTreeModel *model,
GtkTreePath *descendentPath = gtk_tree_model_get_path(model,
args->descendentIter);
- if (gtk_tree_path_is_ancestor(path, descendentPath)) {
+ if (args->increment > 0 && gtk_tree_path_is_ancestor(path, descendentPath)) {
gint64 lastCompleted, newCompleted, length;
gtk_tree_model_get(model, iter, FILESCOL_BYTESCOMPLETED, &lastCompleted,
FILESCOL_SIZE, &length, -1);
@@ -159,17 +159,19 @@ static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter,
}
if (!found) {
- GValue idValue = { 0 };
+ GValue gvalue = { 0 };
gtk_tree_store_append(GTK_TREE_STORE(model), iter,
parentRowRef ? &parentIter : NULL);
gtk_tree_store_set(GTK_TREE_STORE(model), iter, FILESCOL_NAME, elements[i], -1);
- g_value_init(&idValue, G_TYPE_INT);
- g_value_set_int(&idValue, -1);
- gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, FILESCOL_ID, &idValue);
- g_value_set_int(&idValue, -2);
- gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, FILESCOL_PRIORITY, &idValue);
+ g_value_init(&gvalue, G_TYPE_INT);
+ g_value_set_int(&gvalue, -1);
+ gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, FILESCOL_ID, &gvalue);
+ memset(&gvalue, 0, sizeof(GValue));
+ g_value_init(&gvalue, G_TYPE_INT64);
+ g_value_set_int64(&gvalue, -2);
+ gtk_tree_store_set_value(GTK_TREE_STORE(model), iter, FILESCOL_PRIORITY, &gvalue);
iter_to_row_reference(GTK_TREE_MODEL(model), iter, &parentRowRef);
}