summaryrefslogtreecommitdiff
path: root/src/trg-files-model.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2012-01-04 20:26:19 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2012-01-04 20:26:19 +0000
commita73d164e9fae9059be1b347270f1c7debbc00f3e (patch)
treea91c94a322ead98226d01fa6bbe0c4c79478c627 /src/trg-files-model.c
parent336960c958d0b4ebdc0b54c25aef87fc7cb7b0a8 (diff)
reindent with gnu indent. add keyboard accelerators for view menu, fix toggle filter widget also connected to toggle graph cb. add Lithuanian translation thanks to Algimantas Margevičius via launchpad.
Diffstat (limited to 'src/trg-files-model.c')
-rw-r--r--src/trg-files-model.c173
1 files changed, 111 insertions, 62 deletions
diff --git a/src/trg-files-model.c b/src/trg-files-model.c
index d6770bf..b5dc34e 100644
--- a/src/trg-files-model.c
+++ b/src/trg-files-model.c
@@ -44,8 +44,9 @@ struct _TrgFilesModelPrivate {
gboolean accept;
};
-static void iter_to_row_reference(GtkTreeModel *model, GtkTreeIter *iter,
- GtkTreeRowReference **rr) {
+static void iter_to_row_reference(GtkTreeModel * model, GtkTreeIter * iter,
+ GtkTreeRowReference ** rr)
+{
GtkTreePath *path = gtk_tree_model_get_path(model, iter);
if (*rr)
@@ -55,8 +56,9 @@ static void iter_to_row_reference(GtkTreeModel *model, GtkTreeIter *iter,
gtk_tree_path_free(path);
}
-static void rowref_to_iter(GtkTreeModel *model, GtkTreeRowReference *rr,
- GtkTreeIter *iter) {
+static void rowref_to_iter(GtkTreeModel * model, GtkTreeRowReference * rr,
+ GtkTreeIter * iter)
+{
GtkTreePath *path = gtk_tree_row_reference_get_path(rr);
gtk_tree_model_get_iter(model, iter, path);
gtk_tree_path_free(path);
@@ -67,23 +69,33 @@ struct UpdateParentProgressForeachData {
gint64 increment;
};
-static gboolean trg_files_update_parent_progress_foreachfunc(GtkTreeModel *model,
- GtkTreePath *path, GtkTreeIter *iter, gpointer data) {
- struct UpdateParentProgressForeachData *args = (struct UpdateParentProgressForeachData*) data;
+static gboolean trg_files_update_parent_progress_foreachfunc(GtkTreeModel *
+ model,
+ GtkTreePath *
+ path,
+ GtkTreeIter *
+ iter,
+ gpointer data)
+{
+ struct UpdateParentProgressForeachData *args =
+ (struct UpdateParentProgressForeachData *) data;
GtkTreePath *descendentPath = gtk_tree_model_get_path(model,
- args->descendentIter);
+ args->
+ descendentIter);
if (gtk_tree_path_is_ancestor(path, descendentPath)) {
gint64 lastCompleted, newCompleted, length;
- gtk_tree_model_get(model, iter, FILESCOL_BYTESCOMPLETED, &lastCompleted,
- FILESCOL_SIZE, &length, -1);
+ gtk_tree_model_get(model, iter, FILESCOL_BYTESCOMPLETED,
+ &lastCompleted, FILESCOL_SIZE, &length, -1);
newCompleted = lastCompleted + args->increment;
- gtk_tree_store_set(GTK_TREE_STORE(model), iter, FILESCOL_BYTESCOMPLETED,
- newCompleted, FILESCOL_PROGRESS,
- file_get_progress(length, newCompleted), -1);
+ gtk_tree_store_set(GTK_TREE_STORE(model), iter,
+ FILESCOL_BYTESCOMPLETED, newCompleted,
+ FILESCOL_PROGRESS, file_get_progress(length,
+ newCompleted),
+ -1);
}
@@ -92,7 +104,9 @@ static gboolean trg_files_update_parent_progress_foreachfunc(GtkTreeModel *model
return FALSE;
}
-static void trg_files_update_parent_progress(GtkTreeModel *model, GtkTreeIter *iter, gint64 increment)
+static void trg_files_update_parent_progress(GtkTreeModel * model,
+ GtkTreeIter * iter,
+ gint64 increment)
{
if (increment > 0) {
struct UpdateParentProgressForeachData args;
@@ -100,12 +114,15 @@ static void trg_files_update_parent_progress(GtkTreeModel *model, GtkTreeIter *i
args.increment = increment;
gtk_tree_model_foreach(GTK_TREE_MODEL(model),
- trg_files_update_parent_progress_foreachfunc, &args);
+ trg_files_update_parent_progress_foreachfunc,
+ &args);
}
}
-static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter,
- JsonObject * file, gint id) {
+static void trg_files_model_iter_new(TrgFilesModel * model,
+ GtkTreeIter * iter, JsonObject * file,
+ gint id)
+{
TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model);
gchar **elements = g_strsplit(file_get_name(file), "/", -1);
gchar *existingName;
@@ -117,19 +134,21 @@ static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter,
GtkTreeIter *found = NULL;
if (parentRowRef)
- rowref_to_iter(GTK_TREE_MODEL(model), parentRowRef, &parentIter);
+ rowref_to_iter(GTK_TREE_MODEL(model), parentRowRef,
+ &parentIter);
/* If this is the last component of the path, create a file node. */
if (!elements[i + 1]) {
gtk_tree_store_append(GTK_TREE_STORE(model), iter,
- parentRowRef ? &parentIter : NULL);
+ parentRowRef ? &parentIter : NULL);
gtk_tree_store_set(GTK_TREE_STORE(model), iter, FILESCOL_NAME,
- elements[i], FILESCOL_SIZE, file_get_length(file),
- FILESCOL_ID, id, -1);
+ elements[i], FILESCOL_SIZE,
+ file_get_length(file), FILESCOL_ID, id, -1);
if (parentRowRef)
- trg_files_model_update_parents(GTK_TREE_MODEL(model), iter, FILESCOL_SIZE);
+ trg_files_model_update_parents(GTK_TREE_MODEL(model), iter,
+ FILESCOL_SIZE);
break;
}
@@ -138,45 +157,50 @@ static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter,
* GtkTreeRowReferece *parent. */
if (gtk_tree_model_iter_children(GTK_TREE_MODEL(model), iter,
- parentRowRef ? &parentIter : NULL)) {
+ parentRowRef ? &parentIter :
+ NULL)) {
do {
- gtk_tree_model_get(GTK_TREE_MODEL(model), iter, FILESCOL_NAME,
- &existingName, FILESCOL_ID, &existingId, -1);
+ gtk_tree_model_get(GTK_TREE_MODEL(model), iter,
+ FILESCOL_NAME, &existingName,
+ FILESCOL_ID, &existingId, -1);
- if (existingId == -1 && !g_strcmp0(elements[i], existingName)) {
+ if (existingId == -1
+ && !g_strcmp0(elements[i], existingName)) {
found = iter;
iter_to_row_reference(GTK_TREE_MODEL(model), iter,
- &parentRowRef);
+ &parentRowRef);
}
g_free(existingName);
if (found)
break;
- } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(model), iter));
+ } while (gtk_tree_model_iter_next
+ (GTK_TREE_MODEL(model), iter));
}
if (!found) {
GValue gvalue = { 0 };
gtk_tree_store_append(GTK_TREE_STORE(model), iter,
- parentRowRef ? &parentIter : NULL);
+ parentRowRef ? &parentIter : NULL);
gtk_tree_store_set(GTK_TREE_STORE(model), iter,
- FILESCOL_PRIORITY, TR_PRI_UNSET,
- FILESCOL_NAME, elements[i], -1);
+ FILESCOL_PRIORITY, TR_PRI_UNSET,
+ FILESCOL_NAME, elements[i], -1);
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);
+ gtk_tree_store_set_value(GTK_TREE_STORE(model), iter,
+ FILESCOL_ID, &gvalue);
memset(&gvalue, 0, sizeof(GValue));
g_value_init(&gvalue, G_TYPE_INT);
g_value_set_int(&gvalue, TR_PRI_UNSET);
gtk_tree_store_set_value(GTK_TREE_STORE(model), iter,
- FILESCOL_PRIORITY, &gvalue);
+ FILESCOL_PRIORITY, &gvalue);
- iter_to_row_reference(GTK_TREE_MODEL(model), iter, &parentRowRef);
+ iter_to_row_reference(GTK_TREE_MODEL(model), iter,
+ &parentRowRef);
}
}
@@ -187,24 +211,32 @@ static void trg_files_model_iter_new(TrgFilesModel * model, GtkTreeIter * iter,
priv->n_items++;
}
-void trg_files_model_set_accept(TrgFilesModel * model, gboolean accept) {
+void trg_files_model_set_accept(TrgFilesModel * model, gboolean accept)
+{
TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model);
priv->accept = accept;
}
static void trg_files_model_iter_update(TrgFilesModel * model,
- GtkTreeIter * filesIter, gboolean isFirst, JsonObject * file,
- JsonArray * wantedArray, JsonArray * prioritiesArray, int id) {
+ GtkTreeIter * filesIter,
+ gboolean isFirst,
+ JsonObject * file,
+ JsonArray * wantedArray,
+ JsonArray * prioritiesArray,
+ int id)
+{
TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model);
gint64 fileLength = file_get_length(file);
gint64 fileCompleted = file_get_bytes_completed(file);
gint64 increment;
- gboolean wanted = json_node_get_int(json_array_get_element(wantedArray, id))
- == 1;
- gint priority = (gint)json_node_get_int(
- json_array_get_element(prioritiesArray, id));
+ gboolean wanted =
+ json_node_get_int(json_array_get_element(wantedArray, id))
+ == 1;
+ gint priority =
+ (gint)
+ json_node_get_int(json_array_get_element(prioritiesArray, id));
gdouble progress = file_get_progress(fileLength, fileCompleted);
if (isFirst) {
@@ -212,30 +244,40 @@ static void trg_files_model_iter_update(TrgFilesModel * model,
} else {
gint64 lastCompleted;
gtk_tree_model_get(GTK_TREE_MODEL(model), filesIter,
- FILESCOL_BYTESCOMPLETED, &lastCompleted, -1);
+ FILESCOL_BYTESCOMPLETED, &lastCompleted, -1);
increment = fileCompleted - lastCompleted;
}
gtk_tree_store_set(GTK_TREE_STORE(model), filesIter, FILESCOL_PROGRESS,
- progress, FILESCOL_BYTESCOMPLETED, fileCompleted, -1);
+ progress, FILESCOL_BYTESCOMPLETED, fileCompleted,
+ -1);
- trg_files_update_parent_progress(GTK_TREE_MODEL(model), filesIter, increment);
+ trg_files_update_parent_progress(GTK_TREE_MODEL(model), filesIter,
+ increment);
if (priv->accept)
- gtk_tree_store_set(GTK_TREE_STORE(model), filesIter, FILESCOL_WANTED,
- wanted, FILESCOL_PRIORITY, priority, -1);
+ gtk_tree_store_set(GTK_TREE_STORE(model), filesIter,
+ FILESCOL_WANTED, wanted, FILESCOL_PRIORITY,
+ priority, -1);
if (isFirst) {
- trg_files_tree_model_propogateChangeUp(GTK_TREE_MODEL(model), filesIter, FILESCOL_PRIORITY, priority);
- trg_files_tree_model_propogateChangeUp(GTK_TREE_MODEL(model), filesIter, FILESCOL_WANTED, wanted);
+ trg_files_tree_model_propogateChangeUp(GTK_TREE_MODEL(model),
+ filesIter,
+ FILESCOL_PRIORITY,
+ priority);
+ trg_files_tree_model_propogateChangeUp(GTK_TREE_MODEL(model),
+ filesIter, FILESCOL_WANTED,
+ wanted);
}
}
-static void trg_files_model_class_init(TrgFilesModelClass * klass) {
+static void trg_files_model_class_init(TrgFilesModelClass * klass)
+{
g_type_class_add_private(klass, sizeof(TrgFilesModelPrivate));
}
-static void trg_files_model_init(TrgFilesModel * self) {
+static void trg_files_model_init(TrgFilesModel * self)
+{
TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(self);
GType column_types[FILESCOL_COLUMNS];
@@ -250,11 +292,13 @@ static void trg_files_model_init(TrgFilesModel * self) {
column_types[FILESCOL_BYTESCOMPLETED] = G_TYPE_INT64;
gtk_tree_store_set_column_types(GTK_TREE_STORE(self), FILESCOL_COLUMNS,
- column_types);
+ column_types);
}
gboolean trg_files_model_update_foreach(GtkListStore * model,
- GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, GList * files) {
+ GtkTreePath * path G_GNUC_UNUSED,
+ GtkTreeIter * iter, GList * files)
+{
TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model);
JsonObject *file;
gint id;
@@ -263,15 +307,17 @@ gboolean trg_files_model_update_foreach(GtkListStore * model,
if (id >= 0) {
file = json_node_get_object(g_list_nth_data(files, id));
- trg_files_model_iter_update(TRG_FILES_MODEL(model), iter, FALSE, file,
- priv->wanted, priv->priorities, id);
+ trg_files_model_iter_update(TRG_FILES_MODEL(model), iter, FALSE,
+ file, priv->wanted, priv->priorities,
+ id);
}
return FALSE;
}
void trg_files_model_update(TrgFilesModel * model, gint64 updateSerial,
- JsonObject * t, gint mode) {
+ JsonObject * t, gint mode)
+{
TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model);
GList *filesList, *li;
GtkTreeIter filesIter;
@@ -292,21 +338,22 @@ void trg_files_model_update(TrgFilesModel * model, gint64 updateSerial,
trg_files_model_iter_new(model, &filesIter, file, j);
trg_files_model_iter_update(model, &filesIter, TRUE, file,
- priv->wanted, priv->priorities, j);
+ priv->wanted, priv->priorities, j);
j++;
}
} else {
guint n_updates = g_list_length(filesList);
gtk_tree_model_foreach(GTK_TREE_MODEL(model),
- (GtkTreeModelForeachFunc) trg_files_model_update_foreach,
- filesList);
+ (GtkTreeModelForeachFunc)
+ trg_files_model_update_foreach, filesList);
if (n_updates > priv->n_items) {
gint n_new = n_updates - priv->n_items;
for (j = n_updates - n_new; j < n_updates; j++) {
file = json_node_get_object(g_list_nth_data(filesList, j));
trg_files_model_iter_new(model, &filesIter, file, j);
trg_files_model_iter_update(model, &filesIter, TRUE, file,
- priv->wanted, priv->priorities, j);
+ priv->wanted, priv->priorities,
+ j);
}
}
}
@@ -314,11 +361,13 @@ void trg_files_model_update(TrgFilesModel * model, gint64 updateSerial,
g_list_free(filesList);
}
-gint64 trg_files_model_get_torrent_id(TrgFilesModel * model) {
+gint64 trg_files_model_get_torrent_id(TrgFilesModel * model)
+{
TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(model);
return priv->torrentId;
}
-TrgFilesModel *trg_files_model_new(void) {
+TrgFilesModel *trg_files_model_new(void)
+{
return g_object_new(TRG_TYPE_FILES_MODEL, NULL);
}