[gitg] Trailing spaces cleanup
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gitg] Trailing spaces cleanup
- Date: Sat, 9 Jan 2010 19:29:06 +0000 (UTC)
commit ec0bae0231b59d007fa1db89dc3829b4388bff70
Author: Jesse van den Kieboom <jessevdk gnome org>
Date: Sat Jan 9 17:25:14 2010 +0100
Trailing spaces cleanup
gitg/gitg-branch-actions.c | 308 +++++++++++++-------------
gitg/gitg-cell-renderer-path.c | 92 ++++----
gitg/gitg-cell-renderer-path.h | 2 +-
gitg/gitg-changed-file.c | 44 ++--
gitg/gitg-changed-file.h | 6 +-
gitg/gitg-color.c | 10 +-
gitg/gitg-commit-view.c | 398 +++++++++++++++++-----------------
gitg/gitg-commit-view.h | 2 +-
gitg/gitg-commit.c | 264 +++++++++++-----------
gitg/gitg-commit.h | 4 +-
gitg/gitg-config.c | 42 ++--
gitg/gitg-config.h | 2 +-
gitg/gitg-data-binding.c | 44 ++--
gitg/gitg-diff-view.c | 220 ++++++++++----------
gitg/gitg-diff-view.h | 4 +-
gitg/gitg-dirs.c | 12 +-
gitg/gitg-dnd.c | 88 ++++----
gitg/gitg-label-renderer.c | 68 +++---
gitg/gitg-lane.c | 12 +-
gitg/gitg-lanes.c | 112 +++++-----
gitg/gitg-lanes.h | 2 +-
gitg/gitg-preferences-dialog.c | 42 ++--
gitg/gitg-preferences-dialog.h | 2 +-
gitg/gitg-preferences.c | 70 +++---
gitg/gitg-preferences.h | 2 +-
gitg/gitg-ref.c | 36 ++--
gitg/gitg-repository-dialog.c | 216 +++++++++---------
gitg/gitg-repository-dialog.h | 2 +-
gitg/gitg-repository.c | 362 +++++++++++++++---------------
gitg/gitg-repository.h | 4 +-
gitg/gitg-revision-tree-store.c | 18 +-
gitg/gitg-revision-tree-store.h | 2 +-
gitg/gitg-revision-tree-view.c | 200 +++++++++---------
gitg/gitg-revision-tree-view.h | 2 +-
gitg/gitg-revision-view.c | 208 +++++++++---------
gitg/gitg-revision-view.h | 4 +-
gitg/gitg-revision.c | 34 ++--
gitg/gitg-runner.c | 136 ++++++------
gitg/gitg-runner.h | 4 +-
gitg/gitg-settings.c | 42 ++--
gitg/gitg-settings.h | 2 +-
gitg/gitg-spinner.c | 18 +-
gitg/gitg-spinner.h | 4 +-
gitg/gitg-utils.c | 124 ++++++------
gitg/gitg-window.c | 458 +++++++++++++++++++-------------------
gitg/gitg-window.h | 2 +-
gitg/gitg.c | 40 ++--
47 files changed, 1885 insertions(+), 1885 deletions(-)
---
diff --git a/gitg/gitg-branch-actions.c b/gitg/gitg-branch-actions.c
index 8d4cd32..7f83bee 100644
--- a/gitg/gitg-branch-actions.c
+++ b/gitg/gitg-branch-actions.c
@@ -17,12 +17,12 @@ typedef struct
{
GitgWindow *window;
GitgRunner *runner;
-
+
ProgressCallback callback;
gpointer callback_data;
-
+
guint timeout_id;
-
+
GtkDialog *dialog;
GtkProgressBar *progress;
} ProgressInfo;
@@ -47,13 +47,13 @@ parse_valist(va_list ap)
gchar const *a;
gchar const **ret = NULL;
guint num = 0;
-
+
while ((a = va_arg(ap, gchar const *)) != NULL)
{
ret = g_realloc(ret, sizeof(gchar const *) * (++num + 1));
ret[num - 1] = a;
}
-
+
ret[num] = NULL;
return ret;
}
@@ -62,7 +62,7 @@ static void
on_progress_end (GitgRunner *runner, gboolean cancelled, ProgressInfo *info)
{
GitgProgress progress;
-
+
if (cancelled)
{
progress = GITG_PROGRESS_CANCELLED;
@@ -80,7 +80,7 @@ on_progress_end (GitgRunner *runner, gboolean cancelled, ProgressInfo *info)
ProgressCallback callback = info->callback;
gpointer data = info->callback_data;
free_progress_info (info);
-
+
callback (window, progress, data);
}
@@ -106,13 +106,13 @@ run_progress (GitgWindow *window,
...)
{
va_list ap;
-
+
// Create runner
va_start (ap, callback_data);
-
+
GitgRunner *runner = gitg_runner_new (1000);
gchar const **argv = parse_valist (ap);
-
+
if (!gitg_repository_run_command (gitg_window_get_repository (window),
runner,
argv,
@@ -120,15 +120,15 @@ run_progress (GitgWindow *window,
{
g_free (argv);
g_object_unref (runner);
-
- callback (window, GITG_PROGRESS_ERROR, callback_data);
+
+ callback (window, GITG_PROGRESS_ERROR, callback_data);
return NULL;
}
-
+
g_free (argv);
-
- // Create dialog to show progress
+
+ // Create dialog to show progress
GtkDialogFlags flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT;
GtkWidget *dlg;
@@ -149,28 +149,28 @@ run_progress (GitgWindow *window,
GtkWidget *area = gtk_dialog_get_content_area (GTK_DIALOG (dlg));
GtkWidget *progress = gtk_progress_bar_new ();
gtk_widget_show (progress);
-
+
gtk_box_pack_start (GTK_BOX (area), progress, FALSE, FALSE, 0);
-
+
gtk_widget_show (dlg);
-
+
ProgressInfo *info = g_slice_new0 (ProgressInfo);
-
+
info->dialog = GTK_DIALOG (dlg);
info->progress = GTK_PROGRESS_BAR (progress);
info->callback = callback;
info->callback_data = callback_data;
info->window = window;
info->runner = g_object_ref (runner);
-
+
info->timeout_id = g_timeout_add (100, (GSourceFunc)on_progress_timeout, info);
-
+
g_signal_connect (dlg, "response", G_CALLBACK (on_progress_response), info);
g_signal_connect (runner, "end-loading", G_CALLBACK (on_progress_end), info);
-
+
return runner;
}
-
+
static gint
message_dialog (GitgWindow *window,
GtkMessageType type,
@@ -181,11 +181,11 @@ message_dialog (GitgWindow *window,
{
GtkWidget *dlg;
va_list ap;
-
+
va_start (ap, accept);
gchar *prim = g_strdup_vprintf (primary, ap);
va_end (ap);
-
+
GtkDialogFlags flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT;
dlg = gtk_message_dialog_new (GTK_WINDOW (window),
flags,
@@ -195,21 +195,21 @@ message_dialog (GitgWindow *window,
prim);
g_free (prim);
-
+
gtk_window_set_title (GTK_WINDOW (dlg), _("gitg"));
-
+
if (secondary)
{
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg),
"%s",
secondary);
}
-
+
GtkWidget *button;
-
+
button = gtk_button_new_from_stock (accept ? GTK_STOCK_CANCEL : GTK_STOCK_OK);
gtk_widget_show (button);
-
+
gtk_dialog_add_action_widget (GTK_DIALOG (dlg),
button,
accept ? GTK_RESPONSE_CANCEL : GTK_RESPONSE_ACCEPT);
@@ -218,11 +218,11 @@ message_dialog (GitgWindow *window,
{
button = gtk_button_new_with_label (accept);
gtk_widget_show (button);
-
+
GtkWidget *image = gtk_image_new_from_stock (GTK_STOCK_OK,
GTK_ICON_SIZE_BUTTON);
gtk_widget_show (image);
-
+
gtk_button_set_image (GTK_BUTTON (button), image);
gtk_dialog_add_action_widget (GTK_DIALOG (dlg),
button,
@@ -231,9 +231,9 @@ message_dialog (GitgWindow *window,
gint ret = gtk_dialog_run (GTK_DIALOG (dlg));
gtk_widget_destroy (dlg);
-
+
return ret;
-}
+}
static GitgRunner *
remove_local_branch (GitgWindow *window,
@@ -277,7 +277,7 @@ remove_local_branch (GitgWindow *window,
return NULL;
}
-
+
return NULL;
}
@@ -299,7 +299,7 @@ on_remove_remote_result (GitgWindow *window, GitgProgress progress, gpointer dat
{
gitg_repository_reload (gitg_window_get_repository (window));
}
-
+
gitg_ref_free (ref);
}
@@ -315,7 +315,7 @@ remove_remote_branch (GitgWindow *window,
_("This permanently removes the remote branch."),
_("Remove remote branch"),
name);
-
+
if (r != GTK_RESPONSE_ACCEPT)
{
return NULL;
@@ -324,14 +324,14 @@ remove_remote_branch (GitgWindow *window,
gchar *local = gitg_ref_get_local_name (ref);
gchar *rm = g_strconcat (":", local, NULL);
g_free (local);
-
+
GitgRunner *ret;
gchar *message = g_strdup_printf ("Removing remote branch `%s'", name);
-
+
ret = run_progress (window,
_("Remove branch"),
message,
- on_remove_remote_result,
+ on_remove_remote_result,
gitg_ref_copy (ref),
"push",
gitg_ref_get_prefix (ref),
@@ -346,7 +346,7 @@ static gchar *
get_stash_refspec (GitgRepository *repository, GitgRef *stash)
{
gchar **out;
-
+
out = gitg_repository_command_with_outputv (repository,
NULL,
"log",
@@ -359,14 +359,14 @@ get_stash_refspec (GitgRepository *repository, GitgRef *stash)
gchar **ptr = out;
gchar *sha1 = gitg_utils_hash_to_sha1_new (gitg_ref_get_hash (stash));
gchar *ret = NULL;
-
+
while (ptr && *ptr)
{
if (g_str_has_prefix (*ptr, sha1))
{
gchar *start = *ptr + HASH_SHA_SIZE + 1;
gchar *end = strchr (start, ':');
-
+
if (end)
{
ret = g_strndup (start, end - start);
@@ -375,10 +375,10 @@ get_stash_refspec (GitgRepository *repository, GitgRef *stash)
}
ptr++;
}
-
+
g_strfreev (out);
g_free (sha1);
-
+
return ret;
}
@@ -390,15 +390,15 @@ remove_stash (GitgWindow *window, GitgRef *ref)
_("Are you sure you want to remove this stash item?"),
_("This permanently removes the stash item"),
_("Remove stash"));
-
+
if (r != GTK_RESPONSE_ACCEPT)
{
return NULL;
}
-
+
GitgRepository *repository = gitg_window_get_repository (window);
gchar *spec = get_stash_refspec (repository, ref);
-
+
if (!spec)
{
return NULL;
@@ -460,9 +460,9 @@ remove_tag (GitgWindow *window, GitgRef *ref)
{
return NULL;
}
-
+
GitgRepository *repository = gitg_window_get_repository (window);
-
+
if (!gitg_repository_commandv (repository,
NULL,
"tag",
@@ -493,10 +493,10 @@ gitg_branch_actions_remove (GitgWindow *window,
{
g_return_val_if_fail (GITG_IS_WINDOW (window), NULL);
g_return_val_if_fail (ref != NULL, NULL);
-
+
GitgRef *cp = gitg_ref_copy (ref);
GitgRunner *ret = NULL;
-
+
switch (gitg_ref_get_ref_type (cp))
{
case GITG_REF_TYPE_BRANCH:
@@ -514,7 +514,7 @@ gitg_branch_actions_remove (GitgWindow *window,
default:
break;
}
-
+
gitg_ref_free (cp);
return ret;
}
@@ -562,7 +562,7 @@ rename_branch (GitgWindow *window,
return NULL;
}
-
+
return NULL;
}
@@ -570,7 +570,7 @@ static gchar *
rename_dialog (GitgWindow *window, const gchar *oldname)
{
GtkWidget *dlg;
-
+
GtkDialogFlags flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT;
dlg = gtk_dialog_new_with_buttons ("gitg",
GTK_WINDOW (window),
@@ -587,12 +587,12 @@ rename_dialog (GitgWindow *window, const gchar *oldname)
gtk_entry_set_text (GTK_ENTRY (entry), oldname);
gtk_entry_set_width_chars (GTK_ENTRY (entry), 25);
gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
-
+
gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (box), entry, TRUE, TRUE, 0);
gtk_widget_show_all (box);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), box, TRUE, TRUE, 12);
-
+
gint ret = gtk_dialog_run (GTK_DIALOG (dlg));
gchar *newname = NULL;
@@ -606,7 +606,7 @@ rename_dialog (GitgWindow *window, const gchar *oldname)
}
gtk_widget_destroy (dlg);
-
+
return newname;
}
@@ -616,7 +616,7 @@ gitg_branch_actions_rename (GitgWindow *window,
{
g_return_val_if_fail (GITG_IS_WINDOW (window), NULL);
g_return_val_if_fail (ref != NULL, NULL);
-
+
if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_BRANCH)
{
gchar *newname = rename_dialog (window, gitg_ref_get_shortname (ref));
@@ -645,15 +645,15 @@ static void
update_buffer (GitgRunner *runner, gchar **lines, GString *buffer)
{
gchar **ptr = lines;
-
+
while (ptr && *ptr)
{
if (buffer->len != 0)
{
g_string_append_c (buffer, '\n');
}
-
- g_string_append (buffer, *ptr);
+
+ g_string_append (buffer, *ptr);
++ptr;
}
}
@@ -685,9 +685,9 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
g_signal_connect (runner, "begin-loading", G_CALLBACK (reset_buffer), buffer);
g_signal_connect (runner, "update", G_CALLBACK (update_buffer), buffer);
-
+
gchar const *secondary;
-
+
if (storeref)
{
secondary = _("Do you want to temporarily stash these changes?");
@@ -696,7 +696,7 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
{
secondary = _("Do you want to stash and reapply these changes?");
}
-
+
gint r = message_dialog (window,
GTK_MESSAGE_QUESTION,
_("You have uncommited changes in your current working tree"),
@@ -708,13 +708,13 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
ret = FALSE;
goto cleanup;
}
-
+
gitg_repository_run_commandv (repository, runner, NULL,
"log", "--no-color", "--abbrev-commit",
"--pretty=oneline", "-n", "1", "HEAD", NULL);
GitgRef *working = gitg_repository_get_current_working_ref (repository);
-
+
if (working)
{
msg = g_strconcat (gitg_ref_get_shortname (working), ": ", buffer->str, NULL);
@@ -725,9 +725,9 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
}
// Create tree object of the current index
- gitg_repository_run_commandv (repository, runner, NULL,
+ gitg_repository_run_commandv (repository, runner, NULL,
"write-tree", NULL);
-
+
if (buffer->len == 0)
{
ret = FALSE;
@@ -735,10 +735,10 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
goto cleanup;
}
-
+
tree = g_strndup (buffer->str, buffer->len);
head = gitg_repository_parse_head (repository);
-
+
gchar *idxmsg = g_strconcat ("index on ", msg, NULL);
gitg_repository_run_command_with_inputv (repository, runner, idxmsg, NULL,
"commit-tree", tree, "-p", head, NULL);
@@ -752,13 +752,13 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
goto cleanup;
}
-
+
commit = g_strndup (buffer->str, buffer->len);
-
+
// Working tree
gchar *tmpname = NULL;
gint fd = g_file_open_tmp ("gitg-temp-index-XXXXXX", &tmpname, NULL);
-
+
if (fd == -1)
{
ret = FALSE;
@@ -766,17 +766,17 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
goto cleanup;
}
-
+
GFile *customindex = g_file_new_for_path (tmpname);
-
+
close (fd);
-
- gchar const *gitdir = gitg_repository_get_path (repository);
+
+ gchar const *gitdir = gitg_repository_get_path (repository);
gchar *indexpath = g_build_filename (gitdir, ".git", "index", NULL);
GFile *index = g_file_new_for_path (indexpath);
g_free (indexpath);
-
+
gboolean copied = g_file_copy (index, customindex, G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, NULL);
g_object_unref (index);
@@ -788,30 +788,30 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
showerror = TRUE;
goto cleanup;
}
-
+
tmpname = g_file_get_path (customindex);
gitg_runner_add_environment (runner, "GIT_INDEX_FILE", tmpname);
g_free (tmpname);
-
+
gboolean writestash;
-
+
writestash = gitg_repository_run_commandv (repository, runner, NULL,
"read-tree", "-m", tree, NULL) &&
gitg_repository_run_commandv (repository, runner, NULL,
"add", "-u", NULL) &&
gitg_repository_run_commandv (repository, runner, NULL,
"write-tree", NULL);
-
+
g_file_delete (customindex, NULL, NULL);
g_object_unref (customindex);
-
+
gitg_runner_set_environment (runner, NULL);
-
+
if (!writestash)
{
ret = FALSE;
showerror = TRUE;
-
+
goto cleanup;
}
@@ -823,14 +823,14 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
"-p", head,
"-p", commit, NULL);
g_free (stashtree);
-
+
if (buffer->len == 0)
{
g_free (reason);
ret = FALSE;
showerror = TRUE;
-
+
goto cleanup;
}
@@ -858,7 +858,7 @@ stash_changes_real (GitgWindow *window, gchar **ref, gboolean storeref)
gitg_repository_run_commandv (repository, runner, NULL,
"update-ref", "-m", reason,
"refs/stash", rref, NULL);
-
+
g_free (rref);
gitg_repository_run_commandv (repository, runner, NULL,
@@ -872,7 +872,7 @@ cleanup:
g_free (tree);
g_free (head);
g_free (msg);
-
+
if (showerror)
{
message_dialog (window,
@@ -881,7 +881,7 @@ cleanup:
NULL,
NULL);
}
-
+
return ret;
}
@@ -924,9 +924,9 @@ checkout_local_branch (GitgWindow *window,
{
return FALSE;
}
-
+
gchar const *name = gitg_ref_get_shortname (ref);
-
+
if (!checkout_local_branch_real (window, ref))
{
message_dialog (window,
@@ -952,12 +952,12 @@ checkout_remote_branch (GitgWindow *window,
{
return FALSE;
}
-
+
GitgRepository *repository = gitg_window_get_repository (window);
gchar const *name = gitg_ref_get_shortname (ref);
gchar *local = gitg_ref_get_local_name (ref);
gboolean ret;
-
+
if (!gitg_repository_commandv (repository,
NULL,
"checkout",
@@ -981,7 +981,7 @@ checkout_remote_branch (GitgWindow *window,
gitg_repository_load (repository, 1, (gchar const **)&local, NULL);
ret = TRUE;
}
-
+
g_free (local);
return ret;
}
@@ -994,11 +994,11 @@ checkout_tag (GitgWindow *window,
{
return FALSE;
}
-
+
GitgRepository *repository = gitg_window_get_repository (window);
gchar const *name = gitg_ref_get_shortname (ref);
gboolean ret;
-
+
if (!gitg_repository_commandv (repository,
NULL,
"checkout",
@@ -1033,7 +1033,7 @@ gitg_branch_actions_checkout (GitgWindow *window,
GitgRef *cp = gitg_ref_copy (ref);
gboolean ret = FALSE;
-
+
switch (gitg_ref_get_ref_type (cp))
{
case GITG_REF_TYPE_BRANCH:
@@ -1048,7 +1048,7 @@ gitg_branch_actions_checkout (GitgWindow *window,
default:
break;
}
-
+
gitg_ref_free (cp);
return ret;
}
@@ -1059,7 +1059,7 @@ typedef struct
GitgRef *source;
GitgRef *dest;
-
+
gchar *stashcommit;
GitgRef *head;
} RefInfo;
@@ -1068,10 +1068,10 @@ static RefInfo *
ref_info_new (GitgRef *source, GitgRef *dest)
{
RefInfo *ret = g_slice_new0 (RefInfo);
-
+
ret->source = gitg_ref_copy (source);
ret->dest = gitg_ref_copy (dest);
-
+
return ret;
}
@@ -1083,7 +1083,7 @@ ref_info_free (RefInfo *info)
g_free (info->stashcommit);
gitg_ref_free (info->head);
-
+
g_slice_free (RefInfo, info);
}
@@ -1097,7 +1097,7 @@ on_merge_rebase_result (GitgWindow *window,
if (progress == GITG_PROGRESS_ERROR)
{
gchar const *message;
-
+
if (info->rebase)
{
message = _("Failed to rebase %s branch <%s> onto %s branch <%s>");
@@ -1125,7 +1125,7 @@ on_merge_rebase_result (GitgWindow *window,
if (!checkout_local_branch_real (window, info->head))
{
gchar const *message = NULL;
-
+
if (info->stashcommit)
{
gitg_repository_commandv (repository, NULL,
@@ -1133,7 +1133,7 @@ on_merge_rebase_result (GitgWindow *window,
"refs/stash", info->stashcommit, NULL);
message = _("The stashed changes have been stored to be reapplied manually");
}
-
+
message_dialog (window,
GTK_MESSAGE_ERROR,
_("Failed to checkout previously checked out branch"),
@@ -1194,7 +1194,7 @@ gitg_branch_actions_merge (GitgWindow *window,
g_free (message);
return NULL;
}
-
+
g_free (message);
GitgRepository *repository = gitg_window_get_repository (window);
gchar *stashcommit = NULL;
@@ -1203,14 +1203,14 @@ gitg_branch_actions_merge (GitgWindow *window,
{
return NULL;
}
-
+
GitgRef *head = gitg_repository_get_current_working_ref (repository);
-
+
// First checkout the correct branch on which to merge, e.g. dest
if (!gitg_repository_commandv (repository, NULL, "checkout", gitg_ref_get_shortname (dest), NULL))
{
g_free (stashcommit);
-
+
message_dialog (window,
GTK_MESSAGE_ERROR,
_("Failed to checkout local branch <%s>"),
@@ -1225,7 +1225,7 @@ gitg_branch_actions_merge (GitgWindow *window,
gitg_ref_get_shortname (source),
gitg_ref_get_ref_type (dest) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"),
gitg_ref_get_shortname (dest));
-
+
GitgRunner *ret;
RefInfo *info = ref_info_new (source, dest);
info->stashcommit = stashcommit;
@@ -1240,9 +1240,9 @@ gitg_branch_actions_merge (GitgWindow *window,
"merge",
gitg_ref_get_shortname (source),
NULL);
-
+
g_free (message);
-
+
return ret;
}
@@ -1271,7 +1271,7 @@ gitg_branch_actions_rebase (GitgWindow *window,
g_free (message);
return NULL;
}
-
+
g_free (message);
GitgRepository *repository = gitg_window_get_repository (window);
gchar *stashcommit = NULL;
@@ -1281,10 +1281,10 @@ gitg_branch_actions_rebase (GitgWindow *window,
// Check if destination is current HEAD
gchar *head = gitg_repository_parse_head (repository);
Hash hash;
-
+
gitg_utils_sha1_to_hash (head, hash);
g_free (head);
-
+
if (gitg_utils_hash_equal (hash, gitg_ref_get_hash (dest)))
{
message_dialog (window,
@@ -1308,13 +1308,13 @@ gitg_branch_actions_rebase (GitgWindow *window,
gitg_ref_get_shortname (source),
gitg_ref_get_ref_type (dest) == GITG_REF_TYPE_BRANCH ? _("local") : _("remote"),
gitg_ref_get_shortname (dest));
-
+
GitgRunner *ret;
RefInfo *info = ref_info_new (source, dest);
info->stashcommit = stashcommit;
info->head = gitg_ref_copy (gitg_repository_get_current_working_ref (repository));
info->rebase = TRUE;
-
+
ret = run_progress (window,
_("Rebase"),
message,
@@ -1324,10 +1324,10 @@ gitg_branch_actions_rebase (GitgWindow *window,
merge_head,
gitg_ref_get_shortname (source),
NULL);
-
+
g_free (message);
g_free (merge_head);
-
+
return ret;
}
@@ -1363,14 +1363,14 @@ gitg_branch_actions_push (GitgWindow *window,
{
g_return_val_if_fail (GITG_IS_WINDOW (window), NULL);
g_return_val_if_fail (dest != NULL, NULL);
- g_return_val_if_fail (source != NULL, NULL);
+ g_return_val_if_fail (source != NULL, NULL);
g_return_val_if_fail (gitg_ref_get_ref_type (source) == GITG_REF_TYPE_BRANCH, NULL);
g_return_val_if_fail (gitg_ref_get_ref_type (dest) == GITG_REF_TYPE_REMOTE, NULL);
-
+
gchar *message = g_strdup_printf (_("Are you sure you want to push <%s> to <%s>?"),
gitg_ref_get_shortname (source),
gitg_ref_get_shortname (dest));
-
+
if (message_dialog (window,
GTK_MESSAGE_QUESTION,
_("Push"),
@@ -1380,35 +1380,35 @@ gitg_branch_actions_push (GitgWindow *window,
g_free (message);
return NULL;
}
-
+
g_free (message);
gchar const *prefix = gitg_ref_get_prefix (dest);
gchar *local = gitg_ref_get_local_name (dest);
gchar const *name = gitg_ref_get_shortname (source);
-
+
gchar *spec = g_strconcat (name, ":", local, NULL);
message = g_strdup_printf (_("Pushing local branch <%s> to remote branch <%s>"),
gitg_ref_get_shortname (source),
gitg_ref_get_shortname (dest));
-
+
GitgRunner *ret;
RefInfo *info = ref_info_new (source, dest);
-
+
ret = run_progress (window,
_("Push"),
message,
- on_push_result,
+ on_push_result,
info,
"push",
prefix,
spec,
NULL);
-
+
g_free (message);
g_free (local);
g_free (spec);
-
+
return ret;
}
@@ -1420,13 +1420,13 @@ gitg_branch_actions_push_remote (GitgWindow *window,
{
g_return_val_if_fail (GITG_IS_WINDOW (window), NULL);
g_return_val_if_fail (remote != NULL, NULL);
- g_return_val_if_fail (source != NULL, NULL);
+ g_return_val_if_fail (source != NULL, NULL);
g_return_val_if_fail (gitg_ref_get_ref_type (source) == GITG_REF_TYPE_BRANCH, NULL);
-
+
gchar *message = g_strdup_printf (_("Are you sure you want to push <%s> to remote <%s/%s>?"),
gitg_ref_get_shortname (source),
remote, branch);
-
+
if (message_dialog (window,
GTK_MESSAGE_QUESTION,
_("Push"),
@@ -1436,7 +1436,7 @@ gitg_branch_actions_push_remote (GitgWindow *window,
g_free (message);
return NULL;
}
-
+
g_free (message);
gchar const *name = gitg_ref_get_shortname (source);
@@ -1444,7 +1444,7 @@ gitg_branch_actions_push_remote (GitgWindow *window,
message = g_strdup_printf (_("Pushing local branch <%s> to remote branch <%s/%s>"),
gitg_ref_get_shortname (source),
remote, branch);
-
+
GitgRunner *ret;
gchar *rr = g_strconcat ("refs/remotes/", remote, "/", branch, NULL);
GitgRef *rmref = gitg_ref_new ("0000000000000000000000000000000000000000", rr);
@@ -1452,20 +1452,20 @@ gitg_branch_actions_push_remote (GitgWindow *window,
RefInfo *info = ref_info_new (source, rmref);
gitg_ref_free (rmref);
-
+
ret = run_progress (window,
_("Push"),
message,
- on_push_result,
+ on_push_result,
info,
"push",
remote,
spec,
NULL);
-
+
g_free (message);
g_free (spec);
-
+
return ret;
}
@@ -1477,10 +1477,10 @@ gitg_branch_actions_apply_stash (GitgWindow *window,
g_return_val_if_fail (GITG_IS_WINDOW (window), FALSE);
g_return_val_if_fail (gitg_ref_get_ref_type (stash) == GITG_REF_TYPE_STASH, FALSE);
g_return_val_if_fail (gitg_ref_get_ref_type (branch) == GITG_REF_TYPE_BRANCH, FALSE);
-
+
gchar *message = g_strdup_printf (_("Are you sure you want to apply the stash item to local branch <%s>?"),
gitg_ref_get_shortname (branch));
-
+
if (message_dialog (window,
GTK_MESSAGE_QUESTION,
_("Apply stash"),
@@ -1490,17 +1490,17 @@ gitg_branch_actions_apply_stash (GitgWindow *window,
g_free (message);
return FALSE;
}
-
+
GitgRepository *repository = gitg_window_get_repository (window);
GitgRef *current = gitg_repository_get_current_working_ref (repository);
-
+
if (!gitg_ref_equal (branch, current))
{
if (!stash_changes (window, NULL, TRUE))
{
return FALSE;
}
-
+
if (!checkout_local_branch_real (window, branch))
{
message_dialog (window,
@@ -1512,10 +1512,10 @@ gitg_branch_actions_apply_stash (GitgWindow *window,
return FALSE;
}
}
-
+
gchar *sha1 = gitg_utils_hash_to_sha1_new (gitg_ref_get_hash (stash));
gboolean ret;
-
+
if (!gitg_repository_commandv (repository,
NULL,
"stash",
@@ -1533,7 +1533,7 @@ gitg_branch_actions_apply_stash (GitgWindow *window,
NULL);
g_free (message);
ret = FALSE;
-
+
if (!gitg_ref_equal (current, branch) && no_changes (repository))
{
checkout_local_branch_real (window, current);
@@ -1544,7 +1544,7 @@ gitg_branch_actions_apply_stash (GitgWindow *window,
ret = TRUE;
gitg_repository_reload (repository);
}
-
+
return ret;
}
@@ -1555,11 +1555,11 @@ gitg_branch_actions_tag (GitgWindow *window, gchar const *sha1, gchar const *nam
g_return_val_if_fail (sha1 != NULL, FALSE);
g_return_val_if_fail (name != NULL, FALSE);
g_return_val_if_fail (message != NULL, FALSE);
-
+
GitgRepository *repository;
-
+
repository = gitg_window_get_repository (window);
-
+
if (!gitg_repository_commandv (repository,
NULL,
"tag",
@@ -1571,7 +1571,7 @@ gitg_branch_actions_tag (GitgWindow *window, gchar const *sha1, gchar const *nam
NULL))
{
gchar const *secondary;
-
+
if (sign)
{
secondary = _("The tag object could not be successfully created. Please make sure you have a GPG key and the key is unlocked");
@@ -1580,7 +1580,7 @@ gitg_branch_actions_tag (GitgWindow *window, gchar const *sha1, gchar const *nam
{
secondary = _("The tag object could not be successfully created");
}
-
+
message_dialog (window,
GTK_MESSAGE_ERROR,
_("Failed to create tag"),
diff --git a/gitg/gitg-cell-renderer-path.c b/gitg/gitg-cell-renderer-path.c
index a4d6508..da3b216 100644
--- a/gitg/gitg-cell-renderer-path.c
+++ b/gitg/gitg-cell-renderer-path.c
@@ -37,7 +37,7 @@
enum
{
PROP_0,
-
+
PROP_REVISION,
PROP_NEXT_REVISION,
PROP_LANE_WIDTH,
@@ -54,7 +54,7 @@ struct _GitgCellRendererPathPrivate
guint lane_width;
guint triangle_width;
guint dot_width;
-
+
gint last_height;
};
@@ -87,12 +87,12 @@ total_width(GitgCellRendererPath *self, GtkWidget *widget)
{
PangoFontDescription *font;
g_object_get(self, "font-desc", &font, NULL);
-
+
gint offset = 0;
-
+
if (is_dummy(self->priv->revision))
offset = self->priv->lane_width;
-
+
return num_lanes(self) * self->priv->lane_width +
gitg_label_renderer_width(widget, font, self->priv->labels) +
offset;
@@ -102,10 +102,10 @@ static void
gitg_cell_renderer_path_finalize(GObject *object)
{
GitgCellRendererPath *self = GITG_CELL_RENDERER_PATH(object);
-
+
gitg_revision_unref(self->priv->revision);
gitg_revision_unref(self->priv->next_revision);
-
+
g_slist_free(self->priv->labels);
G_OBJECT_CLASS(gitg_cell_renderer_path_parent_class)->finalize(object);
@@ -118,13 +118,13 @@ renderer_get_size(GtkCellRenderer *renderer, GtkWidget *widget, GdkRectangle *ar
if (xoffset)
*xoffset = 0;
-
+
if (yoffset)
*yoffset = 0;
-
+
if (width)
*width = total_width(self, widget);
-
+
if (height)
*height = area ? area->height : 1;
}
@@ -137,16 +137,16 @@ draw_arrow(GitgCellRendererPath *self, cairo_t *cr, GdkRectangle *area, gint8 la
gdouble df = (top ? -1 : 1) * 0.25 * area->height;
gdouble ypos = area->y + area->height / 2.0 + df;
gdouble q = cw / 4.0;
-
+
cairo_move_to(cr, xpos - q, ypos + (top ? q : -q));
cairo_line_to(cr, xpos, ypos);
cairo_line_to(cr, xpos + q, ypos + (top ? q : -q));
cairo_stroke(cr);
-
+
cairo_move_to(cr, xpos, ypos);
cairo_line_to(cr, xpos, ypos - df);
cairo_stroke(cr);
-
+
//cairo_move_to(cr, xpos, ypos);
//cairo_line_to(cr, xpos, ypos + (top ? 1 : -1) * area->height / 2.0);
//cairo_stroke(cr);
@@ -163,23 +163,23 @@ draw_paths_real(GitgCellRendererPath *self, cairo_t *cr, GdkRectangle *area, Git
gdouble cw = self->priv->lane_width;
gdouble ch = area->height / 2.0;
GitgLane *lane;
-
+
while (lanes)
{
GSList *item;
lane = (GitgLane *)(lanes->data);
gitg_color_set_cairo_source(lane->color, cr);
-
+
for (item = lane->from; item; item = item->next)
{
gint8 from = (gint8)GPOINTER_TO_INT(item->data);
-
+
cairo_move_to(cr, area->x + from * cw + cw / 2.0, area->y + yoffset * ch);
cairo_curve_to(cr, area->x + from * cw + cw / 2.0, area->y + (yoffset + 1) * ch,
area->x + to * cw + cw / 2.0, area->y + (yoffset + 1) * ch,
area->x + to * cw + cw / 2.0, area->y + (yoffset + 2) * ch);
-
+
cairo_stroke(cr);
}
@@ -205,17 +205,17 @@ draw_arrows(GitgCellRendererPath *self, cairo_t *cr, GdkRectangle *area)
{
GSList *item;
gint8 to = 0;
-
+
for (item = gitg_revision_get_lanes(self->priv->revision); item; item = item->next)
{
GitgLane *lane = (GitgLane *)item->data;
gitg_color_set_cairo_source(lane->color, cr);
-
+
if (lane->type & GITG_LANE_TYPE_START)
draw_arrow(self, cr, area, to, TRUE);
else if (lane->type & GITG_LANE_TYPE_END)
draw_arrow(self, cr, area, to, FALSE);
-
+
++to;
}
}
@@ -237,12 +237,12 @@ draw_labels(GitgCellRendererPath *self, GtkWidget *widget, cairo_t *context, Gdk
{
gint offset = num_lanes(self) * self->priv->lane_width;
PangoFontDescription *font;
-
+
if (is_dummy(self->priv->revision))
offset += self->priv->lane_width;
-
+
g_object_get(self, "font-desc", &font, NULL);
-
+
cairo_translate(context, offset, 0.0);
gitg_label_renderer_draw(widget, font, context, self->priv->labels, area);
}
@@ -254,7 +254,7 @@ draw_indicator_triangle(GitgCellRendererPath *self, GitgLane *lane, cairo_t *con
gdouble radius = self->priv->triangle_width / 2.0;
gdouble xs;
int xd;
-
+
if (lane->type & GITG_LANE_SIGN_LEFT)
{
xs = radius;
@@ -265,13 +265,13 @@ draw_indicator_triangle(GitgCellRendererPath *self, GitgLane *lane, cairo_t *con
xs = -radius;
xd = 1;
}
-
+
cairo_set_line_width(context, 2.0);
cairo_move_to(context, area->x + offset + radius + xs, area->y + (area->height - self->priv->triangle_width) / 2);
cairo_rel_line_to(context, 0, self->priv->triangle_width);
cairo_rel_line_to(context, xd * self->priv->triangle_width, -self->priv->triangle_width / 2);
cairo_close_path(context);
-
+
cairo_set_source_rgb(context, 0, 0, 0);
cairo_stroke_preserve(context);
@@ -284,14 +284,14 @@ draw_indicator_circle(GitgCellRendererPath *self, GitgLane *lane, cairo_t *conte
{
gdouble offset = gitg_revision_get_mylane(self->priv->revision) * self->priv->lane_width + (self->priv->lane_width - self->priv->dot_width) / 2.0;
gdouble radius = self->priv->dot_width / 2.0;
-
+
if (is_dummy(self->priv->revision))
offset += self->priv->lane_width;
cairo_set_line_width(context, 2.0);
cairo_arc(context, area->x + offset + radius, area->y + area->height / 2.0, radius, 0, 2 * M_PI);
cairo_set_source_rgb(context, 0, 0, 0);
-
+
if (is_dummy(self->priv->revision))
{
cairo_stroke(context);
@@ -300,7 +300,7 @@ draw_indicator_circle(GitgCellRendererPath *self, GitgLane *lane, cairo_t *conte
{
cairo_stroke_preserve(context);
gitg_color_set_cairo_source(lane->color, context);
-
+
cairo_fill(context);
}
}
@@ -309,7 +309,7 @@ static void
draw_indicator(GitgCellRendererPath *self, cairo_t *context, GdkRectangle *area)
{
GitgLane *lane = gitg_revision_get_lane(self->priv->revision);
-
+
if (lane->type & GITG_LANE_SIGN_LEFT || lane->type & GITG_LANE_SIGN_RIGHT)
draw_indicator_triangle(self, lane, context, area);
else
@@ -320,23 +320,23 @@ static void
renderer_render(GtkCellRenderer *renderer, GdkDrawable *window, GtkWidget *widget, GdkRectangle *area, GdkRectangle *cell_area, GdkRectangle *expose_area, GtkCellRendererState flags)
{
GitgCellRendererPath *self = GITG_CELL_RENDERER_PATH(renderer);
-
+
self->priv->last_height = area->height;
cairo_t *cr = gdk_cairo_create(window);
-
+
cairo_rectangle(cr, area->x, area->y, area->width, area->height);
cairo_clip(cr);
-
+
draw_paths(self, cr, area);
-
+
/* draw indicator */
draw_indicator(self, cr, area);
-
+
/* draw labels */
draw_labels(self, widget, cr, area);
cairo_destroy(cr);
-
+
area->x += total_width(self, widget);
cell_area->x += total_width(self, widget);
@@ -379,7 +379,7 @@ static void
gitg_cell_renderer_path_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgCellRendererPath *self = GITG_CELL_RENDERER_PATH(object);
-
+
switch (prop_id)
{
case PROP_REVISION:
@@ -414,11 +414,11 @@ gitg_cell_renderer_path_class_init(GitgCellRendererPathClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
GtkCellRendererClass *renderer_class = GTK_CELL_RENDERER_CLASS(klass);
-
+
object_class->finalize = gitg_cell_renderer_path_finalize;
object_class->get_property = gitg_cell_renderer_path_get_property;
object_class->set_property = gitg_cell_renderer_path_set_property;
-
+
renderer_class->get_size = renderer_get_size;
renderer_class->render = renderer_render;
@@ -436,7 +436,7 @@ gitg_cell_renderer_path_class_init(GitgCellRendererPathClass *klass)
"NEXT_REVISION",
"The next revision",
GITG_TYPE_REVISION,
- G_PARAM_READWRITE));
+ G_PARAM_READWRITE));
g_object_class_install_property(object_class, PROP_LANE_WIDTH,
g_param_spec_uint("lane-width",
@@ -478,7 +478,7 @@ static void
gitg_cell_renderer_path_init(GitgCellRendererPath *self)
{
self->priv = GITG_CELL_RENDERER_PATH_GET_PRIVATE(self);
-
+
self->priv->lane_width = DEFAULT_LANE_WIDTH;
self->priv->dot_width = DEFAULT_DOT_WIDTH;
self->priv->triangle_width = DEFAULT_TRIANGLE_WIDTH;
@@ -495,15 +495,15 @@ gitg_cell_renderer_path_get_ref_at_pos (GtkWidget *widget, GitgCellRendererPath
{
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
g_return_val_if_fail (GITG_IS_CELL_RENDERER_PATH (renderer), NULL);
-
+
PangoFontDescription *font;
g_object_get (renderer, "font-desc", &font, NULL);
-
+
gint offset = 0;
-
+
if (is_dummy(renderer->priv->revision))
offset = renderer->priv->lane_width;
-
+
x -= num_lanes(renderer) * renderer->priv->lane_width + offset;
return gitg_label_renderer_get_ref_at_pos (widget, font, renderer->priv->labels, x, hot_x);
@@ -517,6 +517,6 @@ gitg_cell_renderer_path_render_ref (GtkWidget *widget, GitgCellRendererPath *ren
PangoFontDescription *font;
g_object_get(renderer, "font-desc", &font, NULL);
-
+
return gitg_label_renderer_render_ref (widget, font, ref, renderer->priv->last_height, minwidth);
}
diff --git a/gitg/gitg-cell-renderer-path.h b/gitg/gitg-cell-renderer-path.h
index 48f1d2c..4729466 100644
--- a/gitg/gitg-cell-renderer-path.h
+++ b/gitg/gitg-cell-renderer-path.h
@@ -42,7 +42,7 @@ typedef struct _GitgCellRendererPathPrivate GitgCellRendererPathPrivate;
struct _GitgCellRendererPath {
GtkCellRendererText parent;
-
+
GitgCellRendererPathPrivate *priv;
};
diff --git a/gitg/gitg-changed-file.c b/gitg/gitg-changed-file.c
index df7e72a..a1b151f 100644
--- a/gitg/gitg-changed-file.c
+++ b/gitg/gitg-changed-file.c
@@ -28,13 +28,13 @@
struct _GitgChangedFilePrivate
{
GFile *file;
-
+
GitgChangedFileStatus status;
GitgChangedFileChanges changes;
-
+
gchar *sha;
gchar *mode;
-
+
GFileMonitor *monitor;
};
@@ -70,7 +70,7 @@ gitg_changed_file_finalize(GObject *object)
g_free(self->priv->sha);
g_free(self->priv->mode);
g_object_unref(self->priv->file);
-
+
if (self->priv->monitor)
{
g_file_monitor_cancel(self->priv->monitor);
@@ -127,9 +127,9 @@ update_monitor(GitgChangedFile *file)
{
gboolean ismodified = (file->priv->status == GITG_CHANGED_FILE_STATUS_MODIFIED);
gboolean iscached = (file->priv->changes & GITG_CHANGED_FILE_CHANGES_CACHED);
-
+
gboolean needmonitor = ismodified || iscached;
-
+
if (needmonitor && !file->priv->monitor)
{
file->priv->monitor = g_file_monitor_file(file->priv->file, G_FILE_MONITOR_NONE, NULL, NULL);
@@ -148,7 +148,7 @@ static void
gitg_changed_file_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgChangedFile *self = GITG_CHANGED_FILE(object);
-
+
switch (prop_id)
{
case PROP_FILE:
@@ -175,18 +175,18 @@ static void
gitg_changed_file_class_init(GitgChangedFileClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
+
object_class->finalize = gitg_changed_file_finalize;
object_class->set_property = gitg_changed_file_set_property;
object_class->get_property = gitg_changed_file_get_property;
-
+
g_object_class_install_property(object_class, PROP_FILE,
g_param_spec_object("file",
"FILE",
"File",
G_TYPE_OBJECT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
+
g_object_class_install_property(object_class, PROP_STATUS,
g_param_spec_enum("status",
"STATUS",
@@ -194,7 +194,7 @@ gitg_changed_file_class_init(GitgChangedFileClass *klass)
GITG_TYPE_CHANGED_FILE_STATUS,
GITG_CHANGED_FILE_STATUS_NEW,
G_PARAM_READWRITE));
-
+
g_object_class_install_property(object_class, PROP_CHANGES,
g_param_spec_flags("changes",
"CHANGES",
@@ -246,7 +246,7 @@ GFile *
gitg_changed_file_get_file(GitgChangedFile *file)
{
g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), NULL);
-
+
return g_object_ref(file->priv->file);
}
@@ -254,7 +254,7 @@ gchar const *
gitg_changed_file_get_sha(GitgChangedFile *file)
{
g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), NULL);
-
+
return file->priv->sha;
}
@@ -262,7 +262,7 @@ gchar const *
gitg_changed_file_get_mode(GitgChangedFile *file)
{
g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), NULL);
-
+
return file->priv->mode;
}
@@ -270,7 +270,7 @@ void
gitg_changed_file_set_sha(GitgChangedFile *file, gchar const *sha)
{
g_return_if_fail(GITG_IS_CHANGED_FILE(file));
-
+
set_sha_real(file, sha);
g_object_notify(G_OBJECT(file), "sha");
}
@@ -279,7 +279,7 @@ void
gitg_changed_file_set_mode(GitgChangedFile *file, gchar const *mode)
{
g_return_if_fail(GITG_IS_CHANGED_FILE(file));
-
+
set_mode_real(file, mode);
g_object_notify(G_OBJECT(file), "mode");
}
@@ -287,14 +287,14 @@ gitg_changed_file_set_mode(GitgChangedFile *file, gchar const *mode)
GitgChangedFileStatus gitg_changed_file_get_status(GitgChangedFile *file)
{
g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), GITG_CHANGED_FILE_STATUS_NONE);
-
+
return file->priv->status;
}
GitgChangedFileChanges gitg_changed_file_get_changes(GitgChangedFile *file)
{
g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), GITG_CHANGED_FILE_CHANGES_NONE);
-
+
return file->priv->changes;
}
@@ -304,7 +304,7 @@ void gitg_changed_file_set_status(GitgChangedFile *file, GitgChangedFileStatus s
if (status == file->priv->status)
return;
-
+
g_object_set(file, "status", status, NULL);
}
@@ -312,10 +312,10 @@ void
gitg_changed_file_set_changes(GitgChangedFile *file, GitgChangedFileChanges changes)
{
g_return_if_fail(GITG_IS_CHANGED_FILE(file));
-
+
if (changes == file->priv->changes)
return;
-
+
g_object_set(file, "changes", changes, NULL);
}
@@ -323,7 +323,7 @@ gboolean
gitg_changed_file_equal(GitgChangedFile *file, GFile *other)
{
g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), FALSE);
-
+
return g_file_equal(file->priv->file, other);
}
diff --git a/gitg/gitg-changed-file.h b/gitg/gitg-changed-file.h
index 519572f..9800cf3 100644
--- a/gitg/gitg-changed-file.h
+++ b/gitg/gitg-changed-file.h
@@ -45,7 +45,7 @@ typedef enum
GITG_CHANGED_FILE_STATUS_NONE = 0,
GITG_CHANGED_FILE_STATUS_NEW,
GITG_CHANGED_FILE_STATUS_MODIFIED,
- GITG_CHANGED_FILE_STATUS_DELETED
+ GITG_CHANGED_FILE_STATUS_DELETED
} GitgChangedFileStatus;
typedef enum
@@ -57,13 +57,13 @@ typedef enum
struct _GitgChangedFile {
GObject parent;
-
+
GitgChangedFilePrivate *priv;
};
struct _GitgChangedFileClass {
GObjectClass parent_class;
-
+
void (*changed)(GitgChangedFile *file);
};
diff --git a/gitg/gitg-color.c b/gitg/gitg-color.c
index b914d76..72ad101 100644
--- a/gitg/gitg-color.c
+++ b/gitg/gitg-color.c
@@ -55,7 +55,7 @@ gitg_color_get(GitgColor *color, gdouble *r, gdouble *g, gdouble *b)
{
gchar const *spec = palette[color->index];
GdkColor c;
-
+
gdk_color_parse(spec, &c);
*r = c.red / 65535.0;
@@ -76,7 +76,7 @@ static gint8
next_index()
{
gint8 next = current_index++;
-
+
if (current_index == sizeof(palette) / sizeof(gchar const *))
current_index = 0;
@@ -106,7 +106,7 @@ gitg_color_copy(GitgColor *color)
GitgColor *copy = g_new(GitgColor, 1);
copy->ref_count = 1;
copy->index = color->index;
-
+
return copy;
}
@@ -125,9 +125,9 @@ gitg_color_unref(GitgColor *color)
{
if (!color)
return NULL;
-
+
--color->ref_count;
-
+
if (color->ref_count == 0)
{
g_free(color);
diff --git a/gitg/gitg-commit-view.c b/gitg/gitg-commit-view.c
index b8b9585..8ef9198 100644
--- a/gitg/gitg-commit-view.c
+++ b/gitg/gitg-commit-view.c
@@ -62,21 +62,21 @@ struct _GitgCommitViewPrivate
{
GitgCommit *commit;
GitgRepository *repository;
-
+
GtkListStore *store_unstaged;
GtkListStore *store_staged;
-
+
GtkTreeView *tree_view_staged;
GtkTreeView *tree_view_unstaged;
-
+
GtkSourceView *changes_view;
GtkTextView *comment_view;
GtkCheckButton *check_button_signed_off_by;
GtkCheckButton *check_button_amend;
-
+
GtkHScale *hscale_context;
gint context_size;
-
+
GitgRunner *runner;
guint update_id;
gboolean is_diff;
@@ -84,11 +84,11 @@ struct _GitgCommitViewPrivate
GdkCursor *hand;
GitgChangedFile *current_file;
GitgChangedFileChanges current_changes;
-
+
GtkUIManager *ui_manager;
ContextType context_type;
GtkTextIter context_iter;
-
+
GtkActionGroup *group_context;
};
@@ -130,16 +130,16 @@ static void
gitg_commit_view_finalize(GObject *object)
{
GitgCommitView *view = GITG_COMMIT_VIEW(object);
-
+
if (view->priv->update_id)
g_signal_handler_disconnect(view->priv->runner, view->priv->update_id);
-
+
gitg_runner_cancel(view->priv->runner);
g_object_unref(view->priv->runner);
g_object_unref(view->priv->ui_manager);
-
+
gdk_cursor_unref(view->priv->hand);
-
+
G_OBJECT_CLASS(gitg_commit_view_parent_class)->finalize(object);
}
@@ -147,12 +147,12 @@ static void
icon_data_func(GtkTreeViewColumn *column, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, GitgCommitView *view)
{
GitgChangedFile *file;
-
+
gtk_tree_model_get(model, iter, COLUMN_FILE, &file, -1);
GitgChangedFileStatus status = gitg_changed_file_get_status(file);
-
+
gboolean staged = (model == GTK_TREE_MODEL(view->priv->store_staged));
-
+
switch (status)
{
case GITG_CHANGED_FILE_STATUS_NEW:
@@ -167,7 +167,7 @@ icon_data_func(GtkTreeViewColumn *column, GtkCellRenderer *renderer, GtkTreeMode
default:
break;
}
-
+
g_object_unref(file);
}
@@ -175,7 +175,7 @@ static void
set_icon_data_func(GitgCommitView *view, GtkTreeView *treeview, GtkCellRenderer *renderer)
{
GtkTreeViewColumn *column = gtk_tree_view_get_column(treeview, 0);
-
+
gtk_tree_view_column_set_cell_data_func(column, renderer, (GtkTreeCellDataFunc)icon_data_func, view, NULL);
}
@@ -183,7 +183,7 @@ static void
set_language(GitgCommitView *view, GtkSourceLanguage *language)
{
GtkSourceBuffer *buffer = GTK_SOURCE_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(view->priv->changes_view)));
-
+
gtk_source_buffer_set_language(buffer, language);
gitg_diff_view_set_diff_enabled(GITG_DIFF_VIEW(view->priv->changes_view), FALSE);
}
@@ -214,9 +214,9 @@ on_changes_update(GitgRunner *runner, gchar **buffer, GitgCommitView *view)
gchar *line;
GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view->priv->changes_view));
GtkTextIter iter;
-
+
gtk_text_buffer_get_end_iter(buf, &iter);
-
+
while ((line = *(buffer++)))
{
if (view->priv->is_diff && g_str_has_prefix(line, "@@"))
@@ -230,11 +230,11 @@ on_changes_update(GitgRunner *runner, gchar **buffer, GitgCommitView *view)
gtk_text_buffer_insert(buf, &iter, line, -1);
gtk_text_buffer_insert(buf, &iter, "\n", -1);
}
-
+
if (gtk_source_buffer_get_language(GTK_SOURCE_BUFFER(buf)) == NULL)
{
gchar *content_type = gitg_utils_guess_content_type(GTK_TEXT_BUFFER(buf));
-
+
if (content_type && !gitg_utils_can_display_content_type(content_type))
{
gitg_runner_cancel(runner);
@@ -246,10 +246,10 @@ on_changes_update(GitgRunner *runner, gchar **buffer, GitgCommitView *view)
set_language(view, language);
gtk_widget_set_sensitive(GTK_WIDGET(view->priv->hscale_context), FALSE);
}
-
+
g_free(content_type);
}
-
+
while (gtk_events_pending())
gtk_main_iteration();
}
@@ -265,7 +265,7 @@ set_current_file(GitgCommitView *view, GitgChangedFile *file, GitgChangedFileCha
{
if (view->priv->current_file != NULL)
g_object_unref(view->priv->current_file);
-
+
view->priv->current_file = file ? g_object_ref(file) : NULL;
view->priv->current_changes = changes;
}
@@ -281,25 +281,25 @@ get_selected_files(GtkTreeView *tree_view,
if (files == NULL && changes == NULL && status == NULL && paths == NULL)
return gtk_tree_selection_count_selected_rows(selection) != 0;
-
+
GtkTreeModel *model;
GList *items = gtk_tree_selection_get_selected_rows(selection, &model);
-
+
if (files)
*files = NULL;
-
+
if (paths)
*paths = NULL;
-
+
if (!items)
return FALSE;
-
+
if (changes)
*changes = ~0;
-
+
if (status)
*status = -1;
-
+
GList *item;
GitgChangedFile *file;
@@ -309,12 +309,12 @@ get_selected_files(GtkTreeView *tree_view,
gtk_tree_model_get_iter(model, &iter, (GtkTreePath *)item->data);
gtk_tree_model_get(model, &iter, COLUMN_FILE, &file, -1);
-
+
if (changes)
*changes &= gitg_changed_file_get_status(file);
-
+
GitgChangedFileStatus s = gitg_changed_file_get_status(file);
-
+
if (status)
{
if (*status != -1 && *status != s)
@@ -322,13 +322,13 @@ get_selected_files(GtkTreeView *tree_view,
else
*status = s;
}
-
+
if (files)
*files = g_list_prepend(*files, file);
else
g_object_unref(file);
}
-
+
if (paths)
{
*paths = items;
@@ -338,10 +338,10 @@ get_selected_files(GtkTreeView *tree_view,
g_list_foreach(items, (GFunc)gtk_tree_path_free, NULL);
g_list_free(items);
}
-
+
if (files)
*files = g_list_reverse(*files);
-
+
return TRUE;
}
@@ -365,11 +365,11 @@ check_selection(GtkTreeView *tree_view,
gtk_source_buffer_remove_source_marks(GTK_SOURCE_BUFFER(buffer), &start, &end, CATEGORY_UNSTAGE_HUNK);
gtk_source_buffer_remove_source_marks(GTK_SOURCE_BUFFER(buffer), &start, &end, CATEGORY_STAGE_HUNK);
gtk_text_buffer_set_text(gtk_text_view_get_buffer(tv), "", -1);
-
+
GList *paths;
gboolean ret;
get_selected_files(tree_view, NULL, &paths, NULL, NULL);
-
+
if (g_list_length(paths) != 1)
{
set_current_file(view, NULL, GITG_CHANGED_FILE_CHANGES_NONE);
@@ -384,7 +384,7 @@ check_selection(GtkTreeView *tree_view,
(GtkTreePath *)paths->data);
ret = TRUE;
}
-
+
g_list_foreach(paths, (GFunc)gtk_tree_path_free, NULL);
g_list_free(paths);
return ret;
@@ -401,15 +401,15 @@ unstaged_selection_changed(GtkTreeSelection *selection, GitgCommitView *view)
{
GtkTreeModel *model;
GtkTreeIter iter;
-
+
if (!check_selection(view->priv->tree_view_unstaged, &iter, view))
return;
-
+
model = gtk_tree_view_get_model(view->priv->tree_view_unstaged);
unselect_tree_view(view->priv->tree_view_staged);
-
+
GitgChangedFile *file;
-
+
gtk_tree_model_get(model, &iter, COLUMN_FILE, &file, -1);
GitgChangedFileStatus status = gitg_changed_file_get_status(file);
GFile *f = gitg_changed_file_get_file(file);
@@ -417,7 +417,7 @@ unstaged_selection_changed(GtkTreeSelection *selection, GitgCommitView *view)
if (status == GITG_CHANGED_FILE_STATUS_NEW)
{
gchar *content_type = gitg_utils_get_content_type(f);
-
+
if (!gitg_utils_can_display_content_type(content_type))
{
show_binary_information(view);
@@ -425,7 +425,7 @@ unstaged_selection_changed(GtkTreeSelection *selection, GitgCommitView *view)
else
{
GInputStream *stream = G_INPUT_STREAM(g_file_read(f, NULL, NULL));
-
+
if (!stream)
{
show_binary_information(view);
@@ -438,10 +438,10 @@ unstaged_selection_changed(GtkTreeSelection *selection, GitgCommitView *view)
set_language(view, language);
gtk_widget_set_sensitive(GTK_WIDGET(view->priv->hscale_context), FALSE);
-
+
view->priv->is_diff = FALSE;
connect_update(view);
-
+
gitg_runner_run_stream(view->priv->runner, stream, NULL);
g_object_unref(stream);
}
@@ -459,11 +459,11 @@ unstaged_selection_changed(GtkTreeSelection *selection, GitgCommitView *view)
gchar ct[10];
g_snprintf(ct, sizeof(ct), "-U%d", view->priv->context_size);
-
+
gitg_repository_run_commandv(view->priv->repository, view->priv->runner, NULL, "diff", ct, "--", path, NULL);
g_free(path);
}
-
+
set_current_file(view, file, GITG_CHANGED_FILE_CHANGES_UNSTAGED);
g_object_unref(file);
@@ -475,27 +475,27 @@ staged_selection_changed(GtkTreeSelection *selection, GitgCommitView *view)
{
GtkTreeModel *model;
GtkTreeIter iter;
-
+
if (!check_selection(view->priv->tree_view_staged, &iter, view))
return;
-
+
model = gtk_tree_view_get_model(view->priv->tree_view_staged);
unselect_tree_view(view->priv->tree_view_unstaged);
GitgChangedFile *file;
-
+
gtk_tree_model_get(model, &iter, COLUMN_FILE, &file, -1);
GitgChangedFileStatus status = gitg_changed_file_get_status(file);
-
+
GFile *f = gitg_changed_file_get_file(file);
gchar *path = gitg_repository_relative(view->priv->repository, f);
-
+
if (status == GITG_CHANGED_FILE_STATUS_NEW)
{
view->priv->is_diff = FALSE;
gchar *content_type = gitg_utils_get_content_type(f);
-
+
if (!gitg_utils_can_display_content_type(content_type))
{
show_binary_information(view);
@@ -514,7 +514,7 @@ staged_selection_changed(GtkTreeSelection *selection, GitgCommitView *view)
gitg_repository_run_commandv(view->priv->repository, view->priv->runner, NULL, "show", "--encoding=UTF-8", indexpath, NULL);
g_free(indexpath);
}
-
+
g_free(content_type);
}
else
@@ -522,7 +522,7 @@ staged_selection_changed(GtkTreeSelection *selection, GitgCommitView *view)
view->priv->is_diff = TRUE;
set_diff_language(view);
connect_update(view);
-
+
gchar *head = gitg_repository_parse_head(view->priv->repository);
gchar ct[10];
g_snprintf(ct, sizeof(ct), "-U%d", view->priv->context_size);
@@ -532,9 +532,9 @@ staged_selection_changed(GtkTreeSelection *selection, GitgCommitView *view)
}
g_object_unref(f);
- g_free(path);
+ g_free(path);
- set_current_file(view, file, GITG_CHANGED_FILE_CHANGES_CACHED);
+ set_current_file(view, file, GITG_CHANGED_FILE_CHANGES_CACHED);
g_object_unref(file);
}
@@ -546,12 +546,12 @@ compare_by_name(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer us
gtk_tree_model_get(model, a, COLUMN_NAME, &s1, -1);
gtk_tree_model_get(model, b, COLUMN_NAME, &s2, -1);
-
+
int ret = gitg_utils_sort_names(s1, s2);
-
+
g_free(s1);
g_free(s2);
-
+
return ret;
}
@@ -568,14 +568,14 @@ has_hunk_mark(GtkSourceBuffer *buffer, GtkTextIter *iter)
GSList *m1 = gtk_source_buffer_get_source_marks_at_iter(buffer, iter, CATEGORY_UNSTAGE_HUNK);
gboolean has_mark = (m1 != NULL);
g_slist_free(m1);
-
+
if (has_mark)
return TRUE;
-
+
m1 = gtk_source_buffer_get_source_marks_at_iter(buffer, iter, CATEGORY_STAGE_HUNK);
has_mark = (m1 != NULL);
g_slist_free(m1);
-
+
return has_mark;
}
@@ -593,9 +593,9 @@ get_patch_header(GitgCommitView *view, GtkTextBuffer *buffer, GtkTextIter const
gtk_text_iter_backward_line(&begin);
GtkTextIter lineend = begin;
gtk_text_iter_forward_line(&lineend);
-
+
gchar *text = gtk_text_buffer_get_text(buffer, &begin, &lineend, FALSE);
-
+
if (g_str_has_prefix(text, "+++ "))
{
end = lineend;
@@ -608,10 +608,10 @@ get_patch_header(GitgCommitView *view, GtkTextBuffer *buffer, GtkTextIter const
g_free(text);
}
-
+
if (!foundstart || !foundend)
return NULL;
-
+
return gtk_text_buffer_get_text(buffer, &begin, &end, FALSE);
}
@@ -622,19 +622,19 @@ get_patch_contents(GitgCommitView *view, GtkTextBuffer *buffer, GtkTextIter cons
or next file start (or end of file) */
GtkTextIter begin = *iter;
GtkTextIter end = begin;
-
+
while (!gtk_text_iter_is_end(&end))
{
if (!gtk_text_iter_forward_line(&end))
break;
-
+
GtkTextIter lineend = end;
gtk_text_iter_forward_to_line_end(&lineend);
-
+
gchar *text = gtk_text_buffer_get_text(buffer, &end, &lineend, FALSE);
gboolean isend = g_str_has_prefix(text, "@@") || g_str_has_prefix(text, "diff --git ");
g_free(text);
-
+
if (isend)
{
gtk_text_iter_backward_line(&end);
@@ -642,7 +642,7 @@ get_patch_contents(GitgCommitView *view, GtkTextBuffer *buffer, GtkTextIter cons
break;
}
}
-
+
return gtk_text_buffer_get_text(buffer, &begin, &end, FALSE);
}
@@ -652,10 +652,10 @@ get_hunk_patch(GitgCommitView *view, GtkTextIter *iter)
/* Get patch header */
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view->priv->changes_view));
gchar *header = get_patch_header(view, buffer, iter);
-
+
if (!header)
return NULL;
-
+
/* Get patch contents */
gchar *contents = get_patch_contents(view, buffer, iter);
@@ -664,7 +664,7 @@ get_hunk_patch(GitgCommitView *view, GtkTextIter *iter)
g_free(header);
return NULL;
}
-
+
return g_strconcat(header, contents, NULL);
}
@@ -672,28 +672,28 @@ static gboolean
handle_stage_unstage(GitgCommitView *view, GtkTextIter *iter)
{
gchar *hunk = get_hunk_patch(view, iter);
-
+
if (!hunk)
return FALSE;
gboolean ret;
GitgChangedFile *file = g_object_ref(view->priv->current_file);
gboolean unstage = view->priv->current_changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED;
-
+
if (unstage)
ret = gitg_commit_stage(view->priv->commit, view->priv->current_file, hunk, NULL);
else
ret = gitg_commit_unstage(view->priv->commit, view->priv->current_file, hunk, NULL);
-
+
if (ret && file == view->priv->current_file)
{
/* remove hunk from text view */
gitg_diff_view_remove_hunk(GITG_DIFF_VIEW(view->priv->changes_view), iter);
}
-
+
g_object_unref(file);
g_free(hunk);
-
+
return ret;
}
@@ -718,13 +718,13 @@ get_hunk_at_pointer(GitgCommitView *view, GtkTextIter *iter, gchar **hunk)
gtk_text_iter_forward_line(iter);
GtkSourceBuffer *buffer = GTK_SOURCE_BUFFER(gtk_text_view_get_buffer(textview));
-
+
if (!has_hunk_mark(buffer, iter))
return FALSE;
if (hunk)
*hunk = get_hunk_patch(view, iter);
-
+
return TRUE;
}
@@ -759,7 +759,7 @@ view_event(GtkWidget *widget, GdkEventAny *event, GitgCommitView *view)
{
handle_stage_unstage(view, &iter);
}
-
+
return FALSE;
}
@@ -767,11 +767,11 @@ static GtkTextBuffer *
initialize_buffer(GitgCommitView *view)
{
GtkTextBuffer *buffer = GTK_TEXT_BUFFER(gtk_source_buffer_new(NULL));
-
+
GtkSourceStyleSchemeManager *manager = gtk_source_style_scheme_manager_get_default();
GtkSourceStyleScheme *scheme = gtk_source_style_scheme_manager_get_scheme(manager, "gitg");
gtk_source_buffer_set_style_scheme(GTK_SOURCE_BUFFER(buffer), scheme);
-
+
return buffer;
}
@@ -792,18 +792,18 @@ on_tree_view_drag_data_get (GtkWidget *widget,
gchar **uris;
guint i = 0;
- get_selected_files(GTK_TREE_VIEW(widget), &selected, NULL, NULL, NULL);
+ get_selected_files(GTK_TREE_VIEW(widget), &selected, NULL, NULL, NULL);
uris = g_new(gchar *, g_list_length(selected) + 1);
-
+
for (item = selected; item; item = g_list_next(item))
{
GitgChangedFile *file = GITG_CHANGED_FILE (item->data);
GFile *gf = gitg_changed_file_get_file(file);
-
+
uris[i++] = g_file_get_uri(gf);
g_object_unref(gf);
}
-
+
uris[i] = NULL;
gtk_selection_data_set_uris(selection, uris);
@@ -833,12 +833,12 @@ on_tree_view_staged_drag_data_received(GtkWidget *widget,
GitgChangedFile *f;
f = gitg_commit_find_changed_file(view->priv->commit, file);
-
+
if (f && (gitg_changed_file_get_changes(f) & GITG_CHANGED_FILE_CHANGES_UNSTAGED))
{
gitg_commit_stage(view->priv->commit, f, NULL, NULL);
}
-
+
g_object_unref(f);
g_object_unref(file);
}
@@ -857,19 +857,19 @@ on_tree_view_unstaged_drag_data_received(GtkWidget *widget,
/* Unstage all the files dropped on this */
gchar **uris = gtk_selection_data_get_uris(data);
gchar **uri;
-
+
for (uri = uris; *uri; ++uri)
{
GFile *file = g_file_new_for_uri(*uri);
GitgChangedFile *f;
f = gitg_commit_find_changed_file(view->priv->commit, file);
-
+
if (f && (gitg_changed_file_get_changes(f) & GITG_CHANGED_FILE_CHANGES_CACHED))
{
gitg_commit_unstage(view->priv->commit, f, NULL, NULL);
}
-
+
g_object_unref(f);
g_object_unref(file);
}
@@ -919,7 +919,7 @@ gitg_commit_view_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
/* Store widgets */
GitgCommitView *self = GITG_COMMIT_VIEW(buildable);
-
+
GtkBuilder *b = gitg_utils_new_builder("gitg-commit-menu.ui");
self->priv->ui_manager = g_object_ref(gtk_builder_get_object(b, "uiman"));
@@ -929,77 +929,77 @@ gitg_commit_view_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
g_signal_connect(gtk_builder_get_object(b, "UnstageChangesAction"), "activate", G_CALLBACK(on_unstage_changes), self);
self->priv->group_context = GTK_ACTION_GROUP(gtk_builder_get_object(b, "action_group_commit_context"));
-
+
g_object_unref(b);
-
+
self->priv->tree_view_unstaged = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tree_view_unstaged"));
self->priv->tree_view_staged = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tree_view_staged"));
-
+
self->priv->store_unstaged = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING, GITG_TYPE_CHANGED_FILE);
self->priv->store_staged = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING, GITG_TYPE_CHANGED_FILE);
-
+
set_sort_func(self->priv->store_unstaged);
set_sort_func(self->priv->store_staged);
-
+
self->priv->changes_view = GTK_SOURCE_VIEW(gtk_builder_get_object(builder, "source_view_changes"));
self->priv->comment_view = GTK_TEXT_VIEW(gtk_builder_get_object(builder, "text_view_comment"));
self->priv->check_button_signed_off_by = GTK_CHECK_BUTTON(gtk_builder_get_object(builder, "check_button_signed_off_by"));
self->priv->check_button_amend = GTK_CHECK_BUTTON(gtk_builder_get_object(builder, "check_button_amend"));
-
+
GitgPreferences *preferences = gitg_preferences_get_default();
-
+
gitg_data_binding_new(preferences, "message-show-right-margin",
self->priv->comment_view, "show-right-margin");
gitg_data_binding_new(preferences, "message-right-margin-at",
self->priv->comment_view, "right-margin-position");
-
+
self->priv->hscale_context = GTK_HSCALE(gtk_builder_get_object(builder, "hscale_context"));
gtk_range_set_value (GTK_RANGE (self->priv->hscale_context), 3);
-
+
initialize_dnd_staged(self);
initialize_dnd_unstaged(self);
-
+
GtkIconTheme *theme = gtk_icon_theme_get_default();
GdkPixbuf *pixbuf = gtk_icon_theme_load_icon(theme, GTK_STOCK_ADD, 12, GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
-
+
if (pixbuf)
{
gtk_source_view_set_mark_category_pixbuf(self->priv->changes_view, CATEGORY_STAGE_HUNK, pixbuf);
g_object_unref(pixbuf);
}
-
+
pixbuf = gtk_icon_theme_load_icon(theme, GTK_STOCK_REMOVE, 12, GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
-
+
if (pixbuf)
{
gtk_source_view_set_mark_category_pixbuf(self->priv->changes_view, CATEGORY_UNSTAGE_HUNK, pixbuf);
g_object_unref(pixbuf);
}
-
+
gitg_utils_set_monospace_font(GTK_WIDGET(self->priv->changes_view));
-
+
GtkTextBuffer *buffer = initialize_buffer(self);
gtk_text_view_set_buffer(GTK_TEXT_VIEW(self->priv->changes_view), buffer);
g_signal_connect(self->priv->changes_view, "event", G_CALLBACK(view_event), self);
-
+
gtk_tree_view_set_model(self->priv->tree_view_unstaged, GTK_TREE_MODEL(self->priv->store_unstaged));
gtk_tree_view_set_model(self->priv->tree_view_staged, GTK_TREE_MODEL(self->priv->store_staged));
-
+
set_icon_data_func(self, self->priv->tree_view_unstaged, GTK_CELL_RENDERER(gtk_builder_get_object(builder, "unstaged_cell_renderer_icon")));
set_icon_data_func(self, self->priv->tree_view_staged, GTK_CELL_RENDERER(gtk_builder_get_object(builder, "staged_cell_renderer_icon")));
-
+
GtkTreeSelection *selection;
-
+
selection = gtk_tree_view_get_selection(self->priv->tree_view_unstaged);
-
+
gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
g_signal_connect(selection, "changed", G_CALLBACK(unstaged_selection_changed), self);
-
+
selection = gtk_tree_view_get_selection(self->priv->tree_view_staged);
gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
g_signal_connect(selection, "changed", G_CALLBACK(staged_selection_changed), self);
-
+
g_signal_connect(self->priv->tree_view_unstaged, "event-after", G_CALLBACK(on_unstaged_button_press), self);
g_signal_connect(self->priv->tree_view_staged, "event-after", G_CALLBACK(on_staged_button_press), self);
@@ -1009,11 +1009,11 @@ gitg_commit_view_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
g_signal_connect(self->priv->tree_view_unstaged, "motion-notify-event", G_CALLBACK(on_unstaged_motion), self);
g_signal_connect(self->priv->tree_view_staged, "motion-notify-event", G_CALLBACK(on_staged_motion), self);
-
+
g_signal_connect(gtk_builder_get_object(builder, "button_commit"), "clicked", G_CALLBACK(on_commit_clicked), self);
-
+
g_signal_connect(self->priv->hscale_context, "value-changed", G_CALLBACK(on_context_value_changed), self);
-
+
g_signal_connect (self->priv->check_button_amend,
"toggled",
G_CALLBACK (on_check_button_amend_toggled),
@@ -1024,7 +1024,7 @@ static void
gitg_commit_view_buildable_iface_init(GtkBuildableIface *iface)
{
parent_iface = *iface;
-
+
iface->parser_finished = gitg_commit_view_parser_finished;
}
@@ -1032,13 +1032,13 @@ static void
gitg_commit_view_dispose(GObject *object)
{
GitgCommitView *self = GITG_COMMIT_VIEW(object);
-
+
if (self->priv->repository)
{
g_object_unref(self->priv->repository);
self->priv->repository = NULL;
}
-
+
if (self->priv->commit)
{
g_signal_handlers_disconnect_by_func(self->priv->commit, on_commit_file_inserted, self);
@@ -1072,7 +1072,7 @@ static void
gitg_commit_view_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgCommitView *self = GITG_COMMIT_VIEW(object);
-
+
switch (prop_id)
{
case PROP_REPOSITORY:
@@ -1107,10 +1107,10 @@ gitg_commit_view_map(GtkWidget *widget)
GitgCommitView *self = GITG_COMMIT_VIEW(widget);
GTK_WIDGET_CLASS(gitg_commit_view_parent_class)->map(widget);
-
+
if (!self->priv->repository)
return;
-
+
initialize_commit(self);
}
@@ -1122,7 +1122,7 @@ gitg_commit_view_class_init(GitgCommitViewClass *klass)
object_class->finalize = gitg_commit_view_finalize;
object_class->dispose = gitg_commit_view_dispose;
-
+
widget_class->map = gitg_commit_view_map;
object_class->set_property = gitg_commit_view_set_property;
@@ -1151,7 +1151,7 @@ static void
gitg_commit_view_init(GitgCommitView *self)
{
self->priv = GITG_COMMIT_VIEW_GET_PRIVATE(self);
-
+
self->priv->runner = gitg_runner_new(10000);
self->priv->hand = gdk_cursor_new(GDK_HAND1);
}
@@ -1167,22 +1167,22 @@ gitg_commit_view_set_repository(GitgCommitView *view, GitgRepository *repository
g_object_unref(view->priv->repository);
view->priv->repository = NULL;
}
-
+
if (view->priv->commit)
{
g_object_unref(view->priv->commit);
view->priv->commit = NULL;
}
-
+
gtk_list_store_clear(view->priv->store_unstaged);
gtk_list_store_clear(view->priv->store_staged);
if (repository)
view->priv->repository = g_object_ref(repository);
-
+
if (GTK_WIDGET_MAPPED(GTK_WIDGET(view)))
initialize_commit(view);
-
+
g_object_notify(G_OBJECT(view), "repository");
}
@@ -1191,13 +1191,13 @@ append_file(GtkListStore *store, GitgChangedFile *file, GitgCommitView *view)
{
GFile *f = gitg_changed_file_get_file(file);
GFile *repos = g_file_new_for_path(gitg_repository_get_path(view->priv->repository));
-
+
GtkTreeIter iter;
gchar *rel = g_file_get_relative_path(repos, f);
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, COLUMN_NAME, rel, COLUMN_FILE, file, -1);
-
+
g_free(rel);
g_object_unref(repos);
g_object_unref(f);
@@ -1208,22 +1208,22 @@ static gboolean
find_file_in_store(GtkListStore *store, GitgChangedFile *file, GtkTreeIter *iter)
{
GtkTreeModel *model = GTK_TREE_MODEL(store);
-
+
if (!gtk_tree_model_get_iter_first(model, iter))
return FALSE;
-
+
do
{
GitgChangedFile *other;
gtk_tree_model_get(model, iter, COLUMN_FILE, &other, -1);
gboolean ret = (other == file);
-
+
g_object_unref(other);
-
+
if (ret)
return TRUE;
} while (gtk_tree_model_iter_next(model, iter));
-
+
return FALSE;
}
@@ -1231,10 +1231,10 @@ static void
model_row_changed(GtkListStore *store, GtkTreeIter *iter)
{
GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), iter);
-
+
if (!path)
return;
-
+
gtk_tree_model_row_changed(GTK_TREE_MODEL(store), path, iter);
gtk_tree_path_free(path);
}
@@ -1244,18 +1244,18 @@ on_commit_file_changed(GitgChangedFile *file, GParamSpec *spec, GitgCommitView *
{
GtkTreeIter staged;
GtkTreeIter unstaged;
-
+
gboolean isstaged = find_file_in_store(view->priv->store_staged, file, &staged);
gboolean isunstaged = find_file_in_store(view->priv->store_unstaged, file, &unstaged);
if (isstaged)
model_row_changed(view->priv->store_staged, &staged);
-
+
if (isunstaged)
model_row_changed(view->priv->store_unstaged, &unstaged);
GitgChangedFileChanges changes = gitg_changed_file_get_changes(file);
-
+
if (changes & GITG_CHANGED_FILE_CHANGES_CACHED)
{
if (!isstaged)
@@ -1266,7 +1266,7 @@ on_commit_file_changed(GitgChangedFile *file, GParamSpec *spec, GitgCommitView *
if (isstaged)
gtk_list_store_remove(view->priv->store_staged, &staged);
}
-
+
if (changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED)
{
if (!isunstaged)
@@ -1283,13 +1283,13 @@ static void
on_commit_file_inserted(GitgCommit *commit, GitgChangedFile *file, GitgCommitView *view)
{
GitgChangedFileChanges changes = gitg_changed_file_get_changes(file);
-
+
if (changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED)
append_file(view->priv->store_unstaged, file, view);
-
+
if (changes & GITG_CHANGED_FILE_CHANGES_CACHED)
append_file(view->priv->store_staged, file, view);
-
+
g_signal_connect(file, "notify::changes", G_CALLBACK(on_commit_file_changed), view);
g_signal_connect(file, "notify::status", G_CALLBACK(on_commit_file_changed), view);
}
@@ -1298,10 +1298,10 @@ static void
on_commit_file_removed(GitgCommit *commit, GitgChangedFile *file, GitgCommitView *view)
{
GtkTreeIter iter;
-
+
if (find_file_in_store(view->priv->store_staged, file, &iter))
gtk_list_store_remove(view->priv->store_staged, &iter);
-
+
if (find_file_in_store(view->priv->store_unstaged, file, &iter))
gtk_list_store_remove(view->priv->store_unstaged, &iter);
}
@@ -1312,19 +1312,19 @@ column_icon_test(GtkTreeView *view, gdouble ex, gdouble ey, GitgChangedFile **fi
GtkTreeViewColumn *column;
gint x;
gint y;
-
+
gtk_tree_view_convert_widget_to_bin_window_coords(view, (gint)ex, (gint)ey, &x, &y);
GtkTreePath *path;
if (!gtk_tree_view_get_path_at_pos(view, x, y, &path, &column, NULL, NULL))
return FALSE;
-
+
if (column != gtk_tree_view_get_column(view, 0))
{
gtk_tree_path_free(path);
return FALSE;
}
-
+
if (file)
{
GtkTreeModel *model = gtk_tree_view_get_model(view);
@@ -1333,9 +1333,9 @@ column_icon_test(GtkTreeView *view, gdouble ex, gdouble ey, GitgChangedFile **fi
gtk_tree_model_get_iter(model, &iter, path);
gtk_tree_model_get(model, &iter, COLUMN_FILE, file, -1);
}
-
+
gtk_tree_path_free(path);
-
+
return TRUE;
}
@@ -1343,7 +1343,7 @@ static void
on_unstaged_button_press(GtkWidget *widget, GdkEventButton *event, GitgCommitView *view)
{
GitgChangedFile *file;
-
+
if (event->type != GDK_BUTTON_PRESS)
return;
@@ -1363,7 +1363,7 @@ static void
on_staged_button_press(GtkWidget *widget, GdkEventButton *event, GitgCommitView *view)
{
GitgChangedFile *file;
-
+
if (event->type != GDK_BUTTON_PRESS)
return;
@@ -1386,7 +1386,7 @@ on_unstaged_motion(GtkWidget *widget, GdkEventMotion *event, GitgCommitView *vie
gdk_window_set_cursor(widget->window, view->priv->hand);
else
gdk_window_set_cursor(widget->window, NULL);
-
+
return FALSE;
}
@@ -1407,15 +1407,15 @@ get_comment(GitgCommitView *view)
GtkTextBuffer *buffer = gtk_text_view_get_buffer(view->priv->comment_view);
GtkTextIter start;
GtkTextIter end;
-
+
gtk_text_buffer_get_bounds(buffer, &start, &end);
gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
gchar *ptr;
-
+
for (ptr = text; *ptr; ptr = g_utf8_next_char(ptr))
if (!g_unichar_isspace(g_utf8_get_char(ptr)))
return text;
-
+
g_free(text);
return NULL;
}
@@ -1437,27 +1437,27 @@ on_commit_clicked(GtkButton *button, GitgCommitView *view)
show_error(view, _("You must first stage some changes before committing"));
return;
}
-
+
gchar *comment = get_comment(view);
-
+
if (!comment)
{
show_error(view, _("Please enter a commit message before committing"));
return;
}
-
+
gboolean signoff = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(view->priv->check_button_signed_off_by));
gboolean amend = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (view->priv->check_button_amend));
GError *error = NULL;
-
+
if (!gitg_commit_commit(view->priv->commit, comment, signoff, amend, &error))
{
if (error && error->domain == GITG_COMMIT_ERROR && error->code == GITG_COMMIT_ERROR_SIGNOFF)
show_error(view, _("Your user name or email could not be retrieved for use in the sign off message"));
else
show_error(view, _("Something went wrong while trying to commit"));
-
+
if (error)
g_error_free(error);
}
@@ -1467,7 +1467,7 @@ on_commit_clicked(GtkButton *button, GitgCommitView *view)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->priv->check_button_amend), FALSE);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->priv->check_button_signed_off_by), FALSE);
}
-
+
g_free(comment);
}
@@ -1475,7 +1475,7 @@ static void
on_context_value_changed(GtkHScale *scale, GitgCommitView *view)
{
view->priv->context_size = (gint)gtk_range_get_value(GTK_RANGE(scale));
-
+
if (view->priv->current_changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED)
unstaged_selection_changed(gtk_tree_view_get_selection(view->priv->tree_view_unstaged), view);
else if (view->priv->current_changes & GITG_CHANGED_FILE_CHANGES_CACHED)
@@ -1490,14 +1490,14 @@ set_unstaged_popup_status(GitgCommitView *view)
if (!get_selected_files(view->priv->tree_view_unstaged, NULL, NULL, &changes, &status))
return FALSE;
-
+
GtkAction *revert = gtk_ui_manager_get_action(view->priv->ui_manager, "/ui/popup_commit_stage/RevertChangesAction");
GtkAction *ignore = gtk_ui_manager_get_action(view->priv->ui_manager, "/ui/popup_commit_stage/IgnoreFileAction");
gboolean isnew = status == GITG_CHANGED_FILE_STATUS_NEW;
gtk_action_set_visible(revert, !isnew);
gtk_action_set_visible(ignore, isnew);
-
+
return TRUE;
}
@@ -1506,8 +1506,8 @@ set_staged_popup_status(GitgCommitView *view)
{
if (!get_selected_files(view->priv->tree_view_staged, NULL, NULL, NULL, NULL))
return FALSE;
-
- return TRUE;
+
+ return TRUE;
}
static gboolean
@@ -1517,9 +1517,9 @@ popup_unstaged_menu(GitgCommitView *view, GdkEventButton *event)
return FALSE;
GtkWidget *wd = gtk_ui_manager_get_widget(view->priv->ui_manager, "/ui/popup_commit_stage");
-
+
view->priv->context_type = CONTEXT_TYPE_FILE;
-
+
if (event)
{
gtk_menu_popup(GTK_MENU(wd), NULL, NULL, NULL, NULL, event->button, event->time);
@@ -1531,7 +1531,7 @@ popup_unstaged_menu(GitgCommitView *view, GdkEventButton *event)
view->priv->tree_view_staged, 0,
gtk_get_current_event_time());
}
-
+
return TRUE;
}
@@ -1542,9 +1542,9 @@ popup_staged_menu(GitgCommitView *view, GdkEventButton *event)
return FALSE;
GtkWidget *wd = gtk_ui_manager_get_widget(view->priv->ui_manager, "/ui/popup_commit_unstage");
-
+
view->priv->context_type = CONTEXT_TYPE_FILE;
-
+
if (event)
{
gtk_menu_popup(GTK_MENU(wd), NULL, NULL, NULL, NULL, event->button, event->time);
@@ -1556,7 +1556,7 @@ popup_staged_menu(GitgCommitView *view, GdkEventButton *event)
view->priv->tree_view_unstaged, 0,
gtk_get_current_event_time());
}
-
+
return TRUE;
}
@@ -1579,10 +1579,10 @@ on_stage_changes(GtkAction *action, GitgCommitView *view)
if (view->priv->context_type == CONTEXT_TYPE_FILE)
{
GitgChangedFile *file = view->priv->current_file;
-
+
if (!file)
return;
-
+
gitg_commit_stage(view->priv->commit, file, NULL, NULL);
}
else
@@ -1595,7 +1595,7 @@ static void
do_revert_changes(GitgCommitView *view)
{
gboolean ret;
-
+
if (view->priv->context_type == CONTEXT_TYPE_FILE)
{
ret = gitg_commit_revert(view->priv->commit, view->priv->current_file, NULL, NULL);
@@ -1607,13 +1607,13 @@ do_revert_changes(GitgCommitView *view)
gchar *hunk = get_hunk_patch(view, &view->priv->context_iter);
ret = gitg_commit_revert(view->priv->commit, view->priv->current_file, hunk, NULL);
g_free(hunk);
-
+
if (ret && view->priv->current_file == file)
gitg_diff_view_remove_hunk(GITG_DIFF_VIEW(view->priv->changes_view), &view->priv->context_iter);
-
+
g_object_unref(file);
}
-
+
if (!ret)
show_error(view, _("Revert fail"));
}
@@ -1632,10 +1632,10 @@ on_revert_changes(GtkAction *action, GitgCommitView *view)
_("Reverting changes is permanent and cannot be undone"));
gint response = gtk_dialog_run(GTK_DIALOG(dialog));
-
+
if (response == GTK_RESPONSE_YES)
do_revert_changes(view);
-
+
gtk_widget_destroy(dialog);
}
@@ -1651,10 +1651,10 @@ on_unstage_changes(GtkAction *action, GitgCommitView *view)
if (view->priv->context_type == CONTEXT_TYPE_FILE)
{
GitgChangedFile *file = view->priv->current_file;
-
+
if (!file)
return;
-
+
gitg_commit_unstage(view->priv->commit, file, NULL, NULL);
}
else
@@ -1676,14 +1676,14 @@ on_changes_view_popup_menu(GtkTextView *textview, GtkMenu *menu, GitgCommitView
/* check the hunk */
if (!get_hunk_at_pointer(view, &view->priv->context_iter, NULL))
return;
-
+
GtkWidget *separator = gtk_separator_menu_item_new();
gtk_widget_show(separator);
view->priv->context_type = CONTEXT_TYPE_HUNK;
gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator);
-
+
if (view->priv->current_changes & GITG_CHANGED_FILE_CHANGES_CACHED)
{
GtkWidget *unstage = create_context_menu_item(view, "UnstageChangesAction");
@@ -1693,7 +1693,7 @@ on_changes_view_popup_menu(GtkTextView *textview, GtkMenu *menu, GitgCommitView
{
GtkWidget *stage = create_context_menu_item(view, "StageChangesAction");
GtkWidget *revert = create_context_menu_item(view, "RevertChangesAction");
-
+
gtk_menu_shell_append(GTK_MENU_SHELL(menu), stage);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), revert);
}
@@ -1706,19 +1706,19 @@ on_check_button_amend_toggled (GtkToggleButton *button, GitgCommitView *view)
GtkTextBuffer *buffer = gtk_text_view_get_buffer (view->priv->comment_view);
GtkTextIter start;
GtkTextIter end;
-
+
gtk_text_buffer_get_bounds (buffer, &start, &end);
-
+
if (active && gtk_text_iter_compare (&start, &end) == 0)
{
// Get last commit message
gchar *message = gitg_commit_amend_message (view->priv->commit);
-
+
if (message)
{
gtk_text_buffer_set_text (buffer, message, -1);
}
-
+
g_free (message);
}
}
diff --git a/gitg/gitg-commit-view.h b/gitg/gitg-commit-view.h
index 2ec87aa..012398c 100644
--- a/gitg/gitg-commit-view.h
+++ b/gitg/gitg-commit-view.h
@@ -42,7 +42,7 @@ typedef struct _GitgCommitViewPrivate GitgCommitViewPrivate;
struct _GitgCommitView {
GtkVPaned parent;
-
+
GitgCommitViewPrivate *priv;
};
diff --git a/gitg/gitg-commit.c b/gitg/gitg-commit.c
index b4c4d2e..0a97b1c 100644
--- a/gitg/gitg-commit.c
+++ b/gitg/gitg-commit.c
@@ -54,7 +54,7 @@ struct _GitgCommitPrivate
guint update_id;
guint end_id;
-
+
GHashTable *files;
};
@@ -97,10 +97,10 @@ static void
gitg_commit_finalize(GObject *object)
{
GitgCommit *commit = GITG_COMMIT(object);
-
+
runner_cancel(commit);
g_object_unref(commit->priv->runner);
-
+
g_hash_table_destroy(commit->priv->files);
G_OBJECT_CLASS(gitg_commit_parent_class)->finalize(object);
@@ -110,7 +110,7 @@ static void
gitg_commit_dispose(GObject *object)
{
GitgCommit *self = GITG_COMMIT(object);
-
+
if (self->priv->repository)
{
g_signal_handlers_disconnect_by_func(self->priv->repository, G_CALLBACK(gitg_commit_refresh), self);
@@ -140,7 +140,7 @@ static void
gitg_commit_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgCommit *self = GITG_COMMIT(object);
-
+
switch (prop_id)
{
case PROP_REPOSITORY:
@@ -165,7 +165,7 @@ gitg_commit_class_init(GitgCommitClass *klass)
object_class->dispose = gitg_commit_dispose;
object_class->finalize = gitg_commit_finalize;
-
+
object_class->set_property = gitg_commit_set_property;
object_class->get_property = gitg_commit_get_property;
@@ -205,7 +205,7 @@ static void
gitg_commit_init(GitgCommit *self)
{
self->priv = GITG_COMMIT_GET_PRIVATE(self);
-
+
self->priv->runner = gitg_runner_new(10000);
self->priv->files = g_hash_table_new_full(g_file_hash, (GEqualFunc)g_file_equal, (GDestroyNotify)g_object_unref, (GDestroyNotify)g_object_unref);
}
@@ -224,7 +224,7 @@ runner_connect(GitgCommit *commit, GCallback updatefunc, GCallback endfunc)
g_signal_handler_disconnect(commit->priv->runner, commit->priv->update_id);
commit->priv->update_id = 0;
}
-
+
if (commit->priv->end_id)
{
g_signal_handler_disconnect(commit->priv->runner, commit->priv->end_id);
@@ -233,7 +233,7 @@ runner_connect(GitgCommit *commit, GCallback updatefunc, GCallback endfunc)
if (updatefunc)
commit->priv->update_id = g_signal_connect(commit->priv->runner, "update", updatefunc, commit);
-
+
if (endfunc)
commit->priv->end_id = g_signal_connect(commit->priv->runner, "end-loading", endfunc, commit);
}
@@ -242,14 +242,14 @@ static void
update_changed_file_status(GitgChangedFile *file, char const *action, gchar const *mode)
{
GitgChangedFileStatus status;
-
+
if (strcmp(action, "D") == 0)
status = GITG_CHANGED_FILE_STATUS_DELETED;
else if (strcmp(mode, "000000") == 0)
status = GITG_CHANGED_FILE_STATUS_NEW;
else
status = GITG_CHANGED_FILE_STATUS_MODIFIED;
-
+
gitg_changed_file_set_status(file, status);
}
@@ -257,58 +257,58 @@ static void
add_files(GitgCommit *commit, gchar **buffer, gboolean cached)
{
gchar *line;
-
+
while ((line = *buffer++) != NULL)
{
gchar **parts = g_strsplit_set(line, " \t", 0);
guint len = g_strv_length(parts);
-
+
if (len < 6)
{
g_warning("Invalid line: %s (%d)", line, len);
g_strfreev(parts);
continue;
}
-
+
gchar const *mode = parts[0] + 1;
gchar const *sha = parts[2];
-
+
gchar *path = g_build_filename(gitg_repository_get_path(commit->priv->repository), parts[5], NULL);
-
+
GFile *file = g_file_new_for_path(path);
g_free(path);
GitgChangedFile *f = GITG_CHANGED_FILE(g_hash_table_lookup(commit->priv->files, file));
-
+
if (f)
{
GitgChangedFileChanges changes = gitg_changed_file_get_changes(f);
g_object_set_data(G_OBJECT(f), CAN_DELETE_KEY, NULL);
update_changed_file_status(f, parts[4], mode);
-
+
if (cached)
{
gitg_changed_file_set_sha(f, sha);
gitg_changed_file_set_mode(f, mode);
-
+
changes |= GITG_CHANGED_FILE_CHANGES_CACHED;
}
else
{
changes |= GITG_CHANGED_FILE_CHANGES_UNSTAGED;
}
-
+
gitg_changed_file_set_changes(f, changes);
-
+
if ((changes & GITG_CHANGED_FILE_CHANGES_CACHED) && (changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED))
gitg_changed_file_set_status(f, GITG_CHANGED_FILE_STATUS_MODIFIED);
-
+
g_object_unref(file);
g_strfreev(parts);
continue;
}
-
+
f = gitg_changed_file_new(file);
update_changed_file_status(f, parts[4], mode);
@@ -316,12 +316,12 @@ add_files(GitgCommit *commit, gchar **buffer, gboolean cached)
gitg_changed_file_set_mode(f, mode);
GitgChangedFileChanges changes;
-
+
changes = cached ? GITG_CHANGED_FILE_CHANGES_CACHED : GITG_CHANGED_FILE_CHANGES_UNSTAGED;
gitg_changed_file_set_changes(f, changes);
-
+
g_hash_table_insert(commit->priv->files, file, f);
-
+
g_signal_connect(f, "changed", G_CALLBACK(on_changed_file_changed), commit);
g_signal_emit(commit, commit_signals[INSERTED], 0, f);
@@ -340,7 +340,7 @@ delete_file(GFile *key, GitgChangedFile *value, GitgCommit *commit)
{
if (!g_object_get_data(G_OBJECT(value), CAN_DELETE_KEY))
return FALSE;
-
+
g_signal_emit(commit, commit_signals[REMOVED], 0, value);
return TRUE;
}
@@ -357,7 +357,7 @@ read_unstaged_files_end(GitgRunner *runner, gboolean cancelled, GitgCommit *comm
gchar *head = gitg_repository_parse_head(commit->priv->repository);
gitg_runner_cancel(runner);
- runner_connect(commit, G_CALLBACK(read_cached_files_update), G_CALLBACK(refresh_done));
+ runner_connect(commit, G_CALLBACK(read_cached_files_update), G_CALLBACK(refresh_done));
gitg_repository_run_commandv(commit->priv->repository, commit->priv->runner, NULL, "diff-index", "--cached", head, NULL);
g_free(head);
}
@@ -372,7 +372,7 @@ static void
read_other_files_end(GitgRunner *runner, gboolean cancelled, GitgCommit *commit)
{
gitg_runner_cancel(runner);
-
+
runner_connect(commit, G_CALLBACK(read_unstaged_files_update), G_CALLBACK(read_unstaged_files_end));
gitg_repository_run_commandv(commit->priv->repository,commit->priv->runner, NULL, "diff-files", NULL);
}
@@ -382,7 +382,7 @@ changed_file_new(GitgChangedFile *f)
{
gitg_changed_file_set_status(f, GITG_CHANGED_FILE_STATUS_NEW);
gitg_changed_file_set_changes(f, GITG_CHANGED_FILE_CHANGES_UNSTAGED);
-
+
g_object_set_data(G_OBJECT(f), CAN_DELETE_KEY, NULL);
}
@@ -396,26 +396,26 @@ read_other_files_update(GitgRunner *runner, gchar **buffer, GitgCommit *commit)
/* Skip empty lines */
if (!*line)
continue;
-
+
/* Check if file is already in our index */
gchar *path = g_build_filename(gitg_repository_get_path(commit->priv->repository), line, NULL);
-
+
GFile *file = g_file_new_for_path(path);
g_free(path);
GitgChangedFile *f = g_hash_table_lookup(commit->priv->files, file);
-
+
if (f)
{
changed_file_new(f);
g_object_unref(file);
continue;
}
-
+
f = gitg_changed_file_new(file);
- changed_file_new(f);
+ changed_file_new(f);
g_hash_table_insert(commit->priv->files, file, f);
-
+
g_signal_emit(commit, commit_signals[INSERTED], 0, f);
}
}
@@ -425,7 +425,7 @@ update_index_end(GitgRunner *runner, gboolean cancelled, GitgCommit *commit)
{
gitg_runner_cancel(runner);
runner_connect(commit, G_CALLBACK(read_other_files_update), G_CALLBACK(read_other_files_end));
-
+
gitg_repository_run_commandv(commit->priv->repository, commit->priv->runner, NULL, "ls-files", "--others", "--exclude-standard", NULL);
}
@@ -449,7 +449,7 @@ gitg_commit_refresh(GitgCommit *commit)
g_return_if_fail(GITG_IS_COMMIT(commit));
runner_cancel(commit);
-
+
g_hash_table_foreach(commit->priv->files, (GHFunc)set_can_delete, commit);
/* Read other files */
@@ -467,22 +467,22 @@ update_index_staged(GitgCommit *commit, GitgChangedFile *file)
gchar *head = gitg_repository_parse_head(commit->priv->repository);
gchar **ret = gitg_repository_command_with_outputv(commit->priv->repository, NULL, "diff-index", "--cached", head, "--", path, NULL);
-
+
g_free(path);
g_free(head);
g_object_unref(f);
-
+
if (!ret)
return;
-
+
gchar **parts = *ret ? g_strsplit_set(*ret, " \t", 0) : NULL;
g_strfreev(ret);
-
+
if (parts && g_strv_length(parts) > 2)
{
gitg_changed_file_set_mode(file, parts[0] + 1);
gitg_changed_file_set_sha(file, parts[2]);
-
+
gitg_changed_file_set_changes(file, gitg_changed_file_get_changes(file) | GITG_CHANGED_FILE_CHANGES_CACHED);
update_changed_file_status(file, parts[4], parts[0] + 1);
}
@@ -490,7 +490,7 @@ update_index_staged(GitgCommit *commit, GitgChangedFile *file)
{
gitg_changed_file_set_changes(file, gitg_changed_file_get_changes(file) & ~GITG_CHANGED_FILE_CHANGES_CACHED);
}
-
+
if (parts)
g_strfreev(parts);
}
@@ -503,7 +503,7 @@ update_index_unstaged(GitgCommit *commit, GitgChangedFile *file)
gchar **ret = gitg_repository_command_with_outputv(commit->priv->repository, NULL, "diff-files", "--", path, NULL);
g_free(path);
g_object_unref(f);
-
+
if (ret && *ret)
{
gitg_changed_file_set_changes(file, gitg_changed_file_get_changes(file) | GITG_CHANGED_FILE_CHANGES_UNSTAGED);
@@ -512,7 +512,7 @@ update_index_unstaged(GitgCommit *commit, GitgChangedFile *file)
{
gitg_changed_file_set_changes(file, gitg_changed_file_get_changes(file) & ~GITG_CHANGED_FILE_CHANGES_UNSTAGED);
}
-
+
if (ret)
g_strfreev(ret);
}
@@ -526,7 +526,7 @@ update_index_file(GitgCommit *commit, GitgChangedFile *file)
g_object_unref(f);
gitg_repository_commandv(commit->priv->repository, NULL, "update-index", "-q", "--unmerged", "--ignore-missing", "--refresh", NULL);
-
+
g_free(path);
}
@@ -539,7 +539,7 @@ refresh_changes(GitgCommit *commit, GitgChangedFile *file)
/* Determine if it still has staged/unstaged changes */
update_index_staged(commit, file);
update_index_unstaged(commit, file);
-
+
GitgChangedFileChanges changes = gitg_changed_file_get_changes(file);
GitgChangedFileStatus status = gitg_changed_file_get_status(file);
@@ -547,7 +547,7 @@ refresh_changes(GitgCommit *commit, GitgChangedFile *file)
gitg_changed_file_set_status(file, GITG_CHANGED_FILE_STATUS_NEW);
else if ((changes & GITG_CHANGED_FILE_CHANGES_CACHED) && (changes & GITG_CHANGED_FILE_CHANGES_UNSTAGED))
gitg_changed_file_set_status(file, GITG_CHANGED_FILE_STATUS_MODIFIED);
-
+
if (status == GITG_CHANGED_FILE_STATUS_NEW &&
!(changes & GITG_CHANGED_FILE_CHANGES_CACHED))
{
@@ -560,14 +560,14 @@ apply_hunk(GitgCommit *commit, GitgChangedFile *file, gchar const *hunk, gboolea
{
g_return_val_if_fail(GITG_IS_COMMIT(commit), FALSE);
g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), FALSE);
-
+
g_return_val_if_fail(hunk != NULL, FALSE);
-
+
gboolean ret = gitg_repository_command_with_inputv(commit->priv->repository, hunk, error, "apply", "--cached", reverse ? "--reverse" : NULL, NULL);
-
+
if (ret)
refresh_changes(commit, file);
-
+
return ret;
}
@@ -576,15 +576,15 @@ gitg_commit_stage(GitgCommit *commit, GitgChangedFile *file, gchar const *hunk,
{
if (hunk)
return apply_hunk(commit, file, hunk, FALSE, error);
-
+
/* Otherwise, stage whole file */
GFile *f = gitg_changed_file_get_file(file);
gchar *path = gitg_repository_relative(commit->priv->repository, f);
g_object_unref(f);
-
+
gboolean ret = gitg_repository_commandv(commit->priv->repository, NULL, "update-index", "--add", "--remove", "--", path, NULL);
g_free(path);
-
+
if (ret)
refresh_changes(commit, file);
else
@@ -598,7 +598,7 @@ gitg_commit_unstage(GitgCommit *commit, GitgChangedFile *file, gchar const *hunk
{
if (hunk)
return apply_hunk(commit, file, hunk, TRUE, error);
-
+
/* Otherwise, unstage whole file */
GFile *f = gitg_changed_file_get_file(file);
gchar *path = gitg_repository_relative(commit->priv->repository, f);
@@ -607,12 +607,12 @@ gitg_commit_unstage(GitgCommit *commit, GitgChangedFile *file, gchar const *hunk
gchar *input = g_strdup_printf("%s %s\t%s\n", gitg_changed_file_get_mode(file), gitg_changed_file_get_sha(file), path);
gboolean ret = gitg_repository_command_with_inputv(commit->priv->repository, input, error, "update-index", "--index-info", NULL);
g_free(input);
-
+
if (ret)
refresh_changes(commit, file);
else
g_error("Update index for unstage failed");
-
+
return ret;
}
@@ -621,7 +621,7 @@ find_staged(GFile *key, GitgChangedFile *value, gboolean *result)
{
if (*result)
return;
-
+
*result = (gitg_changed_file_get_changes(value) & GITG_CHANGED_FILE_CHANGES_CACHED);
}
@@ -630,7 +630,7 @@ gitg_commit_has_changes(GitgCommit *commit)
{
g_return_val_if_fail(GITG_IS_COMMIT(commit), FALSE);
gboolean result = FALSE;
-
+
g_hash_table_foreach(commit->priv->files, (GHFunc)find_staged, &result);
return result;
}
@@ -640,7 +640,7 @@ comment_parse_subject(gchar const *comment)
{
gchar *ptr;
gchar *subject;
-
+
if ((ptr = g_utf8_strchr(comment, g_utf8_strlen(comment, -1), '\n')) != NULL)
{
subject = g_strndup(comment, ptr - comment);
@@ -649,10 +649,10 @@ comment_parse_subject(gchar const *comment)
{
subject = g_strdup(comment);
}
-
+
gchar *commit = g_strconcat("commit:", subject, NULL);
g_free(subject);
-
+
return commit;
}
@@ -661,16 +661,16 @@ write_tree(GitgCommit *commit, gchar **tree, GError **error)
{
gchar const *argv[] = {"write-tree", NULL};
gchar **lines = gitg_repository_command_with_output(commit->priv->repository, argv, error);
-
+
if (!lines || strlen(*lines) != HASH_SHA_SIZE)
{
g_strfreev(lines);
return FALSE;
}
-
+
*tree = g_strdup(*lines);
g_strfreev(lines);
-
+
return TRUE;
}
@@ -678,36 +678,36 @@ static gchar *
get_signed_off_line(GitgCommit *commit)
{
gchar **user = gitg_repository_command_with_outputv(commit->priv->repository, NULL, "config", "--get", "user.name", NULL);
-
+
if (!user)
return NULL;
-
+
if (!*user || !**user)
{
g_strfreev(user);
return NULL;
}
-
+
gchar **email = gitg_repository_command_with_outputv(commit->priv->repository, NULL, "config", "--get", "user.email", NULL);
-
+
if (!email)
{
g_strfreev(user);
return NULL;
}
-
+
if (!*email || !**email)
{
g_strfreev(user);
g_strfreev(email);
-
+
return NULL;
}
-
+
gchar *ret = g_strdup_printf("Signed-off-by: %s <%s>", *user, *email);
g_strfreev(user);
g_strfreev(email);
-
+
return ret;
}
@@ -720,7 +720,7 @@ on_commit_tree_update (GitgRunner *runner, gchar **lines, GString *buffer)
{
g_string_append_c (buffer, '\n');
}
-
+
g_string_append (buffer, *lines);
++lines;
}
@@ -730,7 +730,7 @@ static void
set_amend_environment (GitgCommit *commit, GitgRunner *runner)
{
gchar **out;
-
+
out = gitg_repository_command_with_outputv (commit->priv->repository,
NULL,
"cat-file",
@@ -746,7 +746,7 @@ set_amend_environment (GitgCommit *commit, GitgRunner *runner)
GMatchInfo *info = NULL;
gchar **ptr = out;
-
+
while (ptr && *ptr)
{
if (g_regex_match (r, *ptr, 0, &info))
@@ -758,17 +758,17 @@ set_amend_environment (GitgCommit *commit, GitgRunner *runner)
gitg_runner_add_environment (runner, "GIT_AUTHOR_NAME", name);
gitg_runner_add_environment (runner, "GIT_AUTHOR_EMAIL", email);
gitg_runner_add_environment (runner, "GIT_AUTHOR_DATE", date);
-
+
g_free (name);
g_free (email);
g_free (date);
-
+
break;
}
-
+
++ptr;
}
-
+
g_strfreev (out);
}
@@ -781,28 +781,28 @@ convert_commit_encoding (GitgCommit *commit, gchar const *s)
config = gitg_config_new (commit->priv->repository);
encoding = gitg_config_get_value (config, "i18n.commitencoding");
-
+
if (!encoding || !*encoding)
{
g_object_unref (config);
g_free (encoding);
config = gitg_config_new (NULL);
-
+
encoding = gitg_config_get_value (config, "i18n.commitencoding");
}
-
+
g_object_unref (config);
-
+
if (!encoding || !*encoding || g_ascii_strcasecmp (encoding, "UTF-8") == 0)
{
g_free (encoding);
return g_strdup (s);
}
-
+
// Try to convert from UTF-8 to 'encoding'
ret = g_convert (s, -1, encoding, "UTF-8", NULL, NULL, NULL);
-
+
if (!ret)
{
// Just use 's' then, even if it is UTF-8...
@@ -817,16 +817,16 @@ static gboolean
commit_tree(GitgCommit *commit, gchar const *tree, gchar const *comment, gboolean signoff, gboolean amend, gchar **ref, GError **error)
{
gchar *fullcomment;
-
+
if (signoff)
{
gchar *line = get_signed_off_line(commit);
-
+
if (!line)
{
if (error)
g_set_error(error, GITG_COMMIT_ERROR, GITG_COMMIT_ERROR_SIGNOFF, "Could not retrieve user name or email for signoff message");
-
+
return FALSE;
}
@@ -836,9 +836,9 @@ commit_tree(GitgCommit *commit, gchar const *tree, gchar const *comment, gboolea
{
fullcomment = g_strdup(comment);
}
-
+
gchar *head;
-
+
if (amend)
{
head = gitg_repository_parse_ref(commit->priv->repository, "HEAD^");
@@ -847,17 +847,17 @@ commit_tree(GitgCommit *commit, gchar const *tree, gchar const *comment, gboolea
{
head = gitg_repository_parse_ref(commit->priv->repository, "HEAD");
}
-
+
GitgRunner *runner = gitg_runner_new_synchronized (1000);
GString *buffer = g_string_new ("");
-
+
if (amend)
{
set_amend_environment (commit, runner);
}
-
+
gchar *converted = convert_commit_encoding (commit, fullcomment);
-
+
g_signal_connect (runner, "update", G_CALLBACK (on_commit_tree_update), buffer);
gitg_repository_run_command_with_inputv (commit->priv->repository,
runner,
@@ -879,7 +879,7 @@ commit_tree(GitgCommit *commit, gchar const *tree, gchar const *comment, gboolea
g_string_free(buffer, TRUE);
return FALSE;
}
-
+
*ref = g_string_free (buffer, FALSE);
return TRUE;
}
@@ -889,10 +889,10 @@ update_ref(GitgCommit *commit, gchar const *ref, gchar const *subject, GError **
{
gchar *converted = convert_commit_encoding (commit, subject);
gchar const *argv[] = {"update-ref", "-m", converted, "HEAD", ref, NULL};
-
+
gboolean ret = gitg_repository_command(commit->priv->repository, argv, error);
g_free (converted);
-
+
return ret;
}
@@ -900,33 +900,33 @@ gboolean
gitg_commit_commit(GitgCommit *commit, gchar const *comment, gboolean signoff, gboolean amend, GError **error)
{
g_return_val_if_fail(GITG_IS_COMMIT(commit), FALSE);
-
+
gchar *tree;
if (!write_tree(commit, &tree, error))
return FALSE;
-
+
gchar *path = g_build_filename (gitg_repository_get_path (commit->priv->repository),
".git",
"COMMIT_EDITMSG",
NULL);
g_file_set_contents (path, comment, -1, NULL);\
g_free (path);
-
+
gchar *ref;
gboolean ret = commit_tree(commit, tree, comment, signoff, amend, &ref, error);
g_free(tree);
-
+
if (!ret)
return FALSE;
gchar *subject = comment_parse_subject(comment);
ret = update_ref(commit, ref, subject, error);
g_free(subject);
-
+
if (!ret)
return FALSE;
-
+
gitg_repository_reload(commit->priv->repository);
return TRUE;
}
@@ -946,16 +946,16 @@ gboolean
gitg_commit_revert(GitgCommit *commit, GitgChangedFile *file, gchar const *hunk, GError **error)
{
gboolean ret;
-
+
if (!hunk)
{
GFile *f = gitg_changed_file_get_file(file);
gchar *path = gitg_repository_relative(commit->priv->repository, f);
-
+
ret = gitg_repository_command_with_inputv(commit->priv->repository, path, error, "checkout-index", "--index", "--quiet", "--force", "--stdin", NULL);
-
+
g_free(path);
-
+
update_index_file(commit, file);
update_index_unstaged(commit, file);
g_object_unref(f);
@@ -964,15 +964,15 @@ gitg_commit_revert(GitgCommit *commit, GitgChangedFile *file, gchar const *hunk,
{
GitgRunner *runner = gitg_runner_new_synchronized(1000);
gchar const *argv[] = {"patch", "-p1", "-R", NULL};
-
+
ret = gitg_runner_run_with_arguments(runner, argv, gitg_repository_get_path(commit->priv->repository), hunk, NULL);
-
+
update_index_file(commit, file);
update_index_unstaged(commit, file);
-
+
g_object_unref(runner);
}
-
+
return ret;
}
@@ -981,16 +981,16 @@ gitg_commit_add_ignore(GitgCommit *commit, GitgChangedFile *file, GError **error
{
g_return_val_if_fail(GITG_IS_COMMIT(commit), FALSE);
g_return_val_if_fail(GITG_IS_CHANGED_FILE(file), FALSE);
-
+
GFile *f = gitg_changed_file_get_file(file);
gchar *path = gitg_repository_relative(commit->priv->repository, f);
-
+
gchar *ignore = g_strdup_printf("%s/.gitignore", gitg_repository_get_path(commit->priv->repository));
GFile *ig = g_file_new_for_path(ignore);
-
+
GFileOutputStream *stream = g_file_append_to(ig, G_FILE_CREATE_NONE, NULL, error);
gboolean ret = FALSE;
-
+
if (stream)
{
gchar *line = g_strdup_printf("/%s\n", path);
@@ -1000,11 +1000,11 @@ gitg_commit_add_ignore(GitgCommit *commit, GitgChangedFile *file, GError **error
g_object_unref(stream);
g_free(line);
}
-
+
if (ret)
remove_file(commit, file);
- g_object_unref(f);
+ g_object_unref(f);
g_free(ignore);
g_free(path);
@@ -1022,9 +1022,9 @@ gitg_commit_find_changed_file(GitgCommit *commit, GFile *file)
{
g_return_val_if_fail(GITG_IS_COMMIT(commit), NULL);
g_return_val_if_fail(G_IS_FILE(file), NULL);
-
+
GitgChangedFile *f = g_hash_table_lookup(commit->priv->files, file);
-
+
if (f != NULL)
{
return g_object_ref(f);
@@ -1039,9 +1039,9 @@ gchar *
gitg_commit_amend_message (GitgCommit *commit)
{
g_return_val_if_fail (GITG_IS_COMMIT (commit), NULL);
-
+
gchar **out;
-
+
out = gitg_repository_command_with_outputv (commit->priv->repository,
NULL,
"cat-file",
@@ -1050,11 +1050,11 @@ gitg_commit_amend_message (GitgCommit *commit)
NULL);
gchar *ret = NULL;
-
+
if (out)
{
gchar **ptr = out;
-
+
while (*ptr)
{
if (!**ptr)
@@ -1062,29 +1062,29 @@ gitg_commit_amend_message (GitgCommit *commit)
++ptr;
break;
}
-
+
++ptr;
}
-
+
if (*ptr && **ptr)
{
GString *buffer = g_string_new ("");
-
+
while (*ptr)
{
if (buffer->len != 0)
{
g_string_append_c (buffer, '\n');
}
-
+
g_string_append (buffer, *ptr);
++ptr;
}
-
+
ret = g_string_free (buffer, FALSE);
}
}
-
+
g_strfreev (out);
return ret;
}
diff --git a/gitg/gitg-commit.h b/gitg/gitg-commit.h
index 600ee5c..1d21895 100644
--- a/gitg/gitg-commit.h
+++ b/gitg/gitg-commit.h
@@ -51,13 +51,13 @@ typedef enum
struct _GitgCommit {
GObject parent;
-
+
GitgCommitPrivate *priv;
};
struct _GitgCommitClass {
GObjectClass parent_class;
-
+
void (*inserted) (GitgCommit *commit, GitgChangedFile *file);
void (*removed) (GitgCommit *commit, GitgChangedFile *file);
};
diff --git a/gitg/gitg-config.c b/gitg/gitg-config.c
index 518bec8..61f8f9a 100644
--- a/gitg/gitg-config.c
+++ b/gitg/gitg-config.c
@@ -13,7 +13,7 @@ struct _GitgConfigPrivate
{
GitgRepository *repository;
GitgRunner *runner;
-
+
GString *accumulated;
};
@@ -23,14 +23,14 @@ static void
gitg_config_finalize (GObject *object)
{
GitgConfig *config = GITG_CONFIG (object);
-
+
if (config->priv->repository)
{
g_object_unref(config->priv->repository);
}
-
+
g_string_free (config->priv->accumulated, TRUE);
-
+
G_OBJECT_CLASS (gitg_config_parent_class)->finalize (object);
}
@@ -38,7 +38,7 @@ static void
gitg_config_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgConfig *self = GITG_CONFIG (object);
-
+
switch (prop_id)
{
case PROP_REPOSITORY:
@@ -46,7 +46,7 @@ gitg_config_set_property (GObject *object, guint prop_id, const GValue *value, G
{
g_object_unref(self->priv->repository);
}
-
+
self->priv->repository = GITG_REPOSITORY (g_value_dup_object (value));
break;
default:
@@ -59,7 +59,7 @@ static void
gitg_config_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
GitgConfig *self = GITG_CONFIG (object);
-
+
switch (prop_id)
{
case PROP_REPOSITORY:
@@ -75,11 +75,11 @@ static void
gitg_config_class_init (GitgConfigClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
+
object_class->finalize = gitg_config_finalize;
object_class->get_property = gitg_config_get_property;
object_class->set_property = gitg_config_set_property;
-
+
g_object_class_install_property(object_class, PROP_REPOSITORY,
g_param_spec_object("repository",
"REPOSITORY",
@@ -94,14 +94,14 @@ static void
gitg_config_accumulate (GitgRunner *runner, gchar **buffer, GitgConfig *config)
{
gchar **ptr = buffer;
-
+
while (*ptr)
{
if (config->priv->accumulated->len != 0)
{
g_string_append_c (config->priv->accumulated, '\n');
}
-
+
g_string_append (config->priv->accumulated, *ptr);
++ptr;
}
@@ -117,11 +117,11 @@ static void
gitg_config_init (GitgConfig *self)
{
self->priv = GITG_CONFIG_GET_PRIVATE (self);
-
+
self->priv->runner = gitg_runner_new_synchronized (1000);
-
+
self->priv->accumulated = g_string_new ("");
-
+
g_signal_connect (self->priv->runner,
"update",
G_CALLBACK (gitg_config_accumulate),
@@ -143,7 +143,7 @@ static gchar *
get_value_process (GitgConfig *config, gboolean ret)
{
gchar *res;
-
+
if (ret)
{
res = g_strndup (config->priv->accumulated->str, config->priv->accumulated->len);
@@ -203,7 +203,7 @@ get_value_local (GitgConfig *config, gchar const *key)
key,
NULL);
g_free (cfg);
-
+
return get_value_process (config, ret);
}
@@ -224,7 +224,7 @@ get_value_local_regex (GitgConfig *config, gchar const *regex)
regex,
NULL);
g_free (cfg);
-
+
return get_value_process (config, ret);
}
@@ -299,7 +299,7 @@ gitg_config_get_value (GitgConfig *config, gchar const *key)
{
g_return_val_if_fail (GITG_IS_CONFIG (config), NULL);
g_return_val_if_fail (key != NULL, NULL);
-
+
if (config->priv->repository != NULL)
{
return get_value_local (config, key);
@@ -315,7 +315,7 @@ gitg_config_get_value_regex (GitgConfig *config, gchar const *regex)
{
g_return_val_if_fail (GITG_IS_CONFIG (config), NULL);
g_return_val_if_fail (regex != NULL, NULL);
-
+
if (config->priv->repository != NULL)
{
return get_value_local_regex (config, regex);
@@ -331,7 +331,7 @@ gitg_config_set_value (GitgConfig *config, gchar const *key, gchar const *value)
{
g_return_val_if_fail (GITG_IS_CONFIG (config), FALSE);
g_return_val_if_fail (key != NULL, FALSE);
-
+
if (config->priv->repository != NULL)
{
return set_value_local (config, key, value);
@@ -348,7 +348,7 @@ gitg_config_rename (GitgConfig *config, gchar const *old, gchar const *nw)
g_return_val_if_fail (GITG_IS_CONFIG (config), FALSE);
g_return_val_if_fail (old != NULL, FALSE);
g_return_val_if_fail (nw != NULL, FALSE);
-
+
if (config->priv->repository != NULL)
{
return rename_local (config, old, nw);
diff --git a/gitg/gitg-config.h b/gitg/gitg-config.h
index 591860e..e6f8313 100644
--- a/gitg/gitg-config.h
+++ b/gitg/gitg-config.h
@@ -20,7 +20,7 @@ typedef struct _GitgConfigPrivate GitgConfigPrivate;
struct _GitgConfig {
GObject parent;
-
+
GitgConfigPrivate *priv;
};
diff --git a/gitg/gitg-data-binding.c b/gitg/gitg-data-binding.c
index 15c7f8d..10f8a3e 100644
--- a/gitg/gitg-data-binding.c
+++ b/gitg/gitg-data-binding.c
@@ -27,7 +27,7 @@
typedef struct
{
GObject *object;
-
+
gchar *property;
GType type;
@@ -82,41 +82,41 @@ gitg_data_binding_create(gpointer source, gchar const *source_property,
{
g_return_val_if_fail(G_IS_OBJECT(source), NULL);
g_return_val_if_fail(G_IS_OBJECT(dest), NULL);
-
+
GObjectClass *sclass = G_OBJECT_GET_CLASS(source);
GObjectClass *dclass = G_OBJECT_GET_CLASS(dest);
-
+
GParamSpec *sspec = g_object_class_find_property(sclass, source_property);
-
+
if (!sspec)
{
g_warning("No such source property found: %s", source_property);
return NULL;
}
-
+
GParamSpec *dspec = g_object_class_find_property(dclass, dest_property);
-
+
if (!dspec)
{
g_warning("No such dest property found: %s", dest_property);
return NULL;
}
-
+
GitgDataBinding *binding = g_slice_new0(GitgDataBinding);
-
+
binding->flags = flags;
-
+
binding_fill(&binding->source, source, source_property, G_PARAM_SPEC_VALUE_TYPE(sspec), source_to_dest, userdata);
binding_fill(&binding->dest, dest, dest_property, G_PARAM_SPEC_VALUE_TYPE(dspec), dest_to_source, userdata);
-
+
binding_connect(binding, &binding->source);
-
+
if (flags & GITG_DATA_BINDING_MUTUAL)
binding_connect(binding, &binding->dest);
-
+
g_object_weak_ref(binding->source.object, (GWeakNotify)on_data_binding_destroy, binding);
g_object_weak_ref(binding->dest.object, (GWeakNotify)on_data_binding_destroy, binding);
-
+
/* initial value */
on_data_binding_changed(binding->source.object, NULL, binding);
return binding;
@@ -187,7 +187,7 @@ gitg_data_binding_free(GitgDataBinding *binding)
g_object_weak_unref(binding->source.object, (GWeakNotify)on_data_binding_destroy, binding);
g_object_weak_unref(binding->dest.object, (GWeakNotify)on_data_binding_destroy, binding);
-
+
gitg_data_binding_finalize(binding);
}
@@ -195,11 +195,11 @@ static void
on_data_binding_destroy(GitgDataBinding *binding, GObject *object)
{
Binding *bd = binding->source.object == object ? &binding->dest : &binding->source;
-
+
/* disconnect notify handler */
if (bd->notify_id)
g_signal_handler_disconnect(bd->object, bd->notify_id);
-
+
/* remove weak ref */
g_object_weak_unref(bd->object, (GWeakNotify)on_data_binding_destroy, binding);
@@ -216,13 +216,13 @@ on_data_binding_changed(GObject *object, GParamSpec *spec, GitgDataBinding *bind
/* Transmit to dest */
GValue value = { 0, };
g_value_init(&value, dest->type);
-
+
GValue svalue = { 0, };
g_value_init(&svalue, source->type);
-
+
g_object_get_property(source->object, source->property, &svalue);
g_object_get_property(dest->object, dest->property, &value);
-
+
if (source->conversion(&svalue, &value, source->userdata))
{
if (dest->notify_id)
@@ -233,7 +233,7 @@ on_data_binding_changed(GObject *object, GParamSpec *spec, GitgDataBinding *bind
if (dest->notify_id)
g_signal_handler_unblock(dest->object, dest->notify_id);
}
-
+
g_value_unset(&value);
g_value_unset(&svalue);
}
@@ -244,7 +244,7 @@ gitg_data_binding_color_to_string(GValue const *color, GValue *string, gpointer
{
GdkColor *clr = g_value_get_boxed(color);
gchar *s = gdk_color_to_string(clr);
-
+
g_value_take_string(string, s);
return TRUE;
}
@@ -254,7 +254,7 @@ gitg_data_binding_string_to_color(GValue const *string, GValue *color, gpointer
{
gchar const *s = g_value_get_string(string);
GdkColor clr;
-
+
gdk_color_parse(s, &clr);
g_value_set_boxed(color, &clr);
return TRUE;
diff --git a/gitg/gitg-diff-view.c b/gitg/gitg-diff-view.c
index a176b6f..e0befdd 100644
--- a/gitg/gitg-diff-view.c
+++ b/gitg/gitg-diff-view.c
@@ -54,7 +54,7 @@ enum
enum
{
PROP_0,
-
+
PROP_DIFF_ENABLED
};
@@ -93,7 +93,7 @@ struct _GitgDiffViewPrivate
Region *regions;
Region *last_region;
GSequence *regions_index;
-
+
guint scan_id;
gboolean diff_enabled;
GtkTextBuffer *current_buffer;
@@ -110,9 +110,9 @@ region_free(Region *region)
{
if (!region)
return;
-
+
region_free(region->next);
-
+
if (region->type == GITG_DIFF_ITER_TYPE_HEADER)
g_slice_free(Header, (Header *)region);
else
@@ -124,7 +124,7 @@ regions_free(GitgDiffView *view, gboolean remove_signals)
{
region_free(view->priv->regions);
g_sequence_remove_range(g_sequence_get_begin_iter(view->priv->regions_index), g_sequence_get_end_iter(view->priv->regions_index));
-
+
view->priv->regions = NULL;
view->priv->last_region = NULL;
view->priv->last_scan_line = 0;
@@ -135,29 +135,29 @@ regions_free(GitgDiffView *view, gboolean remove_signals)
g_source_remove(view->priv->scan_id);
view->priv->scan_id = 0;
}
-
+
if (view->priv->current_buffer && remove_signals)
{
g_signal_handlers_disconnect_by_func(view->priv->current_buffer, G_CALLBACK(on_buffer_insert_text), view);
g_signal_handlers_disconnect_by_func(view->priv->current_buffer, G_CALLBACK(on_buffer_delete_range), view);
gtk_text_tag_table_remove(gtk_text_buffer_get_tag_table(view->priv->current_buffer), view->priv->invisible_tag);
-
+
g_object_unref(view->priv->current_buffer);
-
+
view->priv->current_buffer = NULL;
view->priv->invisible_tag = NULL;
}
}
-
+
static void
gitg_diff_view_finalize(GObject *object)
{
GitgDiffView *view = GITG_DIFF_VIEW(object);
-
+
regions_free(view, TRUE);
g_sequence_free(view->priv->regions_index);
-
+
G_OBJECT_CLASS(gitg_diff_view_parent_class)->finalize(object);
}
@@ -172,7 +172,7 @@ static void
gitg_diff_view_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgDiffView *self = GITG_DIFF_VIEW(object);
-
+
switch (prop_id)
{
case PROP_DIFF_ENABLED:
@@ -205,7 +205,7 @@ gitg_diff_view_class_init(GitgDiffViewClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
-
+
object_class->finalize = gitg_diff_view_finalize;
object_class->set_property = gitg_diff_view_set_property;
object_class->get_property = gitg_diff_view_get_property;
@@ -249,7 +249,7 @@ on_buffer_set(GitgDiffView *self, GParamSpec *spec, gpointer userdata)
{
/* remove all regions for a new buffer */
regions_free(self, TRUE);
-
+
self->priv->current_buffer = g_object_ref(gtk_text_view_get_buffer(GTK_TEXT_VIEW(self)));
g_signal_connect_after(self->priv->current_buffer, "insert-text", G_CALLBACK(on_buffer_insert_text), self);
g_signal_connect_after(self->priv->current_buffer, "delete-range", G_CALLBACK(on_buffer_delete_range), self);
@@ -262,9 +262,9 @@ static void
gitg_diff_view_init(GitgDiffView *self)
{
self->priv = GITG_DIFF_VIEW_GET_PRIVATE(self);
-
+
self->priv->regions_index = g_sequence_new(NULL);
-
+
g_signal_connect(self, "notify::buffer", G_CALLBACK(on_buffer_set), NULL);
}
@@ -285,7 +285,7 @@ get_lines (GtkTextView *text_view, gint first_y, gint last_y, GArray *buffer_coo
g_array_set_size(buffer_coords, 0);
g_array_set_size(numbers, 0);
-
+
if (line_heights != NULL)
g_array_set_size(line_heights, 0);
@@ -304,10 +304,10 @@ get_lines (GtkTextView *text_view, gint first_y, gint last_y, GArray *buffer_coo
gtk_text_view_get_line_yrange(text_view, &iter, &y, &height);
g_array_append_val(buffer_coords, y);
-
+
if (line_heights)
g_array_append_val(line_heights, height);
-
+
last_line_num = gtk_text_iter_get_line(&iter);
g_array_append_val(numbers, last_line_num);
@@ -331,7 +331,7 @@ get_lines (GtkTextView *text_view, gint first_y, gint last_y, GArray *buffer_coo
if (line_num != last_line_num)
{
g_array_append_val(buffer_coords, y);
-
+
if (line_heights)
g_array_append_val(line_heights, height);
@@ -348,7 +348,7 @@ index_compare(gconstpointer a, gconstpointer b, gpointer userdata)
{
guint la = ((Region *)a)->line;
guint lb = ((Region *)b)->line;
-
+
return la < lb ? -1 : (la > lb ? 1 : 0);
}
@@ -369,7 +369,7 @@ add_region(GitgDiffView *view, Region *region)
{
view->priv->last_region->next = region;
region->prev = view->priv->last_region;
-
+
if (view->priv->last_region->type == GITG_DIFF_ITER_TYPE_HUNK)
ensure_max_line(view, (Hunk *)view->priv->last_region);
}
@@ -381,11 +381,11 @@ add_region(GitgDiffView *view, Region *region)
view->priv->last_region = region;
g_sequence_insert_sorted(view->priv->regions_index, region, index_compare, NULL);
-
+
GitgDiffIter iter;
iter.userdata = view;
iter.userdata2 = region;
-
+
if (region->type == GITG_DIFF_ITER_TYPE_HEADER)
g_signal_emit(view, diff_view_signals[HEADER_ADDED], 0, &iter);
else if (region->type == GITG_DIFF_ITER_TYPE_HUNK)
@@ -396,19 +396,19 @@ static void
parse_hunk_info(Hunk *hunk, GtkTextIter *iter)
{
GtkTextIter end = *iter;
-
+
gtk_text_iter_forward_to_line_end(&end);
gchar *text = gtk_text_iter_get_text(iter, &end);
-
+
hunk->old = 0;
hunk->new = 0;
-
+
gchar *old = g_utf8_strchr(text, -1, '-');
gchar *new = g_utf8_strchr(text, -1, '+');
if (!old || !new)
return;
-
+
hunk->old = atoi(old + 1);
hunk->new = atoi(new + 1);
@@ -422,7 +422,7 @@ ensure_scan(GitgDiffView *view, guint last_line)
GtkTextIter iter;
GtkTextBuffer *buffer = view->priv->current_buffer;
gtk_text_buffer_get_iter_at_line(buffer, &iter, view->priv->last_scan_line);
-
+
while (view->priv->last_scan_line <= last_line)
{
GtkTextIter start = iter;
@@ -432,12 +432,12 @@ ensure_scan(GitgDiffView *view, guint last_line)
break;
++view->priv->last_scan_line;
-
+
if (!gtk_text_iter_forward_chars(&end, 3))
continue;
gchar *text = gtk_text_iter_get_text(&start, &end);
-
+
if (g_str_has_prefix(text, "@@ "))
{
/* start new hunk region */
@@ -445,22 +445,22 @@ ensure_scan(GitgDiffView *view, guint last_line)
hunk->region.type = GITG_DIFF_ITER_TYPE_HUNK;
hunk->region.line = view->priv->last_scan_line - 1;
hunk->region.visible = TRUE;
-
+
parse_hunk_info(hunk, &start);
-
+
add_region(view, (Region *)hunk);
-
+
g_free(text);
continue;
}
-
+
g_free(text);
if (!gtk_text_iter_forward_chars(&end, 7))
continue;
-
+
text = gtk_text_iter_get_text(&start, &end);
-
+
if (g_str_has_prefix(text, "diff --git") || g_str_has_prefix(text, "diff --cc"))
{
/* start new header region */
@@ -468,16 +468,16 @@ ensure_scan(GitgDiffView *view, guint last_line)
header->region.type = GITG_DIFF_ITER_TYPE_HEADER;
header->region.line = view->priv->last_scan_line - 1;
header->region.visible = TRUE;
-
+
header->index_to[0] = '\0';
header->index_from[0] = '\0';
-
+
add_region(view, (Region *)header);
}
-
+
g_free(text);
}
-
+
if (view->priv->last_region && view->priv->last_region->type == GITG_DIFF_ITER_TYPE_HUNK)
ensure_max_line(view, (Hunk *)view->priv->last_region);
}
@@ -487,20 +487,20 @@ find_current_region(GitgDiffView *view, guint line)
{
GSequenceIter *iter;
Region tmp = {0, NULL, NULL, line};
-
+
iter = g_sequence_search(view->priv->regions_index, &tmp, index_compare, NULL);
-
+
if (!iter || g_sequence_iter_is_begin(iter))
return NULL;
if (!g_sequence_iter_is_end(iter))
{
Region *ret = (Region *)g_sequence_get(iter);
-
+
if (ret->line == line)
return ret->visible ? ret : NULL;
}
-
+
Region *ret = (Region *)g_sequence_get(g_sequence_iter_prev(iter));
return ret->visible ? ret : NULL;
}
@@ -509,17 +509,17 @@ static gboolean
line_has_prefix(GitgDiffView *view, guint line, gchar const *prefix)
{
GtkTextIter iter;
-
+
gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, &iter, line);
GtkTextIter end = iter;
if (!gtk_text_iter_forward_chars(&end, g_utf8_strlen(prefix, -1)))
return FALSE;
-
+
gchar *text = gtk_text_iter_get_text(&iter, &end);
gboolean ret = g_str_has_prefix(text, prefix);
g_free(text);
-
+
return ret;
}
@@ -539,14 +539,14 @@ static void
get_initial_counters(GitgDiffView *view, Region *region, guint line, guint counters[2])
{
guint i;
-
+
counters[0] = counters[1] = 0;
-
+
for (i = region->line + 1; i < line; ++i)
{
if (draw_old(view, i))
++counters[0];
-
+
if (draw_new(view, i))
++counters[1];
}
@@ -584,7 +584,7 @@ paint_line_numbers(GitgDiffView *view, GdkEventExpose *event)
/* get the line numbers and y coordinates. */
get_lines(text_view, y1, y2, pixels, NULL, numbers, &count);
-
+
/* A zero-lined document should display a "1"; we don't need to worry about
scrolling effects of the text widget in this special case */
@@ -596,8 +596,8 @@ paint_line_numbers(GitgDiffView *view, GdkEventExpose *event)
g_array_append_val(pixels, y);
g_array_append_val(numbers, n);
}
-
- /* Ensure scanned until last needed line */
+
+ /* Ensure scanned until last needed line */
guint last = g_array_index(numbers, gint, count - 1);
ensure_scan(view, last);
@@ -609,9 +609,9 @@ paint_line_numbers(GitgDiffView *view, GdkEventExpose *event)
/* determine the width of the left margin. */
margin_width = text_width * 2 + 9;
-
+
guint extra_width = 0;
-
+
if (gtk_source_view_get_show_line_marks(GTK_SOURCE_VIEW(view)))
extra_width = 20;
@@ -631,29 +631,29 @@ paint_line_numbers(GitgDiffView *view, GdkEventExpose *event)
gtk_text_view_buffer_to_window_coords(text_view, GTK_TEXT_WINDOW_LEFT, 0, g_array_index(pixels, gint, i), NULL, &pos);
line_to_paint = g_array_index(numbers, gint, i);
-
+
if (!current)
{
current = find_current_region(view, line_to_paint);
-
+
if (current)
get_initial_counters(view, current, line_to_paint, counters);
}
-
+
*str_old = '\0';
*str_new = '\0';
if (current && current->type == GITG_DIFF_ITER_TYPE_HUNK && line_to_paint != current->line)
{
Hunk *hunk = (Hunk *)current;
-
+
if (draw_old(view, line_to_paint))
g_snprintf(str_old, sizeof(str_old), "%d", hunk->old + counters[0]++);
if (draw_new(view, line_to_paint))
g_snprintf(str_new, sizeof(str_new), "%d", hunk->new + counters[1]++);
}
-
+
pango_layout_set_markup(layout, str_old, -1);
gtk_paint_layout(GTK_WIDGET(view)->style, win, GTK_WIDGET_STATE(view), FALSE, NULL, GTK_WIDGET(view), NULL, margin_width - 7 - text_width, pos, layout);
@@ -666,7 +666,7 @@ paint_line_numbers(GitgDiffView *view, GdkEventExpose *event)
current = current->next->visible ? current->next : NULL;
}
}
-
+
gtk_paint_vline(GTK_WIDGET(view)->style, win, GTK_WIDGET_STATE(view), NULL, GTK_WIDGET(view), NULL, event->area.y, event->area.y + event->area.height, 4 + text_width);
g_array_free(pixels, TRUE);
@@ -709,19 +709,19 @@ void
gitg_diff_view_remove_hunk(GitgDiffView *view, GtkTextIter *iter)
{
g_return_if_fail(GITG_IS_DIFF_VIEW(view));
-
+
/* removes hunk at iter and if it was the last hunk of a file, also removes
the file header */
Region *region = find_current_region(view, gtk_text_iter_get_line(iter));
-
+
if (!region)
return;
-
+
GtkTextIter start;
GtkTextIter end;
-
+
gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, &start, region->line);
-
+
if (region->next)
{
gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, &end, region->next->line - 1);
@@ -731,9 +731,9 @@ gitg_diff_view_remove_hunk(GitgDiffView *view, GtkTextIter *iter)
{
gtk_text_buffer_get_end_iter(view->priv->current_buffer, &end);
}
-
+
Region *prev = find_current_region(view, region->line - 1);
-
+
if ((!region->next || region->next->type == GITG_DIFF_ITER_TYPE_HEADER) && (!prev || prev->type == GITG_DIFF_ITER_TYPE_HEADER))
{
if (!prev)
@@ -741,7 +741,7 @@ gitg_diff_view_remove_hunk(GitgDiffView *view, GtkTextIter *iter)
else
gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, &start, region->line);
}
-
+
gtk_text_buffer_delete(view->priv->current_buffer, &start, &end);
}
@@ -753,7 +753,7 @@ gitg_diff_view_get_start_iter(GitgDiffView *view, GitgDiffIter *iter)
iter->userdata = view;
iter->userdata2 = view->priv->regions;
-
+
return iter->userdata2 != NULL;
}
@@ -761,10 +761,10 @@ gboolean
gitg_diff_iter_forward(GitgDiffIter *iter)
{
g_return_val_if_fail(iter != NULL, FALSE);
-
+
if (!iter->userdata2)
return FALSE;
-
+
iter->userdata2 = ((Region *)iter->userdata2)->next;
return iter->userdata2 != NULL;
@@ -778,7 +778,7 @@ gitg_diff_view_get_end_iter(GitgDiffView *view, GitgDiffIter *iter)
iter->userdata = view;
iter->userdata2 = view->priv->last_region;
-
+
return iter->userdata2 != NULL;
}
@@ -786,14 +786,14 @@ gboolean
gitg_diff_iter_backward(GitgDiffIter *iter)
{
g_return_val_if_fail(iter != NULL, FALSE);
-
+
if (!iter->userdata2)
return FALSE;
-
+
iter->userdata2 = ((Region *)iter->userdata2)->prev;
return iter->userdata2 != NULL;
-
+
}
GitgDiffIterType
@@ -802,7 +802,7 @@ gitg_diff_iter_get_type(GitgDiffIter *iter)
g_return_val_if_fail(iter != NULL, 0);
g_return_val_if_fail(GITG_IS_DIFF_VIEW(iter->userdata), 0);
g_return_val_if_fail(iter->userdata2 != NULL, 0);
-
+
return ((Region *)iter->userdata2)->type;
}
@@ -810,12 +810,12 @@ static void
region_iter_range(GitgDiffView *view, Region *region, GtkTextIter *start, GtkTextIter *end)
{
gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, start, region->line);
-
+
Region *next = region->next;
-
+
while (next && next->type != region->type)
next = next->next;
-
+
if (next)
gtk_text_buffer_get_iter_at_line(view->priv->current_buffer, end, next->line);
else
@@ -831,21 +831,21 @@ gitg_diff_iter_set_visible(GitgDiffIter *iter, gboolean visible)
GitgDiffView *view = GITG_DIFF_VIEW(iter->userdata);
Region *region = (Region *)iter->userdata2;
-
+
if (region->visible == visible)
return;
-
+
GtkTextIter start;
GtkTextIter end;
-
+
region_iter_range(view, region, &start, &end);
region->visible = visible;
-
+
/* Propagate visibility to hunks */
if (region->type == GITG_DIFF_ITER_TYPE_HEADER)
{
Region *next = region->next;
-
+
while (next && next->type != GITG_DIFF_ITER_TYPE_HEADER)
{
next->visible = visible;
@@ -860,7 +860,7 @@ gitg_diff_iter_set_visible(GitgDiffIter *iter, gboolean visible)
else
{
gtk_text_buffer_apply_tag(view->priv->current_buffer, view->priv->invisible_tag, &start, &end);
- }
+ }
}
static gboolean
@@ -875,14 +875,14 @@ header_parse_index(GitgDiffView *view, Header *header)
num = header->region.next->line - header->region.line;
else
num = gtk_text_buffer_get_line_count(buffer) - header->region.line;
-
+
gtk_text_buffer_get_iter_at_line(buffer, &iter, header->region.line);
-
+
for (i = 0; i < num; ++i)
{
if (!gtk_text_iter_forward_line(&iter))
return FALSE;
-
+
GtkTextIter end = iter;
gtk_text_iter_forward_to_line_end(&end);
@@ -895,18 +895,18 @@ header_parse_index(GitgDiffView *view, Header *header)
gchar *start = line + strlen(match);
gchar *sep = strstr(start, "..");
gboolean ret;
-
+
if (sep)
{
gchar *last = strstr(sep, " ");
gchar *bet = strstr(start, ",");
-
+
if (!last)
last = line + strlen(line);
strncpy(header->index_from, start, (bet ? bet : sep) - start);
strncpy(header->index_to, sep + 2, last - (sep + 2));
-
+
header->index_from[(bet ? bet : sep) - start] = '\0';
header->index_to[last - (sep + 2)] = '\0';
@@ -916,14 +916,14 @@ header_parse_index(GitgDiffView *view, Header *header)
{
ret = FALSE;
}
-
+
g_free(line);
return ret;
}
-
+
g_free(line);
}
-
+
return FALSE;
}
@@ -931,25 +931,25 @@ gboolean
gitg_diff_iter_get_index(GitgDiffIter *iter, gchar **from, gchar **to)
{
Region *region = (Region *)iter->userdata2;
-
+
while (region && region->type != GITG_DIFF_ITER_TYPE_HEADER)
region = region->prev;
-
+
if (!region)
return FALSE;
-
+
Header *header = (Header *)region;
gboolean ret = TRUE;
-
+
if (!*(header->index_to))
ret = header_parse_index((GitgDiffView *)iter->userdata, header);
-
+
if (!ret)
return FALSE;
-
+
*from = header->index_from;
*to = header->index_to;
-
+
return TRUE;
}
@@ -960,11 +960,11 @@ iter_in_view(GitgDiffView *view, GtkTextIter *iter)
GtkTextIter end;
GdkRectangle rect;
GtkTextView *textview = GTK_TEXT_VIEW(view);
-
+
gtk_text_view_get_visible_rect(textview, &rect);
gtk_text_view_get_iter_at_location(textview, &start, rect.x, rect.y);
gtk_text_view_get_iter_at_location(textview, &end, rect.x + rect.width, rect.y + rect.height);
-
+
return gtk_text_iter_in_range(iter, &start, &end) || gtk_text_iter_equal(iter, &end);
}
@@ -972,12 +972,12 @@ static gboolean
try_scan(GitgDiffView *view)
{
gint lines = gtk_text_buffer_get_line_count(view->priv->current_buffer);
-
+
if (view->priv->last_scan_line > lines)
return FALSE;
guint num = MIN(lines - view->priv->last_scan_line, IDLE_SCAN_COUNT);
-
+
if (num == 0)
return FALSE;
@@ -988,10 +988,10 @@ try_scan(GitgDiffView *view)
guint last = view->priv->last_scan_line;
ensure_scan(view, view->priv->last_scan_line + num);
g_snprintf(str, sizeof(str), "%u", view->priv->max_line_count);
-
+
if (strlen(str) > max_line)
gtk_widget_queue_draw(GTK_WIDGET(view));
-
+
return last != view->priv->last_scan_line;
}
@@ -1023,7 +1023,7 @@ on_idle_scan(GitgDiffView *view)
{
if (try_scan(view))
return TRUE;
-
+
view->priv->scan_id = 0;
return FALSE;
}
diff --git a/gitg/gitg-diff-view.h b/gitg/gitg-diff-view.h
index fc270bc..da0668d 100644
--- a/gitg/gitg-diff-view.h
+++ b/gitg/gitg-diff-view.h
@@ -57,14 +57,14 @@ typedef enum
struct _GitgDiffView
{
GtkSourceView parent;
-
+
GitgDiffViewPrivate *priv;
};
struct _GitgDiffViewClass
{
GtkSourceViewClass parent_class;
-
+
void (*header_added)(GitgDiffView *view, GitgDiffIter *iter);
void (*hunk_added)(GitgDiffView *view, GitgDiffIter *iter);
};
diff --git a/gitg/gitg-dirs.c b/gitg/gitg-dirs.c
index 367fb5e..3f0f5d6 100644
--- a/gitg/gitg-dirs.c
+++ b/gitg/gitg-dirs.c
@@ -29,7 +29,7 @@ gchar const *
gitg_dirs_get_data_dir()
{
static gchar *datadir = NULL;
-
+
if (!datadir)
{
#ifdef ENABLE_BUNDLE
@@ -40,7 +40,7 @@ gitg_dirs_get_data_dir()
datadir = g_strdup(GITG_DATADIR);
#endif
}
-
+
return datadir;
}
@@ -49,20 +49,20 @@ gitg_dirs_get_data_filename(gchar const *first, ...)
{
gchar const *datadir = gitg_dirs_get_data_dir();
gchar *ret;
-
+
ret = g_build_filename(datadir, first, NULL);
gchar const *item;
-
+
va_list ap;
va_start(ap, first);
-
+
while ((item = va_arg(ap, gchar const *)))
{
gchar *tmp = ret;
ret = g_build_filename(ret, item, NULL);
g_free(tmp);
}
-
+
va_end(ap);
return ret;
}
diff --git a/gitg/gitg-dnd.c b/gitg/gitg-dnd.c
index 522cb55..b76b769 100644
--- a/gitg/gitg-dnd.c
+++ b/gitg/gitg-dnd.c
@@ -18,16 +18,16 @@ typedef struct
GitgRef *ref;
GitgRef *target;
GitgRef *cursor_ref;
-
+
GitgDndCallback callback;
gpointer callback_data;
-
+
gdouble x;
gdouble y;
-
+
gboolean is_drag;
GtkTargetList *target_list;
-
+
guint scroll_timeout;
} GitgDndData;
@@ -50,7 +50,7 @@ static GitgDndData *
gitg_dnd_data_new ()
{
GitgDndData *data = g_slice_new0 (GitgDndData);
-
+
data->target_list = gtk_target_list_new (target_entries,
G_N_ELEMENTS (target_entries));
@@ -84,24 +84,24 @@ get_ref_at_pos (GtkTreeView *tree_view, gint x, gint y, gint *hot_x, gint *hot_y
{
return NULL;
}
-
+
if (hot_y)
{
*hot_y = cell_y;
}
-
+
GtkCellRenderer *cell = gitg_utils_find_cell_at_pos (tree_view, column, path, cell_x);
-
+
if (!cell || !GITG_IS_CELL_RENDERER_PATH (cell))
{
return NULL;
}
-
+
if (renderer)
{
*renderer = GITG_CELL_RENDERER_PATH (cell);
}
-
+
GitgRef *ref = gitg_cell_renderer_path_get_ref_at_pos (GTK_WIDGET (tree_view),
GITG_CELL_RENDERER_PATH (cell),
cell_x,
@@ -123,7 +123,7 @@ static gboolean
can_drag (GitgRef *ref)
{
GitgRefType type = gitg_ref_get_ref_type (ref);
-
+
switch (type)
{
case GITG_REF_TYPE_BRANCH:
@@ -147,7 +147,7 @@ can_drop (GitgRef *source, GitgRef *dest)
GitgRefType source_type = gitg_ref_get_ref_type (source);
GitgRefType dest_type = gitg_ref_get_ref_type (dest);
-
+
if (source_type == GITG_REF_TYPE_BRANCH)
{
return dest_type == GITG_REF_TYPE_BRANCH || dest_type == GITG_REF_TYPE_REMOTE;
@@ -160,7 +160,7 @@ can_drop (GitgRef *source, GitgRef *dest)
{
return dest_type == GITG_REF_TYPE_BRANCH;
}
-
+
return FALSE;
}
@@ -186,7 +186,7 @@ begin_drag (GtkWidget *widget,
{
return;
}
-
+
data->ref = ref;
gitg_ref_set_state (ref, GITG_REF_STATE_NONE);
@@ -210,7 +210,7 @@ begin_drag (GtkWidget *widget,
gtk_drag_set_icon_pixbuf (context, pixbuf, hot_x, hot_y);
g_object_unref (pixbuf);
}
-
+
}
static void
@@ -230,11 +230,11 @@ update_highlight (GitgDndData *data, gint x, gint y)
{
gitg_ref_set_state (data->cursor_ref, GITG_REF_STATE_NONE);
}
-
+
if (ref && gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_NONE)
{
gitg_ref_set_state (ref, GITG_REF_STATE_PRELIGHT);
-
+
gdk_window_set_cursor (gtk_tree_view_get_bin_window (data->tree_view),
gdk_cursor_new (GDK_HAND2));
}
@@ -243,10 +243,10 @@ update_highlight (GitgDndData *data, gint x, gint y)
gdk_window_set_cursor (gtk_tree_view_get_bin_window (data->tree_view),
NULL);
}
-
+
data->cursor_ref = ref;
gtk_widget_queue_draw (GTK_WIDGET (data->tree_view));
- }
+ }
}
static gboolean
@@ -268,7 +268,7 @@ vertical_autoscroll (GitgDndData *data)
if (offset > 0)
{
offset = y - (visible_rect.y + visible_rect.height - 2 * 15);
-
+
if (offset < 0)
{
return TRUE;
@@ -276,11 +276,11 @@ vertical_autoscroll (GitgDndData *data)
}
GtkAdjustment *adj = gtk_tree_view_get_vadjustment (data->tree_view);
-
+
value = CLAMP (gtk_adjustment_get_value (adj) + offset, 0.0,
adj->upper - adj->page_size);
- gtk_adjustment_set_value (adj, value);
+ gtk_adjustment_set_value (adj, value);
return TRUE;
}
@@ -302,7 +302,7 @@ gitg_drag_source_event_cb (GtkWidget *widget,
GitgDndData *data)
{
gboolean retval = FALSE;
-
+
switch (event->type)
{
case GDK_BUTTON_PRESS:
@@ -320,12 +320,12 @@ gitg_drag_source_event_cb (GtkWidget *widget,
if (event->button.button == 1)
{
data->is_drag = FALSE;
-
+
if (data->target)
{
gitg_ref_set_state (data->target, GITG_REF_STATE_NONE);
}
-
+
remove_scroll_timeout (data);
}
break;
@@ -348,7 +348,7 @@ gitg_drag_source_event_cb (GtkWidget *widget,
default:
break;
}
-
+
return retval;
}
@@ -364,7 +364,7 @@ gitg_drag_source_motion_cb (GtkWidget *widget,
{
return FALSE;
}
-
+
GitgRef *ref;
gint dx;
gint dy;
@@ -374,7 +374,7 @@ gitg_drag_source_motion_cb (GtkWidget *widget,
y,
&dx,
&dy);
-
+
ref = get_ref_at_pos (GTK_TREE_VIEW (widget),
dx,
dy,
@@ -392,23 +392,23 @@ gitg_drag_source_motion_cb (GtkWidget *widget,
gitg_ref_set_state (data->target, GITG_REF_STATE_NONE);
gtk_widget_queue_draw (widget);
}
-
+
if (data->callback)
{
- data->callback (data->ref, ref, FALSE, data->callback_data);
+ data->callback (data->ref, ref, FALSE, data->callback_data);
}
}
-
+
if (ref && can_drop (data->ref, ref))
{
if (ref != data->target)
{
gitg_ref_set_state (ref, GITG_REF_STATE_SELECTED);
data->target = ref;
-
+
gtk_widget_queue_draw (widget);
}
-
+
gdk_drag_status (context, GDK_ACTION_MOVE, time);
ret = TRUE;
}
@@ -439,12 +439,12 @@ gitg_drag_source_drop_cb (GtkWidget *widget,
}
gboolean ret = FALSE;
-
+
if (data->callback)
{
- ret = data->callback (data->ref, data->target, TRUE, data->callback_data);
+ ret = data->callback (data->ref, data->target, TRUE, data->callback_data);
}
-
+
gtk_drag_finish (context, ret, FALSE, time);
return ret;
}
@@ -466,9 +466,9 @@ gitg_dnd_enable (GtkTreeView *tree_view, GitgDndCallback callback, gpointer call
{
return;
}
-
+
GitgDndData *data = gitg_dnd_data_new ();
-
+
data->tree_view = tree_view;
data->callback = callback;
data->callback_data = callback_data;
@@ -477,10 +477,10 @@ gitg_dnd_enable (GtkTreeView *tree_view, GitgDndCallback callback, gpointer call
GITG_DND_DATA_KEY,
data,
(GDestroyNotify)gitg_dnd_data_free);
-
- gtk_widget_add_events (GTK_WIDGET (tree_view),
+
+ gtk_widget_add_events (GTK_WIDGET (tree_view),
gtk_widget_get_events (GTK_WIDGET (tree_view)) |
- GDK_BUTTON_PRESS_MASK |
+ GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK |
GDK_BUTTON_MOTION_MASK);
@@ -489,7 +489,7 @@ gitg_dnd_enable (GtkTreeView *tree_view, GitgDndCallback callback, gpointer call
target_entries,
G_N_ELEMENTS (target_entries),
GDK_ACTION_MOVE);
-
+
g_signal_connect (tree_view,
"button-press-event",
G_CALLBACK (gitg_drag_source_event_cb),
@@ -525,14 +525,14 @@ void
gitg_dnd_disable (GtkTreeView *tree_view)
{
GitgDndData *data = GITG_DND_GET_DATA (tree_view);
-
+
if (data)
{
g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_event_cb, data);
g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_motion_cb, data);
g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_drop_cb, data);
g_signal_handlers_disconnect_by_func (tree_view, gitg_drag_source_leave_cb, data);
-
+
g_object_set_data (G_OBJECT (tree_view), GITG_DND_DATA_KEY, NULL);
}
}
diff --git a/gitg/gitg-label-renderer.c b/gitg/gitg-label-renderer.c
index b48ab8a..3d96fe5 100644
--- a/gitg/gitg-label-renderer.c
+++ b/gitg/gitg-label-renderer.c
@@ -35,7 +35,7 @@ get_label_width (PangoLayout *layout, GitgRef *ref)
gitg_ref_get_shortname(ref));
pango_layout_set_markup(layout, smaller, -1);
-
+
pango_layout_get_pixel_size(layout, &w, NULL);
g_free(smaller);
@@ -47,22 +47,22 @@ gitg_label_renderer_width(GtkWidget *widget, PangoFontDescription *description,
{
gint width = 0;
GSList *item;
-
+
if (labels == NULL)
return 0;
PangoContext *ctx = gtk_widget_get_pango_context(widget);
PangoLayout *layout = pango_layout_new(ctx);
pango_layout_set_font_description(layout, description);
-
+
for (item = labels; item; item = item->next)
{
width += get_label_width (layout, GITG_REF (item->data)) + MARGIN;
}
-
+
g_object_unref(layout);
//g_object_unref(ctx);
-
+
return width + MARGIN;
}
@@ -72,13 +72,13 @@ rounded_rectangle(cairo_t *ctx, float x, float y, float width, float height, flo
cairo_move_to(ctx, x + radius, y);
cairo_rel_line_to(ctx, width - 2 * radius, 0);
cairo_arc(ctx, x + width - radius, y + radius, radius, 1.5 * M_PI, 0.0);
-
+
cairo_rel_line_to(ctx, 0, height - 2 * radius);
cairo_arc(ctx, x + width - radius, y + height - radius, radius, 0.0, 0.5 * M_PI);
-
+
cairo_rel_line_to(ctx, -(width - radius * 2), 0);
cairo_arc(ctx, x + radius, y + height - radius, radius, 0.5 * M_PI, M_PI);
-
+
cairo_rel_line_to(ctx, 0, -(height - radius * 2));
cairo_arc(ctx, x + radius, y + radius, radius, M_PI, 1.5 * M_PI);
}
@@ -127,7 +127,7 @@ set_source_for_ref_type(cairo_t *context, GitgRef *ref, gboolean use_state)
if (use_state)
{
GitgRefState state = gitg_ref_get_state (ref);
-
+
if (state == GITG_REF_STATE_SELECTED)
{
cairo_set_source_rgb(context, 1, 1, 1);
@@ -137,15 +137,15 @@ set_source_for_ref_type(cairo_t *context, GitgRef *ref, gboolean use_state)
{
gdouble r, g, b;
get_type_color (gitg_ref_get_ref_type (ref), &r, &g, &b);
-
+
cairo_set_source_rgba(context, r, g, b, 0.3);
return;
}
}
-
+
gdouble r, g, b;
get_type_color (gitg_ref_get_ref_type (ref), &r, &g, &b);
-
+
cairo_set_source_rgb (context, r, g, b);
}
@@ -156,19 +156,19 @@ render_label (cairo_t *context, PangoLayout *layout, GitgRef *ref, gint x, gint
gint h;
gchar *smaller = g_strdup_printf("<span size='smaller'>%s</span>",
gitg_ref_get_shortname(ref));
-
+
pango_layout_set_markup(layout, smaller, -1);
pango_layout_get_pixel_size(layout, &w, &h);
-
+
// draw rounded rectangle
rounded_rectangle(context, x + 0.5, y + MARGIN + 0.5, w + PADDING * 2, height - MARGIN * 2, 5);
-
+
set_source_for_ref_type(context, ref, use_state);
cairo_fill_preserve(context);
-
+
cairo_set_source_rgb(context, 0, 0, 0);
cairo_stroke(context);
-
+
cairo_save(context);
cairo_translate(context, x + PADDING, y + (height - h) / 2.0 + 0.5);
pango_cairo_show_layout(context, layout);
@@ -194,9 +194,9 @@ gitg_label_renderer_draw(GtkWidget *widget, PangoFontDescription *description, c
for (item = labels; item; item = item->next)
{
gint w = render_label (context, layout, GITG_REF (item->data), pos, area->y, area->height, TRUE);
- pos += w + PADDING * 2 + MARGIN;
+ pos += w + PADDING * 2 + MARGIN;
}
-
+
g_object_unref(layout);
cairo_restore(context);
}
@@ -209,7 +209,7 @@ gitg_label_renderer_get_ref_at_pos (GtkWidget *widget, PangoFontDescription *fon
{
return NULL;
}
-
+
PangoContext *ctx = gtk_widget_get_pango_context(widget);
PangoLayout *layout = pango_layout_new(ctx);
pango_layout_set_font_description(layout, font);
@@ -217,26 +217,26 @@ gitg_label_renderer_get_ref_at_pos (GtkWidget *widget, PangoFontDescription *fon
gint start = MARGIN;
GitgRef *ret = NULL;
GSList *item;
-
+
for (item = labels; item; item = item->next)
{
gint width = get_label_width (layout, GITG_REF (item->data));
-
+
if (x >= start && x <= start + width)
{
ret = GITG_REF (item->data);
-
+
if (hot_x)
{
*hot_x = x - start;
}
-
+
break;
}
-
+
start += width + MARGIN;
}
-
+
g_object_unref(layout);
return ret;
}
@@ -284,26 +284,26 @@ gitg_label_renderer_render_ref (GtkWidget *widget, PangoFontDescription *descrip
PangoContext *ctx = gtk_widget_get_pango_context(widget);
PangoLayout *layout = pango_layout_new(ctx);
pango_layout_set_font_description(layout, description);
-
+
gint width = MAX(get_label_width (layout, ref), minwidth);
-
+
cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width + 2, height + 2);
cairo_t *context = cairo_create (surface);
-
+
cairo_set_line_width (context, 1);
-
+
render_label (context, layout, ref, 1, 1, height, FALSE);
-
+
guint8 *data = cairo_image_surface_get_data (surface);
GdkPixbuf *ret = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, width + 2, height + 2);
guint8 *pixdata = gdk_pixbuf_get_pixels (ret);
-
+
convert_bgra_to_rgba (data, pixdata, width + 2, height + 2);
-
+
cairo_destroy (context);
cairo_surface_destroy (surface);
g_object_unref (layout);
-
+
return ret;
}
diff --git a/gitg/gitg-lane.c b/gitg/gitg-lane.c
index f80a0c9..ecf775a 100644
--- a/gitg/gitg-lane.c
+++ b/gitg/gitg-lane.c
@@ -41,7 +41,7 @@ gitg_lane_dup(GitgLane *lane)
dup->color = gitg_color_copy(lane->color);
dup->from = g_slist_copy(lane->from);
dup->type = lane->type;
-
+
return dup;
}
@@ -50,7 +50,7 @@ gitg_lane_free(GitgLane *lane)
{
gitg_color_unref(lane->color);
g_slist_free(lane->from);
-
+
if (GITG_IS_LANE_BOUNDARY(lane))
g_slice_free(GitgLaneBoundary, (GitgLaneBoundary *)lane);
else
@@ -68,7 +68,7 @@ gitg_lane_new_with_color(GitgColor *color)
{
GitgLane *lane = g_slice_new0(GitgLane);
lane->color = color ? gitg_color_ref(color) : gitg_color_next();
-
+
return lane;
}
@@ -76,11 +76,11 @@ GitgLaneBoundary *
gitg_lane_convert_boundary(GitgLane *lane, GitgLaneType type)
{
GitgLaneBoundary *boundary = g_slice_new(GitgLaneBoundary);
-
+
boundary->lane = *lane;
boundary->lane.type |= type;
-
+
g_slice_free(GitgLane, lane);
-
+
return boundary;
}
diff --git a/gitg/gitg-lanes.c b/gitg/gitg-lanes.c
index f8fcd0e..1d6c3a6 100644
--- a/gitg/gitg-lanes.c
+++ b/gitg/gitg-lanes.c
@@ -56,15 +56,15 @@ struct _GitgLanesPrivate
/* list of last N GitgRevisions used to backtrack in case of lane
collapse/reactivation */
GSList *previous;
-
+
/* list of LaneContainer resembling the current lanes state for the
next revision */
GSList *lanes;
-
+
/* hash table of rev hash -> CollapsedLane where rev hash is the hash
to be expected on the lane */
GHashTable *collapsed;
-
+
gint inactive_max;
gint inactive_collapse;
gint inactive_gap;
@@ -94,7 +94,7 @@ collapsed_lane_new(LaneContainer *container)
collapsed->color = gitg_color_ref(container->lane->color);
collapsed->from = container->from;
collapsed->to = container->to;
-
+
return collapsed;
}
@@ -103,7 +103,7 @@ free_lanes(GitgLanes *lanes)
{
g_slist_foreach(lanes->priv->lanes, (GFunc)lane_container_free, NULL);
g_slist_free(lanes->priv->lanes);
-
+
lanes->priv->lanes = NULL;
}
@@ -124,13 +124,13 @@ find_lane_by_hash(GitgLanes *lanes, gchar const *hash, gint8 *pos)
{
if (pos)
*pos = p;
-
+
return container;
}
++p;
}
-
+
return NULL;
}
@@ -139,10 +139,10 @@ static void
gitg_lanes_finalize(GObject *object)
{
GitgLanes *self = GITG_LANES(object);
-
+
gitg_lanes_reset(self);
g_hash_table_destroy(self->priv->collapsed);
-
+
G_OBJECT_CLASS(gitg_lanes_parent_class)->finalize(object);
}
@@ -150,7 +150,7 @@ static void
gitg_lanes_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgLanes *self = GITG_LANES(object);
-
+
switch (prop_id)
{
case PROP_INACTIVE_MAX:
@@ -175,7 +175,7 @@ static void
gitg_lanes_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
GitgLanes *self = GITG_LANES(object);
-
+
switch (prop_id)
{
case PROP_INACTIVE_MAX:
@@ -200,11 +200,11 @@ static void
gitg_lanes_class_init(GitgLanesClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
+
object_class->finalize = gitg_lanes_finalize;
object_class->set_property = gitg_lanes_set_property;
object_class->get_property = gitg_lanes_get_property;
-
+
g_object_class_install_property(object_class, PROP_INACTIVE_MAX,
g_param_spec_int("inactive-max",
"INACTIVE_MAX",
@@ -279,10 +279,10 @@ lanes_list(GitgLanes *lanes)
{
GSList *lns = NULL;
GSList *item;
-
+
for (item = lanes->priv->lanes; item; item = item->next)
lns = g_slist_prepend(lns, gitg_lane_copy(((LaneContainer*)item->data)->lane));
-
+
return g_slist_reverse(lns);
}
@@ -291,11 +291,11 @@ gitg_lanes_reset(GitgLanes *lanes)
{
free_lanes(lanes);
gitg_color_reset();
-
+
g_slist_foreach(lanes->priv->previous, (GFunc)gitg_revision_unref, NULL);
g_slist_free(lanes->priv->previous);
lanes->priv->previous = NULL;
-
+
g_hash_table_remove_all(lanes->priv->collapsed);
}
@@ -305,12 +305,12 @@ lane_container_next(LaneContainer *container, gint index)
GitgLane *lane = gitg_lane_copy(container->lane);
lane->type = GITG_LANE_TYPE_NONE;
g_slist_free(lane->from);
-
+
gitg_lane_free(container->lane);
container->lane = lane;
container->lane->from = g_slist_prepend(NULL, GINT_TO_POINTER((gint)(index)));
-
+
if (container->to)
++container->inactive;
}
@@ -319,7 +319,7 @@ static void
update_lane_merge_indices(GSList *from, gint8 index, gint direction)
{
GSList *item;
-
+
for (item = from; item; item = g_slist_next(item))
{
gint8 idx = GPOINTER_TO_INT(item->data);
@@ -333,11 +333,11 @@ static void
update_merge_indices(GSList *lanes, gint8 index, gint direction)
{
GSList *item;
-
+
for (item = lanes; item; item = g_slist_next(item))
{
GitgLane *lane = (GitgLane *)item->data;
-
+
update_lane_merge_indices(lane->from, index, direction);
}
}
@@ -347,7 +347,7 @@ add_collapsed(GitgLanes *lanes, LaneContainer *container, gint8 index)
{
CollapsedLane *collapsed = collapsed_lane_new(container);
collapsed->index = index;
-
+
g_hash_table_insert(lanes->priv->collapsed, (gpointer)container->to, collapsed);
}
@@ -357,33 +357,33 @@ collapse_lane(GitgLanes *lanes, LaneContainer *container, gint8 index)
/* backtrack for inactive-collapse revisions and remove this container from
those revisions, appropriately updating merge indices etc */
GSList *item;
-
+
add_collapsed(lanes, container, index);
-
+
for (item = lanes->priv->previous; item; item = g_slist_next(item))
{
GitgRevision *revision = GITG_REVISION(item->data);
GSList *lns = gitg_revision_get_lanes(revision);
-
+
/* remove lane at 'index' and update merge indices for the lanes
after 'index' in the list */
if (item->next)
{
GSList *collapsed = g_slist_nth(lns, index);
GitgLane *lane = (GitgLane *)collapsed->data;
-
+
gint8 newindex = GPOINTER_TO_INT(lane->from->data);
lns = gitg_revision_remove_lane(revision, lane);
-
+
if (item->next->next)
update_merge_indices(lns, newindex, -1);
-
+
gint mylane = gitg_revision_get_mylane(revision);
-
+
if (mylane > index)
gitg_revision_set_mylane(revision, mylane - 1);
-
+
index = newindex;
}
else
@@ -391,19 +391,19 @@ collapse_lane(GitgLanes *lanes, LaneContainer *container, gint8 index)
/* the last item we keep, and set the style of the lane to END */
GSList *lstlane = g_slist_nth(lns, index);
GitgLaneBoundary *boundary = gitg_lane_convert_boundary((GitgLane *)lstlane->data, GITG_LANE_TYPE_END);
-
+
/* copy parent hash over */
memcpy(boundary->hash, container->to, HASH_BINARY_SIZE);
lstlane->data = boundary;
}
- }
+ }
}
static void
update_current_lanes_merge_indices(GitgLanes *lanes, gint8 index, gint8 direction)
{
GSList *item;
-
+
for (item = lanes->priv->lanes; item; item = g_slist_next(item))
update_lane_merge_indices(((LaneContainer *)item->data)->lane->from, index, direction);
}
@@ -417,7 +417,7 @@ collapse_lanes(GitgLanes *lanes)
while (item)
{
LaneContainer *container = (LaneContainer *)item->data;
-
+
if (container->inactive != lanes->priv->inactive_max + lanes->priv->inactive_gap)
{
item = g_slist_next(item);
@@ -427,7 +427,7 @@ collapse_lanes(GitgLanes *lanes)
collapse_lane(lanes, container, GPOINTER_TO_INT(container->lane->from->data));
update_current_lanes_merge_indices(lanes, index, -1);
-
+
GSList *next = g_slist_next(item);
lane_container_free(container);
@@ -441,10 +441,10 @@ static gint8
ensure_correct_index(GitgRevision *revision, gint8 index)
{
guint len = g_slist_length(gitg_revision_get_lanes(revision));
-
+
if (index > len)
index = len;
-
+
return index;
}
@@ -457,7 +457,7 @@ expand_lane(GitgLanes *lanes, CollapsedLane *lane)
GitgLane *ln = gitg_lane_new_with_color(lane->color);
guint len = g_slist_length(lanes->priv->lanes);
gint8 next;
-
+
if (index > len)
index = len;
@@ -471,7 +471,7 @@ expand_lane(GitgLanes *lanes, CollapsedLane *lane)
index = next;
guint cnt = 0;
-
+
for (item = lanes->priv->previous; item; item = g_slist_next(item))
{
GitgRevision *revision = GITG_REVISION(item->data);
@@ -486,7 +486,7 @@ expand_lane(GitgLanes *lanes, CollapsedLane *lane)
if (!item->next || cnt + 1 == lanes->priv->inactive_collapse)
{
GitgLaneBoundary *boundary = gitg_lane_convert_boundary(copy, GITG_LANE_TYPE_START);
-
+
/* copy child hash in boundary */
memcpy(boundary->hash, lane->from, HASH_BINARY_SIZE);
copy = (GitgLane *)boundary;
@@ -495,21 +495,21 @@ expand_lane(GitgLanes *lanes, CollapsedLane *lane)
{
next = ensure_correct_index(GITG_REVISION(item->next->data), index);
copy->from = g_slist_prepend(NULL, GINT_TO_POINTER((gint)next));
-
+
/* update merge indices */
update_merge_indices(lns, index, 1);
}
lns = gitg_revision_insert_lane(revision, copy, index);
gint mylane = gitg_revision_get_mylane(revision);
-
+
if (mylane >= index)
gitg_revision_set_mylane(revision, mylane + 1);
-
+
index = next;
++cnt;
}
-
+
gitg_lane_free(ln);
}
@@ -520,7 +520,7 @@ expand_lane_from_hash(GitgLanes *lanes, gchar const *hash)
if (!collapsed)
return;
-
+
expand_lane(lanes, collapsed);
g_hash_table_remove(lanes->priv->collapsed, hash);
}
@@ -530,7 +530,7 @@ expand_lanes(GitgLanes *lanes, GitgRevision *revision)
{
/* expand any lanes that revision needs (own lane and parents lanes) */
expand_lane_from_hash(lanes, gitg_revision_get_hash(revision));
-
+
guint num;
guint i;
Hash *parents = gitg_revision_get_parents_hash(revision, &num);
@@ -544,7 +544,7 @@ init_next_layer(GitgLanes *lanes)
{
GSList *item = lanes->priv->lanes;
gint8 index = 0;
-
+
/* Initialize new set of lanes based on 'lanes'. It copies the lane (refs
the color) and adds the lane index as a merge (so it basicly represents
a passthrough) */
@@ -564,18 +564,18 @@ prepare_lanes(GitgLanes *lanes, GitgRevision *next, gint8 *pos)
Hash *parents = gitg_revision_get_parents_hash(next, &num);
guint i;
gchar const *myhash = gitg_revision_get_hash(next);
-
+
/* prepare the next layer */
init_next_layer(lanes);
-
+
mylane = (LaneContainer *)g_slist_nth_data(lanes->priv->lanes, *pos);
-
+
/* Iterate over all parents and find them a lane */
for (i = 0; i < num; ++i)
{
gint8 lnpos;
LaneContainer *container = find_lane_by_hash(lanes, parents[i], &lnpos);
-
+
if (container)
{
/* There already is a lane for this parent. This means that we add
@@ -585,7 +585,7 @@ prepare_lanes(GitgLanes *lanes, GitgRevision *next, gint8 *pos)
gitg_color_next_index(container->lane->color);
container->inactive = 0;
container->from = gitg_revision_get_hash(next);
-
+
continue;
}
else if (mylane && mylane->to == NULL)
@@ -593,7 +593,7 @@ prepare_lanes(GitgLanes *lanes, GitgRevision *next, gint8 *pos)
/* There is no parent yet which can proceed on the current
revision lane, so set it now */
mylane->to = (gchar const *)parents[i];
-
+
/* If there is more than one parent, then also change the color
since this revision is a merge */
if (num > 1)
@@ -616,7 +616,7 @@ prepare_lanes(GitgLanes *lanes, GitgRevision *next, gint8 *pos)
lanes->priv->lanes = g_slist_append(lanes->priv->lanes, newlane);
}
}
-
+
/* Remove the current lane if it is no longer needed */
if (mylane && mylane->to == NULL)
{
@@ -628,7 +628,7 @@ prepare_lanes(GitgLanes *lanes, GitgRevision *next, gint8 *pos)
{
GSList *last = g_slist_last(lanes->priv->previous);
gitg_revision_unref(GITG_REVISION(last->data));
-
+
lanes->priv->previous = g_slist_remove_link(lanes->priv->previous, last);
}
diff --git a/gitg/gitg-lanes.h b/gitg/gitg-lanes.h
index bb9b16f..ae71757 100644
--- a/gitg/gitg-lanes.h
+++ b/gitg/gitg-lanes.h
@@ -43,7 +43,7 @@ typedef struct _GitgLanesPrivate GitgLanesPrivate;
struct _GitgLanes {
GObject parent;
-
+
GitgLanesPrivate *priv;
};
diff --git a/gitg/gitg-preferences-dialog.c b/gitg/gitg-preferences-dialog.c
index 20f5c5b..bfcde9e 100644
--- a/gitg/gitg-preferences-dialog.c
+++ b/gitg/gitg-preferences-dialog.c
@@ -51,14 +51,14 @@ struct _GitgPreferencesDialogPrivate
GtkCheckButton *history_show_virtual_staged;
GtkCheckButton *history_show_virtual_unstaged;
GtkCheckButton *check_button_collapse_inactive;
-
+
GtkCheckButton *check_button_show_right_margin;
GtkLabel *label_right_margin;
GtkSpinButton *spin_button_right_margin;
-
+
GtkEntry *entry_configuration_user_name;
GtkEntry *entry_configuration_user_email;
-
+
GtkWidget *table;
gint prev_value;
@@ -78,9 +78,9 @@ static void
gitg_preferences_dialog_finalize(GObject *object)
{
GitgPreferencesDialog *dialog = GITG_PREFERENCES_DIALOG (object);
-
+
g_object_unref (dialog->priv->config);
-
+
G_OBJECT_CLASS(gitg_preferences_dialog_parent_class)->finalize(object);
}
@@ -88,7 +88,7 @@ static void
gitg_preferences_dialog_class_init(GitgPreferencesDialogClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
+
object_class->finalize = gitg_preferences_dialog_finalize;
g_type_class_add_private(object_class, sizeof(GitgPreferencesDialogPrivate));
@@ -98,7 +98,7 @@ static void
gitg_preferences_dialog_init(GitgPreferencesDialog *self)
{
self->priv = GITG_PREFERENCES_DIALOG_GET_PRIVATE(self);
-
+
self->priv->config = gitg_config_new (NULL);
}
@@ -114,10 +114,10 @@ convert_collapsed(GValue const *source, GValue *dest, gpointer userdata)
GitgPreferencesDialog *dialog = GITG_PREFERENCES_DIALOG(userdata);
gint val = round_val(g_value_get_double(source));
-
+
if (val == dialog->priv->prev_value)
return FALSE;
-
+
dialog->priv->prev_value = val;
return g_value_transform(source, dest);
}
@@ -201,43 +201,43 @@ static void
create_preferences_dialog()
{
GtkBuilder *b = gitg_utils_new_builder("gitg-preferences.ui");
-
+
preferences_dialog = GITG_PREFERENCES_DIALOG(gtk_builder_get_object(b, "dialog_preferences"));
g_object_add_weak_pointer(G_OBJECT(preferences_dialog), (gpointer *)&preferences_dialog);
-
+
GitgPreferencesDialogPrivate *priv = preferences_dialog->priv;
-
+
priv->history_search_filter = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_history_search_filter"));
priv->collapse_inactive_lanes = GTK_ADJUSTMENT(gtk_builder_get_object(b, "adjustment_collapse_inactive_lanes"));
-
+
priv->history_show_virtual_stash = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_history_show_virtual_stash"));
priv->history_show_virtual_staged = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_history_show_virtual_staged"));
priv->history_show_virtual_unstaged = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_history_show_virtual_unstaged"));
-
+
priv->check_button_collapse_inactive = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_collapse_inactive"));
priv->table = GTK_WIDGET(gtk_builder_get_object(b, "table_collapse_inactive_lanes"));
-
+
priv->check_button_show_right_margin = GTK_CHECK_BUTTON(gtk_builder_get_object(b, "check_button_show_right_margin"));
priv->label_right_margin = GTK_LABEL(gtk_builder_get_object(b, "label_right_margin"));
priv->spin_button_right_margin = GTK_SPIN_BUTTON(gtk_builder_get_object(b, "spin_button_right_margin"));
-
+
priv->prev_value = (gint)gtk_adjustment_get_value(priv->collapse_inactive_lanes);
g_signal_connect(preferences_dialog, "response", G_CALLBACK(on_response), NULL);
-
+
initialize_view(preferences_dialog);
-
+
priv->entry_configuration_user_name = GTK_ENTRY(gtk_builder_get_object(b, "entry_configuration_user_name"));
priv->entry_configuration_user_email = GTK_ENTRY(gtk_builder_get_object(b, "entry_configuration_user_email"));
gtk_builder_connect_signals(b, preferences_dialog);
g_object_unref(b);
-
+
gchar *val;
-
+
val = gitg_config_get_value (priv->config, "user.name");
gtk_entry_set_text (priv->entry_configuration_user_name, val ? val : "");
g_free (val);
-
+
val = gitg_config_get_value (priv->config, "user.email");
gtk_entry_set_text (priv->entry_configuration_user_email, val ? val : "");
g_free (val);
diff --git a/gitg/gitg-preferences-dialog.h b/gitg/gitg-preferences-dialog.h
index 81f58e3..c1142cb 100644
--- a/gitg/gitg-preferences-dialog.h
+++ b/gitg/gitg-preferences-dialog.h
@@ -41,7 +41,7 @@ typedef struct _GitgPreferencesDialogPrivate GitgPreferencesDialogPrivate;
struct _GitgPreferencesDialog {
GtkDialog parent;
-
+
GitgPreferencesDialogPrivate *priv;
};
diff --git a/gitg/gitg-preferences.c b/gitg/gitg-preferences.c
index 8995d65..c1d28b2 100644
--- a/gitg/gitg-preferences.c
+++ b/gitg/gitg-preferences.c
@@ -33,7 +33,7 @@
enum
{
PROP_0,
-
+
PROP_HISTORY_SEARCH_FILTER,
PROP_HISTORY_COLLAPSE_INACTIVE_LANES_ACTIVE,
@@ -42,16 +42,16 @@ enum
PROP_HISTORY_SHOW_VIRTUAL_STASH,
PROP_HISTORY_SHOW_VIRTUAL_STAGED,
PROP_HISTORY_SHOW_VIRTUAL_UNSTAGED,
-
+
PROP_MESSAGE_SHOW_RIGHT_MARGIN,
PROP_MESSAGE_RIGHT_MARGIN_AT,
-
+
PROP_HIDDEN_SIGN_TAG,
PROP_STYLE_TEXT_FOREGROUND,
PROP_STYLE_TEXT_BACKGROUND,
PROP_STYLE_TEXT_STYLE,
-
+
PROP_STYLE_ADDED_LINE_FOREGROUND,
PROP_STYLE_ADDED_LINE_BACKGROUND,
PROP_STYLE_ADDED_LINE_STYLE,
@@ -71,7 +71,7 @@ enum
PROP_STYLE_HUNK_FOREGROUND,
PROP_STYLE_HUNK_BACKGROUND,
PROP_STYLE_HUNK_STYLE,
-
+
PROP_STYLE_TRAILING_SPACES_FOREGROUND,
PROP_STYLE_TRAILING_SPACES_BACKGROUND,
PROP_STYLE_TRAILING_SPACES_STYLE,
@@ -98,9 +98,9 @@ struct _Binding
struct _GitgPreferencesPrivate
{
GConfClient *client;
-
+
guint notify_id;
-
+
gboolean block_notify[PROP_LAST];
};
@@ -161,9 +161,9 @@ static void
gitg_preferences_finalize(GObject *object)
{
GitgPreferences *preferences = GITG_PREFERENCES(object);
-
+
finalize_notify(preferences);
-
+
g_object_unref(preferences->priv->client);
G_OBJECT_CLASS(gitg_preferences_parent_class)->finalize(object);
}
@@ -172,7 +172,7 @@ static void
gitg_preferences_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgPreferences *self = GITG_PREFERENCES(object);
-
+
if (prop_id > PROP_0 && prop_id < PROP_LAST)
{
Binding *b = &property_bindings[prop_id];
@@ -204,11 +204,11 @@ static void
install_property_binding(guint prop_id, gchar const *group, gchar const *name, WrapGet wrap_get, WrapSet wrap_set)
{
Binding *b = &property_bindings[prop_id];
-
+
g_snprintf(b->key, PATH_MAX, "%s/%s/%s", KEY_ROOT, group, name);
gchar const *prefix = g_utf8_strrchr(group, -1, '/');
-
+
if (prefix)
{
prefix += 1;
@@ -217,7 +217,7 @@ install_property_binding(guint prop_id, gchar const *group, gchar const *name, W
{
prefix = group;
}
-
+
g_snprintf(b->property, PATH_MAX, "%s-%s", prefix, name);
b->wrap_get = wrap_get;
@@ -248,19 +248,19 @@ install_style_properties(GObjectClass *object_class, guint prop_start, gchar con
wrap_get_int,
wrap_set_int);
g_free(group);
-
+
gchar *stylename = g_strconcat("gitgdiff:", name, NULL);
-
+
GtkSourceStyleSchemeManager *manager = gtk_source_style_scheme_manager_get_default();
GtkSourceStyleScheme *scheme = gtk_source_style_scheme_manager_get_scheme(manager, "gitg");
GtkSourceStyle *style = gtk_source_style_scheme_get_style(scheme, stylename);
-
+
g_free(stylename);
gchar *foreground = NULL;
gchar *background = NULL;
gboolean line_background;
-
+
group = g_strconcat(name, "-foreground", NULL);
g_object_get(G_OBJECT(style), "line-background-set", &line_background, NULL);
@@ -314,7 +314,7 @@ static void
gitg_preferences_class_init(GitgPreferencesClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
+
object_class->finalize = gitg_preferences_finalize;
object_class->set_property = gitg_preferences_set_property;
object_class->get_property = gitg_preferences_get_property;
@@ -465,7 +465,7 @@ initialize_notify(GitgPreferences *preferences)
(GConfClientNotifyFunc)on_preference_changed,
preferences,
NULL,
- NULL);
+ NULL);
}
static void
@@ -477,26 +477,26 @@ initialize_default_values(GitgPreferences *preferences)
for (i = PROP_0 + 1; i < PROP_LAST; ++i)
{
Binding *binding = &property_bindings[i];
-
+
GConfValue *v = gconf_client_get_without_default(preferences->priv->client, binding->key, NULL);
-
+
if (v)
{
gconf_value_free(v);
continue;
}
-
+
GParamSpec *spec = g_object_class_find_property(class, binding->property);
GValue value = {0,};
-
+
/* Get default value */
g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(spec));
g_param_value_set_default(spec, &value);
-
+
/* Set it */
g_object_set_property(G_OBJECT(preferences), binding->property, &value);
-
- g_value_unset(&value);
+
+ g_value_unset(&value);
}
}
@@ -504,11 +504,11 @@ static void
gitg_preferences_init(GitgPreferences *self)
{
self->priv = GITG_PREFERENCES_GET_PRIVATE(self);
-
+
self->priv->client = gconf_client_get_default();
-
+
initialize_notify(self);
-
+
/* Set initial values for properties that have defaults and do not exist
yet */
initialize_default_values(self);
@@ -518,13 +518,13 @@ GitgPreferences *
gitg_preferences_get_default()
{
static GitgPreferences *preferences = NULL;
-
+
if (!preferences)
{
preferences = g_object_new(GITG_TYPE_PREFERENCES, NULL);
g_object_add_weak_pointer(G_OBJECT(preferences), (gpointer *)&preferences);
}
-
+
return preferences;
}
@@ -533,20 +533,20 @@ static void
on_preference_changed(GConfClient *client, guint id, GConfEntry *entry, GitgPreferences *preferences)
{
gchar const *key = gconf_entry_get_key(entry);
-
+
/* Find corresponding property */
guint i;
-
+
for (i = PROP_0 + 1; i < PROP_LAST; ++i)
{
Binding *b = &property_bindings[i];
-
+
if (strcmp(key, b->key) == 0)
{
/* Property match, emit notify */
if (!preferences->priv->block_notify[i])
g_object_notify(G_OBJECT(preferences), b->property);
-
+
preferences->priv->block_notify[i] = FALSE;
break;
}
diff --git a/gitg/gitg-preferences.h b/gitg/gitg-preferences.h
index 30cb413..9ec97aa 100644
--- a/gitg/gitg-preferences.h
+++ b/gitg/gitg-preferences.h
@@ -50,7 +50,7 @@ typedef struct _GitgPreferencesPrivate GitgPreferencesPrivate;
struct _GitgPreferences {
GObject parent;
-
+
GitgPreferencesPrivate *priv;
};
diff --git a/gitg/gitg-ref.c b/gitg/gitg-ref.c
index c62bf9a..169183c 100644
--- a/gitg/gitg-ref.c
+++ b/gitg/gitg-ref.c
@@ -34,10 +34,10 @@ struct _GitgRef
{
Hash hash;
GitgRefType type;
-
+
gchar *name;
gchar *shortname;
-
+
gchar *prefix;
GitgRefState state;
};
@@ -53,7 +53,7 @@ gitg_ref_get_type (void)
(GBoxedCopyFunc)gitg_ref_copy,
(GBoxedFreeFunc)gitg_ref_free);
}
-
+
return our_type;
}
@@ -64,7 +64,7 @@ gitg_ref_new(gchar const *hash, gchar const *name)
gitg_utils_sha1_to_hash(hash, inst->hash);
inst->name = g_strdup(name);
-
+
PrefixTypeMap map[] = {
{"refs/heads/", GITG_REF_TYPE_BRANCH},
{"refs/remotes/", GITG_REF_TYPE_REMOTE},
@@ -73,7 +73,7 @@ gitg_ref_new(gchar const *hash, gchar const *name)
};
inst->prefix = NULL;
-
+
// set type from name
int i;
for (i = 0; i < sizeof(map) / sizeof(PrefixTypeMap); ++i)
@@ -82,9 +82,9 @@ gitg_ref_new(gchar const *hash, gchar const *name)
if (!g_str_has_prefix(name, map[i].prefix))
continue;
-
+
inst->type = map[i].type;
-
+
if (inst->type == GITG_REF_TYPE_STASH)
{
inst->shortname = g_strdup("stash");
@@ -93,21 +93,21 @@ gitg_ref_new(gchar const *hash, gchar const *name)
{
inst->shortname = g_strdup(name + strlen(map[i].prefix));
}
-
+
if (map[i].type == GITG_REF_TYPE_REMOTE && (pos = strchr(inst->shortname, '/')))
{
inst->prefix = g_strndup(inst->shortname, pos - inst->shortname);
}
-
+
break;
}
-
+
if (inst->shortname == NULL)
{
inst->type = GITG_REF_TYPE_NONE;
inst->shortname = g_strdup(name);
}
-
+
return inst;
}
@@ -120,12 +120,12 @@ gitg_ref_copy(GitgRef *ref)
}
GitgRef *ret = g_slice_new0 (GitgRef);
-
+
ret->type = ref->type;
ret->name = g_strdup(ref->name);
ret->shortname = g_strdup(ref->shortname);
ret->prefix = g_strdup(ref->prefix);
-
+
int i;
for (i = 0; i < HASH_BINARY_SIZE; ++i)
ret->hash[i] = ref->hash[i];
@@ -151,7 +151,7 @@ gitg_ref_equal(GitgRef *ref, GitgRef *other)
{
if (ref == NULL && other == NULL)
return TRUE;
-
+
if (ref == NULL || other == NULL)
return FALSE;
@@ -163,7 +163,7 @@ gitg_ref_equal_prefix(GitgRef *ref, GitgRef *other)
{
if (ref == NULL && other == NULL)
return TRUE;
-
+
if (ref == NULL || other == NULL)
return FALSE;
@@ -200,13 +200,13 @@ gitg_ref_get_prefix(GitgRef *ref)
return ref->prefix;
}
-GitgRefState
+GitgRefState
gitg_ref_get_state (GitgRef *ref)
{
return ref->state;
}
-void
+void
gitg_ref_set_state (GitgRef *ref,
GitgRefState state)
{
@@ -218,7 +218,7 @@ gitg_ref_get_local_name (GitgRef *ref)
{
gchar const *shortname = gitg_ref_get_shortname (ref);
gchar const *prefix = gitg_ref_get_prefix (ref);
-
+
if (prefix && g_str_has_prefix (shortname, prefix))
{
return g_strdup (shortname + strlen(prefix) + 1);
diff --git a/gitg/gitg-repository-dialog.c b/gitg/gitg-repository-dialog.c
index c1bfe3c..7c3ee2c 100644
--- a/gitg/gitg-repository-dialog.c
+++ b/gitg/gitg-repository-dialog.c
@@ -22,17 +22,17 @@ struct _GitgRepositoryDialogPrivate
{
GitgRepository *repository;
GitgConfig *config;
-
+
GtkEntry *entry_repository_user_name;
GtkEntry *entry_repository_user_email;
-
+
GtkTreeView *tree_view_remotes;
GtkListStore *list_store_remotes;
-
+
GtkButton *button_remove_remote;
GtkButton *button_fetch_remote;
GtkImage *image_fetch_remote;
-
+
GList *fetchers;
gboolean show_fetch;
};
@@ -54,14 +54,14 @@ fetch_cleanup (FetchInfo *info)
{
g_object_unref (info->spinner);
}
-
+
info->dialog->priv->fetchers = g_list_remove (info->dialog->priv->fetchers, info);
-
+
if (gtk_tree_row_reference_valid (info->reference))
{
GtkTreeIter iter;
GtkTreePath *path = gtk_tree_row_reference_get_path (info->reference);
-
+
gtk_tree_model_get_iter (GTK_TREE_MODEL (info->dialog->priv->list_store_remotes),
&iter,
path);
@@ -73,39 +73,39 @@ fetch_cleanup (FetchInfo *info)
gtk_tree_path_free (path);
}
-
+
gtk_tree_row_reference_free (info->reference);
g_object_unref (info->runner);
-
- g_slice_free (FetchInfo, info);
+
+ g_slice_free (FetchInfo, info);
}
static void
gitg_repository_dialog_finalize (GObject *object)
{
GitgRepositoryDialog *dialog = GITG_REPOSITORY_DIALOG (object);
-
+
if (dialog->priv->repository)
{
g_object_unref (dialog->priv->repository);
}
-
+
if (dialog->priv->config)
{
g_object_unref (dialog->priv->config);
}
-
+
GList *copy = g_list_copy (dialog->priv->fetchers);
GList *item;
-
+
for (item = copy; item; item = g_list_next (item))
{
gitg_runner_cancel (((FetchInfo *)item->data)->runner);
}
-
+
g_list_free (copy);
g_list_foreach (dialog->priv->fetchers, (GFunc)fetch_cleanup, NULL);
-
+
G_OBJECT_CLASS (gitg_repository_dialog_parent_class)->finalize (object);
}
@@ -113,7 +113,7 @@ static void
gitg_repository_dialog_class_init (GitgRepositoryDialogClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
+
object_class->finalize = gitg_repository_dialog_finalize;
g_type_class_add_private (object_class, sizeof(GitgRepositoryDialogPrivate));
@@ -137,9 +137,9 @@ update_fetch (GitgRepositoryDialog *dialog)
GtkTreeSelection *selection = gtk_tree_view_get_selection (dialog->priv->tree_view_remotes);
GList *rows;
GtkTreeModel *model;
-
+
rows = gtk_tree_selection_get_selected_rows (selection, &model);
-
+
GList *item;
gboolean show_fetch = FALSE;
@@ -148,10 +148,10 @@ update_fetch (GitgRepositoryDialog *dialog)
GtkTreePath *path = (GtkTreePath *)item->data;
GtkTreeIter iter;
GdkPixbuf *fetch;
-
+
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, COLUMN_FETCH, &fetch, -1);
-
+
if (!fetch)
{
show_fetch = TRUE;
@@ -161,7 +161,7 @@ update_fetch (GitgRepositoryDialog *dialog)
g_object_unref (fetch);
}
}
-
+
if (!rows)
{
show_fetch = TRUE;
@@ -179,7 +179,7 @@ update_fetch (GitgRepositoryDialog *dialog)
}
dialog->priv->show_fetch = show_fetch;
-
+
g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL);
g_list_free (rows);
}
@@ -190,14 +190,14 @@ update_sensitivity (GitgRepositoryDialog *dialog)
GtkTreeSelection *selection = gtk_tree_view_get_selection (dialog->priv->tree_view_remotes);
GList *rows;
GtkTreeModel *model;
-
+
rows = gtk_tree_selection_get_selected_rows (selection, &model);
gtk_widget_set_sensitive (GTK_WIDGET (dialog->priv->button_remove_remote), rows != NULL);
gtk_widget_set_sensitive (GTK_WIDGET (dialog->priv->button_fetch_remote), rows != NULL);
-
+
update_fetch (dialog);
-
+
g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL);
g_list_free (rows);
}
@@ -206,7 +206,7 @@ static void
add_remote (GitgRepositoryDialog *dialog, gchar const *name, gchar const *url, GtkTreeIter *iter)
{
GtkTreeIter it;
-
+
gtk_list_store_append (dialog->priv->list_store_remotes, iter ? iter : &it);
gtk_list_store_set (dialog->priv->list_store_remotes,
iter ? iter : &it,
@@ -221,7 +221,7 @@ on_spinner_frame (GitgSpinner *spinner, GdkPixbuf *pixbuf, FetchInfo *info)
{
GtkTreeIter iter;
GtkTreePath *path = gtk_tree_row_reference_get_path (info->reference);
-
+
gtk_tree_model_get_iter (GTK_TREE_MODEL (info->dialog->priv->list_store_remotes),
&iter,
path);
@@ -239,10 +239,10 @@ on_fetch_begin_loading (GitgRunner *runner, FetchInfo *info)
{
info->spinner = gitg_spinner_new (GTK_ICON_SIZE_MENU);
gitg_spinner_set_screen (info->spinner, gtk_widget_get_screen (GTK_WIDGET (info->dialog)));
-
+
g_signal_connect (info->spinner, "frame", G_CALLBACK (on_spinner_frame), info);
gitg_spinner_start (info->spinner);
-
+
update_fetch (info->dialog);
}
@@ -269,15 +269,15 @@ fetch_remote (GitgRepositoryDialog *dialog, GtkTreeIter *iter)
GitgRunner *runner = gitg_runner_new (1000);
FetchInfo *info = g_slice_new0 (FetchInfo);
GtkTreeModel *model = GTK_TREE_MODEL (dialog->priv->list_store_remotes);
-
+
GtkTreePath *path = gtk_tree_model_get_path (model, iter);
-
+
info->dialog = dialog;
info->reference = gtk_tree_row_reference_new (model, path);
info->runner = runner;
gtk_tree_path_free (path);
-
+
g_signal_connect (runner,
"begin-loading",
G_CALLBACK (on_fetch_begin_loading),
@@ -289,10 +289,10 @@ fetch_remote (GitgRepositoryDialog *dialog, GtkTreeIter *iter)
info);
dialog->priv->fetchers = g_list_prepend (dialog->priv->fetchers, info);
-
+
gchar *name;
gtk_tree_model_get (model, iter, COLUMN_NAME, &name, -1);
-
+
gitg_repository_run_commandv (dialog->priv->repository,
runner,
NULL,
@@ -313,47 +313,47 @@ static void
init_remotes(GitgRepositoryDialog *dialog)
{
gchar *ret = gitg_config_get_value_regex (dialog->priv->config, "remote\\..*\\.url");
-
+
if (!ret)
{
update_sensitivity (dialog);
return;
}
-
+
gchar **lines = g_strsplit(ret, "\n", -1);
gchar **ptr = lines;
-
+
GRegex *regex = g_regex_new ("remote\\.(.+?)\\.url\\s+(.*)", 0, 0, NULL);
-
+
while (*ptr)
{
GMatchInfo *info = NULL;
-
+
if (g_regex_match (regex, *ptr, 0, &info))
{
gchar *name = g_match_info_fetch (info, 1);
gchar *url = g_match_info_fetch (info, 2);
-
+
add_remote (dialog, name, url, NULL);
-
+
g_free (name);
g_free (url);
}
-
+
g_match_info_free (info);
++ptr;
}
-
+
g_regex_unref (regex);
g_strfreev (lines);
g_free (ret);
-
+
GtkTreeSelection *selection;
selection = gtk_tree_view_get_selection (dialog->priv->tree_view_remotes);
-
+
gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
g_signal_connect (selection, "changed", G_CALLBACK (on_selection_changed), dialog);
-
+
update_sensitivity (dialog);
}
@@ -361,15 +361,15 @@ static void
init_properties(GitgRepositoryDialog *dialog)
{
gchar *val;
-
+
val = gitg_config_get_value (dialog->priv->config, "user.name");
gtk_entry_set_text (dialog->priv->entry_repository_user_name, val ? val : "");
g_free (val);
-
+
val = gitg_config_get_value (dialog->priv->config, "user.email");
gtk_entry_set_text (dialog->priv->entry_repository_user_email, val ? val : "");
g_free (val);
-
+
init_remotes(dialog);
}
@@ -381,9 +381,9 @@ fetch_data_cb (GtkTreeViewColumn *column,
GitgRepositoryDialog *dialog)
{
GdkPixbuf *fetch;
-
+
gtk_tree_model_get (model, iter, COLUMN_FETCH, &fetch, -1);
-
+
if (fetch)
{
g_object_set (cell, "pixbuf", fetch, NULL);
@@ -401,33 +401,33 @@ static void
create_repository_dialog (GitgWindow *window)
{
GitgRepository *repository = gitg_window_get_repository (window);
-
+
if (!repository)
{
return;
}
-
+
GtkBuilder *b = gitg_utils_new_builder("gitg-repository.ui");
-
+
repository_dialog = GITG_REPOSITORY_DIALOG(gtk_builder_get_object(b, "dialog_repository"));
g_object_add_weak_pointer(G_OBJECT(repository_dialog), (gpointer *)&repository_dialog);
-
+
repository_dialog->priv->repository = g_object_ref (repository);
repository_dialog->priv->config = gitg_config_new (repository);
repository_dialog->priv->entry_repository_user_name = GTK_ENTRY(gtk_builder_get_object(b, "entry_repository_user_name"));
repository_dialog->priv->entry_repository_user_email = GTK_ENTRY(gtk_builder_get_object(b, "entry_repository_user_email"));
-
+
repository_dialog->priv->tree_view_remotes = GTK_TREE_VIEW(gtk_builder_get_object(b, "tree_view_remotes"));
repository_dialog->priv->list_store_remotes = GTK_LIST_STORE(gtk_builder_get_object(b, "list_store_remotes"));
-
+
repository_dialog->priv->button_remove_remote = GTK_BUTTON(gtk_builder_get_object(b, "button_remove_remote"));
repository_dialog->priv->button_fetch_remote = GTK_BUTTON(gtk_builder_get_object(b, "button_fetch_remote"));
repository_dialog->priv->image_fetch_remote = GTK_IMAGE(gtk_builder_get_object(b, "image_fetch_remote"));
GObject *renderer = gtk_builder_get_object(b, "tree_view_remotes_renderer_icon");
GObject *column = gtk_builder_get_object(b, "tree_view_remotes_column_icon");
-
+
gtk_tree_view_column_set_cell_data_func (GTK_TREE_VIEW_COLUMN (column),
GTK_CELL_RENDERER (renderer),
(GtkTreeCellDataFunc)fetch_data_cb,
@@ -436,16 +436,16 @@ create_repository_dialog (GitgWindow *window)
gtk_builder_connect_signals(b, repository_dialog);
g_object_unref (b);
-
+
gchar *basename = g_path_get_basename(gitg_repository_get_path(repository));
gchar *title = g_strdup_printf("%s - %s", _("Properties"), basename);
gtk_window_set_title(GTK_WINDOW(repository_dialog), title);
g_free (title);
g_free (basename);
-
+
g_signal_connect(repository_dialog, "response", G_CALLBACK(on_response), NULL);
-
+
init_properties(repository_dialog);
}
@@ -476,24 +476,24 @@ fetch_remote_cancel (GitgRepositoryDialog *dialog, GtkTreeIter *iter)
GList *item;
GtkTreePath *orig;
GtkTreeModel *model = GTK_TREE_MODEL (dialog->priv->list_store_remotes);
-
+
orig = gtk_tree_model_get_path (model, iter);
-
+
for (item = dialog->priv->fetchers; item; item = g_list_next (item))
{
FetchInfo *info = (FetchInfo *)item->data;
GtkTreePath *ref = gtk_tree_row_reference_get_path (info->reference);
gboolean equal = gtk_tree_path_compare (orig, ref) == 0;
-
+
gtk_tree_path_free (ref);
-
+
if (equal)
{
gitg_runner_cancel (info->runner);
break;
}
}
-
+
gtk_tree_path_free (orig);
}
@@ -507,16 +507,16 @@ on_button_fetch_remote_clicked (GtkButton *button, GitgRepositoryDialog *dialog)
GList *rows = gtk_tree_selection_get_selected_rows (selection, &model);
GList *item;
-
+
for (item = rows; item; item = g_list_next (item))
{
GtkTreePath *path = (GtkTreePath *)item->data;
GtkTreeIter iter;
GdkPixbuf *fetch;
-
+
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, COLUMN_FETCH, &fetch, -1);
-
+
if (!fetch && dialog->priv->show_fetch)
{
fetch_remote (dialog, &iter);
@@ -525,20 +525,20 @@ on_button_fetch_remote_clicked (GtkButton *button, GitgRepositoryDialog *dialog)
{
fetch_remote_cancel (dialog, &iter);
}
-
+
if (fetch)
{
g_object_unref (fetch);
}
-
+
gtk_tree_path_free (path);
}
-
+
if (rows)
{
update_fetch (dialog);
}
-
+
g_list_free (rows);
}
@@ -558,48 +558,48 @@ on_button_remove_remote_clicked (GtkButton *button, GitgRepositoryDialog *dialog
{
GtkTreeSelection *selection;
GtkTreeModel *model;
-
+
selection = gtk_tree_view_get_selection (dialog->priv->tree_view_remotes);
GList *rows = gtk_tree_selection_get_selected_rows (selection, &model);
GList *refs = NULL;
GList *item;
-
+
for (item = rows; item; item = g_list_next (item))
{
GtkTreeRowReference *ref;
GtkTreePath *path = (GtkTreePath *)item->data;
-
+
ref = gtk_tree_row_reference_new (model, path);
refs = g_list_prepend (refs, ref);
-
+
gtk_tree_path_free (path);
}
-
+
refs = g_list_reverse (refs);
g_list_free (rows);
-
+
for (item = refs; item; item = g_list_next (item))
{
GtkTreeRowReference *ref = (GtkTreeRowReference *)item->data;
GtkTreePath *path = gtk_tree_row_reference_get_path (ref);
GtkTreeIter iter;
gchar *name;
-
- gtk_tree_model_get_iter (model, &iter, path);
+
+ gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, COLUMN_NAME, &name, -1);
-
+
gboolean ret = remove_remote (dialog, name);
if (ret)
{
gtk_list_store_remove (dialog->priv->list_store_remotes, &iter);
}
-
+
gtk_tree_row_reference_free (ref);
gtk_tree_path_free (path);
}
-
+
g_list_free (refs);
}
@@ -608,30 +608,30 @@ on_button_add_remote_clicked (GtkButton *button, GitgRepositoryDialog *dialog)
{
GtkTreeModel *model = GTK_TREE_MODEL (dialog->priv->list_store_remotes);
GtkTreeIter iter;
-
+
gint num = 0;
-
+
if (gtk_tree_model_get_iter_first (model, &iter))
{
do
{
gchar *name;
gtk_tree_model_get (model, &iter, COLUMN_NAME, &name, -1);
-
+
if (g_str_has_prefix (name, "remote"))
{
gint n = atoi (name + 6);
-
+
if (n > num)
{
num = n;
}
}
-
+
g_free (name);
} while (gtk_tree_model_iter_next (model, &iter));
}
-
+
gchar *name = g_strdup_printf ("remote%d", num + 1);
gchar const url[] = "git://example.com/repository.git";
@@ -641,9 +641,9 @@ on_button_add_remote_clicked (GtkButton *button, GitgRepositoryDialog *dialog)
GtkTreePath *path;
add_remote (dialog, name, url, &iter);
-
+
path = gtk_tree_model_get_path (GTK_TREE_MODEL (dialog->priv->list_store_remotes), &iter);
-
+
gtk_tree_view_set_cursor_on_cell (dialog->priv->tree_view_remotes,
path,
gtk_tree_view_get_column (dialog->priv->tree_view_remotes, 0),
@@ -652,7 +652,7 @@ on_button_add_remote_clicked (GtkButton *button, GitgRepositoryDialog *dialog)
gtk_tree_path_free (path);
}
-
+
g_free (name);
}
@@ -660,7 +660,7 @@ gboolean
on_entry_repository_user_name_focus_out_event (GtkEntry *entry, GdkEventFocus *focus, GitgRepositoryDialog *dialog)
{
gchar const *text;
-
+
text = gtk_entry_get_text (entry);
gitg_config_set_value (dialog->priv->config, "user.name", *text ? text : NULL);
@@ -671,7 +671,7 @@ gboolean
on_entry_repository_user_email_focus_out_event (GtkEntry *entry, GdkEventFocus *focus, GitgRepositoryDialog *dialog)
{
gchar const *text;
-
+
text = gtk_entry_get_text (entry);
gitg_config_set_value (dialog->priv->config, "user.email", *text ? text : NULL);
@@ -685,7 +685,7 @@ on_remote_name_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_tex
{
return;
}
-
+
GtkTreePath *tp = gtk_tree_path_new_from_string (path);
GtkTreeIter iter;
@@ -695,13 +695,13 @@ on_remote_name_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_tex
gchar *oldname;
gchar *url;
-
+
gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->list_store_remotes),
&iter,
COLUMN_NAME, &oldname,
COLUMN_URL, &url,
-1);
-
+
if (gitg_repository_commandv (dialog->priv->repository, NULL, "remote", "add", new_text, url, NULL))
{
remove_remote (dialog, oldname);
@@ -713,7 +713,7 @@ on_remote_name_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_tex
fetch_remote (dialog, &iter);
}
-
+
g_free (oldname);
g_free (url);
@@ -727,17 +727,17 @@ on_remote_url_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text
{
return;
}
-
+
GtkTreePath *tp = gtk_tree_path_new_from_string (path);
GtkTreeIter iter;
-
+
gtk_tree_model_get_iter (GTK_TREE_MODEL (dialog->priv->list_store_remotes),
&iter,
tp);
-
+
gchar *name;
gchar *url;
-
+
gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->list_store_remotes),
&iter,
COLUMN_NAME, &name,
@@ -751,14 +751,14 @@ on_remote_url_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text
gtk_tree_path_free (tp);
- return;
+ return;
}
g_free (url);
gchar *key = g_strconcat ("remote.", name, ".url", NULL);
g_free (name);
-
+
if (gitg_config_set_value (dialog->priv->config, key, new_text))
{
gtk_list_store_set (dialog->priv->list_store_remotes,
@@ -768,7 +768,7 @@ on_remote_url_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text
fetch_remote (dialog, &iter);
}
-
- g_free (key);
+
+ g_free (key);
gtk_tree_path_free (tp);
}
diff --git a/gitg/gitg-repository-dialog.h b/gitg/gitg-repository-dialog.h
index 33dd9d7..8780283 100644
--- a/gitg/gitg-repository-dialog.h
+++ b/gitg/gitg-repository-dialog.h
@@ -21,7 +21,7 @@ typedef struct _GitgRepositoryDialogPrivate GitgRepositoryDialogPrivate;
struct _GitgRepositoryDialog
{
GtkDialog parent;
-
+
GitgRepositoryDialogPrivate *priv;
};
diff --git a/gitg/gitg-repository.c b/gitg/gitg-repository.c
index 1c7c7e7..ce8797e 100644
--- a/gitg/gitg-repository.c
+++ b/gitg/gitg-repository.c
@@ -46,7 +46,7 @@ G_DEFINE_TYPE_EXTENDED(GitgRepository, gitg_repository, G_TYPE_OBJECT, 0,
enum
{
PROP_0,
-
+
PROP_PATH,
PROP_LOADER
};
@@ -86,7 +86,7 @@ struct _GitgRepositoryPrivate
GHashTable *hashtable;
gint stamp;
GType column_types[N_COLUMNS];
-
+
GitgRevision **storage;
GitgLanes *lanes;
GHashTable *refs;
@@ -96,12 +96,12 @@ struct _GitgRepositoryPrivate
gulong size;
gulong allocated;
gint grow_size;
-
+
gchar **last_args;
guint idle_relane_id;
-
+
LoadStage load_stage;
-
+
GFileMonitor *monitor;
};
@@ -109,10 +109,10 @@ inline static gint
gitg_repository_error_quark()
{
static GQuark quark = 0;
-
+
if (G_UNLIKELY(quark == 0))
quark = g_quark_from_static_string("GitgRepositoryErrorQuark");
-
+
return quark;
}
@@ -136,7 +136,7 @@ tree_model_get_column_type(GtkTreeModel *tree_model, gint index)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), G_TYPE_INVALID);
g_return_val_if_fail(index < N_COLUMNS && index >= 0, G_TYPE_INVALID);
-
+
return GITG_REPOSITORY(tree_model)->priv->column_types[index];
}
@@ -151,22 +151,22 @@ static gboolean
tree_model_get_iter(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreePath *path)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), FALSE);
-
+
gint *indices;
gint depth;
indices = gtk_tree_path_get_indices(path);
depth = gtk_tree_path_get_depth(path);
-
+
GitgRepository *rp = GITG_REPOSITORY(tree_model);
g_return_val_if_fail(depth == 1, FALSE);
-
+
if (indices[0] < 0 || indices[0] >= rp->priv->size)
return FALSE;
-
+
fill_iter(rp, indices[0], iter);
-
+
return TRUE;
}
@@ -174,10 +174,10 @@ static GtkTreePath *
tree_model_get_path(GtkTreeModel *tree_model, GtkTreeIter *iter)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), NULL);
-
+
GitgRepository *rp = GITG_REPOSITORY(tree_model);
g_return_val_if_fail(iter->stamp == rp->priv->stamp, NULL);
-
+
return gtk_tree_path_new_from_indices(GPOINTER_TO_INT(iter->user_data), -1);
}
@@ -186,15 +186,15 @@ tree_model_get_value(GtkTreeModel *tree_model, GtkTreeIter *iter, gint column, G
{
g_return_if_fail(GITG_IS_REPOSITORY(tree_model));
g_return_if_fail(column >= 0 && column < N_COLUMNS);
-
+
GitgRepository *rp = GITG_REPOSITORY(tree_model);
g_return_if_fail(iter->stamp == rp->priv->stamp);
gint index = GPOINTER_TO_INT(iter->user_data);
-
+
g_return_if_fail(index >= 0 && index < rp->priv->size);
GitgRevision *rv = rp->priv->storage[index];
-
+
g_value_init(value, rp->priv->column_types[column]);
switch (column)
@@ -224,12 +224,12 @@ tree_model_iter_next(GtkTreeModel *tree_model, GtkTreeIter *iter)
GitgRepository *rp = GITG_REPOSITORY(tree_model);
g_return_val_if_fail(iter->stamp == rp->priv->stamp, FALSE);
-
+
gint next = GPOINTER_TO_INT(iter->user_data) + 1;
-
+
if (next >= rp->priv->size)
return FALSE;
-
+
iter->user_data = GINT_TO_POINTER(next);
return TRUE;
}
@@ -242,10 +242,10 @@ tree_model_iter_children(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIte
// Only root has children, because it's a flat list
if (parent != NULL)
return FALSE;
-
+
GitgRepository *rp = GITG_REPOSITORY(tree_model);
fill_iter(rp, 0, iter);
-
+
return TRUE;
}
@@ -253,7 +253,7 @@ static gboolean
tree_model_iter_has_child(GtkTreeModel *tree_model, GtkTreeIter *iter)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), FALSE);
-
+
// Only root (NULL) has children
return iter == NULL;
}
@@ -263,7 +263,7 @@ tree_model_iter_n_children(GtkTreeModel *tree_model, GtkTreeIter *iter)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(tree_model), 0);
GitgRepository *rp = GITG_REPOSITORY(tree_model);
-
+
return iter ? 0 : rp->priv->size;
}
@@ -276,11 +276,11 @@ tree_model_iter_nth_child(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIt
if (parent)
return FALSE;
- GitgRepository *rp = GITG_REPOSITORY(tree_model);
+ GitgRepository *rp = GITG_REPOSITORY(tree_model);
g_return_val_if_fail(n < rp->priv->size, FALSE);
-
+
fill_iter(rp, n, iter);
-
+
return TRUE;
}
@@ -313,7 +313,7 @@ do_clear(GitgRepository *repository, gboolean emit)
{
gint i;
GtkTreePath *path = gtk_tree_path_new_from_indices(repository->priv->size - 1, -1);
-
+
for (i = repository->priv->size - 1; i >= 0; --i)
{
if (emit)
@@ -322,27 +322,27 @@ do_clear(GitgRepository *repository, gboolean emit)
gtk_tree_model_row_deleted(GTK_TREE_MODEL(repository), dup);
gtk_tree_path_free(dup);
}
-
+
gtk_tree_path_prev(path);
gitg_revision_unref(repository->priv->storage[i]);
}
-
+
gtk_tree_path_free(path);
-
+
if (repository->priv->storage)
g_slice_free1(sizeof(GitgRevision *) * repository->priv->size, repository->priv->storage);
-
+
repository->priv->storage = NULL;
repository->priv->size = 0;
repository->priv->allocated = 0;
-
+
gitg_ref_free(repository->priv->current_ref);
repository->priv->current_ref = NULL;
-
+
/* clear hash tables */
g_hash_table_remove_all(repository->priv->hashtable);
g_hash_table_remove_all(repository->priv->refs);
-
+
gitg_color_reset();
}
@@ -350,36 +350,36 @@ static void
gitg_repository_finalize(GObject *object)
{
GitgRepository *rp = GITG_REPOSITORY(object);
-
+
/* Make sure to cancel the loader */
gitg_runner_cancel(rp->priv->loader);
g_object_unref(rp->priv->loader);
-
+
g_object_unref(rp->priv->lanes);
-
+
/* Clear the model to remove all revision objects */
do_clear(rp, FALSE);
-
+
/* Free the path */
g_free(rp->priv->path);
-
+
/* Free the hash */
g_hash_table_destroy(rp->priv->hashtable);
g_hash_table_destroy(rp->priv->refs);
-
+
/* Free cached args */
g_strfreev(rp->priv->last_args);
-
+
if (rp->priv->idle_relane_id)
{
g_source_remove(rp->priv->idle_relane_id);
}
-
+
if (rp->priv->current_ref)
{
gitg_ref_free (rp->priv->current_ref);
}
-
+
if (rp->priv->working_ref)
{
gitg_ref_free (rp->priv->working_ref);
@@ -398,7 +398,7 @@ static void
gitg_repository_set_property(GObject *object, guint prop_id, GValue const *value, GParamSpec *pspec)
{
GitgRepository *self = GITG_REPOSITORY(object);
-
+
switch (prop_id)
{
case PROP_PATH:
@@ -415,7 +415,7 @@ static void
gitg_repository_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
GitgRepository *self = GITG_REPOSITORY(object);
-
+
switch (prop_id)
{
case PROP_PATH:
@@ -434,32 +434,32 @@ static gchar *
parse_ref_intern (GitgRepository *repository, gchar const *ref, gboolean symbolic)
{
gchar **ret = gitg_repository_command_with_outputv(repository, NULL, "rev-parse", "--verify", symbolic ? "--symbolic-full-name" : ref, symbolic ? ref : NULL, NULL);
-
+
if (!ret)
return NULL;
-
+
gchar *r = g_strdup(*ret);
g_strfreev(ret);
-
- return r;
+
+ return r;
}
static GitgRef *
get_current_working_ref(GitgRepository *repository)
{
GitgRef *ret = NULL;
-
+
gchar *hash = parse_ref_intern (repository, "HEAD", FALSE);
gchar *name = parse_ref_intern (repository, "HEAD", TRUE);
-
+
if (hash && name)
{
ret = gitg_ref_new (hash, name);
}
-
+
g_free (hash);
g_free (name);
-
+
return ret;
}
@@ -476,12 +476,12 @@ on_head_changed (GFileMonitor *monitor,
case G_FILE_MONITOR_EVENT_CREATED:
{
GitgRef *current = get_current_working_ref (repository);
-
+
if (!gitg_ref_equal (current, repository->priv->working_ref))
{
gitg_repository_reload (repository);
}
-
+
gitg_ref_free (current);
}
break;
@@ -495,7 +495,7 @@ install_head_monitor (GitgRepository *repository)
{
gchar *path = g_build_filename (repository->priv->path, ".git", "HEAD", NULL);
GFile *file = g_file_new_for_path (path);
-
+
repository->priv->monitor = g_file_monitor_file (file,
G_FILE_MONITOR_NONE,
NULL,
@@ -520,7 +520,7 @@ gitg_repository_constructor (GType type,
construct_properties);
install_head_monitor (GITG_REPOSITORY (ret));
-
+
return ret;
}
@@ -529,26 +529,26 @@ gitg_repository_class_init(GitgRepositoryClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
object_class->finalize = gitg_repository_finalize;
-
+
object_class->set_property = gitg_repository_set_property;
object_class->get_property = gitg_repository_get_property;
-
+
object_class->constructor = gitg_repository_constructor;
-
+
g_object_class_install_property(object_class, PROP_PATH,
g_param_spec_string ("path",
"PATH",
"The repository path",
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
+
g_object_class_install_property(object_class, PROP_LOADER,
g_param_spec_object ("loader",
"LOADER",
"The repository loader",
GITG_TYPE_RUNNER,
G_PARAM_READABLE));
-
+
repository_signals[LOAD] =
g_signal_new ("load",
G_OBJECT_CLASS_TYPE (object_class),
@@ -567,7 +567,7 @@ append_revision(GitgRepository *repository, GitgRevision *rv)
{
GSList *lanes;
gint8 mylane = 0;
-
+
if (repository->priv->size == 0)
gitg_lanes_reset(repository->priv->lanes);
@@ -584,9 +584,9 @@ add_dummy_commit(GitgRepository *repository, gboolean staged)
GitgRevision *revision;
gchar const *subject;
struct timeval tv;
-
+
gettimeofday(&tv, NULL);
-
+
if (staged)
subject = _("Staged changes");
else
@@ -608,7 +608,7 @@ on_loader_end_loading(GitgRunner *object, gboolean cancelled, GitgRepository *re
GitgPreferences *preferences = gitg_preferences_get_default();
gboolean show_unstaged;
gboolean show_staged;
-
+
g_object_get(preferences,
"history-show-virtual-staged", &show_staged,
"history-show-virtual-unstaged", &show_unstaged,
@@ -622,7 +622,7 @@ on_loader_end_loading(GitgRunner *object, gboolean cancelled, GitgRepository *re
/* Check if there are staged changes */
gchar *head = gitg_repository_parse_head(repository);
const gchar *cached = NULL;
-
+
if (current == LOAD_STAGE_STAGED)
{
/* Check if there are unstaged changes */
@@ -635,7 +635,7 @@ on_loader_end_loading(GitgRunner *object, gboolean cancelled, GitgRepository *re
{
cached = "--cached";
}
-
+
gitg_repository_run_commandv(repository, object, NULL, "diff-index", "--quiet", head, cached, NULL);
g_free(head);
}
@@ -666,7 +666,7 @@ add_ref(GitgRepository *self, gchar const *sha1, gchar const *name)
GitgRef *ref = gitg_ref_new(sha1, name);
GSList *refs = (GSList *)g_hash_table_lookup(self->priv->refs,
gitg_ref_get_hash(ref));
-
+
if (refs == NULL)
{
g_hash_table_insert(self->priv->refs,
@@ -684,7 +684,7 @@ add_ref(GitgRepository *self, gchar const *sha1, gchar const *name)
gitg_ref_free (ref);
}
}
-
+
return ref;
}
@@ -694,29 +694,29 @@ loader_update_stash(GitgRepository *repository, gchar **buffer)
gchar *line;
GitgPreferences *preferences = gitg_preferences_get_default();
gboolean show_stash;
-
+
g_object_get(preferences, "history-show-virtual-stash", &show_stash, NULL);
if (!show_stash)
return;
-
+
while ((line = *buffer++) != NULL)
{
gchar **components = g_strsplit(line, "\01", 0);
guint len = g_strv_length(components);
-
+
if (len < 4)
{
g_strfreev(components);
continue;
}
-
+
/* components -> [hash, author, subject, timestamp] */
gint64 timestamp = g_ascii_strtoll(components[3], NULL, 0);
GitgRevision *rv = gitg_revision_new(components[0], components[1], components[2], NULL, timestamp);
-
+
add_ref (repository, components[0], "refs/stash");
-
+
gitg_revision_set_sign(rv, 's');
append_revision(repository, rv);
g_strfreev(components);
@@ -727,13 +727,13 @@ static void
loader_update_commits(GitgRepository *self, gchar **buffer)
{
gchar *line;
-
+
while ((line = *buffer++) != NULL)
{
/* new line is read */
gchar **components = g_strsplit(line, "\01", 0);
guint len = g_strv_length(components);
-
+
if (len < 5)
{
g_strfreev(components);
@@ -742,9 +742,9 @@ loader_update_commits(GitgRepository *self, gchar **buffer)
/* components -> [hash, author, subject, parents ([1 2 3]), timestamp[, leftright]] */
gint64 timestamp = g_ascii_strtoll(components[4], NULL, 0);
-
+
GitgRevision *rv = gitg_revision_new(components[0], components[1], components[2], components[3], timestamp);
-
+
if (len > 5 && strlen(components[5]) == 1 && strchr("<>-^", *components[5]) != NULL)
{
gitg_revision_set_sign(rv, *components[5]);
@@ -786,14 +786,14 @@ static gboolean
repository_relane(GitgRepository *repository)
{
repository->priv->idle_relane_id = 0;
-
+
gitg_lanes_reset(repository->priv->lanes);
-
+
guint i;
GtkTreeIter iter;
GtkTreePath *path = gtk_tree_path_new_first();
-
-
+
+
for (i = 0; i < repository->priv->size; ++i)
{
gint8 mylane;
@@ -804,12 +804,12 @@ repository_relane(GitgRepository *repository)
fill_iter(repository, i, &iter);
gtk_tree_model_row_changed(GTK_TREE_MODEL(repository), path, &iter);
-
+
gtk_tree_path_next(path);
}
-
+
gtk_tree_path_free(path);
-
+
return FALSE;
}
@@ -825,10 +825,10 @@ convert_setting_to_inactive_max(GValue const *setting, GValue *value, gpointer u
{
g_return_val_if_fail(G_VALUE_HOLDS(setting, G_TYPE_INT), FALSE);
g_return_val_if_fail(G_VALUE_HOLDS(value, G_TYPE_INT), FALSE);
-
+
gint s = g_value_get_int(setting);
g_value_set_int(value, 2 + s * 8);
-
+
prepare_relane(GITG_REPOSITORY(userdata));
return TRUE;
}
@@ -842,7 +842,7 @@ convert_setting_to_inactive_collapse(GValue const *setting, GValue *value, gpoin
gint s = g_value_get_int(setting);
g_value_set_int(value, 1 + s * 3);
- prepare_relane(GITG_REPOSITORY(userdata));
+ prepare_relane(GITG_REPOSITORY(userdata));
return TRUE;
}
@@ -853,8 +853,8 @@ convert_setting_to_inactive_gap(GValue const *setting, GValue *value, gpointer u
g_return_val_if_fail(G_VALUE_HOLDS(value, G_TYPE_INT), FALSE);
g_value_set_int(value, 10);
-
- prepare_relane(GITG_REPOSITORY(userdata));
+
+ prepare_relane(GITG_REPOSITORY(userdata));
return TRUE;
}
@@ -866,8 +866,8 @@ convert_setting_to_inactive_enabled(GValue const *setting, GValue *value, gpoint
gboolean s = g_value_get_boolean(setting);
g_value_set_boolean(value, s);
-
- prepare_relane(GITG_REPOSITORY(userdata));
+
+ prepare_relane(GITG_REPOSITORY(userdata));
return TRUE;
}
@@ -881,7 +881,7 @@ static void
initialize_bindings(GitgRepository *repository)
{
GitgPreferences *preferences = gitg_preferences_get_default();
-
+
gitg_data_binding_new_full(preferences, "history-collapse-inactive-lanes",
repository->priv->lanes, "inactive-max",
convert_setting_to_inactive_max,
@@ -895,12 +895,12 @@ initialize_bindings(GitgRepository *repository)
gitg_data_binding_new_full(preferences, "history-collapse-inactive-lanes",
repository->priv->lanes, "inactive-gap",
convert_setting_to_inactive_gap,
- repository);
+ repository);
gitg_data_binding_new_full(preferences, "history-collapse-inactive-lanes-active",
repository->priv->lanes, "inactive-enabled",
convert_setting_to_inactive_enabled,
- repository);
+ repository);
g_signal_connect(preferences,
"notify::history-show-virtual-stash",
@@ -923,21 +923,21 @@ gitg_repository_init(GitgRepository *object)
{
object->priv = GITG_REPOSITORY_GET_PRIVATE(object);
object->priv->hashtable = g_hash_table_new_full(gitg_utils_hash_hash, gitg_utils_hash_equal, NULL, NULL);
-
+
object->priv->column_types[0] = GITG_TYPE_REVISION;
object->priv->column_types[1] = G_TYPE_STRING;
object->priv->column_types[2] = G_TYPE_STRING;
object->priv->column_types[3] = G_TYPE_STRING;
-
+
object->priv->lanes = gitg_lanes_new();
object->priv->grow_size = 1000;
object->priv->stamp = g_random_int();
object->priv->refs = g_hash_table_new_full(gitg_utils_hash_hash, gitg_utils_hash_equal, NULL, (GDestroyNotify)free_refs);
-
+
object->priv->loader = gitg_runner_new(10000);
g_signal_connect(object->priv->loader, "update", G_CALLBACK(on_loader_update), object);
g_signal_connect(object->priv->loader, "end-loading", G_CALLBACK(on_loader_end_loading), object);
-
+
initialize_bindings(object);
}
@@ -946,18 +946,18 @@ grow_storage(GitgRepository *repository, gint size)
{
if (repository->priv->size + size <= repository->priv->allocated)
return;
-
+
gulong prevallocated = repository->priv->allocated;
repository->priv->allocated += repository->priv->grow_size;
GitgRevision **newstorage = g_slice_alloc(sizeof(GitgRevision *) * repository->priv->allocated);
-
+
int i;
for (i = 0; i < repository->priv->size; ++i)
newstorage[i] = repository->priv->storage[i];
-
+
if (repository->priv->storage)
g_slice_free1(sizeof(GitgRevision *) * prevallocated, repository->priv->storage);
-
+
repository->priv->storage = newstorage;
}
@@ -971,7 +971,7 @@ gchar const *
gitg_repository_get_path(GitgRepository *self)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(self), NULL);
-
+
return self->priv->path;
}
@@ -990,7 +990,7 @@ has_left_right(gchar const **av, int argc)
for (i = 0; i < argc; ++i)
if (strcmp(av[i], "--left-right") == 0)
return TRUE;
-
+
return FALSE;
}
@@ -1004,9 +1004,9 @@ reload_revisions(GitgRepository *repository, GError **error)
}
g_signal_emit(repository, repository_signals[LOAD], 0);
-
+
repository->priv->load_stage = LOAD_STAGE_STASH;
-
+
return gitg_repository_run_commandv(repository, repository->priv->loader, error, "log", "--pretty=format:%H\x01%an\x01%s\x01%at", "--encoding=UTF-8", "-g", "refs/stash", NULL);
}
@@ -1016,7 +1016,7 @@ build_log_args(GitgRepository *self, gint argc, gchar const **av)
gchar **argv = g_new0(gchar *, 6 + (argc > 0 ? argc - 1 : 0));
argv[0] = g_strdup("log");
-
+
if (has_left_right(av, argc))
{
argv[1] = g_strdup("--pretty=format:%H\x01%an\x01%s\x01%P\x01%at\x01%m");
@@ -1025,20 +1025,20 @@ build_log_args(GitgRepository *self, gint argc, gchar const **av)
{
argv[1] = g_strdup("--pretty=format:%H\x01%an\x01%s\x01%P\x01%at");
}
-
+
argv[2] = g_strdup ("--encoding=UTF-8");
-
+
gchar *head = NULL;
-
+
if (argc <= 0)
{
head = gitg_repository_parse_ref(self, "HEAD");
-
+
if (head)
{
argv[3] = g_strdup("HEAD");
}
-
+
g_free(head);
}
else
@@ -1077,17 +1077,17 @@ load_current_ref(GitgRepository *self)
}
out = gitg_repository_command_with_output(self, argv, NULL);
-
+
if (!out)
{
return NULL;
}
-
+
if (*out && !*(out + 1))
{
ret = g_strdup(*out);
}
-
+
g_strfreev(out);
return ret;
}
@@ -1096,33 +1096,33 @@ static void
load_refs(GitgRepository *self)
{
gchar **refs = gitg_repository_command_with_outputv(self, NULL, "for-each-ref", "--format=%(refname) %(objectname) %(*objectname)", "refs", NULL);
-
+
if (!refs)
{
return;
}
-
+
gchar **buffer = refs;
gchar *buf;
gchar *current = load_current_ref(self);
-
+
while ((buf = *buffer++) != NULL)
{
// each line will look like <name> <hash>
gchar **components = g_strsplit(buf, " ", 3);
guint len = g_strv_length(components);
-
+
if (len == 2 || len == 3)
{
gchar const *obj = len == 3 && *components[2] ? components[2] : components[1];
GitgRef *ref = add_ref(self, obj, components[0]);
-
+
if (current != NULL && strcmp(gitg_ref_get_name(ref), current) == 0)
{
self->priv->current_ref = gitg_ref_copy(ref);
}
}
-
+
g_strfreev(components);
}
@@ -1138,7 +1138,7 @@ gitg_repository_reload(GitgRepository *repository)
gitg_runner_cancel(repository->priv->loader);
gitg_repository_clear(repository);
-
+
load_refs(repository);
reload_revisions(repository, NULL);
}
@@ -1147,25 +1147,25 @@ gboolean
gitg_repository_load(GitgRepository *self, int argc, gchar const **av, GError **error)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(self), FALSE);
-
+
if (self->priv->path == NULL)
{
if (error)
{
*error = g_error_new_literal(gitg_repository_error_quark(), GITG_REPOSITORY_ERROR_NOT_FOUND, _("Not a valid git repository"));
}
-
+
return FALSE;
}
gitg_runner_cancel(self->priv->loader);
gitg_repository_clear(self);
-
+
build_log_args(self, argc, av);
-
+
/* first get the refs */
load_refs(self);
-
+
/* request log (all the revision) */
return reload_revisions(self, error);
}
@@ -1177,7 +1177,7 @@ gitg_repository_add(GitgRepository *self, GitgRevision *obj, GtkTreeIter *iter)
/* validate our parameters */
g_return_if_fail(GITG_IS_REPOSITORY(self));
-
+
grow_storage(self, 1);
/* put this object in our data storage */
@@ -1189,11 +1189,11 @@ gitg_repository_add(GitgRepository *self, GitgRevision *obj, GtkTreeIter *iter)
iter1.user_data = GINT_TO_POINTER(self->priv->size - 1);
iter1.user_data2 = NULL;
iter1.user_data3 = NULL;
-
+
GtkTreePath *path = gtk_tree_path_new_from_indices(self->priv->size - 1, -1);
gtk_tree_model_row_inserted(GTK_TREE_MODEL(self), path, &iter1);
gtk_tree_path_free(path);
-
+
/* return the iter if the user cares */
if (iter)
*iter = iter1;
@@ -1210,12 +1210,12 @@ GitgRevision *
gitg_repository_lookup(GitgRepository *store, gchar const *hash)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(store), NULL);
-
+
gpointer result = g_hash_table_lookup(store->priv->hashtable, hash);
-
+
if (!result)
return NULL;
-
+
return store->priv->storage[GPOINTER_TO_UINT(result)];
}
@@ -1223,12 +1223,12 @@ gboolean
gitg_repository_find_by_hash(GitgRepository *store, gchar const *hash, GtkTreeIter *iter)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(store), FALSE);
-
+
gpointer result = g_hash_table_lookup(store->priv->hashtable, hash);
-
+
if (!result)
return FALSE;
-
+
GtkTreePath *path = gtk_tree_path_new_from_indices(GPOINTER_TO_UINT(result), -1);
gtk_tree_model_get_iter(GTK_TREE_MODEL(store), iter, path);
gtk_tree_path_free(path);
@@ -1249,17 +1249,17 @@ gitg_repository_get_refs(GitgRepository *repository)
GList *values = g_hash_table_get_values(repository->priv->refs);
GSList *ret = NULL;
GList *item;
-
+
for (item = values; item; item = item->next)
{
GSList *val;
-
+
for (val = (GSList *)item->data; val; val = val->next)
{
ret = g_slist_prepend(ret, gitg_ref_copy((GitgRef *)val->data));
}
}
-
+
ret = g_slist_reverse (ret);
g_list_free(values);
return ret;
@@ -1276,7 +1276,7 @@ GitgRef *
gitg_repository_get_current_ref(GitgRepository *repository)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL);
-
+
return repository->priv->current_ref;
}
@@ -1285,11 +1285,11 @@ gitg_repository_relative(GitgRepository *repository, GFile *file)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL);
g_return_val_if_fail(repository->priv->path != NULL, NULL);
-
+
GFile *parent = g_file_new_for_path(repository->priv->path);
gchar *ret = g_file_get_relative_path(parent, file);
g_object_unref(parent);
-
+
return ret;
}
@@ -1299,18 +1299,18 @@ gitg_repository_run_command_with_input(GitgRepository *repository, GitgRunner *r
g_return_val_if_fail(GITG_IS_REPOSITORY(repository), FALSE);
g_return_val_if_fail(GITG_IS_RUNNER(runner), FALSE);
g_return_val_if_fail(repository->priv->path != NULL, FALSE);
-
+
guint num = g_strv_length((gchar **)argv);
guint i;
gchar const **args = g_new0(gchar const *, num + 2);
- args[0] = "git";
-
+ args[0] = "git";
+
for (i = 0; i < num; ++i)
args[i + 1] = argv[i];
-
+
gboolean ret = gitg_runner_run_with_arguments(runner, args, repository->priv->path, input, error);
g_free(args);
-
+
return ret;
}
@@ -1331,7 +1331,7 @@ gitg_repository_command_with_input(GitgRepository *repository, gchar const **arg
g_return_val_if_fail(repository->priv->path != NULL, FALSE);
GitgRunner *runner = gitg_runner_new_synchronized(1000);
-
+
gboolean ret = gitg_repository_run_command_with_input(repository, runner, argv, input, error);
g_object_unref(runner);
@@ -1358,12 +1358,12 @@ command_with_output_update(GitgRunner *runner, gchar **buffer, CommandOutput *ou
{
guint num = g_strv_length(buffer);
guint i;
-
+
output->buffer = g_realloc(output->buffer, sizeof(gchar *) * (output->size + num + 1));
-
+
for (i = 0; i < num; ++i)
output->buffer[output->size + i] = g_strdup(buffer[i]);
-
+
output->size += num;
output->buffer[output->size] = NULL;
}
@@ -1373,19 +1373,19 @@ gitg_repository_command_with_input_and_output(GitgRepository *repository, gchar
{
g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL);
g_return_val_if_fail(repository->priv->path != NULL, NULL);
-
+
GitgRunner *runner = gitg_runner_new_synchronized(1000);
CommandOutput output = {NULL, 0};
g_signal_connect(runner, "update", G_CALLBACK(command_with_output_update), &output);
gboolean ret = gitg_repository_run_command_with_input(repository, runner, argv, input, error);
-
+
if (!ret)
{
g_strfreev(output.buffer);
output.buffer = NULL;
}
-
+
g_object_unref(runner);
return output.buffer;
}
@@ -1405,13 +1405,13 @@ parse_valist(va_list ap)
gchar const *a;
gchar const **ret = NULL;
guint num = 0;
-
+
while ((a = va_arg(ap, gchar const *)) != NULL)
{
ret = g_realloc(ret, sizeof(gchar const *) * (++num + 1));
ret[num - 1] = a;
}
-
+
ret[num] = NULL;
return ret;
}
@@ -1423,7 +1423,7 @@ gitg_repository_commandv(GitgRepository *repository, GError **error, ...)
va_start(ap, error);
gchar const **argv = parse_valist(ap);
va_end(ap);
-
+
gboolean ret = gitg_repository_command(repository, argv, error);
g_free(argv);
return ret;
@@ -1436,7 +1436,7 @@ gitg_repository_command_with_inputv(GitgRepository *repository, gchar const *inp
va_start(ap, error);
gchar const **argv = parse_valist(ap);
va_end(ap);
-
+
gboolean ret = gitg_repository_command_with_input(repository, argv, input, error);
g_free(argv);
return ret;
@@ -1449,7 +1449,7 @@ gitg_repository_run_commandv(GitgRepository *repository, GitgRunner *runner, GEr
va_start(ap, error);
gchar const **argv = parse_valist(ap);
va_end(ap);
-
+
gboolean ret = gitg_repository_run_command(repository, runner, argv, error);
g_free(argv);
return ret;
@@ -1462,7 +1462,7 @@ gitg_repository_run_command_with_inputv(GitgRepository *repository, GitgRunner *
va_start(ap, error);
gchar const **argv = parse_valist(ap);
va_end(ap);
-
+
gboolean ret = gitg_repository_run_command_with_input(repository, runner, argv, input, error);
g_free(argv);
return ret;
@@ -1475,7 +1475,7 @@ gitg_repository_command_with_outputv(GitgRepository *repository, GError **error,
va_start(ap, error);
gchar const **argv = parse_valist(ap);
va_end(ap);
-
+
gchar **ret = gitg_repository_command_with_output(repository, argv, error);
g_free(argv);
return ret;
@@ -1488,7 +1488,7 @@ gitg_repository_command_with_input_and_outputv(GitgRepository *repository, gchar
va_start(ap, error);
gchar const **argv = parse_valist(ap);
va_end(ap);
-
+
gchar **ret = gitg_repository_command_with_input_and_output(repository, argv, input, error);
g_free(argv);
return ret;
@@ -1498,7 +1498,7 @@ gchar *
gitg_repository_parse_ref(GitgRepository *repository, gchar const *ref)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL);
-
+
return parse_ref_intern (repository, ref, FALSE);
}
@@ -1506,12 +1506,12 @@ gchar *
gitg_repository_parse_head(GitgRepository *repository)
{
g_return_val_if_fail(GITG_IS_REPOSITORY(repository), NULL);
-
+
gchar *ret = gitg_repository_parse_ref(repository, "HEAD");
-
+
if (!ret)
ret = g_strdup("4b825dc642cb6eb9a060e54bf8d69288fbee4904");
-
+
return ret;
}
@@ -1522,8 +1522,8 @@ gitg_repository_get_current_working_ref(GitgRepository *repository)
{
return repository->priv->working_ref;
}
-
- repository->priv->working_ref = get_current_working_ref (repository);
+
+ repository->priv->working_ref = get_current_working_ref (repository);
return repository->priv->working_ref;
}
@@ -1537,35 +1537,35 @@ gitg_repository_get_remotes (GitgRepository *repository)
gchar **remotes = g_malloc (sizeof (gchar *));
remotes[0] = NULL;
-
+
if (!ret)
{
g_object_unref (config);
return remotes;
}
-
+
gchar **lines = g_strsplit(ret, "\n", -1);
gchar **ptr = lines;
-
+
GRegex *regex = g_regex_new ("remote\\.(.+?)\\.url\\s+(.*)", 0, 0, NULL);
gint num = 0;
-
+
while (*ptr)
{
GMatchInfo *info = NULL;
-
+
if (g_regex_match (regex, *ptr, 0, &info))
{
gchar *name = g_match_info_fetch (info, 1);
-
+
remotes = g_realloc (ret, sizeof(gchar *) * (++num + 1));
remotes[num - 1] = name;
}
-
+
g_match_info_free (info);
++ptr;
}
-
+
remotes[num] = NULL;
g_object_unref (config);
return remotes;
diff --git a/gitg/gitg-repository.h b/gitg/gitg-repository.h
index 6060b0e..ab7ff30 100644
--- a/gitg/gitg-repository.h
+++ b/gitg/gitg-repository.h
@@ -51,14 +51,14 @@ typedef enum
struct _GitgRepository
{
GObject parent;
-
+
GitgRepositoryPrivate *priv;
};
struct _GitgRepositoryClass
{
GObjectClass parent_class;
-
+
void (*load) (GitgRepository *);
};
diff --git a/gitg/gitg-revision-tree-store.c b/gitg/gitg-revision-tree-store.c
index 1ccb076..d383231 100644
--- a/gitg/gitg-revision-tree-store.c
+++ b/gitg/gitg-revision-tree-store.c
@@ -38,10 +38,10 @@ G_DEFINE_TYPE(GitgRevisionTreeStore, gitg_revision_tree_store, GTK_TYPE_TREE_STO
drag_source_row_draggable(GtkTreeDragSource *drag_source, GtkTreePath *path)
{
GtkTreeIter iter;
-
+
if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(drag_source), &iter, path))
return FALSE;
-
+
// Test for 'empty'
gchar *content_type;
gtk_tree_model_get(GTK_TREE_MODEL(drag_source), &iter, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1);
@@ -58,11 +58,11 @@ drag_source_drag_data_get(GtkTreeDragSource *drag_source, GtkTreePath *path, Gtk
if (!gtk_selection_data_targets_include_uri(selection_data))
return FALSE;
-
+
GtkTreeIter iter;
if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(drag_source), &iter, path))
return FALSE;
-
+
g_message("data get");
return FALSE;
}
@@ -78,7 +78,7 @@ static void
gitg_revision_tree_store_drag_source_iface_init(GtkTreeDragSourceIface *iface)
{
parent_drag_source_iface = *iface;
-
+
iface->row_draggable = drag_source_row_draggable;
iface->drag_data_get = drag_source_drag_data_get;
iface->drag_data_delete = drag_source_drag_data_delete;
@@ -88,7 +88,7 @@ static void
gitg_revision_tree_store_finalize(GObject *object)
{
//GitgRevisionTreeStore *self = GITG_REVISION_TREE_STORE(object);
-
+
G_OBJECT_CLASS(gitg_revision_tree_store_parent_class)->finalize(object);
}
@@ -96,9 +96,9 @@ static void
gitg_revision_tree_store_class_init(GitgRevisionTreeStoreClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
+
object_class->finalize = gitg_revision_tree_store_finalize;
-
+
//g_type_class_add_private(object_class, sizeof(GitgRevisionTreeStorePrivate));
}
@@ -112,7 +112,7 @@ gitg_revision_tree_store_init(GitgRevisionTreeStore *self)
G_TYPE_STRING,
G_TYPE_STRING
};
-
+
gtk_tree_store_set_column_types(GTK_TREE_STORE(self), GITG_REVISION_TREE_STORE_N_COLUMNS, column_types);
}
diff --git a/gitg/gitg-revision-tree-store.h b/gitg/gitg-revision-tree-store.h
index 3013bcb..3d50c91 100644
--- a/gitg/gitg-revision-tree-store.h
+++ b/gitg/gitg-revision-tree-store.h
@@ -48,7 +48,7 @@ enum {
struct _GitgRevisionTreeStore {
GtkTreeStore parent;
-
+
GitgRevisionTreeStorePrivate *priv;
};
diff --git a/gitg/gitg-revision-tree-view.c b/gitg/gitg-revision-tree-view.c
index bd8d26e..c155130 100644
--- a/gitg/gitg-revision-tree-view.c
+++ b/gitg/gitg-revision-tree-view.c
@@ -38,7 +38,7 @@
/* Properties */
enum {
PROP_0,
-
+
PROP_REPOSITORY,
PROP_REVISION
};
@@ -74,21 +74,21 @@ static void
gitg_revision_tree_view_finalize(GObject *object)
{
GitgRevisionTreeView *self = GITG_REVISION_TREE_VIEW(object);
-
+
if (self->priv->revision)
gitg_revision_unref(self->priv->revision);
-
+
if (self->priv->repository)
g_object_unref(self->priv->repository);
-
+
if (self->priv->load_path)
gtk_tree_path_free(self->priv->load_path);
-
+
g_free(self->priv->drag_dir);
-
+
if (self->priv->drag_files)
g_strfreev(self->priv->drag_files);
-
+
gitg_runner_cancel(self->priv->loader);
g_object_unref(self->priv->loader);
@@ -99,7 +99,7 @@ static void
gitg_revision_tree_view_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
GitgRevisionTreeView *self = GITG_REVISION_TREE_VIEW(object);
-
+
switch (prop_id)
{
case PROP_REVISION:
@@ -115,7 +115,7 @@ static void
gitg_revision_tree_view_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgRevisionTreeView *self = GITG_REVISION_TREE_VIEW(object);
-
+
switch (prop_id)
{
case PROP_REPOSITORY:
@@ -125,17 +125,17 @@ gitg_revision_tree_view_set_property(GObject *object, guint prop_id, const GValu
self->priv->revision = NULL;
g_object_notify(object, "revision");
}
-
+
if (self->priv->repository)
g_object_unref(self->priv->repository);
-
+
self->priv->repository = g_value_dup_object(value);
gitg_revision_tree_view_reload(self);
break;
case PROP_REVISION:
if (self->priv->revision)
gitg_revision_unref(self->priv->revision);
-
+
self->priv->revision = g_value_dup_boxed(value);
gitg_revision_tree_view_reload(self);
break;
@@ -149,20 +149,20 @@ static gboolean
loaded(GitgRevisionTreeView *view, GtkTreeIter *iter)
{
gint num = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(view->priv->store), iter);
-
+
if (num != 1)
return TRUE;
-
+
gchar *content_type = NULL;
GtkTreeIter child;
-
+
if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(view->priv->store), &child, iter))
return FALSE;
gtk_tree_model_get(GTK_TREE_MODEL(view->priv->store), &child, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1);
gboolean ret = content_type != NULL;
g_free(content_type);
-
+
return ret;
}
@@ -171,7 +171,7 @@ on_row_expanded(GtkTreeView *tree_view, GtkTreeIter *iter, GtkTreePath *path, Gi
{
if (loaded(view, iter))
return;
-
+
load_node(view, iter);
}
@@ -179,7 +179,7 @@ static void
show_binary_information(GitgRevisionTreeView *tree)
{
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tree->priv->contents));
-
+
gtk_text_buffer_set_text(buffer, _("Cannot display file content as text"), -1);
gtk_source_buffer_set_language(GTK_SOURCE_BUFFER(buffer), NULL);
}
@@ -188,12 +188,12 @@ static void
on_selection_changed(GtkTreeSelection *selection, GitgRevisionTreeView *tree)
{
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tree->priv->contents));
-
+
GtkTreeModel *model;
GtkTreeIter iter;
-
+
gitg_runner_cancel(tree->priv->content_runner);
-
+
gtk_text_buffer_set_text(buffer, "", -1);
if (!tree->priv->revision)
@@ -201,13 +201,13 @@ on_selection_changed(GtkTreeSelection *selection, GitgRevisionTreeView *tree)
GList *rows = gtk_tree_selection_get_selected_rows(selection, &model);
GtkTreePath *path = NULL;
-
+
if (g_list_length(rows) == 1)
path = gtk_tree_path_copy((GtkTreePath *)rows->data);
-
+
g_list_foreach(rows, (GFunc)gtk_tree_path_free, NULL);
g_list_free(rows);
-
+
if (!path)
return;
@@ -221,7 +221,7 @@ on_selection_changed(GtkTreeSelection *selection, GitgRevisionTreeView *tree)
if (!content_type)
return;
-
+
if (!gitg_utils_can_display_content_type(content_type))
{
show_binary_information(tree);
@@ -230,10 +230,10 @@ on_selection_changed(GtkTreeSelection *selection, GitgRevisionTreeView *tree)
{
GtkSourceLanguage *language = gitg_utils_get_language(name, content_type);
gtk_source_buffer_set_language(GTK_SOURCE_BUFFER(buffer), language);
-
+
gchar *id = node_identity(tree, &iter);
gitg_repository_run_commandv(tree->priv->repository, tree->priv->content_runner, NULL, "show", "--encoding=UTF-8", id, NULL);
-
+
g_free(id);
}
@@ -246,13 +246,13 @@ node_path(GtkTreeModel *model, GtkTreeIter *parent)
{
if (!parent)
return NULL;
-
+
gchar *name;
gtk_tree_model_get(model, parent, GITG_REVISION_TREE_STORE_NAME_COLUMN, &name, -1);
-
+
GtkTreeIter parent_iter;
gchar *ret;
-
+
if (gtk_tree_model_iter_parent(model, &parent_iter, parent))
{
gchar *path = node_path(model, &parent_iter);
@@ -264,7 +264,7 @@ node_path(GtkTreeModel *model, GtkTreeIter *parent)
{
ret = name;
}
-
+
return ret;
}
@@ -274,9 +274,9 @@ export_drag_files(GitgRevisionTreeView *tree_view)
GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view->priv->tree_view);
GtkTreeModel *model;
- GList *rows = gtk_tree_selection_get_selected_rows(selection, &model);
+ GList *rows = gtk_tree_selection_get_selected_rows(selection, &model);
gint num = g_list_length(rows);
-
+
if (num == 0)
return;
@@ -290,19 +290,19 @@ export_drag_files(GitgRevisionTreeView *tree_view)
GtkTreePath *path = (GtkTreePath *)item->data;
GtkTreeIter iter;
gtk_tree_model_get_iter(model, &iter, path);
-
+
*ptr++ = node_path(model, &iter);
gtk_tree_path_free(path);
}
-
+
*ptr = NULL;
g_list_free(rows);
-
- // Prepend temporary directory in uri list
+
+ // Prepend temporary directory in uri list
g_free(tree_view->priv->drag_dir);
gchar const *tmp = g_get_tmp_dir();
tree_view->priv->drag_dir = g_build_filename(tmp, "gitg-export-XXXXXX", NULL);
-
+
if (!mkdtemp(tree_view->priv->drag_dir))
{
g_warning("Could not create temporary directory for export");
@@ -318,10 +318,10 @@ export_drag_files(GitgRevisionTreeView *tree_view)
{
gchar *tmp = g_build_filename(tree_view->priv->drag_dir, *ptr, NULL);
g_free(*ptr);
-
+
GFile *file = g_file_new_for_path(tmp);
*ptr++ = g_file_get_uri(file);
-
+
g_free(tmp);
}
}
@@ -340,19 +340,19 @@ test_selection(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *pa
{
if (path_currently_selected)
return TRUE;
-
+
// Test for (Empty)
GtkTreeIter iter;
-
+
if (!gtk_tree_model_get_iter(model, &iter, path))
return FALSE;
-
+
gchar *content_type;
gtk_tree_model_get(model, &iter, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1);
-
+
if (!content_type)
return FALSE;
-
+
g_free(content_type);
return TRUE;
}
@@ -364,7 +364,7 @@ on_drag_end(GtkWidget *widget, GdkDragContext *context, GitgRevisionTreeView *tr
{
g_strfreev(tree_view->priv->drag_files);
tree_view->priv->drag_files = NULL;
-
+
g_free(tree_view->priv->drag_dir);
tree_view->priv->drag_dir = NULL;
}
@@ -380,7 +380,7 @@ gitg_revision_tree_view_parser_finished(GtkBuildable *buildable, GtkBuilder *bui
GitgRevisionTreeView *tree_view = GITG_REVISION_TREE_VIEW(buildable);
tree_view->priv->tree_view = GTK_TREE_VIEW(gtk_builder_get_object(builder, "revision_tree"));
tree_view->priv->contents = GTK_SOURCE_VIEW(gtk_builder_get_object(builder, "revision_tree_contents"));
-
+
gtk_text_view_set_buffer(GTK_TEXT_VIEW(tree_view->priv->contents), GTK_TEXT_BUFFER(gtk_source_buffer_new(NULL)));
gitg_utils_set_monospace_font(GTK_WIDGET(tree_view->priv->contents));
@@ -389,18 +389,18 @@ gitg_revision_tree_view_parser_finished(GtkBuildable *buildable, GtkBuilder *bui
GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view->priv->tree_view);
gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
gtk_tree_selection_set_select_function(selection, test_selection, NULL, NULL);
-
+
// Setup drag source
GtkTargetEntry targets[] = {
{"text/uri-list", GTK_TARGET_OTHER_APP, 0}
};
-
+
// Set tree view as a drag source
gtk_drag_source_set(GTK_WIDGET(tree_view->priv->tree_view), GDK_BUTTON1_MASK, targets, 1, GDK_ACTION_DEFAULT | GDK_ACTION_COPY);
-
+
// Connect signals
g_signal_connect_after(tree_view->priv->tree_view, "row-expanded", G_CALLBACK(on_row_expanded), tree_view);
-
+
g_signal_connect(tree_view->priv->tree_view, "drag-data-get", G_CALLBACK(on_drag_data_get), tree_view);
g_signal_connect(tree_view->priv->tree_view, "drag-end", G_CALLBACK(on_drag_end), tree_view);
g_signal_connect(selection, "changed", G_CALLBACK(on_selection_changed), tree_view);
@@ -410,7 +410,7 @@ static void
gitg_revision_tree_view_buildable_iface_init(GtkBuildableIface *iface)
{
parent_iface = *iface;
-
+
iface->parser_finished = gitg_revision_tree_view_parser_finished;
}
@@ -418,7 +418,7 @@ static void
gitg_revision_tree_view_class_init(GitgRevisionTreeViewClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
+
object_class->finalize = gitg_revision_tree_view_finalize;
object_class->set_property = gitg_revision_tree_view_set_property;
object_class->get_property = gitg_revision_tree_view_get_property;
@@ -436,7 +436,7 @@ gitg_revision_tree_view_class_init(GitgRevisionTreeViewClass *klass)
"The revision",
GITG_TYPE_REVISION,
G_PARAM_READWRITE));
-
+
g_type_class_add_private(object_class, sizeof(GitgRevisionTreeViewPrivate));
}
@@ -454,22 +454,22 @@ remove_dummy(GitgRevisionTreeView *tree)
{
if (!tree->priv->load_path)
return;
-
+
GtkTreeIter parent;
GtkTreeModel *model = GTK_TREE_MODEL(tree->priv->store);
gtk_tree_model_get_iter(model, &parent, tree->priv->load_path);
-
+
if (gtk_tree_model_iter_n_children(model, &parent) != 2)
return;
-
+
GtkTreeIter child;
gtk_tree_model_iter_children(model, &child, &parent);
-
+
do
{
gchar *content_type;
gtk_tree_model_get(model, &child, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, &content_type, -1);
-
+
if (!content_type)
{
gtk_tree_store_remove(tree->priv->store, &child);
@@ -484,7 +484,7 @@ append_node(GitgRevisionTreeView *tree, gchar *line)
{
GtkTreeIter parent;
GtkTreeIter iter;
-
+
if (tree->priv->load_path)
{
gtk_tree_model_get_iter(GTK_TREE_MODEL(tree->priv->store), &parent, tree->priv->load_path);
@@ -494,24 +494,24 @@ append_node(GitgRevisionTreeView *tree, gchar *line)
{
gtk_tree_store_append(tree->priv->store, &iter, NULL);
}
-
+
int len = strlen(line);
gboolean isdir = FALSE;
-
+
if (line[len - 1] == '/')
{
isdir = TRUE;
line[len - 1] = '\0';
}
-
+
GIcon *icon;
-
+
if (isdir)
{
GtkTreeIter empty;
gtk_tree_store_append(tree->priv->store, &empty, &iter);
gtk_tree_store_set(tree->priv->store, &empty, GITG_REVISION_TREE_STORE_NAME_COLUMN, _("(Empty)"), -1);
-
+
gchar *content_type = get_content_type(line, TRUE);
gtk_tree_store_set(tree->priv->store, &iter, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, content_type, -1);
icon = g_content_type_get_icon(content_type);
@@ -526,7 +526,7 @@ append_node(GitgRevisionTreeView *tree, gchar *line)
icon = g_content_type_get_icon(content_type);
gtk_tree_store_set(tree->priv->store, &iter, GITG_REVISION_TREE_STORE_CONTENT_TYPE_COLUMN, content_type, -1);
g_free(content_type);
-
+
if (icon && G_IS_THEMED_ICON(icon))
g_themed_icon_append_name(G_THEMED_ICON(icon), "text-x-generic");
}
@@ -534,34 +534,34 @@ append_node(GitgRevisionTreeView *tree, gchar *line)
if (G_IS_THEMED_ICON(icon))
{
GtkIconTheme *theme = gtk_icon_theme_get_default();
-
+
gchar **names;
g_object_get(icon, "names", &names, NULL);
-
+
GtkIconInfo *info = gtk_icon_theme_choose_icon(theme, (gchar const **)names, 16, 0);
-
+
if (info)
{
GError *error = NULL;
GdkPixbuf *pixbuf = gtk_icon_info_load_icon(info, &error);
-
+
if (!pixbuf)
{
g_warning("Error loading icon: %s", error->message);
g_error_free(error);
}
-
+
gtk_tree_store_set(tree->priv->store, &iter, GITG_REVISION_TREE_STORE_ICON_COLUMN, pixbuf, -1);
-
+
if (pixbuf)
g_object_unref(pixbuf);
-
+
gtk_icon_info_free(info);
}
-
+
g_strfreev(names);
}
-
+
if (icon)
g_object_unref(icon);
@@ -573,7 +573,7 @@ static void
on_update(GitgRunner *runner, gchar **buffer, GitgRevisionTreeView *tree)
{
gchar *line;
-
+
while ((line = *buffer++))
{
if (!tree->priv->skipped_blank_line)
@@ -583,7 +583,7 @@ on_update(GitgRunner *runner, gchar **buffer, GitgRevisionTreeView *tree)
continue;
}
-
+
append_node(tree, line);
}
}
@@ -594,22 +594,22 @@ compare_func(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, GitgRevisionTr
// First sort directories before files
gboolean da = gtk_tree_model_iter_has_child(model, a) != 0;
gboolean db = gtk_tree_model_iter_has_child(model, b) != 0;
-
+
if (da != db)
return da ? -1 : 1;
-
+
// Then sort on name
gchar *s1;
gchar *s2;
-
+
gtk_tree_model_get(model, a, GITG_REVISION_TREE_STORE_NAME_COLUMN, &s1, -1);
gtk_tree_model_get(model, b, GITG_REVISION_TREE_STORE_NAME_COLUMN, &s2, -1);
-
+
int ret = gitg_utils_sort_names(s1, s2);
-
+
g_free(s1);
g_free(s2);
-
+
return ret;
}
@@ -619,19 +619,19 @@ on_contents_update(GitgRunner *runner, gchar **buffer, GitgRevisionTreeView *tre
gchar *line;
GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tree->priv->contents));
GtkTextIter iter;
-
+
gtk_text_buffer_get_end_iter(buf, &iter);
-
+
while ((line = *buffer++))
{
gtk_text_buffer_insert(buf, &iter, line, -1);
gtk_text_buffer_insert(buf, &iter, "\n", -1);
}
-
+
if (gtk_source_buffer_get_language(GTK_SOURCE_BUFFER(buf)) == NULL)
{
gchar *content_type = gitg_utils_guess_content_type(buf);
-
+
if (content_type && !gitg_utils_can_display_content_type(content_type))
{
gitg_runner_cancel(runner);
@@ -642,7 +642,7 @@ on_contents_update(GitgRunner *runner, gchar **buffer, GitgRevisionTreeView *tre
GtkSourceLanguage *language = gitg_utils_get_language(NULL, content_type);
gtk_source_buffer_set_language(GTK_SOURCE_BUFFER(buf), language);
}
-
+
g_free(content_type);
}
}
@@ -652,13 +652,13 @@ gitg_revision_tree_view_init(GitgRevisionTreeView *self)
{
self->priv = GITG_REVISION_TREE_VIEW_GET_PRIVATE(self);
self->priv->store = GTK_TREE_STORE(gitg_revision_tree_store_new());
-
+
gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(self->priv->store), 1, (GtkTreeIterCompareFunc)compare_func, self, NULL);
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(self->priv->store), 1, GTK_SORT_ASCENDING);
-
+
self->priv->loader = gitg_runner_new(1000);
g_signal_connect(self->priv->loader, "update", G_CALLBACK(on_update), self);
-
+
self->priv->content_runner = gitg_runner_new(5000);
g_signal_connect(self->priv->content_runner, "update", G_CALLBACK(on_contents_update), self);
}
@@ -667,14 +667,14 @@ static gchar *
node_identity(GitgRevisionTreeView *tree, GtkTreeIter *parent)
{
gchar *sha = gitg_revision_get_sha1(tree->priv->revision);
-
+
// Path consists of the SHA1 of the revision and the actual file path
// from parent
gchar *par = node_path(GTK_TREE_MODEL(tree->priv->store), parent);
gchar *path = g_strconcat(sha, ":", par, NULL);
g_free(sha);
g_free(par);
-
+
return path;
}
@@ -683,14 +683,14 @@ load_node(GitgRevisionTreeView *tree, GtkTreeIter *parent)
{
if (gitg_runner_running(tree->priv->loader))
return;
-
+
if (tree->priv->load_path)
gtk_tree_path_free(tree->priv->load_path);
-
+
gchar *id = node_identity(tree, parent);
if (parent)
- tree->priv->load_path = gtk_tree_model_get_path(GTK_TREE_MODEL(tree->priv->store), parent);
+ tree->priv->load_path = gtk_tree_model_get_path(GTK_TREE_MODEL(tree->priv->store), parent);
else
tree->priv->load_path = NULL;
@@ -709,7 +709,7 @@ void
gitg_revision_tree_view_update(GitgRevisionTreeView *tree, GitgRepository *repository, GitgRevision *revision)
{
g_return_if_fail(GITG_IS_REVISION_TREE_VIEW(tree));
-
+
g_object_set(G_OBJECT(tree), "repository", repository, "revision", revision, NULL);
gitg_revision_tree_view_reload(tree);
}
@@ -718,12 +718,12 @@ void
gitg_revision_tree_view_reload(GitgRevisionTreeView *tree)
{
g_return_if_fail(GITG_IS_REVISION_TREE_VIEW(tree));
-
+
gitg_runner_cancel(tree->priv->loader);
gtk_tree_store_clear(tree->priv->store);
-
+
if (!(tree->priv->repository && tree->priv->revision))
return;
-
+
load_node(tree, NULL);
}
diff --git a/gitg/gitg-revision-tree-view.h b/gitg/gitg-revision-tree-view.h
index ed69c2b..d19ea76 100644
--- a/gitg/gitg-revision-tree-view.h
+++ b/gitg/gitg-revision-tree-view.h
@@ -43,7 +43,7 @@ typedef struct _GitgRevisionTreeViewPrivate GitgRevisionTreeViewPrivate;
struct _GitgRevisionTreeView {
GtkHPaned parent;
-
+
GitgRevisionTreeViewPrivate *priv;
};
diff --git a/gitg/gitg-revision-view.c b/gitg/gitg-revision-view.c
index 1e644b0..db9ee76 100644
--- a/gitg/gitg-revision-view.c
+++ b/gitg/gitg-revision-view.c
@@ -64,10 +64,10 @@ struct _GitgRevisionViewPrivate
GtkSourceView *diff;
GtkTreeView *diff_files;
GtkListStore *list_store_diff_files;
-
+
GitgRunner *diff_runner;
GitgRunner *diff_files_runner;
-
+
GitgRepository *repository;
GitgRevision *revision;
GSList *cached_headers;
@@ -107,16 +107,16 @@ static DiffFile *
diff_file_new(gchar const *from, gchar *to, gchar const *status, gchar const *filename)
{
DiffFile *f = g_slice_new(DiffFile);
-
+
strncpy(f->index_from, from, HASH_SHA_SIZE);
strncpy(f->index_to, to, HASH_SHA_SIZE);
-
+
f->index_from[HASH_SHA_SIZE] = '\0';
f->index_to[HASH_SHA_SIZE] = '\0';
f->visible = FALSE;
-
+
DiffFileStatus st;
-
+
switch (*status)
{
case 'A':
@@ -129,7 +129,7 @@ diff_file_new(gchar const *from, gchar *to, gchar const *status, gchar const *fi
st = DIFF_FILE_STATUS_MODIFIED;
break;
}
-
+
f->status = st;
f->filename = g_strdup(filename);
f->refcount = 1;
@@ -158,10 +158,10 @@ static GType
diff_file_get_type()
{
static GType gtype = 0;
-
+
if (!G_UNLIKELY(gtype))
gtype = g_boxed_type_register_static("DiffFile", (GBoxedCopyFunc)diff_file_copy, (GBoxedFreeFunc)diff_file_unref);
-
+
return gtype;
}
@@ -170,7 +170,7 @@ update_markup(GObject *object)
{
GtkLabel *label = GTK_LABEL(object);
gchar const *text = gtk_label_get_text(label);
-
+
gchar *newtext = g_strconcat("<span weight='bold' foreground='#777'>", text, "</span>", NULL);
gtk_label_set_markup(label, newtext);
@@ -182,9 +182,9 @@ revision_files_icon(GtkTreeViewColumn *column, GtkCellRenderer *renderer, GtkTre
{
DiffFile *f;
gtk_tree_model_get(model, iter, 0, &f, -1);
-
+
gchar const *id = NULL;
-
+
switch (f->status)
{
case DIFF_FILE_STATUS_NEW:
@@ -199,7 +199,7 @@ revision_files_icon(GtkTreeViewColumn *column, GtkCellRenderer *renderer, GtkTre
default:
break;
}
-
+
g_object_set(G_OBJECT(renderer), "stock-id", id, NULL);
diff_file_unref(f);
}
@@ -209,9 +209,9 @@ revision_files_name(GtkTreeViewColumn *column, GtkCellRenderer *renderer, GtkTre
{
DiffFile *f;
gtk_tree_model_get(model, iter, 0, &f, -1);
-
+
g_object_set(G_OBJECT(renderer), "text", f->filename, NULL);
-
+
diff_file_unref(f);
}
@@ -220,13 +220,13 @@ diff_file_visible(GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
{
DiffFile *f;
gtk_tree_model_get(model, iter, 0, &f, -1);
-
+
if (!f)
return FALSE;
gboolean ret = f->visible;
diff_file_unref(f);
-
+
return ret;
}
@@ -235,24 +235,24 @@ on_diff_files_button_press(GtkTreeView *treeview, GdkEventButton *event, GitgRev
{
if (event->button != 1)
return FALSE;
-
+
if (event->window != gtk_tree_view_get_bin_window(treeview))
return FALSE;
GtkTreePath *path;
if (!gtk_tree_view_get_path_at_pos(treeview, event->x, event->y, &path, NULL, NULL, NULL))
return FALSE;
-
+
GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview);
gboolean ret = FALSE;
-
+
if (gtk_tree_selection_path_is_selected(selection, path) && gtk_tree_selection_count_selected_rows(selection) == 1)
{
/* deselect */
gtk_tree_selection_unselect_path(selection, path);
ret = TRUE;
}
-
+
gtk_tree_path_free(path);
return ret;
}
@@ -272,20 +272,20 @@ gitg_revision_view_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
rvv->priv->parents = GTK_TABLE(gtk_builder_get_object(builder, "table_parents"));
rvv->priv->diff = GTK_SOURCE_VIEW(gtk_builder_get_object(builder, "revision_diff"));
rvv->priv->diff_files = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tree_view_revision_files"));
-
+
GtkTreeSelection *selection = gtk_tree_view_get_selection(rvv->priv->diff_files);
gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
g_signal_connect(selection, "changed", G_CALLBACK(on_diff_files_selection_changed), rvv);
-
+
g_signal_connect(rvv->priv->diff_files, "button-press-event", G_CALLBACK(on_diff_files_button_press), rvv);
-
+
rvv->priv->list_store_diff_files = gtk_list_store_new(1, diff_file_get_type());
GtkTreeModel *filter = gtk_tree_model_filter_new(GTK_TREE_MODEL(rvv->priv->list_store_diff_files), NULL);
gtk_tree_view_set_model(rvv->priv->diff_files, filter);
-
+
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(filter), diff_file_visible, NULL, NULL);
-
+
gtk_tree_view_column_set_cell_data_func(GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "revision_files_column_icon")),
GTK_CELL_RENDERER(gtk_builder_get_object(builder, "revision_files_cell_renderer_icon")),
(GtkTreeCellDataFunc)revision_files_icon,
@@ -297,16 +297,16 @@ gitg_revision_view_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
(GtkTreeCellDataFunc)revision_files_name,
rvv,
NULL);
-
+
GtkSourceLanguageManager *manager = gtk_source_language_manager_get_default();
GtkSourceLanguage *language = gtk_source_language_manager_get_language(manager, "gitgdiff");
GtkSourceBuffer *buffer = gtk_source_buffer_new_with_language(language);
g_object_unref(language);
-
+
GtkSourceStyleSchemeManager *schememanager = gtk_source_style_scheme_manager_get_default();
GtkSourceStyleScheme *scheme = gtk_source_style_scheme_manager_get_scheme(schememanager, "gitg");
gtk_source_buffer_set_style_scheme(buffer, scheme);
-
+
gitg_utils_set_monospace_font(GTK_WIDGET(rvv->priv->diff));
gtk_text_view_set_buffer(GTK_TEXT_VIEW(rvv->priv->diff), GTK_TEXT_BUFFER(buffer));
@@ -317,11 +317,11 @@ gitg_revision_view_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
"label_date_lbl",
"label_parent_lbl"
};
-
+
int i;
for (i = 0; i < sizeof(lbls) / sizeof(gchar *); ++i)
update_markup(gtk_builder_get_object(builder, lbls[i]));
-
+
g_signal_connect(rvv->priv->diff, "header-added", G_CALLBACK(on_header_added), rvv);
}
@@ -329,7 +329,7 @@ static void
gitg_revision_view_buildable_iface_init(GtkBuildableIface *iface)
{
parent_iface = *iface;
-
+
iface->parser_finished = gitg_revision_view_parser_finished;
}
@@ -351,18 +351,18 @@ static void
gitg_revision_view_finalize(GObject *object)
{
GitgRevisionView *self = GITG_REVISION_VIEW(object);
-
+
gitg_runner_cancel(self->priv->diff_runner);
g_object_unref(self->priv->diff_runner);
-
+
gitg_runner_cancel(self->priv->diff_files_runner);
g_object_unref(self->priv->diff_files_runner);
if (self->priv->repository)
- {
+ {
g_object_unref(self->priv->repository);
}
-
+
free_cached_headers(self);
G_OBJECT_CLASS(gitg_revision_view_parent_class)->finalize(object);
@@ -388,14 +388,14 @@ static void
gitg_revision_view_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgRevisionView *self = GITG_REVISION_VIEW(object);
-
+
switch (prop_id)
{
case PROP_REPOSITORY:
{
if (self->priv->repository)
g_object_unref(self->priv->repository);
-
+
self->priv->repository = g_value_dup_object(value);
}
break;
@@ -410,7 +410,7 @@ static void
gitg_revision_view_class_init(GitgRevisionViewClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
+
object_class->finalize = gitg_revision_view_finalize;
object_class->set_property = gitg_revision_view_set_property;
@@ -432,7 +432,7 @@ gitg_revision_view_class_init(GitgRevisionViewClass *klass)
g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE,
1, G_TYPE_POINTER);
-
+
g_type_class_add_private(object_class, sizeof(GitgRevisionViewPrivate));
}
@@ -462,20 +462,20 @@ static void
visible_from_cached_headers(GitgRevisionView *view, DiffFile *f)
{
GSList *item;
-
+
for (item = view->priv->cached_headers; item; item = g_slist_next(item))
{
CachedHeader *header = (CachedHeader *)item->data;
gchar *from;
gchar *to;
-
+
gitg_diff_iter_get_index(&header->iter, &from, &to);
if (gitg_diff_iter_get_index(&header->iter, &from, &to) && match_indices(f, from, to))
{
f->visible = TRUE;
f->iter = header->iter;
-
+
return;
}
}
@@ -486,7 +486,7 @@ add_diff_file(GitgRevisionView *view, DiffFile *f)
{
GtkTreeIter iter;
gtk_list_store_append(view->priv->list_store_diff_files, &iter);
-
+
/* see if it is in the cached headers */
visible_from_cached_headers(view, f);
gtk_list_store_set(view->priv->list_store_diff_files, &iter, 0, f, -1);
@@ -496,28 +496,28 @@ static void
on_diff_files_update(GitgRunner *runner, gchar **buffer, GitgRevisionView *self)
{
gchar **line;
-
+
while (*(line = buffer++))
{
if (**line == '\0')
continue;
-
+
// Count parents
gint parents = 0;
gchar *ptr = *line;
-
+
while (*(ptr++) == ':')
++parents;
-
+
gint numparts = 3 + 2 * parents;
gchar **parts = g_strsplit(ptr, " ", numparts);
-
+
if (g_strv_length(parts) == numparts)
{
gchar **files = g_strsplit(parts[numparts - 1], "\t", -1);
DiffFile *f = diff_file_new(parts[parents + 1], parts[numparts - 2], files[0], files[1]);
-
+
add_diff_file(self, f);
diff_file_unref(f);
@@ -540,17 +540,17 @@ static void
on_diff_end_loading(GitgRunner *runner, gboolean cancelled, GitgRevisionView *self)
{
gdk_window_set_cursor(GTK_WIDGET(self->priv->diff)->window, NULL);
-
+
if (cancelled)
return;
gchar sign = gitg_revision_get_sign(self->priv->revision);
-
+
if (sign == 't' || sign == 'u')
{
gchar *head = gitg_repository_parse_head(self->priv->repository);
const gchar *cached = NULL;
-
+
if (sign == 't')
cached = "--cached";
@@ -573,9 +573,9 @@ on_diff_update(GitgRunner *runner, gchar **buffer, GitgRevisionView *self)
gchar *line;
GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(self->priv->diff));
GtkTextIter iter;
-
+
gtk_text_buffer_get_end_iter(buf, &iter);
-
+
while ((line = *buffer++))
{
gtk_text_buffer_insert(buf, &iter, line, -1);
@@ -587,15 +587,15 @@ static void
gitg_revision_view_init(GitgRevisionView *self)
{
self->priv = GITG_REVISION_VIEW_GET_PRIVATE(self);
-
+
self->priv->diff_runner = gitg_runner_new(2000);
-
+
g_signal_connect(self->priv->diff_runner, "begin-loading", G_CALLBACK(on_diff_begin_loading), self);
g_signal_connect(self->priv->diff_runner, "update", G_CALLBACK(on_diff_update), self);
g_signal_connect(self->priv->diff_runner, "end-loading", G_CALLBACK(on_diff_end_loading), self);
-
+
self->priv->diff_files_runner = gitg_runner_new(2000);
-
+
g_signal_connect(self->priv->diff_files_runner, "begin-loading", G_CALLBACK(on_diff_files_begin_loading), self);
g_signal_connect(self->priv->diff_files_runner, "update", G_CALLBACK(on_diff_files_update), self);
g_signal_connect(self->priv->diff_files_runner, "end-loading", G_CALLBACK(on_diff_files_end_loading), self);
@@ -608,9 +608,9 @@ on_parent_clicked(GtkWidget *ev, GdkEventButton *event, gpointer userdata)
{
if (event->button != 1)
return FALSE;
-
+
GitgRevisionView *rvv = GITG_REVISION_VIEW(userdata);
-
+
gchar *hash = (gchar *)g_object_get_data(G_OBJECT(ev), HASH_KEY);
g_signal_emit(rvv, signals[PARENT_ACTIVATED], 0, hash);
@@ -622,17 +622,17 @@ make_parent_label(GitgRevisionView *self, gchar const *hash)
{
GtkWidget *ev = gtk_event_box_new();
GtkWidget *lbl = gtk_label_new(NULL);
-
+
gchar *markup = g_strconcat("<span underline='single' foreground='#00f'>", hash, "</span>", NULL);
gtk_label_set_markup(GTK_LABEL(lbl), markup);
g_free(markup);
gtk_misc_set_alignment(GTK_MISC(lbl), 0.0, 0.5);
gtk_container_add(GTK_CONTAINER(ev), lbl);
-
+
gtk_widget_show(ev);
gtk_widget_show(lbl);
-
+
g_object_set_data_full(G_OBJECT(ev), HASH_KEY, (gpointer)gitg_utils_sha1_to_hash_new(hash), (GDestroyNotify)g_free);
g_signal_connect(ev, "button-release-event", G_CALLBACK(on_parent_clicked), self);
@@ -644,93 +644,93 @@ update_parents(GitgRevisionView *self, GitgRevision *revision)
{
GList *children = gtk_container_get_children(GTK_CONTAINER(self->priv->parents));
GList *item;
-
+
for (item = children; item; item = item->next)
gtk_container_remove(GTK_CONTAINER(self->priv->parents), GTK_WIDGET(item->data));
-
+
g_list_free(children);
-
+
if (!revision)
return;
-
+
gchar **parents = gitg_revision_get_parents(revision);
gint num = g_strv_length(parents);
gint i;
-
+
gtk_table_resize(self->priv->parents, num ? num : num + 1, 2);
GdkCursor *cursor = gdk_cursor_new(GDK_HAND1);
Hash hash;
-
+
for (i = 0; i < num; ++i)
{
GtkWidget *widget = make_parent_label(self, parents[i]);
gtk_table_attach(self->priv->parents, widget, 0, 1, i, i + 1, GTK_FILL | GTK_SHRINK, GTK_FILL | GTK_SHRINK, 0, 0);
-
+
gtk_widget_realize(widget);
gdk_window_set_cursor(widget->window, cursor);
-
+
/* find subject */
gitg_utils_sha1_to_hash(parents[i], hash);
-
+
GitgRevision *revision = gitg_repository_lookup(self->priv->repository, hash);
-
+
if (revision)
{
GtkWidget *subject = gtk_label_new(NULL);
gchar *escaped = g_markup_escape_text(gitg_revision_get_subject(revision), -1);
gchar *text = g_strdup_printf("(<i>%s</i>)", escaped);
-
+
gtk_label_set_markup(GTK_LABEL(subject), text);
-
+
g_free(escaped);
g_free(text);
-
+
gtk_widget_show(subject);
gtk_misc_set_alignment(GTK_MISC(subject), 0.0, 0.5);
gtk_label_set_ellipsize(GTK_LABEL(subject), PANGO_ELLIPSIZE_MIDDLE);
gtk_label_set_single_line_mode(GTK_LABEL(subject), TRUE);
-
+
gtk_table_attach(self->priv->parents, subject, 1, 2, i, i + 1, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_SHRINK, 0, 0);
}
}
- gdk_cursor_unref(cursor);
- g_strfreev(parents);
+ gdk_cursor_unref(cursor);
+ g_strfreev(parents);
}
static void
update_diff(GitgRevisionView *self, GitgRepository *repository)
{
GtkTreeSelection *selection;
-
+
// First cancel a possibly still running diff
gitg_runner_cancel(self->priv->diff_runner);
gitg_runner_cancel(self->priv->diff_files_runner);
-
+
free_cached_headers(self);
-
+
// Clear the buffer
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(self->priv->diff));
gtk_text_buffer_set_text(buffer, "", 0);
-
+
selection = gtk_tree_view_get_selection(self->priv->diff_files);
g_signal_handlers_block_by_func(selection,
G_CALLBACK(on_diff_files_selection_changed),
self);
gtk_list_store_clear(self->priv->list_store_diff_files);
-
+
g_signal_handlers_unblock_by_func(selection,
G_CALLBACK(on_diff_files_selection_changed),
self);
-
+
if (!self->priv->revision)
return;
gchar sign = gitg_revision_get_sign(self->priv->revision);
-
+
switch (sign)
{
case 't':
@@ -778,7 +778,7 @@ gitg_revision_view_update(GitgRevisionView *self, GitgRepository *repository, Gi
gchar *date = gitg_utils_timestamp_to_str(gitg_revision_get_timestamp(revision));
gtk_label_set_text(self->priv->date, date);
g_free(date);
-
+
gchar *sha = gitg_revision_get_sha1(revision);
gtk_label_set_text(self->priv->sha, sha);
@@ -794,10 +794,10 @@ gitg_revision_view_update(GitgRevisionView *self, GitgRepository *repository, Gi
gtk_label_set_text(self->priv->date, "");
gtk_label_set_text(self->priv->sha, "");
}
-
+
// Update parents
update_parents(self, revision);
-
+
// Update diff
self->priv->revision = revision;
update_diff(self, repository);
@@ -814,10 +814,10 @@ gitg_revision_view_set_repository(GitgRevisionView *view, GitgRepository *reposi
g_object_unref(view->priv->repository);
view->priv->repository = NULL;
}
-
+
if (repository)
view->priv->repository = g_object_ref(repository);
-
+
g_object_notify(G_OBJECT(view), "repository");
}
@@ -826,25 +826,25 @@ find_diff_file(GitgRevisionView *view, GitgDiffIter *iter, GtkTreeIter *it, Diff
{
gchar *from;
gchar *to;
-
+
if (!gitg_diff_iter_get_index(iter, &from, &to))
return FALSE;
-
+
GtkTreeModel *model = GTK_TREE_MODEL(view->priv->list_store_diff_files);
-
+
if (!gtk_tree_model_get_iter_first(model, it))
return FALSE;
-
+
do
{
gtk_tree_model_get(model, it, 0, f, -1);
-
+
if (match_indices(*f, from, to))
return TRUE;
-
+
diff_file_unref(*f);
} while (gtk_tree_model_iter_next(model, it));
-
+
return FALSE;
}
@@ -853,7 +853,7 @@ on_header_added(GitgDiffView *view, GitgDiffIter *iter, GitgRevisionView *self)
{
GtkTreeIter it;
DiffFile *f;
-
+
if (find_diff_file(self, iter, &it, &f))
{
if (!f->visible)
@@ -862,10 +862,10 @@ on_header_added(GitgDiffView *view, GitgDiffIter *iter, GitgRevisionView *self)
f->iter = *iter;
diff_file_unref(f);
-
+
GtkTreeModel *model = GTK_TREE_MODEL(self->priv->list_store_diff_files);
GtkTreePath *path = gtk_tree_model_get_path(model, &it);
-
+
gtk_tree_model_row_changed(model, path, &it);
gtk_tree_path_free(path);
}
@@ -890,10 +890,10 @@ static gboolean
foreach_selection_changed(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, ForeachSelectionData *data)
{
gboolean visible = data->numselected == 0 || gtk_tree_selection_path_is_selected(data->selection, path);
-
+
DiffFile *f = NULL;
gtk_tree_model_get(model, iter, 0, &f, -1);
-
+
if (f->visible)
{
gitg_diff_iter_set_visible(&f->iter, visible);
diff --git a/gitg/gitg-revision-view.h b/gitg/gitg-revision-view.h
index 02aa4c0..9572cba 100644
--- a/gitg/gitg-revision-view.h
+++ b/gitg/gitg-revision-view.h
@@ -43,13 +43,13 @@ typedef struct _GitgRevisionViewPrivate GitgRevisionViewPrivate;
struct _GitgRevisionView {
GtkVBox parent;
-
+
GitgRevisionViewPrivate *priv;
};
struct _GitgRevisionViewClass {
GtkVBoxClass parent_class;
-
+
void (* parent_activated) (GitgRevisionView *revision_view, gchar *hash);
};
diff --git a/gitg/gitg-revision.c b/gitg/gitg-revision.c
index 479da26..62d001e 100644
--- a/gitg/gitg-revision.c
+++ b/gitg/gitg-revision.c
@@ -33,7 +33,7 @@ struct _GitgRevision
Hash *parents;
guint num_parents;
char sign;
-
+
GSList *lanes;
gint8 mylane;
@@ -54,9 +54,9 @@ gitg_revision_finalize(GitgRevision *revision)
g_free(revision->author);
g_free(revision->subject);
g_free(revision->parents);
-
+
free_lanes(revision);
-
+
g_slice_free(GitgRevision, revision);
}
@@ -78,7 +78,7 @@ gitg_revision_unref(GitgRevision *revision)
if (!g_atomic_int_dec_and_test(&revision->refcount))
return;
-
+
gitg_revision_finalize(revision);
}
@@ -89,28 +89,28 @@ GitgRevision *gitg_revision_new(gchar const *sha,
gint64 timestamp)
{
GitgRevision *rv = g_slice_new0 (GitgRevision);
-
+
rv->refcount = 1;
gitg_utils_sha1_to_hash(sha, rv->hash);
rv->author = g_strdup(author);
rv->subject = g_strdup(subject);
rv->timestamp = timestamp;
-
+
if (parents)
{
gchar **shas = g_strsplit(parents, " ", 0);
gint num = g_strv_length(shas);
rv->parents = g_new(Hash, num + 1);
-
+
gint i;
for (i = 0; i < num; ++i)
gitg_utils_sha1_to_hash(shas[i], rv->parents[i]);
-
+
g_strfreev(shas);
rv->num_parents = num;
}
-
+
return rv;
}
@@ -160,13 +160,13 @@ gchar **
gitg_revision_get_parents(GitgRevision *revision)
{
gchar **ret = g_new(gchar *, revision->num_parents + 1);
-
+
int i;
for (i = 0; i < revision->num_parents; ++i)
{
ret[i] = g_new(gchar, HASH_SHA_SIZE + 1);
gitg_utils_hash_to_sha1(revision->parents[i], ret[i]);
-
+
ret[i][HASH_SHA_SIZE] = '\0';
}
@@ -186,7 +186,7 @@ gitg_revision_remove_lane(GitgRevision *revision, GitgLane *lane)
{
revision->lanes = g_slist_remove(revision->lanes, lane);
gitg_lane_free(lane);
-
+
return revision->lanes;
}
@@ -194,7 +194,7 @@ GSList *
gitg_revision_insert_lane(GitgRevision *revision, GitgLane *lane, gint index)
{
revision->lanes = g_slist_insert(revision->lanes, lane, index);
-
+
return revision->lanes;
}
@@ -202,16 +202,16 @@ static void
update_lane_type(GitgRevision *revision)
{
GitgLane *lane = (GitgLane *)g_slist_nth_data(revision->lanes, revision->mylane);
-
+
if (lane == NULL)
return;
-
+
lane->type &= ~(GITG_LANE_SIGN_LEFT |
GITG_LANE_SIGN_RIGHT |
GITG_LANE_SIGN_STASH |
GITG_LANE_SIGN_STAGED |
GITG_LANE_SIGN_UNSTAGED);
-
+
switch (revision->sign)
{
case '<':
@@ -237,7 +237,7 @@ gitg_revision_set_lanes(GitgRevision *revision, GSList *lanes, gint8 mylane)
{
free_lanes(revision);
revision->lanes = lanes;
-
+
if (mylane >= 0)
revision->mylane = mylane;
diff --git a/gitg/gitg-runner.c b/gitg/gitg-runner.c
index 6397bc2..eb8c3eb 100644
--- a/gitg/gitg-runner.c
+++ b/gitg/gitg-runner.c
@@ -61,13 +61,13 @@ struct _GitgRunnerPrivate
GOutputStream *output_stream;
GCancellable *cancellable;
gboolean synchronized;
-
+
guint buffer_size;
gchar *buffer;
gchar *read_buffer;
gchar **lines;
gchar **environment;
-
+
gint exit_status;
};
@@ -85,7 +85,7 @@ async_data_new(GitgRunner *runner, GCancellable *cancellable)
AsyncData *data = g_slice_new(AsyncData);
data->runner = runner;
data->cancellable = g_object_ref(cancellable);
-
+
return data;
}
@@ -111,7 +111,7 @@ static void
runner_io_exit(GPid pid, gint status, GitgRunner *runner)
{
g_spawn_close_pid(pid);
-
+
if (runner->priv->pid)
{
runner->priv->pid = 0;
@@ -126,7 +126,7 @@ free_lines(GitgRunner *runner)
while (runner->priv->lines[i])
g_free(runner->priv->lines[i++]);
-
+
runner->priv->lines[0] = NULL;
}
@@ -134,21 +134,21 @@ static void
gitg_runner_finalize(GObject *object)
{
GitgRunner *runner = GITG_RUNNER(object);
-
+
/* Cancel possible running */
gitg_runner_cancel(runner);
/* Free potential stored lines */
free_lines(runner);
-
+
/* Remove buffer slice */
g_slice_free1(sizeof(gchar) * (runner->priv->buffer_size + 1), runner->priv->read_buffer);
g_slice_free1(sizeof(gchar *) * (runner->priv->buffer_size + 1), runner->priv->lines);
-
+
/* Remove line buffer */
g_free(runner->priv->buffer);
g_strfreev (runner->priv->environment);
-
+
g_object_unref(runner->priv->cancellable);
G_OBJECT_CLASS(gitg_runner_parent_class)->finalize(object);
@@ -176,10 +176,10 @@ gitg_runner_get_property(GObject *object, guint prop_id, GValue *value, GParamSp
static void
set_buffer_size(GitgRunner *runner, guint buffer_size)
{
- runner->priv->buffer_size = buffer_size;
+ runner->priv->buffer_size = buffer_size;
runner->priv->lines = g_slice_alloc(sizeof(gchar *) * (runner->priv->buffer_size + 1));
runner->priv->lines[0] = NULL;
-
+
runner->priv->read_buffer = g_slice_alloc(sizeof(gchar) * (runner->priv->buffer_size + 1));
}
@@ -187,7 +187,7 @@ static void
gitg_runner_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
GitgRunner *runner = GITG_RUNNER(object);
-
+
switch (prop_id)
{
case PROP_BUFFER_SIZE:
@@ -206,7 +206,7 @@ static void
gitg_runner_class_init(GitgRunnerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
+
object_class->finalize = gitg_runner_finalize;
object_class->get_property = gitg_runner_get_property;
@@ -220,14 +220,14 @@ gitg_runner_class_init(GitgRunnerClass *klass)
G_MAXUINT,
1,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
+
g_object_class_install_property (object_class, PROP_SYNCHRONIZED,
g_param_spec_boolean ("synchronized",
"SYNCHRONIZED",
"Whether the command is ran synchronized",
FALSE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
+
runner_signals[BEGIN_LOADING] =
g_signal_new ("begin-loading",
G_OBJECT_CLASS_TYPE (object_class),
@@ -237,7 +237,7 @@ gitg_runner_class_init(GitgRunnerClass *klass)
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE,
0);
-
+
runner_signals[UPDATE] =
g_signal_new ("update",
G_OBJECT_CLASS_TYPE (object_class),
@@ -248,7 +248,7 @@ gitg_runner_class_init(GitgRunnerClass *klass)
G_TYPE_NONE,
1,
G_TYPE_POINTER);
-
+
runner_signals[END_LOADING] =
g_signal_new ("end-loading",
G_OBJECT_CLASS_TYPE (object_class),
@@ -267,7 +267,7 @@ static void
gitg_runner_init(GitgRunner *self)
{
self->priv = GITG_RUNNER_GET_PRIVATE(self);
-
+
self->priv->cancellable = g_cancellable_new();
}
@@ -275,7 +275,7 @@ GitgRunner *
gitg_runner_new(guint buffer_size)
{
g_assert(buffer_size > 0);
-
+
return GITG_RUNNER(g_object_new(GITG_TYPE_RUNNER,
"buffer_size", buffer_size,
"synchronized", FALSE,
@@ -301,7 +301,7 @@ gitg_strnchr(gchar *ptr, gssize size, gchar find)
if (*ptr++ == find)
return ptr - 1;
}
-
+
return NULL;
}
@@ -313,13 +313,13 @@ parse_lines(GitgRunner *runner, gchar *buffer, gssize size)
gint i = 0;
free_lines(runner);
-
+
while ((newline = gitg_strnchr(ptr, size, '\n')))
{
gssize linesize = newline - ptr;
size -= linesize + 1;
*newline = '\0';
-
+
if (runner->priv->buffer)
{
gchar *buffered = g_strconcat(runner->priv->buffer, ptr, NULL);
@@ -333,10 +333,10 @@ parse_lines(GitgRunner *runner, gchar *buffer, gssize size)
{
runner->priv->lines[i++] = gitg_utils_convert_utf8(ptr, linesize);
}
-
+
ptr += linesize + 1;
}
-
+
if (size)
{
gchar *tmp;
@@ -349,7 +349,7 @@ parse_lines(GitgRunner *runner, gchar *buffer, gssize size)
g_free(runner->priv->buffer);
runner->priv->buffer = tmp;
}
-
+
runner->priv->lines[i] = NULL;
g_signal_emit(runner, runner_signals[UPDATE], 0, runner->priv->lines);
@@ -364,14 +364,14 @@ close_streams(GitgRunner *runner)
g_object_unref(runner->priv->output_stream);
runner->priv->output_stream = NULL;
}
-
+
if (runner->priv->input_stream)
{
g_input_stream_close (runner->priv->input_stream, NULL, NULL);
g_object_unref(runner->priv->input_stream);
runner->priv->input_stream = NULL;
}
-
+
g_free(runner->priv->buffer);
runner->priv->buffer = NULL;
}
@@ -389,10 +389,10 @@ run_sync(GitgRunner *runner, gchar const *input, GError **error)
g_signal_emit(runner, runner_signals[END_LOADING], 0, FALSE);
return FALSE;
}
-
+
g_output_stream_close(runner->priv->output_stream, NULL, NULL);
}
-
+
gsize read = runner->priv->buffer_size;
while (read == runner->priv->buffer_size)
@@ -405,11 +405,11 @@ run_sync(GitgRunner *runner, gchar const *input, GError **error)
g_signal_emit(runner, runner_signals[END_LOADING], 0, TRUE);
return FALSE;
}
-
+
runner->priv->read_buffer[read] = '\0';
parse_lines(runner, runner->priv->read_buffer, read);
}
-
+
gchar *b[] = {runner->priv->buffer, NULL};
g_signal_emit(runner, runner_signals[UPDATE], 0, b);
@@ -418,12 +418,12 @@ run_sync(GitgRunner *runner, gchar const *input, GError **error)
runner_io_exit(runner->priv->pid, status, runner);
close_streams(runner);
-
+
g_signal_emit(runner, runner_signals[END_LOADING], 0, FALSE);
-
+
if (status != 0 && error)
g_set_error(error, GITG_RUNNER_ERROR, GITG_RUNNER_ERROR_EXIT, "Did not exit without error code");
-
+
return status == EXIT_SUCCESS;
}
@@ -444,14 +444,14 @@ static void
read_output_ready(GInputStream *stream, GAsyncResult *result, AsyncData *data)
{
GError *error = NULL;
-
+
gssize read = g_input_stream_read_finish(stream, result, &error);
if (g_cancellable_is_cancelled(data->cancellable))
{
g_input_stream_close (stream, NULL, NULL);
async_data_free(data);
-
+
if (error)
g_error_free(error);
return;
@@ -461,12 +461,12 @@ read_output_ready(GInputStream *stream, GAsyncResult *result, AsyncData *data)
{
g_input_stream_close (stream, NULL, NULL);
async_failed(data);
-
+
if (error)
g_error_free(error);
return;
}
-
+
if (read == 0)
{
/* End */
@@ -475,19 +475,19 @@ read_output_ready(GInputStream *stream, GAsyncResult *result, AsyncData *data)
gint status = 0;
waitpid(data->runner->priv->pid, &status, 0);
-
+
runner_io_exit(data->runner->priv->pid, status, data->runner);
close_streams(data->runner);
g_signal_emit(data->runner, runner_signals[END_LOADING], 0, FALSE);
-
+
async_data_free(data);
}
else
{
data->runner->priv->read_buffer[read] = '\0';
parse_lines(data->runner, data->runner->priv->read_buffer, read);
-
+
if (g_cancellable_is_cancelled(data->cancellable))
{
g_input_stream_close (stream, NULL, NULL);
@@ -510,15 +510,15 @@ write_input_ready(GOutputStream *stream, GAsyncResult *result, AsyncData *data)
{
GError *error = NULL;
g_output_stream_write_finish(stream, result, &error);
-
+
if (g_cancellable_is_cancelled(data->cancellable))
{
if (error)
g_error_free(error);
-
+
async_data_free(data);
}
-
+
if (error)
{
async_failed(data);
@@ -534,16 +534,16 @@ gboolean
gitg_runner_run_streams(GitgRunner *runner, GInputStream *input_stream, GOutputStream *output_stream, gchar const *input, GError **error)
{
gitg_runner_cancel(runner);
-
+
if (output_stream)
runner->priv->output_stream = g_object_ref(output_stream);
-
+
if (input_stream)
runner->priv->input_stream = g_object_ref(input_stream);
-
+
/* Emit begin-loading signal */
g_signal_emit(runner, runner_signals[BEGIN_LOADING], 0);
-
+
if (runner->priv->synchronized)
{
return run_sync(runner, input, error);
@@ -551,7 +551,7 @@ gitg_runner_run_streams(GitgRunner *runner, GInputStream *input_stream, GOutputS
else
{
AsyncData *data = async_data_new(runner, runner->priv->cancellable);
-
+
if (input)
{
g_output_stream_write_async(runner->priv->output_stream, input, -1, G_PRIORITY_DEFAULT, runner->priv->cancellable, (GAsyncReadyCallback)write_input_ready, data);
@@ -593,22 +593,22 @@ gitg_runner_run_with_arguments(GitgRunner *runner, gchar const **argv, gchar con
runner->priv->pid = 0;
return FALSE;
}
-
+
GInputStream *input_stream = NULL;
GOutputStream *output_stream = NULL;
if (input)
output_stream = G_OUTPUT_STREAM(g_unix_output_stream_new(stdin, TRUE));
-
- input_stream = G_INPUT_STREAM(g_unix_input_stream_new(stdout, TRUE));
+
+ input_stream = G_INPUT_STREAM(g_unix_input_stream_new(stdout, TRUE));
ret = gitg_runner_run_streams(runner, input_stream, output_stream, input, error);
-
+
if (output_stream)
g_object_unref(output_stream);
-
+
if (input_stream)
g_object_unref(input_stream);
-
+
return ret;
}
@@ -651,17 +651,17 @@ gitg_runner_cancel(GitgRunner *runner)
{
g_cancellable_cancel(runner->priv->cancellable);
g_object_unref(runner->priv->cancellable);
-
+
runner->priv->cancellable = g_cancellable_new();
if (runner->priv->pid)
{
g_child_watch_add(runner->priv->pid, dummy_cb, NULL);
kill(runner->priv->pid, SIGTERM);
-
+
runner_io_exit(runner->priv->pid, EXIT_FAILURE, runner);
}
-
+
close_streams(runner);
g_signal_emit(runner, runner_signals[END_LOADING], 0, TRUE);
}
@@ -670,7 +670,7 @@ gitg_runner_cancel(GitgRunner *runner)
gboolean
gitg_runner_running(GitgRunner *runner)
{
- g_return_val_if_fail(GITG_IS_RUNNER(runner), FALSE);
+ g_return_val_if_fail(GITG_IS_RUNNER(runner), FALSE);
return runner->priv->input_stream != NULL;
}
@@ -678,7 +678,7 @@ gint
gitg_runner_get_exit_status(GitgRunner *runner)
{
g_return_val_if_fail(GITG_IS_RUNNER(runner), 1);
-
+
return runner->priv->exit_status;
}
@@ -686,9 +686,9 @@ void
gitg_runner_set_environment (GitgRunner *runner, gchar const **environment)
{
g_return_if_fail (GITG_IS_RUNNER (runner));
-
+
g_strfreev (runner->priv->environment);
-
+
if (environment == NULL)
{
runner->priv->environment = NULL;
@@ -696,7 +696,7 @@ gitg_runner_set_environment (GitgRunner *runner, gchar const **environment)
else
{
gint len = g_strv_length ((gchar **)environment);
-
+
runner->priv->environment = g_new (gchar *, len + 1);
gint i;
@@ -704,7 +704,7 @@ gitg_runner_set_environment (GitgRunner *runner, gchar const **environment)
{
runner->priv->environment[i] = g_strdup (environment[i]);
}
-
+
runner->priv->environment[len] = NULL;
}
}
@@ -715,11 +715,11 @@ gitg_runner_add_environment (GitgRunner *runner, gchar const *key, gchar const *
g_return_if_fail (GITG_IS_RUNNER (runner));
g_return_if_fail (key != NULL);
g_return_if_fail (value != NULL);
-
+
if (runner->priv->environment == NULL)
{
gchar **all = g_listenv ();
-
+
gint i = 0;
runner->priv->environment = g_malloc (sizeof(gchar *) * (g_strv_length (all) + 1));
@@ -728,10 +728,10 @@ gitg_runner_add_environment (GitgRunner *runner, gchar const *key, gchar const *
runner->priv->environment[i] = g_strconcat (all[i], "=", g_getenv (all[i]), NULL);
++i;
}
-
+
runner->priv->environment[i] = NULL;
}
-
+
gint len = g_strv_length (runner->priv->environment);
runner->priv->environment = g_realloc (runner->priv->environment,
sizeof(gchar *) * (len + 2));
diff --git a/gitg/gitg-runner.h b/gitg/gitg-runner.h
index 2d848fa..7c0944f 100644
--- a/gitg/gitg-runner.h
+++ b/gitg/gitg-runner.h
@@ -50,13 +50,13 @@ typedef enum
struct _GitgRunner {
GObject parent;
-
+
GitgRunnerPrivate *priv;
};
struct _GitgRunnerClass {
GObjectClass parent_class;
-
+
/* signals */
void (* begin_loading) (GitgRunner *runner);
void (* update) (GitgRunner *runner, gchar **buffer);
diff --git a/gitg/gitg-settings.c b/gitg/gitg-settings.c
index 40abba1..326cca6 100644
--- a/gitg/gitg-settings.c
+++ b/gitg/gitg-settings.c
@@ -38,9 +38,9 @@ static void
gitg_settings_finalize(GObject *object)
{
GitgSettings *settings = GITG_SETTINGS(object);
-
+
gitg_settings_save(settings);
-
+
g_free(settings->priv->filename);
g_key_file_free(settings->priv->file);
@@ -51,7 +51,7 @@ static void
gitg_settings_class_init(GitgSettingsClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
+
object_class->finalize = gitg_settings_finalize;
g_type_class_add_private(object_class, sizeof(GitgSettingsPrivate));
@@ -61,10 +61,10 @@ static void
gitg_settings_init(GitgSettings *self)
{
self->priv = GITG_SETTINGS_GET_PRIVATE(self);
-
+
self->priv->file = g_key_file_new();
self->priv->filename = g_build_filename(g_get_user_config_dir(), "gitg", "settings", NULL);
-
+
g_key_file_load_from_file(self->priv->file, self->priv->filename, G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, NULL);
}
@@ -72,10 +72,10 @@ GitgSettings*
gitg_settings_get_default()
{
static GitgSettings *instance = NULL;
-
+
if (G_UNLIKELY(instance == NULL))
instance = GITG_SETTINGS(g_object_new(GITG_TYPE_SETTINGS, NULL));
-
+
return instance;
}
@@ -83,14 +83,14 @@ void
gitg_settings_save(GitgSettings *settings)
{
g_return_if_fail(GITG_IS_SETTINGS(settings));
-
+
gchar *d = g_path_get_dirname(settings->priv->filename);
g_mkdir_with_parents(d, 0755);
g_free(d);
-
+
gsize length;
gchar *data = g_key_file_to_data(settings->priv->file, &length, NULL);
-
+
if (data)
{
g_file_set_contents(settings->priv->filename, data, length, NULL);
@@ -104,15 +104,15 @@ gitg_settings_get_integer(GitgSettings *settings, gchar const *key, gint def)
g_return_val_if_fail(GITG_IS_SETTINGS(settings), def);
GError *error = NULL;
-
+
gint ret = g_key_file_get_integer(settings->priv->file, KEY_GROUP, key, &error);
-
+
if (error)
{
ret = def;
g_error_free(error);
}
-
+
return ret;
}
@@ -122,15 +122,15 @@ gitg_settings_get_double(GitgSettings *settings, gchar const *key, gdouble def)
g_return_val_if_fail(GITG_IS_SETTINGS(settings), def);
GError *error = NULL;
-
+
gdouble ret = g_key_file_get_double(settings->priv->file, KEY_GROUP, key, &error);
-
+
if (error)
{
ret = def;
g_error_free(error);
}
-
+
return ret;
}
@@ -141,15 +141,15 @@ gitg_settings_get_string(GitgSettings *settings, gchar const *key, gchar const *
g_return_val_if_fail(GITG_IS_SETTINGS(settings), g_strdup(def));
GError *error = NULL;
-
+
gchar *ret = g_key_file_get_string(settings->priv->file, KEY_GROUP, key, &error);
-
+
if (error)
{
ret = g_strdup(def);
g_error_free(error);
}
-
+
return ret;
}
@@ -165,7 +165,7 @@ void
gitg_settings_set_double(GitgSettings *settings, gchar const *key, gdouble value)
{
g_return_if_fail(GITG_IS_SETTINGS(settings));
-
+
g_key_file_set_double(settings->priv->file, KEY_GROUP, key, value);
}
@@ -173,7 +173,7 @@ void
gitg_settings_set_string(GitgSettings *settings, gchar const *key, gchar const *value)
{
g_return_if_fail(GITG_IS_SETTINGS(settings));
-
+
g_key_file_set_string(settings->priv->file, KEY_GROUP, key, value);
}
diff --git a/gitg/gitg-settings.h b/gitg/gitg-settings.h
index 0ad9609..7665f66 100644
--- a/gitg/gitg-settings.h
+++ b/gitg/gitg-settings.h
@@ -65,7 +65,7 @@ typedef struct _GitgSettingsPrivate GitgSettingsPrivate;
struct _GitgSettings {
GObject parent;
-
+
GitgSettingsPrivate *priv;
};
diff --git a/gitg/gitg-spinner.c b/gitg/gitg-spinner.c
index d8d56ec..017bb69 100644
--- a/gitg/gitg-spinner.c
+++ b/gitg/gitg-spinner.c
@@ -30,7 +30,7 @@
* for Epiphany.
*
* Modified by the gitg Team, 2005. See the AUTHORS file for a
- * list of people on the gitg Team.
+ * list of people on the gitg Team.
* See the ChangeLog files for a list of changes.
*
* Modified by the gitg team, 2009.
@@ -162,7 +162,7 @@ gitg_spinner_images_unref (GitgSpinnerImages *images)
{
g_object_unref (images->animation_pixbufs[i]);
}
-
+
g_free (images->animation_pixbufs);
g_free (images);
}
@@ -251,7 +251,7 @@ gitg_spinner_images_load (GdkScreen *screen,
/* LOG ("GitgSpinnerCacheData loading for screen %p at size %d", screen, icon_size); */
/* START_PROFILER ("loading spinner animation") */
-
+
if (screen == NULL)
screen = gdk_screen_get_default ();
@@ -716,12 +716,12 @@ gitg_spinner_set_screen (GitgSpinner *spinner, GdkScreen *screen)
if (spinner->priv->screen != screen)
{
gitg_spinner_unload_images (spinner);
-
+
if (spinner->priv->screen)
{
g_object_unref (spinner->priv->screen);
}
-
+
spinner->priv->screen = g_object_ref (screen);
}
}
@@ -756,7 +756,7 @@ gitg_spinner_class_init (GitgSpinnerClass *class)
object_class->dispose = gitg_spinner_dispose;
object_class->finalize = gitg_spinner_finalize;
-
+
spinner_signals[FRAME] =
g_signal_new ("frame",
G_OBJECT_CLASS_TYPE (object_class),
@@ -775,7 +775,7 @@ GitgSpinner *
gitg_spinner_new (GtkIconSize size)
{
GitgSpinner *spinner = g_object_new (GITG_TYPE_SPINNER, NULL);
-
+
spinner->priv->size = size;
return spinner;
}
@@ -784,11 +784,11 @@ GdkPixbuf *
gitg_spinner_get_pixbuf (GitgSpinner *spinner)
{
g_return_val_if_fail (GITG_IS_SPINNER (spinner), NULL);
-
+
if (spinner->priv->timer_task == 0)
{
return NULL;
}
-
+
return g_object_ref (spinner->priv->images->animation_pixbufs[spinner->priv->current_image]);
}
diff --git a/gitg/gitg-spinner.h b/gitg/gitg-spinner.h
index b7a5b98..b3d4e44 100644
--- a/gitg/gitg-spinner.h
+++ b/gitg/gitg-spinner.h
@@ -27,7 +27,7 @@
* Nautilus.
*
* Modified by the gitg Team, 2005. See the AUTHORS file for a
- * list of people on the gitg Team.
+ * list of people on the gitg Team.
* See the ChangeLog files for a list of changes.
*
* Modified by the gitg Team, 2009
@@ -77,7 +77,7 @@ typedef struct _GitgSpinnerClass GitgSpinnerClass;
struct _GitgSpinnerClass
{
GObjectClass parent_class;
-
+
void (*frame)(GitgSpinner *spinner, GdkPixbuf *pixbuf);
};
diff --git a/gitg/gitg-utils.c b/gitg/gitg-utils.c
index 8341e15..afe7b95 100644
--- a/gitg/gitg-utils.c
+++ b/gitg/gitg-utils.c
@@ -35,7 +35,7 @@ atoh(gchar c)
return c - 'a' + 10;
if (c >= 'A')
return c - 'A' + 10;
-
+
return c - '0';
}
@@ -70,7 +70,7 @@ gitg_utils_hash_to_sha1_new(gchar const *hash)
{
gchar *ret = g_new(gchar, HASH_SHA_SIZE + 1);
gitg_utils_hash_to_sha1(hash, ret);
-
+
ret[HASH_SHA_SIZE] = '\0';
return ret;
}
@@ -80,7 +80,7 @@ gitg_utils_sha1_to_hash_new(gchar const *sha1)
{
gchar *ret = g_new(gchar, HASH_BINARY_SIZE);
gitg_utils_sha1_to_hash(sha1, ret);
-
+
return ret;
}
@@ -90,20 +90,20 @@ find_dot_git(gchar *path)
while (strcmp(path, ".") != 0 && strcmp(path, "/") != 0)
{
gchar *res = g_build_filename(path, ".git", NULL);
-
+
if (g_file_test(res, G_FILE_TEST_IS_DIR))
{
g_free(res);
return path;
}
-
+
gchar *tmp = g_path_get_dirname(path);
g_free(path);
path = tmp;
-
+
g_free(res);
}
-
+
return NULL;
}
@@ -112,12 +112,12 @@ gitg_utils_find_git(gchar const *path)
{
gchar const *find = G_DIR_SEPARATOR_S ".git";
gchar *dir;
-
+
if (strstr(path, find) == path + strlen(path) - strlen(find))
dir = g_strndup(path, strlen(path) - strlen(find));
else
dir = g_strdup(path);
-
+
return find_dot_git(dir);
}
@@ -125,7 +125,7 @@ gchar *
gitg_utils_dot_git_path(gchar const *path)
{
gchar const *find = G_DIR_SEPARATOR_S ".git";
-
+
if (strstr(path, find) == path + strlen(path) - strlen(find))
return g_strdup(path);
else
@@ -136,16 +136,16 @@ static void
append_escape(GString *gstr, gchar const *item)
{
gchar *escape = g_shell_quote(item);
-
+
g_string_append_printf(gstr, " %s", escape);
}
gboolean
gitg_utils_export_files(GitgRepository *repository, GitgRevision *revision,
gchar const *todir, gchar * const *paths)
-{
+{
GString *gstr = g_string_new("sh -c \"git --git-dir");
-
+
// Append the git path
gchar *gitpath = gitg_utils_dot_git_path(gitg_repository_get_path(repository));
append_escape(gstr, gitpath);
@@ -155,7 +155,7 @@ gchar const *todir, gchar * const *paths)
gchar *sha = gitg_revision_get_sha1(revision);
g_string_append_printf(gstr, " archive --format=tar %s", sha);
g_free(sha);
-
+
// Append the files
while (*paths)
{
@@ -166,12 +166,12 @@ gchar const *todir, gchar * const *paths)
g_string_append(gstr, " | tar -xC");
append_escape(gstr, todir);
g_string_append(gstr, "\"");
-
+
GError *error = NULL;
gint status;
gboolean ret = g_spawn_command_line_sync(gstr->str, NULL, NULL, &status, &error);
-
+
if (!ret)
{
g_warning("Export failed:\n%s\n%s", gstr->str, error->message);
@@ -188,20 +188,20 @@ convert_fallback(gchar const *text, gssize size, gchar const *fallback)
gchar *res;
gsize read, written;
GString *str = g_string_new("");
-
+
while ((res = g_convert(text, size, "UTF-8", "ASCII", &read, &written, NULL))
== NULL) {
res = g_convert(text, read, "UTF-8", "ASCII", NULL, NULL, NULL);
str = g_string_append(str, res);
-
+
str = g_string_append(str, fallback);
text = text + read + 1;
size = size - read;
}
-
+
str = g_string_append(str, res);
g_free(res);
-
+
res = str->str;
g_string_free(str, FALSE);
return res;
@@ -214,10 +214,10 @@ gitg_utils_convert_utf8(gchar const *str, gssize size)
"ISO-8859-15",
"ASCII"
};
-
+
if (g_utf8_validate(str, size, NULL))
return g_strndup(str, size == -1 ? strlen(str) : size);
-
+
int i;
for (i = 0; i < sizeof(encodings) / sizeof(gchar *); ++i)
{
@@ -225,11 +225,11 @@ gitg_utils_convert_utf8(gchar const *str, gssize size)
gsize written;
gchar *ret = g_convert(str, size, "UTF-8", encodings[i], &read, &written, NULL);
-
+
if (ret)
return ret;
}
-
+
return convert_fallback(str, size, "?");
}
@@ -240,7 +240,7 @@ gitg_utils_hash_hash(gconstpointer v)
const signed char *p = v;
guint32 h = *p;
int i;
-
+
for (i = 1; i < HASH_BINARY_SIZE; ++i)
h = (h << 5) - h + p[i];
@@ -257,10 +257,10 @@ gint
gitg_utils_null_length(gconstpointer *ptr)
{
gint ret = 0;
-
+
while (*ptr++)
++ret;
-
+
return ret;
}
@@ -268,10 +268,10 @@ gchar *
gitg_utils_get_content_type(GFile *file)
{
GFileInfo *info = g_file_query_info(file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, G_FILE_QUERY_INFO_NONE, NULL, NULL);
-
+
if (!info || !g_file_info_has_attribute(info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE))
return NULL;
-
+
gchar *content_type = g_strdup(g_file_info_get_content_type(info));
g_object_unref(info);
@@ -300,18 +300,18 @@ gitg_utils_sort_names(gchar const *s1, gchar const *s2)
{
if (s1 == NULL)
return -1;
-
+
if (s2 == NULL)
return 1;
gchar *c1 = s1 ? g_utf8_casefold(s1, -1) : NULL;
gchar *c2 = s2 ? g_utf8_casefold(s2, -1) : NULL;
-
+
gint ret = g_utf8_collate(c1, c2);
-
+
g_free(c1);
g_free(c2);
-
+
return ret;
}
@@ -320,16 +320,16 @@ gitg_utils_guess_content_type(GtkTextBuffer *buffer)
{
GtkTextIter start;
GtkTextIter end;
-
+
gtk_text_buffer_get_start_iter(buffer, &start);
end = start;
-
+
gtk_text_iter_forward_chars(&end, 256);
gchar *data = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
gchar *content_type = g_content_type_guess(NULL, (guchar *)data, strlen(data), NULL);
g_free(data);
-
+
return content_type;
}
@@ -372,7 +372,7 @@ gitg_utils_menu_position_under_tree_view (GtkMenu *menu,
GtkTreeModel *model;
GtkTreeSelection *selection;
GtkTreeIter iter;
-
+
model = gtk_tree_view_get_model (tree);
g_return_if_fail (model != NULL);
@@ -385,16 +385,16 @@ gitg_utils_menu_position_under_tree_view (GtkMenu *menu,
GdkRectangle rect;
gdk_window_get_origin (GTK_WIDGET (tree)->window, x, y);
-
+
path = gtk_tree_model_get_path (model, &iter);
gtk_tree_view_get_cell_area (tree, path,
gtk_tree_view_get_column (tree, 0), /* FIXME 0 for RTL ? */
&rect);
gtk_tree_path_free (path);
-
+
*x += rect.x;
*y += rect.y + rect.height;
-
+
if (gtk_widget_get_direction (GTK_WIDGET (tree)) == GTK_TEXT_DIR_RTL)
{
GtkRequisition requisition;
@@ -416,9 +416,9 @@ gitg_utils_get_monospace_font_name()
{
GConfClient *client = gconf_client_get_default();
gchar *name = gconf_client_get_string(client, "/desktop/gnome/interface/monospace_font_name", NULL);
-
+
g_object_unref(client);
-
+
return name;
}
@@ -426,18 +426,18 @@ void
gitg_utils_set_monospace_font(GtkWidget *widget)
{
gchar *name = gitg_utils_get_monospace_font_name();
-
+
if (name)
{
PangoFontDescription *description = pango_font_description_from_string(name);
-
+
if (description)
{
gtk_widget_modify_font(widget, description);
pango_font_description_free(description);
}
}
-
+
g_free(name);
}
@@ -446,18 +446,18 @@ gitg_utils_new_builder(gchar const *filename)
{
GtkBuilder *b = gtk_builder_new();
GError *error = NULL;
-
+
gchar *path = gitg_dirs_get_data_filename("ui", filename, NULL);
-
+
if (!gtk_builder_add_from_file(b, path, &error))
{
g_critical("Could not open UI file: %s (%s)", path, error->message);
g_error_free(error);
-
+
g_free(path);
exit(1);
}
-
+
g_free(path);
return b;
}
@@ -469,7 +469,7 @@ gitg_utils_timestamp_to_str(guint64 timestamp)
struct tm *tms = localtime(&t);
gchar buf[255];
-
+
strftime(buf, 254, "%c", tms);
return gitg_utils_convert_utf8(buf, -1);
}
@@ -483,32 +483,32 @@ gitg_utils_find_cell_at_pos (GtkTreeView *tree_view, GtkTreeViewColumn *column,
GtkTreeModel *model = gtk_tree_view_get_model (tree_view);
gtk_tree_model_get_iter (model, &iter, path);
-
+
gtk_tree_view_column_cell_set_cell_data (column, model, &iter, FALSE, FALSE);
-
+
cells = gtk_tree_view_column_get_cell_renderers (column);
GtkCellRenderer *ret = NULL;
-
+
for (item = cells; item; item = g_list_next (item))
{
GtkCellRenderer *renderer = GTK_CELL_RENDERER (item->data);
gint start;
gint width;
-
+
if (!gtk_tree_view_column_cell_get_position (column, renderer, &start, &width))
{
continue;
}
-
+
gtk_cell_renderer_get_size (renderer, GTK_WIDGET (tree_view), NULL, NULL, NULL, &width, 0);
-
+
if (x >= start && x <= start + width)
{
ret = renderer;
break;
}
}
-
+
g_list_free (cells);
return ret;
}
@@ -547,7 +547,7 @@ static void
on_paned_mapped (GtkPaned *paned, PanedRestoreInfo *info)
{
paned_set_position (paned, info->position, info->reversed);
-
+
g_signal_handlers_disconnect_by_func (paned, on_paned_mapped, info);
}
@@ -555,18 +555,18 @@ void
gitg_utils_restore_pane_position (GtkPaned *paned, gint position, gboolean reversed)
{
g_return_if_fail (GTK_IS_PANED (paned));
-
+
if (GTK_WIDGET_MAPPED (paned))
{
paned_set_position (paned, position, reversed);
-
+
return;
}
-
+
PanedRestoreInfo *info = g_slice_new (PanedRestoreInfo);
info->position = position;
info->reversed = reversed;
-
+
g_signal_connect_data (paned,
"map",
G_CALLBACK (on_paned_mapped),
diff --git a/gitg/gitg-window.c b/gitg/gitg-window.c
index 09e05c8..789201d 100644
--- a/gitg/gitg-window.c
+++ b/gitg/gitg-window.c
@@ -73,27 +73,27 @@ struct _GitgWindowPrivate
GitgCommitView *commit_view;
GtkWidget *search_popup;
GtkComboBox *combo_branches;
-
+
GtkUIManager *menus_ui_manager;
-
+
GtkWidget *vpaned_main;
GtkWidget *hpaned_commit1;
GtkWidget *hpaned_commit2;
GtkWidget *vpaned_commit;
-
+
GtkActionGroup *edit_group;
GtkWidget *open_dialog;
GitgCellRendererPath *renderer_path;
-
+
GTimer *load_timer;
GdkCursor *hand;
-
+
gboolean destroy_has_run;
guint merge_rebase_uid;
GtkActionGroup *merge_rebase_action_group;
GitgRef *popup_refs[2];
-
+
GList *branch_actions;
};
@@ -121,7 +121,7 @@ add_branch_action (GitgWindow *window, GitgRunner *runner)
if (runner != NULL && gitg_runner_running (runner))
{
window->priv->branch_actions = g_list_prepend (window->priv->branch_actions, runner);
-
+
g_signal_connect (runner, "end-loading", G_CALLBACK (on_branch_action_runner_end), window);
}
else if (runner)
@@ -129,7 +129,7 @@ add_branch_action (GitgWindow *window, GitgRunner *runner)
g_object_unref (runner);
runner = NULL;
}
-
+
return runner != NULL;
}
@@ -137,18 +137,18 @@ static void
gitg_window_finalize(GObject *object)
{
GitgWindow *self = GITG_WINDOW(object);
-
+
g_timer_destroy(self->priv->load_timer);
gdk_cursor_unref(self->priv->hand);
-
+
GList *copy = g_list_copy (self->priv->branch_actions);
GList *item;
-
+
for (item = copy; item; item = g_list_next (item))
{
gitg_runner_cancel (GITG_RUNNER (item->data));
}
-
+
g_list_free (copy);
G_OBJECT_CLASS(gitg_window_parent_class)->finalize(object);
@@ -160,10 +160,10 @@ on_selection_changed(GtkTreeSelection *selection, GitgWindow *window)
GtkTreeModel *model;
GtkTreeIter iter;
GitgRevision *revision = NULL;
-
+
if (gtk_tree_selection_get_selected(selection, &model, &iter))
gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &revision, -1);
-
+
gitg_revision_view_update(window->priv->revision_view, window->priv->repository, revision);
gitg_revision_tree_view_update(window->priv->revision_tree_view, window->priv->repository, revision);
}
@@ -212,14 +212,14 @@ search_hash_equal_func(GtkTreeModel *model, gchar const *key, GtkTreeIter *iter)
{
GitgRevision *rv;
gtk_tree_model_get(model, iter, 0, &rv, -1);
-
+
gchar *sha = gitg_revision_get_sha1(rv);
-
+
gboolean ret = strncmp(sha, key, strlen(key)) != 0;
-
+
g_free(sha);
gitg_revision_unref(rv);
-
+
return ret;
}
@@ -231,17 +231,17 @@ search_equal_func(GtkTreeModel *model, gint column, gchar const *key, GtkTreeIte
gchar *cmp;
gtk_tree_model_get(model, iter, column, &cmp, -1);
-
+
gchar *s1 = g_utf8_casefold(key, -1);
gchar *s2 = g_utf8_casefold(cmp, -1);
-
+
gboolean ret = strstr(s2, s1) == NULL;
-
+
g_free(s1);
g_free(s2);
g_free(cmp);
-
+
return ret;
}
@@ -256,23 +256,23 @@ build_search_entry(GitgWindow *window, GtkBuilder *builder)
{
GtkWidget *box = GTK_WIDGET(gtk_builder_get_object(builder, "hbox_top"));
GtkWidget *entry = sexy_icon_entry_new();
-
+
GtkImage *image = GTK_IMAGE(gtk_image_new_from_stock(GTK_STOCK_FIND, GTK_ICON_SIZE_MENU));
sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(entry), SEXY_ICON_ENTRY_PRIMARY, image);
-
+
gtk_tree_view_set_search_entry(window->priv->tree_view, GTK_ENTRY(entry));
gtk_widget_show(entry);
gtk_box_pack_end(GTK_BOX(box), entry, FALSE, FALSE, 0);
window->priv->search_popup = GTK_WIDGET(g_object_ref(gtk_ui_manager_get_widget(window->priv->menus_ui_manager, "/ui/search_popup")));
-
+
g_signal_connect(entry, "icon-pressed", G_CALLBACK(on_search_icon_pressed), window);
gtk_tree_view_set_search_column(window->priv->tree_view, 1);
-
+
gtk_tree_view_set_search_equal_func(window->priv->tree_view, search_equal_func, window, NULL);
-
+
GtkAccelGroup *group = gtk_accel_group_new();
-
+
GClosure *closure = g_cclosure_new(G_CALLBACK(focus_search), entry, NULL);
gtk_accel_group_connect(group, GDK_f, GDK_CONTROL_MASK, 0, closure);
gtk_window_add_accel_group(GTK_WINDOW(window), group);
@@ -282,15 +282,15 @@ static void
goto_hash(GitgWindow *window, gchar const *hash)
{
GtkTreeIter iter;
-
+
if (!gitg_repository_find_by_hash(window->priv->repository, hash, &iter))
return;
-
+
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(window->priv->tree_view), &iter);
GtkTreePath *path;
-
+
path = gtk_tree_model_get_path(GTK_TREE_MODEL(window->priv->repository), &iter);
-
+
gtk_tree_view_scroll_to_cell(window->priv->tree_view, path, NULL, FALSE, 0, 0);
gtk_tree_path_free(path);
}
@@ -305,15 +305,15 @@ static void
on_renderer_path(GtkTreeViewColumn *column, GitgCellRendererPath *renderer, GtkTreeModel *model, GtkTreeIter *iter, GitgWindow *window)
{
GitgRevision *rv;
-
+
gtk_tree_model_get(model, iter, 0, &rv, -1);
GtkTreeIter iter1 = *iter;
-
+
GitgRevision *next_revision = NULL;
-
+
if (gtk_tree_model_iter_next(model, &iter1))
gtk_tree_model_get(model, &iter1, 0, &next_revision, -1);
-
+
GSList *labels;
const gchar *lbl = NULL;
@@ -328,7 +328,7 @@ on_renderer_path(GtkTreeViewColumn *column, GitgCellRendererPath *renderer, GtkT
default:
break;
}
-
+
if (lbl != NULL)
{
g_object_set(renderer, "style", PANGO_STYLE_ITALIC, NULL);
@@ -355,7 +355,7 @@ branches_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
{
gchar *name;
GitgRef *ref;
-
+
gtk_tree_model_get(model,
iter,
COLUMN_BRANCHES_NAME, &name,
@@ -363,7 +363,7 @@ branches_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
-1);
gboolean ret = (name == NULL && ref == NULL);
-
+
g_free(name);
gitg_ref_free(ref);
@@ -375,14 +375,14 @@ on_branches_combo_changed(GtkComboBox *combo, GitgWindow *window)
{
if (gtk_combo_box_get_active(combo) < 2)
return;
-
+
gchar *name;
GtkTreeIter iter;
GtkTreeIter next;
-
+
gtk_combo_box_get_active_iter(combo, &iter);
next = iter;
-
+
if (!gtk_tree_model_iter_next(gtk_combo_box_get_model(combo), &next))
{
name = g_strdup("--all");
@@ -390,17 +390,17 @@ on_branches_combo_changed(GtkComboBox *combo, GitgWindow *window)
else
{
GitgRef *ref;
-
+
gtk_tree_model_get(gtk_combo_box_get_model(combo),
&iter,
COLUMN_BRANCHES_REF, &ref,
-1);
-
+
if (ref == NULL)
{
return;
}
-
+
name = g_strdup(gitg_ref_get_name(ref));
gitg_ref_free(ref);
}
@@ -423,12 +423,12 @@ build_branches_combo(GitgWindow *window, GtkBuilder *builder)
COLUMN_BRANCHES_NAME, _("Select branch"),
COLUMN_BRANCHES_REF, NULL,
-1);
-
+
gtk_combo_box_set_model(combo, GTK_TREE_MODEL(window->priv->branches_store));
gtk_combo_box_set_active(combo, 0);
-
+
gtk_combo_box_set_row_separator_func(combo, branches_separator_func, window, NULL);
-
+
g_signal_connect(combo, "changed", G_CALLBACK(on_branches_combo_changed), window);
}
@@ -440,11 +440,11 @@ restore_state(GitgWindow *window)
gint dh;
gtk_window_get_default_size(GTK_WINDOW(window), &dw, &dh);
-
+
gtk_window_set_default_size(GTK_WINDOW(window),
gitg_settings_get_window_width(settings, dw),
gitg_settings_get_window_height(settings, dh));
-
+
gitg_utils_restore_pane_position (GTK_PANED(window->priv->vpaned_main),
gitg_settings_get_vpaned_main_position(settings, -1),
FALSE);
@@ -478,7 +478,7 @@ update_dnd_status (GitgWindow *window, GitgRef *source, GitgRef *dest)
gchar *message = NULL;
GitgRefType source_type = gitg_ref_get_ref_type (source);
GitgRefType dest_type = gitg_ref_get_ref_type (dest);
-
+
if (source_type == GITG_REF_TYPE_BRANCH &&
dest_type== GITG_REF_TYPE_REMOTE)
{
@@ -506,12 +506,12 @@ update_dnd_status (GitgWindow *window, GitgRef *source, GitgRef *dest)
message = g_strdup_printf (_("Apply stash to local branch <%s>"),
gitg_ref_get_shortname (dest));
}
-
+
if (message)
{
gtk_statusbar_push (window->priv->statusbar, 0, message);
}
-
+
g_free (message);
}
}
@@ -560,11 +560,11 @@ static void
init_tree_view (GitgWindow *window, GtkBuilder *builder)
{
GtkTreeViewColumn *col = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "rv_column_subject"));
-
+
window->priv->renderer_path = GITG_CELL_RENDERER_PATH(gtk_builder_get_object(builder, "rv_renderer_subject"));
gtk_tree_view_column_set_cell_data_func(col, GTK_CELL_RENDERER(window->priv->renderer_path), (GtkTreeCellDataFunc)on_renderer_path, window, NULL);
-
+
gitg_dnd_enable (window->priv->tree_view, (GitgDndCallback)on_refs_dnd, window);
}
@@ -576,7 +576,7 @@ gitg_window_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
// Store widgets
GitgWindow *window = GITG_WINDOW(buildable);
-
+
// Insert menu from second ui file
GtkBuilder *b = gitg_utils_new_builder("gitg-ui.xml");
GtkUIManager *uiman = GTK_UI_MANAGER (gtk_builder_get_object(b, "uiman"));
@@ -593,19 +593,19 @@ gitg_window_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
gtk_box_pack_start(GTK_BOX(vbox), menu, FALSE, FALSE, 0);
gtk_box_reorder_child(GTK_BOX(vbox), menu, 0);
-
+
gtk_window_add_accel_group (GTK_WINDOW (window), gtk_ui_manager_get_accel_group (uiman));
window->priv->edit_group = GTK_ACTION_GROUP(gtk_builder_get_object(b, "action_group_menu_edit"));
gtk_builder_connect_signals(b, window);
- g_object_unref(b);
+ g_object_unref(b);
window->priv->vpaned_main = GTK_WIDGET(gtk_builder_get_object(builder, "vpaned_main"));
window->priv->hpaned_commit1 = GTK_WIDGET(gtk_builder_get_object(builder, "hpaned_commit1"));
window->priv->hpaned_commit2 = GTK_WIDGET(gtk_builder_get_object(builder, "hpaned_commit2"));
window->priv->vpaned_commit = GTK_WIDGET(gtk_builder_get_object(builder, "vpaned_commit"));
-
+
window->priv->notebook_main = GTK_NOTEBOOK(gtk_builder_get_object(builder, "notebook_main"));
window->priv->tree_view = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tree_view_rv"));
window->priv->statusbar = GTK_STATUSBAR(gtk_builder_get_object(builder, "statusbar"));
@@ -614,9 +614,9 @@ gitg_window_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
window->priv->commit_view = GITG_COMMIT_VIEW(gtk_builder_get_object(builder, "vpaned_commit"));
restore_state(window);
-
+
init_tree_view (window, builder);
-
+
// Intialize branches
build_branches_combo(window, builder);
@@ -629,14 +629,14 @@ gitg_window_parser_finished(GtkBuildable *buildable, GtkBuilder *builder)
// Create search entry
build_search_entry(window, builder);
-
+
gtk_builder_connect_signals(builder, window);
// Connect signals
GtkTreeSelection *selection = gtk_tree_view_get_selection(window->priv->tree_view);
g_signal_connect(selection, "changed", G_CALLBACK(on_selection_changed), window);
g_signal_connect(window->priv->revision_view, "parent-activated", G_CALLBACK(on_parent_activated), window);
-
+
g_signal_connect(window->priv->tree_view, "motion-notify-event", G_CALLBACK(on_tree_view_motion), window);
g_signal_connect(window->priv->tree_view, "button-release-event", G_CALLBACK(on_tree_view_button_release), window);
}
@@ -645,7 +645,7 @@ static void
gitg_window_buildable_iface_init(GtkBuildableIface *iface)
{
parent_iface = *iface;
-
+
iface->parser_finished = gitg_window_parser_finished;
}
@@ -654,7 +654,7 @@ save_state(GitgWindow *window)
{
GitgSettings *settings = gitg_settings_get_default();
GtkAllocation *allocation = &(GTK_WIDGET(window)->allocation);
-
+
gitg_settings_set_window_width(settings, allocation->width);
gitg_settings_set_window_height(settings, allocation->height);
@@ -663,19 +663,19 @@ save_state(GitgWindow *window)
gitg_settings_set_vpaned_main_position (settings,
gtk_paned_get_position(GTK_PANED(window->priv->vpaned_main)));
}
-
+
if (GTK_WIDGET_MAPPED (window->priv->vpaned_commit))
{
gitg_settings_set_vpaned_commit_position (settings,
gtk_paned_get_position(GTK_PANED(window->priv->vpaned_commit)));
}
-
+
if (GTK_WIDGET_MAPPED (window->priv->hpaned_commit1))
{
gitg_settings_set_hpaned_commit1_position (settings,
gtk_paned_get_position(GTK_PANED(window->priv->hpaned_commit1)));
}
-
+
if (GTK_WIDGET_MAPPED (window->priv->hpaned_commit2))
{
gitg_settings_set_hpaned_commit2_position (settings,
@@ -692,7 +692,7 @@ static gboolean
gitg_window_delete_event (GtkWidget *widget, GdkEventAny *event)
{
save_state(GITG_WINDOW (widget));
-
+
if (GTK_WIDGET_CLASS (parent_class)->delete_event)
{
GTK_WIDGET_CLASS (parent_class)->delete_event (widget, event);
@@ -707,13 +707,13 @@ static void
gitg_window_destroy(GtkObject *object)
{
GitgWindow *window = GITG_WINDOW(object);
-
+
if (!window->priv->destroy_has_run)
{
gtk_tree_view_set_model(window->priv->tree_view, NULL);
window->priv->destroy_has_run = TRUE;
}
-
+
if (GTK_OBJECT_CLASS(parent_class)->destroy)
GTK_OBJECT_CLASS(parent_class)->destroy(object);
}
@@ -743,15 +743,15 @@ gitg_window_class_init(GitgWindowClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS(klass);
GtkObjectClass *gtkobject_class = GTK_OBJECT_CLASS(klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
-
+
parent_class = g_type_class_peek_parent(klass);
-
+
object_class->finalize = gitg_window_finalize;
gtkobject_class->destroy = gitg_window_destroy;
widget_class->delete_event = gitg_window_delete_event;
-
+
widget_class->window_state_event = gitg_window_window_state_event;
-
+
g_type_class_add_private(object_class, sizeof(GitgWindowPrivate));
}
@@ -759,7 +759,7 @@ static void
gitg_window_init(GitgWindow *self)
{
self->priv = GITG_WINDOW_GET_PRIVATE(self);
-
+
self->priv->load_timer = g_timer_new();
self->priv->hand = gdk_cursor_new(GDK_HAND1);
}
@@ -772,7 +772,7 @@ on_begin_loading(GitgRunner *loader, GitgWindow *window)
gdk_cursor_unref(cursor);
gtk_statusbar_push(window->priv->statusbar, 0, _("Begin loading repository"));
-
+
g_timer_reset(window->priv->load_timer);
g_timer_start(window->priv->load_timer);
}
@@ -783,7 +783,7 @@ on_end_loading(GitgRunner *loader, gboolean cancelled, GitgWindow *window)
gchar *msg = g_strdup_printf(_("Loaded %d revisions in %.2fs"), gtk_tree_model_iter_n_children(GTK_TREE_MODEL(window->priv->repository), NULL), g_timer_elapsed(window->priv->load_timer, NULL));
gtk_statusbar_push(window->priv->statusbar, 0, msg);
-
+
g_free(msg);
gdk_window_set_cursor(GTK_WIDGET(window->priv->tree_view)->window, NULL);
}
@@ -801,7 +801,7 @@ static void
handle_no_gitdir(GitgWindow *window)
{
GtkWidget *dlg = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not find git repository"));
-
+
gtk_dialog_run(GTK_DIALOG(dlg));
gtk_widget_destroy(dlg);
}
@@ -814,20 +814,20 @@ create_repository(GitgWindow *window, gchar const *path, gboolean usewd)
if (path)
{
GFile *file = g_file_new_for_commandline_arg(path);
-
+
if (g_file_is_native(file) && g_file_query_exists(file, NULL))
{
gchar *p = g_file_get_path(file);
window->priv->repository = gitg_repository_new(p);
g_free(p);
-
+
if (!gitg_repository_get_path(window->priv->repository))
{
// Try current directory
path = NULL;
g_object_unref(window->priv->repository);
window->priv->repository = NULL;
-
+
ret = FALSE;
}
}
@@ -836,27 +836,27 @@ create_repository(GitgWindow *window, gchar const *path, gboolean usewd)
ret = FALSE;
path = NULL;
}
-
+
g_object_unref(file);
}
-
+
if (!path && usewd)
{
gchar *curdir = g_get_current_dir();
window->priv->repository = gitg_repository_new(curdir);
g_free(curdir);
-
+
if (!gitg_repository_get_path (window->priv->repository))
{
g_object_unref (window->priv->repository);
window->priv->repository = NULL;
-
+
ret = FALSE;
path = NULL;
}
}
-
- return ret;
+
+ return ret;
}
static int
@@ -886,7 +886,7 @@ sort_by_ref_type(GitgRef *a, GitgRef *b)
static void
clear_branches_combo(GitgWindow *window)
{
- GtkTreeIter iter;
+ GtkTreeIter iter;
if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(window->priv->branches_store), &iter, NULL, 1))
{
@@ -904,15 +904,15 @@ fill_branches_combo(GitgWindow *window)
return;
guint children = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(window->priv->branches_store), NULL);
-
+
if (children > 1)
return;
GSList *refs = gitg_repository_get_refs(window->priv->repository);
-
+
refs = g_slist_sort(refs, (GCompareFunc)sort_by_ref_type);
GSList *item;
-
+
GitgRefType prevtype = GITG_REF_TYPE_NONE;
GtkTreeIter iter;
GtkTreeIter parent;
@@ -920,11 +920,11 @@ fill_branches_combo(GitgWindow *window)
GtkTreeStore *store = window->priv->branches_store;
GitgRef *current_ref = gitg_repository_get_current_ref(window->priv->repository);
gboolean refset = FALSE;
-
+
for (item = refs; item; item = item->next)
{
GitgRef *ref = (GitgRef *)item->data;
-
+
if (!(gitg_ref_get_ref_type(ref) == GITG_REF_TYPE_REMOTE ||
gitg_ref_get_ref_type(ref) == GITG_REF_TYPE_BRANCH))
continue;
@@ -937,7 +937,7 @@ fill_branches_combo(GitgWindow *window)
COLUMN_BRANCHES_NAME, NULL,
COLUMN_BRANCHES_REF, NULL,
-1);
-
+
prevtype = gitg_ref_get_ref_type(ref);
}
@@ -962,7 +962,7 @@ fill_branches_combo(GitgWindow *window)
-1);
}
}
-
+
gtk_tree_store_append(window->priv->branches_store, &iter, &parent);
}
else
@@ -975,14 +975,14 @@ fill_branches_combo(GitgWindow *window)
COLUMN_BRANCHES_NAME, gitg_ref_get_shortname(ref),
COLUMN_BRANCHES_REF, ref,
-1);
-
+
if (!refset && gitg_ref_equal(current_ref, ref))
{
gtk_combo_box_set_active_iter(window->priv->combo_branches, &iter);
refset = TRUE;
}
}
-
+
gtk_tree_store_append(store, &iter, NULL);
gtk_tree_store_set(store,
&iter,
@@ -995,7 +995,7 @@ fill_branches_combo(GitgWindow *window)
COLUMN_BRANCHES_NAME, _("All branches"),
COLUMN_BRANCHES_REF, NULL,
-1);
-
+
if (current_ref == NULL)
{
gtk_combo_box_set_active_iter (window->priv->combo_branches, &iter);
@@ -1004,7 +1004,7 @@ fill_branches_combo(GitgWindow *window)
{
gtk_combo_box_set_active(window->priv->combo_branches, 0);
}
-
+
g_slist_foreach(refs, (GFunc)gitg_ref_free, NULL);
g_slist_free(refs);
}
@@ -1017,20 +1017,20 @@ update_window_title (GitgWindow *window)
gtk_window_set_title (GTK_WINDOW (window), _("gitg"));
return;
}
-
+
GitgRef *ref = gitg_repository_get_current_working_ref (window->priv->repository);
gchar *refname = NULL;
-
+
if (ref)
{
refname = g_strconcat (" (", gitg_ref_get_shortname (ref), ")", NULL);
}
-
+
gchar *basename = g_path_get_basename(gitg_repository_get_path(window->priv->repository));
gchar *title = g_strconcat(_("gitg"), " - ", basename, refname, NULL);
-
+
gtk_window_set_title(GTK_WINDOW(window), title);
-
+
g_free(basename);
g_free(title);
g_free (refname);
@@ -1055,7 +1055,7 @@ add_recent_item(GitgWindow *window)
gchar *groups[] = {"gitg", NULL};
gchar const *path = gitg_repository_get_path(window->priv->repository);
gchar *basename = g_path_get_basename(path);
-
+
data.display_name = basename;
data.app_name = "gitg";
data.mime_type = "inode/directory";
@@ -1065,7 +1065,7 @@ add_recent_item(GitgWindow *window)
GFile *file = g_file_new_for_path(gitg_repository_get_path(window->priv->repository));
gchar *uri = g_file_get_uri(file);
gtk_recent_manager_add_full(manager, uri, &data);
-
+
g_free(basename);
g_free(uri);
g_object_unref(file);
@@ -1081,29 +1081,29 @@ load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **
g_object_unref(window->priv->repository);
window->priv->repository = NULL;
-
+
gitg_repository_dialog_close ();
}
-
+
gboolean haspath = create_repository(window, path, usewd);
-
+
if (window->priv->repository && gitg_repository_get_path(window->priv->repository))
{
gtk_tree_view_set_model(window->priv->tree_view, GTK_TREE_MODEL(window->priv->repository));
GitgRunner *loader = gitg_repository_get_loader(window->priv->repository);
-
+
g_signal_connect(loader, "begin-loading", G_CALLBACK(on_begin_loading), window);
g_signal_connect(loader, "end-loading", G_CALLBACK(on_end_loading), window);
g_signal_connect(loader, "update", G_CALLBACK(on_update), window);
-
+
g_object_unref(loader);
-
+
gchar const **ar = argv;
if (!haspath && path)
{
ar = (gchar const **)g_new(gchar *, ++argc);
-
+
int i;
for (i = 0; i < argc - 1; ++i)
ar[i] = argv[i];
@@ -1113,9 +1113,9 @@ load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **
g_signal_connect(window->priv->repository, "load", G_CALLBACK(on_repository_load), window);
clear_branches_combo(window);
-
+
gitg_repository_load(window->priv->repository, argc, ar, NULL);
-
+
if (!haspath && path)
{
g_free(ar);
@@ -1123,7 +1123,7 @@ load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **
gitg_commit_view_set_repository(window->priv->commit_view, window->priv->repository);
gitg_revision_view_set_repository(window->priv->revision_view, window->priv->repository);
-
+
add_recent_item(window);
gtk_widget_set_sensitive(GTK_WIDGET(window->priv->notebook_main), TRUE);
}
@@ -1147,7 +1147,7 @@ void
gitg_window_load_repository(GitgWindow *window, gchar const *path, gint argc, gchar const **argv)
{
g_return_if_fail(GITG_IS_WINDOW(window));
-
+
load_repository(window, path, argc, argv, TRUE);
}
@@ -1155,7 +1155,7 @@ void
gitg_window_show_commit(GitgWindow *window)
{
g_return_if_fail(GITG_IS_WINDOW(window));
-
+
gtk_notebook_set_current_page(window->priv->notebook_main, 1);
}
@@ -1163,7 +1163,7 @@ GitgRepository *
gitg_window_get_repository(GitgWindow *window)
{
g_return_val_if_fail(GITG_IS_WINDOW(window), NULL);
-
+
return window->priv->repository;
}
@@ -1181,15 +1181,15 @@ on_open_dialog_response(GtkFileChooser *dialog, gint response, GitgWindow *windo
gtk_widget_destroy(GTK_WIDGET(dialog));
return;
}
-
+
gchar *uri = gtk_file_chooser_get_uri(dialog);
GFile *file = g_file_new_for_uri(uri);
gchar *path = g_file_get_path(file);
-
+
g_free(uri);
- g_object_unref(file);
+ g_object_unref(file);
gtk_widget_destroy(GTK_WIDGET(dialog));
-
+
load_repository(window, path, 0, NULL, FALSE);
g_free(path);
}
@@ -1202,7 +1202,7 @@ on_file_open(GtkAction *action, GitgWindow *window)
gtk_window_present(GTK_WINDOW(window->priv->open_dialog));
return;
}
-
+
window->priv->open_dialog = gtk_file_chooser_dialog_new(_("Open git repository"),
GTK_WINDOW(window),
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
@@ -1215,7 +1215,7 @@ on_file_open(GtkAction *action, GitgWindow *window)
gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(window->priv->open_dialog), TRUE);
g_object_add_weak_pointer(G_OBJECT(window->priv->open_dialog), (gpointer *)&(window->priv->open_dialog));
gtk_window_present(GTK_WINDOW(window->priv->open_dialog));
-
+
g_signal_connect(window->priv->open_dialog, "response", G_CALLBACK(on_open_dialog_response), window);
}
@@ -1261,7 +1261,7 @@ on_window_set_focus(GitgWindow *window, GtkWidget *widget)
gboolean cancopy = g_signal_lookup("copy-clipboard", G_OBJECT_TYPE(widget)) != 0;
gboolean selection = FALSE;
gboolean editable = FALSE;
-
+
if (GTK_IS_EDITABLE(widget))
{
selection = gtk_editable_get_selection_bounds(GTK_EDITABLE(widget), NULL, NULL);
@@ -1278,7 +1278,7 @@ gboolean
on_window_state_event(GtkWidget *widget, GdkEventWindowState *event, GitgWindow *window)
{
GitgSettings *settings = gitg_settings_get_default();
-
+
gitg_settings_set_window_state(settings, event->new_window_state);
return FALSE;
@@ -1289,9 +1289,9 @@ on_recent_open(GtkRecentChooser *chooser, GitgWindow *window)
{
GFile *file = g_file_new_for_uri(gtk_recent_chooser_get_current_uri(chooser));
gchar *path = g_file_get_path(file);
-
+
load_repository(window, path, 0, NULL, FALSE);
-
+
g_free(path);
g_object_unref(file);
}
@@ -1308,12 +1308,12 @@ email_activate_hook(GtkAboutDialog *dialog, gchar const *link, gpointer data)
{
gchar *uri;
gchar *escaped;
-
+
escaped = g_uri_escape_string(link, NULL, FALSE);
uri = g_strdup_printf("mailto:%s";, escaped);
-
+
gtk_show_uri(NULL, uri, GDK_CURRENT_TIME, NULL);
-
+
g_free(uri);
g_free(escaped);
}
@@ -1347,7 +1347,7 @@ on_help_about(GtkAction *action, GitgWindow *window)
gchar *path = gitg_dirs_get_data_filename("icons", "gitg.svg", NULL);
GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, NULL);
g_free(path);
-
+
if (!pixbuf)
{
path = gitg_dirs_get_data_filename("icons", "gitg128x128.png", NULL);
@@ -1364,7 +1364,7 @@ on_help_about(GtkAction *action, GitgWindow *window)
"logo", pixbuf,
"license", _(license),
NULL);
-
+
if (pixbuf)
g_object_unref(pixbuf);
}
@@ -1376,14 +1376,14 @@ find_lane_boundary(GitgWindow *window, GtkTreePath *path, gint cell_x, gchar con
GtkTreeIter iter;
guint width;
GitgRevision *revision;
-
+
gtk_tree_model_get_iter(model, &iter, path);
gtk_tree_model_get(model, &iter, 0, &revision, -1);
-
+
/* Determine lane at cell_x */
g_object_get(window->priv->renderer_path, "lane-width", &width, NULL);
guint laneidx = cell_x / width;
-
+
GSList *lanes = gitg_revision_get_lanes(revision);
GitgLane *lane = (GitgLane *)g_slist_nth_data(lanes, laneidx);
gboolean ret;
@@ -1399,7 +1399,7 @@ find_lane_boundary(GitgWindow *window, GtkTreePath *path, gint cell_x, gchar con
{
ret = FALSE;
}
-
+
gitg_revision_unref(revision);
return ret;
}
@@ -1425,7 +1425,7 @@ is_boundary_from_event(GitgWindow *window, GdkEventAny *event, gint x, gint y, g
{
if (path)
gtk_tree_path_free(path);
-
+
return FALSE;
}
@@ -1433,18 +1433,18 @@ is_boundary_from_event(GitgWindow *window, GdkEventAny *event, gint x, gint y, g
is actually placed */
gboolean ret = find_lane_boundary(window, path, cell_x, hash);
gtk_tree_path_free(path);
-
+
return ret;
}
static gboolean
on_tree_view_motion(GtkTreeView *treeview, GdkEventMotion *event, GitgWindow *window)
{
- if (is_boundary_from_event(window, (GdkEventAny *)event, event->x, event->y, NULL))
+ if (is_boundary_from_event(window, (GdkEventAny *)event, event->x, event->y, NULL))
gdk_window_set_cursor(GTK_WIDGET(treeview)->window, window->priv->hand);
else
gdk_window_set_cursor(GTK_WIDGET(treeview)->window, NULL);
-
+
return FALSE;
}
@@ -1455,10 +1455,10 @@ on_tree_view_button_release(GtkTreeView *treeview, GdkEventButton *event, GitgWi
return FALSE;
gchar const *hash;
-
+
if (!is_boundary_from_event(window, (GdkEventAny *)event, event->x, event->y, &hash))
return FALSE;
-
+
goto_hash(window, hash);
return TRUE;
}
@@ -1525,32 +1525,32 @@ get_tracked_ref (GitgWindow *window, GitgRef *branch, gchar **retremote, gchar *
gchar *merge;
gchar *var;
gchar *ret;
-
+
var = g_strconcat ("branch.", gitg_ref_get_shortname (branch), ".remote", NULL);
*retremote = gitg_config_get_value (config, var);
g_free (var);
-
+
if (!*retremote || !**retremote)
{
g_free (*retremote);
*retremote = NULL;
g_object_unref (config);
-
+
return;
}
-
+
var = g_strconcat ("branch.", gitg_ref_get_shortname (branch), ".merge", NULL);
merge = gitg_config_get_value (config, var);
g_free (var);
-
+
g_object_unref (config);
-
+
if (merge && g_str_has_prefix (merge, "refs/heads"))
{
*retbranch = g_strdup (merge + 11);
}
-
+
g_free (merge);
}
@@ -1592,21 +1592,21 @@ repository_has_ref (GitgWindow *window, gchar const *remote, GitgRef *ref)
{
GSList *refs = gitg_repository_get_refs (window->priv->repository);
gchar *combined = g_strconcat (remote, "/", gitg_ref_get_shortname (ref), NULL);
-
+
while (refs)
{
GitgRef *r = (GitgRef *)refs->data;
-
+
if (gitg_ref_get_ref_type (r) == GITG_REF_TYPE_REMOTE &&
strcmp (gitg_ref_get_shortname (r), combined) == 0)
{
g_free (combined);
return TRUE;
}
-
+
refs = g_slist_next (refs);
}
-
+
g_free (combined);
return FALSE;
}
@@ -1621,31 +1621,31 @@ update_merge_rebase (GitgWindow *window, GitgRef *ref)
}
GtkActionGroup *ac = window->priv->merge_rebase_action_group;
-
+
if (ac)
{
GList *actions = gtk_action_group_list_actions (ac);
GList *item;
-
+
for (item = actions; item; item = g_list_next (item))
{
gtk_action_group_remove_action (ac, (GtkAction *)item->data);
}
-
+
g_list_free (actions);
}
-
+
if (gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_BRANCH &&
gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_STASH)
{
return;
}
-
+
if (window->priv->merge_rebase_uid == 0)
{
window->priv->merge_rebase_uid = gtk_ui_manager_new_merge_id (window->priv->menus_ui_manager);
}
-
+
if (ac == NULL)
{
ac = gtk_action_group_new ("GitgMergeRebaseActions");
@@ -1654,23 +1654,23 @@ update_merge_rebase (GitgWindow *window, GitgRef *ref)
ac,
0);
}
-
+
GSList *refs = gitg_repository_get_refs (window->priv->repository);
GSList *item;
for (item = refs; item; item = g_slist_next (item))
{
GitgRef *r = GITG_REF (item->data);
-
+
if (gitg_ref_get_ref_type (r) == GITG_REF_TYPE_BRANCH && !gitg_ref_equal (r, ref))
{
gchar const *rname = gitg_ref_get_shortname (r);
-
+
if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_BRANCH)
{
gchar *rebase = g_strconcat ("Rebase", rname, "Action", NULL);
gchar *merge = g_strconcat ("Merge", rname, "Action", NULL);
-
+
GtkAction *rebaseac = gtk_action_new (rebase, rname, NULL, NULL);
GtkAction *mergeac = gtk_action_new (merge, rname, NULL, NULL);
@@ -1694,7 +1694,7 @@ update_merge_rebase (GitgWindow *window, GitgRef *ref)
gtk_action_group_add_action (ac, rebaseac);
gtk_action_group_add_action (ac, mergeac);
-
+
gchar *name = g_strconcat ("Rebase", rname, NULL);
gtk_ui_manager_add_ui (window->priv->menus_ui_manager,
@@ -1705,7 +1705,7 @@ update_merge_rebase (GitgWindow *window, GitgRef *ref)
GTK_UI_MANAGER_MENUITEM,
FALSE);
g_free (name);
-
+
name = g_strconcat ("Merge", rname, NULL);
gtk_ui_manager_add_ui (window->priv->menus_ui_manager,
@@ -1723,7 +1723,7 @@ update_merge_rebase (GitgWindow *window, GitgRef *ref)
else
{
gchar *stash = g_strconcat ("Stash", rname, "Action", NULL);
-
+
GtkAction *stashac = gtk_action_new (stash, rname, NULL, NULL);
g_object_set_data_full (G_OBJECT (stashac),
@@ -1737,7 +1737,7 @@ update_merge_rebase (GitgWindow *window, GitgRef *ref)
window);
gtk_action_group_add_action (ac, stashac);
-
+
gchar *name = g_strconcat ("Stash", rname, NULL);
gtk_ui_manager_add_ui (window->priv->menus_ui_manager,
@@ -1753,34 +1753,34 @@ update_merge_rebase (GitgWindow *window, GitgRef *ref)
}
}
}
-
+
g_slist_foreach (refs, (GFunc)gitg_ref_free, NULL);
g_slist_free (refs);
-
+
if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_BRANCH)
{
/* Get the tracked remote of this ref (if any) */
gchar *remote = NULL;
gchar *branch = NULL;
gchar *tracked = NULL;
-
+
gchar **remotes = gitg_repository_get_remotes (window->priv->repository);
gchar **ptr = remotes;
-
+
get_tracked_ref (window, ref, &remote, &branch);
-
+
if (remote)
{
tracked = g_strconcat (remote, "/", branch, NULL);
add_push_action (window, ac, tracked, remote, branch);
}
-
+
while (*ptr)
{
if (!tracked || !g_str_has_prefix (tracked, *ptr))
{
gchar *name;
-
+
if (repository_has_ref (window, *ptr, ref))
{
name = g_strconcat (*ptr, "/", gitg_ref_get_shortname (ref), NULL);
@@ -1789,7 +1789,7 @@ update_merge_rebase (GitgWindow *window, GitgRef *ref)
{
name = g_strconcat (*ptr, "/", gitg_ref_get_shortname (ref), " (", _("new"), ")", NULL);
}
-
+
add_push_action (window, ac, name, *ptr, gitg_ref_get_shortname (ref));
g_free (name);
@@ -1800,7 +1800,7 @@ update_merge_rebase (GitgWindow *window, GitgRef *ref)
g_free (tracked);
g_strfreev (remotes);
-
+
g_free (remote);
g_free (branch);
}
@@ -1815,28 +1815,28 @@ has_local_ref (GitgWindow *window,
GSList *refs = gitg_repository_get_refs (window->priv->repository);
GSList *item;
gboolean ret = FALSE;
-
+
for (item = refs; item; item = g_slist_next (item))
{
GitgRef *ref = GITG_REF (item->data);
-
+
if (gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_BRANCH)
{
continue;
}
-
+
gchar const *nm = gitg_ref_get_shortname (ref);
-
+
if (g_strcmp0 (name, nm) == 0)
{
ret = TRUE;
break;
}
}
-
+
g_slist_foreach (refs, (GFunc)gitg_ref_free, NULL);
g_slist_free (refs);
-
+
return ret;
}
@@ -1847,7 +1847,7 @@ popup_ref (GitgWindow *window, GdkEventButton *event)
gint cell_y;
GtkTreePath *path;
GtkTreeViewColumn *column;
-
+
GtkTreeView *tree_view = window->priv->tree_view;
if (!gtk_tree_view_get_path_at_pos (tree_view,
@@ -1860,20 +1860,20 @@ popup_ref (GitgWindow *window, GdkEventButton *event)
{
return FALSE;
}
-
+
GtkCellRenderer *cell = gitg_utils_find_cell_at_pos (tree_view, column, path, cell_x);
-
+
if (!cell || !GITG_IS_CELL_RENDERER_PATH (cell))
{
return FALSE;
}
-
+
GitgRef *ref = gitg_cell_renderer_path_get_ref_at_pos (GTK_WIDGET (tree_view),
GITG_CELL_RENDERER_PATH (cell),
cell_x,
NULL);
gtk_tree_path_free (path);
-
+
if (!ref || (gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_BRANCH &&
gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_REMOTE &&
gitg_ref_get_ref_type (ref) != GITG_REF_TYPE_STASH &&
@@ -1881,7 +1881,7 @@ popup_ref (GitgWindow *window, GdkEventButton *event)
{
return FALSE;
}
-
+
GtkWidget *popup = gtk_ui_manager_get_widget (window->priv->menus_ui_manager,
"/ui/ref_popup");
@@ -1896,7 +1896,7 @@ popup_ref (GitgWindow *window, GdkEventButton *event)
if (!has_local_ref (window, local))
{
gchar *label = g_strdup_printf (_("New local branch <%s>"), local);
-
+
gtk_action_set_label (checkout, label);
gtk_action_set_visible (checkout, TRUE);
g_free (label);
@@ -1905,7 +1905,7 @@ popup_ref (GitgWindow *window, GdkEventButton *event)
{
gtk_action_set_visible (checkout, FALSE);
}
-
+
g_free (local);
gtk_action_set_label (remove, _("Remove remote branch"));
gtk_action_set_visible (rename, FALSE);
@@ -1916,10 +1916,10 @@ popup_ref (GitgWindow *window, GdkEventButton *event)
gtk_action_set_label (remove, _("Remove local branch"));
gtk_action_set_visible (rename, TRUE);
gtk_action_set_label (rename, _("Rename local branch"));
-
+
GitgRef *working = gitg_repository_get_current_working_ref (window->priv->repository);
- gtk_action_set_visible (checkout, !gitg_ref_equal (working, ref));
+ gtk_action_set_visible (checkout, !gitg_ref_equal (working, ref));
}
else if (gitg_ref_get_ref_type (ref) == GITG_REF_TYPE_STASH)
{
@@ -1931,11 +1931,11 @@ popup_ref (GitgWindow *window, GdkEventButton *event)
{
gtk_action_set_label (remove, _("Remove tag"));
gtk_action_set_visible (rename, FALSE);
-
+
if (!has_local_ref (window, gitg_ref_get_shortname (ref)))
{
gchar *label = g_strdup_printf (_("New local branch <%s>"), gitg_ref_get_shortname (ref));
-
+
gtk_action_set_label (checkout, label);
gtk_action_set_visible (checkout, TRUE);
g_free (label);
@@ -1945,7 +1945,7 @@ popup_ref (GitgWindow *window, GdkEventButton *event)
gtk_action_set_visible (checkout, FALSE);
}
}
-
+
update_merge_rebase (window, ref);
window->priv->popup_refs[0] = ref;
@@ -1963,17 +1963,17 @@ static gboolean
popup_revision (GitgWindow *window, GdkEventButton *event)
{
GtkTreeSelection *selection;
-
+
selection = gtk_tree_view_get_selection (window->priv->tree_view);
GList *rows = gtk_tree_selection_get_selected_rows (selection, NULL);
gboolean show = FALSE;
-
+
if (rows)
{
GtkAction *tag = gtk_ui_manager_get_action (window->priv->menus_ui_manager, "/ui/revision_popup/TagAction");
GtkAction *squash = gtk_ui_manager_get_action (window->priv->menus_ui_manager, "/ui/revision_popup/SquashAction");
-
+
if (!rows->next)
{
show = TRUE;
@@ -1987,15 +1987,15 @@ popup_revision (GitgWindow *window, GdkEventButton *event)
gtk_action_set_visible (tag, FALSE);
}
}
-
+
g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL);
g_list_free (rows);
-
+
if (!show)
{
return FALSE;
}
-
+
gtk_menu_popup (GTK_MENU (gtk_ui_manager_get_widget (window->priv->menus_ui_manager, "/ui/revision_popup")),
NULL,
NULL,
@@ -2003,7 +2003,7 @@ popup_revision (GitgWindow *window, GdkEventButton *event)
window,
event->button,
event->time);
-
+
return TRUE;
}
@@ -2014,7 +2014,7 @@ on_tree_view_rv_button_press_event (GtkWidget *widget, GdkEventButton *event, Gi
{
return popup_ref (window, event) || popup_revision (window, event);
}
-
+
return FALSE;
}
@@ -2043,7 +2043,7 @@ void
on_rebase_branch_action_activate (GtkAction *action, GitgWindow *window)
{
gint source;
-
+
if (gitg_ref_get_ref_type (window->priv->popup_refs[0]) == GITG_REF_TYPE_REMOTE)
{
source = 1;
@@ -2052,7 +2052,7 @@ on_rebase_branch_action_activate (GtkAction *action, GitgWindow *window)
{
source = 0;
}
-
+
add_branch_action (window, gitg_branch_actions_rebase (window,
window->priv->popup_refs[source],
window->priv->popup_refs[!source]));
@@ -2086,18 +2086,18 @@ static void
on_tag_dialog_response (GtkWidget *dialog, gint response, TagInfo *info)
{
gboolean destroy = TRUE;
-
+
if (response == GTK_RESPONSE_ACCEPT)
{
gchar const *name = gtk_entry_get_text (GTK_ENTRY (gtk_builder_get_object (info->builder, "entry_name")));
-
+
GtkTextView *view = GTK_TEXT_VIEW (gtk_builder_get_object (info->builder, "text_view_message"));
GtkTextIter start;
GtkTextIter end;
-
+
gtk_text_buffer_get_bounds (gtk_text_view_get_buffer (view), &start, &end);
gchar *message = gtk_text_iter_get_text (&start, &end);
-
+
if (!*name || !*message)
{
GtkWidget *dlg = gtk_message_dialog_new (GTK_WINDOW (dialog),
@@ -2107,10 +2107,10 @@ on_tag_dialog_response (GtkWidget *dialog, gint response, TagInfo *info)
_("Not all fields are correctly filled in"));
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg),
_("Please make sure to fill in both the tag name and the commit message"));
-
+
g_signal_connect (dlg, "response", G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (dlg);
-
+
destroy = FALSE;
}
else
@@ -2128,14 +2128,14 @@ on_tag_dialog_response (GtkWidget *dialog, gint response, TagInfo *info)
}
g_free (sha1);
-
+
GitgPreferences *preferences = gitg_preferences_get_default ();
g_object_set (preferences, "hidden-sign-tag", sign, NULL);
}
-
+
g_free (message);
}
-
+
if (destroy)
{
g_slice_free (TagInfo, info);
@@ -2150,47 +2150,47 @@ on_revision_tag_activate (GtkAction *action, GitgWindow *window)
{
GtkTreeSelection *selection;
GtkTreeModel *model;
-
+
selection = gtk_tree_view_get_selection (window->priv->tree_view);
GList *rows = gtk_tree_selection_get_selected_rows (selection, &model);
-
+
GitgPreferences *preferences = gitg_preferences_get_default ();
if (rows && !rows->next)
{
GtkBuilder *builder = gitg_utils_new_builder ("gitg-tag.ui");
GtkWidget *widget = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_tag"));
-
+
GtkToggleButton *toggle = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "check_button_sign"));
-
+
gboolean active = TRUE;
-
+
g_object_get (preferences, "hidden-sign-tag", &active, NULL);
gtk_toggle_button_set_active (toggle, active);
-
+
gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (window));
-
+
GtkTreeIter iter;
GitgRevision *rev;
-
+
gtk_tree_model_get_iter (model, &iter, (GtkTreePath *)rows->data);
gtk_tree_model_get (model, &iter, 0, &rev, -1);
-
+
TagInfo *info = g_slice_new (TagInfo);
info->revision = gitg_revision_ref (rev);
info->window = window;
info->builder = builder;
-
+
g_signal_connect (widget,
"response",
G_CALLBACK (on_tag_dialog_response),
info);
gtk_widget_show (widget);
-
+
gtk_widget_grab_focus (GTK_WIDGET (gtk_builder_get_object (builder, "entry_name")));
}
-
+
g_list_foreach (rows, (GFunc)gtk_tree_path_free, NULL);
g_list_free (rows);
}
diff --git a/gitg/gitg-window.h b/gitg/gitg-window.h
index 58c70dc..e4e21a1 100644
--- a/gitg/gitg-window.h
+++ b/gitg/gitg-window.h
@@ -42,7 +42,7 @@ typedef struct _GitgWindowPrivate GitgWindowPrivate;
struct _GitgWindow {
GtkWindow parent;
-
+
GitgWindowPrivate *priv;
};
diff --git a/gitg/gitg.c b/gitg/gitg.c
index da1a6d7..5132cf2 100644
--- a/gitg/gitg.c
+++ b/gitg/gitg.c
@@ -59,21 +59,21 @@ parse_options(int *argc, char ***argv)
{
GError *error = NULL;
GOptionContext *context;
-
+
context = g_option_context_new(_("- git repository viewer"));
-
+
// Ignore unknown options so we can pass them to git
g_option_context_set_ignore_unknown_options(context, TRUE);
g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE);
g_option_context_add_group(context, gtk_get_option_group (TRUE));
-
+
if (!g_option_context_parse(context, argc, argv, &error))
{
g_print("option parsing failed: %s\n", error->message);
g_error_free(error);
exit(1);
}
-
+
g_option_context_free(context);
}
@@ -88,7 +88,7 @@ static GitgWindow *
build_ui()
{
GtkBuilder *builder = gitg_utils_new_builder("gitg-window.ui");
-
+
GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder, "window"));
gtk_widget_show_all(window);
@@ -105,18 +105,18 @@ set_language_search_path()
gchar const * const *orig = gtk_source_language_manager_get_search_path(manager);
gchar const **dirs = g_new0(gchar const *, g_strv_length((gchar **)orig) + 2);
guint i = 0;
-
+
while (orig[i])
{
dirs[i + 1] = orig[i];
++i;
}
-
+
gchar *path = gitg_dirs_get_data_filename("language-specs", NULL);
dirs[0] = path;
gtk_source_language_manager_set_search_path(manager, (gchar **)dirs);
g_free(path);
-
+
g_free(dirs);
}
@@ -124,7 +124,7 @@ static void
set_style_scheme_search_path()
{
GtkSourceStyleSchemeManager *manager = gtk_source_style_scheme_manager_get_default();
-
+
gchar *path = gitg_dirs_get_data_filename("styles", NULL);
gtk_source_style_scheme_manager_prepend_search_path(manager, path);
g_free(path);
@@ -142,10 +142,10 @@ set_icons()
"gitg128x128.png",
NULL
};
-
+
int i;
GList *icons = NULL;
-
+
for (i = 0; icon_infos[i]; ++i)
{
gchar *filename = gitg_dirs_get_data_filename("icons", icon_infos[i], NULL);
@@ -155,7 +155,7 @@ set_icons()
if (pixbuf)
icons = g_list_prepend(icons, pixbuf);
}
-
+
gtk_window_set_default_icon_list(icons);
g_list_foreach(icons, (GFunc)g_object_unref, NULL);
@@ -166,37 +166,37 @@ int
main(int argc, char **argv)
{
g_thread_init(NULL);
-
+
gitg_debug_init();
bindtextdomain(GETTEXT_PACKAGE, GITG_LOCALEDIR);
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
textdomain(GETTEXT_PACKAGE);
-
+
g_set_prgname("gitg");
-
+
/* Translators: this is the application name as in g_set_application_name */
g_set_application_name(_("gitg"));
gitg_dirs_initialize(argc, argv);
gtk_init(&argc, &argv);
parse_options(&argc, &argv);
-
+
set_language_search_path();
set_style_scheme_search_path();
set_icons();
GitgSettings *settings = gitg_settings_get_default();
-
+
GitgWindow *window = build_ui();
gitg_window_load_repository(window, argc > 1 ? argv[1] : NULL, argc - 2, (gchar const **)&argv[2]);
-
+
if (commit_mode)
gitg_window_show_commit(window);
-
+
gtk_main();
/* Finalize settings */
- g_object_unref(settings);
+ g_object_unref(settings);
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]