[libgit2-glib] Port GgitCheckoutOptions to G_DECLARE_DERIVABLE_TYPE macro
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgit2-glib] Port GgitCheckoutOptions to G_DECLARE_DERIVABLE_TYPE macro
- Date: Tue, 14 Jul 2015 20:35:12 +0000 (UTC)
commit c04fa26a2e83ef2132db0caa84452d9db2628947
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Tue Jul 14 22:34:50 2015 +0200
Port GgitCheckoutOptions to G_DECLARE_DERIVABLE_TYPE macro
libgit2-glib/ggit-autocleanup.h | 1 -
libgit2-glib/ggit-checkout-options.c | 312 ++++++++++++++++++--------
libgit2-glib/ggit-checkout-options.h | 21 +--
libgit2-glib/ggit-cherry-pick-options.h | 1 +
libgit2-glib/ggit-revert-options.h | 1 +
libgit2-glib/ggit-submodule-update-options.h | 1 +
libgit2-glib/ggit-types.h | 7 -
7 files changed, 224 insertions(+), 120 deletions(-)
---
diff --git a/libgit2-glib/ggit-autocleanup.h b/libgit2-glib/ggit-autocleanup.h
index dbee71b..f45b202 100644
--- a/libgit2-glib/ggit-autocleanup.h
+++ b/libgit2-glib/ggit-autocleanup.h
@@ -61,7 +61,6 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitBlameHunk, ggit_blame_hunk_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitBlameOptions, ggit_blame_options_free)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitBlobOutputStream, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitBranchEnumerator, ggit_branch_enumerator_unref)
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitCheckoutOptions, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitCherryPickOptions, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitCloneOptions, ggit_clone_options_free)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitCommit, g_object_unref)
diff --git a/libgit2-glib/ggit-checkout-options.c b/libgit2-glib/ggit-checkout-options.c
index 658f359..a13a16f 100644
--- a/libgit2-glib/ggit-checkout-options.c
+++ b/libgit2-glib/ggit-checkout-options.c
@@ -1,11 +1,35 @@
+/*
+ * ggit-checkout-options.c
+ * This file is part of libgit2-glib
+ *
+ * Copyright (C) 2013 - Ignacio Casal Quinteiro
+ *
+ * libgit2-glib is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * libgit2-glib is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with libgit2-glib. If not, see <http://www.gnu.org/licenses/>.
+ */
+
#include "ggit-checkout-options.h"
#include "ggit-enum-types.h"
#include "ggit-tree.h"
#include "ggit-diff-file.h"
-#define GGIT_CHECKOUT_OPTIONS_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object),
GGIT_TYPE_CHECKOUT_OPTIONS, GgitCheckoutOptionsPrivate))
+/**
+ * GgitCheckoutOptions:
+ *
+ * Represents the options used when doign a checkout.
+ */
-struct _GgitCheckoutOptionsPrivate
+typedef struct _GgitCheckoutOptionsPrivate
{
git_checkout_options options;
@@ -16,9 +40,9 @@ struct _GgitCheckoutOptionsPrivate
gchar *ancestor_label;
gchar *our_label;
gchar *their_label;
-};
+} GgitCheckoutOptionsPrivate;
-G_DEFINE_TYPE (GgitCheckoutOptions, ggit_checkout_options, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_PRIVATE (GgitCheckoutOptions, ggit_checkout_options, G_TYPE_OBJECT)
enum
{
@@ -40,16 +64,18 @@ static void
ggit_checkout_options_finalize (GObject *object)
{
GgitCheckoutOptions *options;
+ GgitCheckoutOptionsPrivate *priv;
options = GGIT_CHECKOUT_OPTIONS (object);
+ priv = ggit_checkout_options_get_instance_private (options);
- g_strfreev (options->priv->paths);
- g_clear_object (&options->priv->baseline);
+ g_strfreev (priv->paths);
+ g_clear_object (&priv->baseline);
- g_free (options->priv->target_directory);
- g_free (options->priv->ancestor_label);
- g_free (options->priv->our_label);
- g_free (options->priv->their_label);
+ g_free (priv->target_directory);
+ g_free (priv->ancestor_label);
+ g_free (priv->our_label);
+ g_free (priv->their_label);
G_OBJECT_CLASS (ggit_checkout_options_parent_class)->finalize (object);
}
@@ -60,46 +86,49 @@ ggit_checkout_options_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- GgitCheckoutOptions *self = GGIT_CHECKOUT_OPTIONS (object);
+ GgitCheckoutOptions *options = GGIT_CHECKOUT_OPTIONS (object);
+ GgitCheckoutOptionsPrivate *priv;
+
+ priv = ggit_checkout_options_get_instance_private (options);
switch (prop_id)
{
case PROP_STRATEGY:
- self->priv->options.checkout_strategy = g_value_get_flags (value);
+ priv->options.checkout_strategy = g_value_get_flags (value);
break;
case PROP_DISABLE_FILTERS:
- self->priv->options.disable_filters = g_value_get_boolean (value);
+ priv->options.disable_filters = g_value_get_boolean (value);
break;
case PROP_DIR_MODE:
- self->priv->options.dir_mode = g_value_get_uint (value);
+ priv->options.dir_mode = g_value_get_uint (value);
break;
case PROP_FILE_MODE:
- self->priv->options.file_mode = g_value_get_uint (value);
+ priv->options.file_mode = g_value_get_uint (value);
break;
case PROP_FILE_OPEN_FLAGS:
- self->priv->options.file_open_flags = g_value_get_int (value);
+ priv->options.file_open_flags = g_value_get_int (value);
break;
case PROP_NOTIFY_FLAGS:
- self->priv->options.notify_flags = g_value_get_flags (value);
+ priv->options.notify_flags = g_value_get_flags (value);
break;
case PROP_BASELINE:
- ggit_checkout_options_set_baseline (self,
+ ggit_checkout_options_set_baseline (options,
g_value_get_object (value));
break;
case PROP_TARGET_DIRECTORY:
- ggit_checkout_options_set_target_directory (self,
+ ggit_checkout_options_set_target_directory (options,
g_value_get_string (value));
break;
case PROP_ANCESTOR_LABEL:
- ggit_checkout_options_set_ancestor_label (self,
+ ggit_checkout_options_set_ancestor_label (options,
g_value_get_string (value));
break;
case PROP_OUR_LABEL:
- ggit_checkout_options_set_our_label (self,
+ ggit_checkout_options_set_our_label (options,
g_value_get_string (value));
break;
case PROP_THEIR_LABEL:
- ggit_checkout_options_set_their_label (self,
+ ggit_checkout_options_set_their_label (options,
g_value_get_string (value));
break;
default:
@@ -114,42 +143,45 @@ ggit_checkout_options_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- GgitCheckoutOptions *self = GGIT_CHECKOUT_OPTIONS (object);
+ GgitCheckoutOptions *options = GGIT_CHECKOUT_OPTIONS (object);
+ GgitCheckoutOptionsPrivate *priv;
+
+ priv = ggit_checkout_options_get_instance_private (options);
switch (prop_id)
{
case PROP_STRATEGY:
- g_value_set_flags (value, self->priv->options.checkout_strategy);
+ g_value_set_flags (value, priv->options.checkout_strategy);
break;
case PROP_DISABLE_FILTERS:
- g_value_set_boolean (value, self->priv->options.disable_filters);
+ g_value_set_boolean (value, priv->options.disable_filters);
break;
case PROP_DIR_MODE:
- g_value_set_uint (value, self->priv->options.dir_mode);
+ g_value_set_uint (value, priv->options.dir_mode);
break;
case PROP_FILE_MODE:
- g_value_set_uint (value, self->priv->options.file_mode);
+ g_value_set_uint (value, priv->options.file_mode);
break;
case PROP_FILE_OPEN_FLAGS:
- g_value_set_int (value, self->priv->options.file_open_flags);
+ g_value_set_int (value, priv->options.file_open_flags);
break;
case PROP_NOTIFY_FLAGS:
- g_value_set_flags (value, self->priv->options.notify_flags);
+ g_value_set_flags (value, priv->options.notify_flags);
break;
case PROP_BASELINE:
- g_value_set_object (value, self->priv->baseline);
+ g_value_set_object (value, priv->baseline);
break;
case PROP_TARGET_DIRECTORY:
- g_value_set_string (value, self->priv->target_directory);
+ g_value_set_string (value, priv->target_directory);
break;
case PROP_ANCESTOR_LABEL:
- g_value_set_string (value, self->priv->ancestor_label);
+ g_value_set_string (value, priv->ancestor_label);
break;
case PROP_OUR_LABEL:
- g_value_set_string (value, self->priv->our_label);
+ g_value_set_string (value, priv->our_label);
break;
case PROP_THEIR_LABEL:
- g_value_set_string (value, self->priv->their_label);
+ g_value_set_string (value, priv->their_label);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -209,20 +241,21 @@ notify_callback_wrapper (git_checkout_notify_t flags,
static void
ggit_checkout_options_constructed (GObject *object)
{
- GgitCheckoutOptions *options;
+ GgitCheckoutOptions *options = GGIT_CHECKOUT_OPTIONS (object);
+ GgitCheckoutOptionsPrivate *priv;
- options = GGIT_CHECKOUT_OPTIONS (object);
+ priv = ggit_checkout_options_get_instance_private (options);
if (GGIT_CHECKOUT_OPTIONS_GET_CLASS (object)->progress != NULL)
{
- options->priv->options.progress_cb = progress_callback_wrapper;
- options->priv->options.progress_payload = options;
+ priv->options.progress_cb = progress_callback_wrapper;
+ priv->options.progress_payload = options;
}
if (GGIT_CHECKOUT_OPTIONS_GET_CLASS (object)->notify != NULL)
{
- options->priv->options.notify_cb = notify_callback_wrapper;
- options->priv->options.notify_payload = options;
+ priv->options.notify_cb = notify_callback_wrapper;
+ priv->options.notify_payload = options;
}
}
@@ -239,8 +272,6 @@ ggit_checkout_options_class_init (GgitCheckoutOptionsClass *klass)
object_class->constructed = ggit_checkout_options_constructed;
- g_type_class_add_private (object_class, sizeof (GgitCheckoutOptionsPrivate));
-
/**
* GgitCheckoutOptions:strategy: (type GgitCheckoutStrategy):
*
@@ -360,11 +391,13 @@ ggit_checkout_options_class_init (GgitCheckoutOptionsClass *klass)
}
static void
-ggit_checkout_options_init (GgitCheckoutOptions *self)
+ggit_checkout_options_init (GgitCheckoutOptions *options)
{
- self->priv = GGIT_CHECKOUT_OPTIONS_GET_PRIVATE (self);
+ GgitCheckoutOptionsPrivate *priv;
+
+ priv = ggit_checkout_options_get_instance_private (options);
- git_checkout_init_options (&self->priv->options, GIT_CHECKOUT_OPTIONS_VERSION);
+ git_checkout_init_options (&priv->options, GIT_CHECKOUT_OPTIONS_VERSION);
}
/**
@@ -384,14 +417,11 @@ ggit_checkout_options_new ()
const git_checkout_options *
_ggit_checkout_options_get_checkout_options (GgitCheckoutOptions *options)
{
- if (options != NULL)
- {
- return &options->priv->options;
- }
- else
- {
- return NULL;
- }
+ GgitCheckoutOptionsPrivate *priv;
+
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return (options != NULL) ? &priv->options : NULL;
}
/**
@@ -406,9 +436,13 @@ _ggit_checkout_options_get_checkout_options (GgitCheckoutOptions *options)
GgitCheckoutStrategy
ggit_checkout_options_get_strategy (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), 0);
- return (GgitCheckoutStrategy)options->priv->options.checkout_strategy;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return (GgitCheckoutStrategy)priv->options.checkout_strategy;
}
/**
@@ -423,9 +457,13 @@ void
ggit_checkout_options_set_strategy (GgitCheckoutOptions *options,
GgitCheckoutStrategy strategy)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- options->priv->options.checkout_strategy = strategy;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ priv->options.checkout_strategy = strategy;
g_object_notify (G_OBJECT (options), "strategy");
}
@@ -441,9 +479,13 @@ ggit_checkout_options_set_strategy (GgitCheckoutOptions *options,
gboolean
ggit_checkout_options_get_disable_filters (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), FALSE);
- return (gboolean)options->priv->options.disable_filters;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return (gboolean)priv->options.disable_filters;
}
/**
@@ -458,9 +500,13 @@ void
ggit_checkout_options_set_disable_filters (GgitCheckoutOptions *options,
gboolean disable)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- options->priv->options.disable_filters = (gboolean)disable;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ priv->options.disable_filters = (gboolean)disable;
g_object_notify (G_OBJECT (options), "disable-filters");
}
@@ -476,9 +522,13 @@ ggit_checkout_options_set_disable_filters (GgitCheckoutOptions *options,
guint
ggit_checkout_options_get_dir_mode (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), 0);
- return (guint)options->priv->options.dir_mode;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return (guint)priv->options.dir_mode;
}
/**
@@ -493,9 +543,13 @@ void
ggit_checkout_options_set_dir_mode (GgitCheckoutOptions *options,
guint dir_mode)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- options->priv->options.dir_mode = dir_mode;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ priv->options.dir_mode = dir_mode;
g_object_notify (G_OBJECT (options), "dir-mode");
}
@@ -511,9 +565,13 @@ ggit_checkout_options_set_dir_mode (GgitCheckoutOptions *options,
guint
ggit_checkout_options_get_file_mode (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), 0);
- return (guint)options->priv->options.file_mode;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return (guint)priv->options.file_mode;
}
/**
@@ -528,9 +586,13 @@ void
ggit_checkout_options_set_file_mode (GgitCheckoutOptions *options,
guint file_mode)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- options->priv->options.file_mode = file_mode;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ priv->options.file_mode = file_mode;
g_object_notify (G_OBJECT (options), "file-mode");
}
@@ -547,9 +609,13 @@ ggit_checkout_options_set_file_mode (GgitCheckoutOptions *options,
gint
ggit_checkout_options_get_file_open_flags (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), 0);
- return options->priv->options.file_open_flags;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return priv->options.file_open_flags;
}
/**
@@ -565,9 +631,13 @@ void
ggit_checkout_options_set_file_open_flags (GgitCheckoutOptions *options,
gint flags)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- options->priv->options.file_open_flags = flags;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ priv->options.file_open_flags = flags;
g_object_notify (G_OBJECT (options), "file-open-flags");
}
@@ -583,9 +653,13 @@ ggit_checkout_options_set_file_open_flags (GgitCheckoutOptions *options,
GgitCheckoutNotifyFlags
ggit_checkout_options_get_notify_flags (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), 0);
- return (GgitCheckoutNotifyFlags)options->priv->options.notify_flags;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return (GgitCheckoutNotifyFlags)priv->options.notify_flags;
}
/**
@@ -600,9 +674,13 @@ void
ggit_checkout_options_set_notify_flags (GgitCheckoutOptions *options,
GgitCheckoutNotifyFlags flags)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- options->priv->options.notify_flags = flags;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ priv->options.notify_flags = flags;
g_object_notify (G_OBJECT (options), "notify-flags");
}
@@ -618,9 +696,13 @@ ggit_checkout_options_set_notify_flags (GgitCheckoutOptions *options,
const gchar * const *
ggit_checkout_options_get_paths (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), NULL);
- return (const gchar * const *)options->priv->paths;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return (const gchar * const *)priv->paths;
}
/**
@@ -636,13 +718,17 @@ void
ggit_checkout_options_set_paths (GgitCheckoutOptions *options,
const gchar * const *paths)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- g_strfreev (options->priv->paths);
+ priv = ggit_checkout_options_get_instance_private (options);
- options->priv->paths = g_strdupv ((gchar **)paths);
- options->priv->options.paths.strings = options->priv->paths;
- options->priv->options.paths.count = g_strv_length (options->priv->paths);
+ g_strfreev (priv->paths);
+
+ priv->paths = g_strdupv ((gchar **)paths);
+ priv->options.paths.strings = priv->paths;
+ priv->options.paths.count = g_strv_length (priv->paths);
g_object_notify (G_OBJECT (options), "paths");
}
@@ -659,9 +745,13 @@ ggit_checkout_options_set_paths (GgitCheckoutOptions *options,
GgitTree *
ggit_checkout_options_get_baseline (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), NULL);
- return options->priv->baseline;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return priv->baseline;
}
/**
@@ -677,23 +767,27 @@ void
ggit_checkout_options_set_baseline (GgitCheckoutOptions *options,
GgitTree *tree)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
g_return_if_fail (tree == NULL || GGIT_IS_TREE (tree));
- if (options->priv->baseline)
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ if (priv->baseline)
{
- g_object_unref (options->priv->baseline);
+ g_object_unref (priv->baseline);
}
if (tree)
{
- options->priv->baseline = g_object_ref (tree);
- options->priv->options.baseline = _ggit_native_get (tree);
+ priv->baseline = g_object_ref (tree);
+ priv->options.baseline = _ggit_native_get (tree);
}
else
{
- options->priv->baseline = NULL;
- options->priv->options.baseline = NULL;
+ priv->baseline = NULL;
+ priv->options.baseline = NULL;
}
g_object_notify (G_OBJECT (options), "baseline");
@@ -711,9 +805,13 @@ ggit_checkout_options_set_baseline (GgitCheckoutOptions *options,
const gchar *
ggit_checkout_options_get_target_directory (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), NULL);
- return options->priv->target_directory;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return priv->target_directory;
}
/**
@@ -728,12 +826,16 @@ void
ggit_checkout_options_set_target_directory (GgitCheckoutOptions *options,
const gchar *directory)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- g_free (options->priv->target_directory);
- options->priv->target_directory = g_strdup (directory);
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ g_free (priv->target_directory);
+ priv->target_directory = g_strdup (directory);
- options->priv->options.target_directory = options->priv->target_directory;
+ priv->options.target_directory = priv->target_directory;
g_object_notify (G_OBJECT (options), "target-directory");
}
@@ -750,9 +852,13 @@ ggit_checkout_options_set_target_directory (GgitCheckoutOptions *options,
const gchar *
ggit_checkout_options_get_ancestor_label (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), NULL);
- return options->priv->ancestor_label;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return priv->ancestor_label;
}
/**
@@ -767,12 +873,16 @@ void
ggit_checkout_options_set_ancestor_label (GgitCheckoutOptions *options,
const gchar *label)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- g_free (options->priv->ancestor_label);
- options->priv->ancestor_label = g_strdup (label);
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ g_free (priv->ancestor_label);
+ priv->ancestor_label = g_strdup (label);
- options->priv->options.ancestor_label = options->priv->ancestor_label;
+ priv->options.ancestor_label = priv->ancestor_label;
g_object_notify (G_OBJECT (options), "ancestor-label");
}
@@ -789,9 +899,13 @@ ggit_checkout_options_set_ancestor_label (GgitCheckoutOptions *options,
const gchar *
ggit_checkout_options_get_our_label (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), NULL);
- return options->priv->our_label;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return priv->our_label;
}
/**
@@ -806,12 +920,16 @@ void
ggit_checkout_options_set_our_label (GgitCheckoutOptions *options,
const gchar *label)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- g_free (options->priv->our_label);
- options->priv->our_label = g_strdup (label);
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ g_free (priv->our_label);
+ priv->our_label = g_strdup (label);
- options->priv->options.our_label = options->priv->our_label;
+ priv->options.our_label = priv->our_label;
g_object_notify (G_OBJECT (options), "our-label");
}
@@ -828,9 +946,13 @@ ggit_checkout_options_set_our_label (GgitCheckoutOptions *options,
const gchar *
ggit_checkout_options_get_their_label (GgitCheckoutOptions *options)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options), NULL);
- return options->priv->their_label;
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ return priv->their_label;
}
/**
@@ -845,12 +967,16 @@ void
ggit_checkout_options_set_their_label (GgitCheckoutOptions *options,
const gchar *label)
{
+ GgitCheckoutOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_CHECKOUT_OPTIONS (options));
- g_free (options->priv->their_label);
- options->priv->their_label = g_strdup (label);
+ priv = ggit_checkout_options_get_instance_private (options);
+
+ g_free (priv->their_label);
+ priv->their_label = g_strdup (label);
- options->priv->options.their_label = options->priv->their_label;
+ priv->options.their_label = priv->their_label;
g_object_notify (G_OBJECT (options), "their-label");
}
diff --git a/libgit2-glib/ggit-checkout-options.h b/libgit2-glib/ggit-checkout-options.h
index 153273c..3568585 100644
--- a/libgit2-glib/ggit-checkout-options.h
+++ b/libgit2-glib/ggit-checkout-options.h
@@ -28,23 +28,8 @@
G_BEGIN_DECLS
-#define GGIT_TYPE_CHECKOUT_OPTIONS (ggit_checkout_options_get_type ())
-#define GGIT_CHECKOUT_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),
GGIT_TYPE_CHECKOUT_OPTIONS, GgitCheckoutOptions))
-#define GGIT_CHECKOUT_OPTIONS_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),
GGIT_TYPE_CHECKOUT_OPTIONS, GgitCheckoutOptions const))
-#define GGIT_CHECKOUT_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass),
GGIT_TYPE_CHECKOUT_OPTIONS, GgitCheckoutOptionsClass))
-#define GGIT_IS_CHECKOUT_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),
GGIT_TYPE_CHECKOUT_OPTIONS))
-#define GGIT_IS_CHECKOUT_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),
GGIT_TYPE_CHECKOUT_OPTIONS))
-#define GGIT_CHECKOUT_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),
GGIT_TYPE_CHECKOUT_OPTIONS, GgitCheckoutOptionsClass))
-
-typedef struct _GgitCheckoutOptionsClass GgitCheckoutOptionsClass;
-typedef struct _GgitCheckoutOptionsPrivate GgitCheckoutOptionsPrivate;
-
-struct _GgitCheckoutOptions
-{
- GObject parent;
-
- GgitCheckoutOptionsPrivate *priv;
-};
+#define GGIT_TYPE_CHECKOUT_OPTIONS (ggit_checkout_options_get_type ())
+G_DECLARE_DERIVABLE_TYPE (GgitCheckoutOptions, ggit_checkout_options, GGIT, CHECKOUT_OPTIONS, GObject)
struct _GgitCheckoutOptionsClass
{
@@ -63,8 +48,6 @@ struct _GgitCheckoutOptionsClass
gsize total_steps);
};
-GType ggit_checkout_options_get_type (void) G_GNUC_CONST;
-
const git_checkout_options *
_ggit_checkout_options_get_checkout_options (
GgitCheckoutOptions *options);
diff --git a/libgit2-glib/ggit-cherry-pick-options.h b/libgit2-glib/ggit-cherry-pick-options.h
index 7a4ee9b..b658458 100644
--- a/libgit2-glib/ggit-cherry-pick-options.h
+++ b/libgit2-glib/ggit-cherry-pick-options.h
@@ -25,6 +25,7 @@
#include <git2.h>
#include "ggit-types.h"
+#include "ggit-checkout-options.h"
G_BEGIN_DECLS
diff --git a/libgit2-glib/ggit-revert-options.h b/libgit2-glib/ggit-revert-options.h
index 8fa938d..2bc5910 100644
--- a/libgit2-glib/ggit-revert-options.h
+++ b/libgit2-glib/ggit-revert-options.h
@@ -26,6 +26,7 @@
#include <git2.h>
#include "ggit-types.h"
+#include "ggit-checkout-options.h"
G_BEGIN_DECLS
diff --git a/libgit2-glib/ggit-submodule-update-options.h b/libgit2-glib/ggit-submodule-update-options.h
index cd8acf1..9530abf 100644
--- a/libgit2-glib/ggit-submodule-update-options.h
+++ b/libgit2-glib/ggit-submodule-update-options.h
@@ -25,6 +25,7 @@
#include <git2.h>
#include "ggit-types.h"
+#include "ggit-checkout-options.h"
G_BEGIN_DECLS
diff --git a/libgit2-glib/ggit-types.h b/libgit2-glib/ggit-types.h
index 1486e79..415cc7f 100644
--- a/libgit2-glib/ggit-types.h
+++ b/libgit2-glib/ggit-types.h
@@ -384,13 +384,6 @@ typedef struct _GgitTreeBuilder GgitTreeBuilder;
typedef struct _GgitBlameOptions GgitBlameOptions;
/**
- * GgitCheckoutOptions:
- *
- * Represents the options used when doign a checkout.
- */
-typedef struct _GgitCheckoutOptions GgitCheckoutOptions;
-
-/**
* GgitCherryPickOptions:
*
* Represents the options used when doign a cherry-pick.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]