[nautilus] search-hit: port to use G_DECLARE* type declarations
- From: Carlos Soriano <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] search-hit: port to use G_DECLARE* type declarations
- Date: Tue, 4 Oct 2016 14:25:22 +0000 (UTC)
commit 335eabec52e26406c339a9992c432efe28f8ac5e
Author: Vinayak <vinayakagarwal6996 gmail com>
Date: Tue Oct 4 01:36:14 2016 +0530
search-hit: port to use G_DECLARE* type declarations
Currently we are using the old GObject class declarations, which have two
problems.
One problem is that we cannot use smart pointers like g_autoptr. The other
problem is the boilerplate code generated that makes the code less readable,
so harder to understand.
To fix this use G_DECLARE* type.
https://bugzilla.gnome.org/show_bug.cgi?id=771842
src/nautilus-search-hit.c | 77 +++++++++++++++++++++++----------------------
src/nautilus-search-hit.h | 22 +++----------
2 files changed, 44 insertions(+), 55 deletions(-)
---
diff --git a/src/nautilus-search-hit.c b/src/nautilus-search-hit.c
index b214e60..5a12ddf 100644
--- a/src/nautilus-search-hit.c
+++ b/src/nautilus-search-hit.c
@@ -27,8 +27,10 @@
#define DEBUG_FLAG NAUTILUS_DEBUG_SEARCH_HIT
#include "nautilus-debug.h"
-struct NautilusSearchHitDetails
+struct _NautilusSearchHit
{
+ GObject parent_instance;
+
char *uri;
GDateTime *modification_time;
@@ -65,7 +67,7 @@ nautilus_search_hit_compute_scores (NautilusSearchHit *hit,
gdouble match_bonus = 0.0;
query_location = nautilus_query_get_location (query);
- hit_location = g_file_new_for_uri (hit->details->uri);
+ hit_location = g_file_new_for_uri (hit->uri);
if (g_file_has_prefix (hit_location, query_location))
{
@@ -91,13 +93,13 @@ nautilus_search_hit_compute_scores (NautilusSearchHit *hit,
g_object_unref (hit_location);
now = g_date_time_new_now_local ();
- if (hit->details->modification_time != NULL)
+ if (hit->modification_time != NULL)
{
- m_diff = g_date_time_difference (now, hit->details->modification_time);
+ m_diff = g_date_time_difference (now, hit->modification_time);
}
- if (hit->details->access_time != NULL)
+ if (hit->access_time != NULL)
{
- a_diff = g_date_time_difference (now, hit->details->access_time);
+ a_diff = g_date_time_difference (now, hit->access_time);
}
m_diff /= G_TIME_SPAN_DAY;
a_diff /= G_TIME_SPAN_DAY;
@@ -127,17 +129,17 @@ nautilus_search_hit_compute_scores (NautilusSearchHit *hit,
recent_bonus = 100.0;
}
- if (hit->details->fts_rank > 0)
+ if (hit->fts_rank > 0)
{
- match_bonus = MIN (500, 10.0 * hit->details->fts_rank);
+ match_bonus = MIN (500, 10.0 * hit->fts_rank);
}
else
{
match_bonus = 0.0;
}
- hit->details->relevance = recent_bonus + proximity_bonus + match_bonus;
- DEBUG ("Hit %s computed relevance %.2f (%.2f + %.2f + %.2f)", hit->details->uri, hit->details->relevance,
+ hit->relevance = recent_bonus + proximity_bonus + match_bonus;
+ DEBUG ("Hit %s computed relevance %.2f (%.2f + %.2f + %.2f)", hit->uri, hit->relevance,
proximity_bonus, recent_bonus, match_bonus);
g_date_time_unref (now);
@@ -147,45 +149,45 @@ nautilus_search_hit_compute_scores (NautilusSearchHit *hit,
const char *
nautilus_search_hit_get_uri (NautilusSearchHit *hit)
{
- return hit->details->uri;
+ return hit->uri;
}
gdouble
nautilus_search_hit_get_relevance (NautilusSearchHit *hit)
{
- return hit->details->relevance;
+ return hit->relevance;
}
static void
nautilus_search_hit_set_uri (NautilusSearchHit *hit,
const char *uri)
{
- g_free (hit->details->uri);
- hit->details->uri = g_strdup (uri);
+ g_free (hit->uri);
+ hit->uri = g_strdup (uri);
}
void
nautilus_search_hit_set_fts_rank (NautilusSearchHit *hit,
gdouble rank)
{
- hit->details->fts_rank = rank;
+ hit->fts_rank = rank;
}
void
nautilus_search_hit_set_modification_time (NautilusSearchHit *hit,
GDateTime *date)
{
- if (hit->details->modification_time != NULL)
+ if (hit->modification_time != NULL)
{
- g_date_time_unref (hit->details->modification_time);
+ g_date_time_unref (hit->modification_time);
}
if (date != NULL)
{
- hit->details->modification_time = g_date_time_ref (date);
+ hit->modification_time = g_date_time_ref (date);
}
else
{
- hit->details->modification_time = NULL;
+ hit->modification_time = NULL;
}
}
@@ -193,17 +195,17 @@ void
nautilus_search_hit_set_access_time (NautilusSearchHit *hit,
GDateTime *date)
{
- if (hit->details->access_time != NULL)
+ if (hit->access_time != NULL)
{
- g_date_time_unref (hit->details->access_time);
+ g_date_time_unref (hit->access_time);
}
if (date != NULL)
{
- hit->details->access_time = g_date_time_ref (date);
+ hit->access_time = g_date_time_ref (date);
}
else
{
- hit->details->access_time = NULL;
+ hit->access_time = NULL;
}
}
@@ -221,7 +223,7 @@ nautilus_search_hit_set_property (GObject *object,
{
case PROP_RELEVANCE:
{
- hit->details->relevance = g_value_get_double (value);
+ hit->relevance = g_value_get_double (value);
}
break;
@@ -271,31 +273,31 @@ nautilus_search_hit_get_property (GObject *object,
{
case PROP_RELEVANCE:
{
- g_value_set_double (value, hit->details->relevance);
+ g_value_set_double (value, hit->relevance);
}
break;
case PROP_FTS_RANK:
{
- g_value_set_double (value, hit->details->fts_rank);
+ g_value_set_double (value, hit->fts_rank);
}
break;
case PROP_URI:
{
- g_value_set_string (value, hit->details->uri);
+ g_value_set_string (value, hit->uri);
}
break;
case PROP_MODIFICATION_TIME:
{
- g_value_set_boxed (value, hit->details->modification_time);
+ g_value_set_boxed (value, hit->modification_time);
}
break;
case PROP_ACCESS_TIME:
{
- g_value_set_boxed (value, hit->details->access_time);
+ g_value_set_boxed (value, hit->access_time);
}
break;
@@ -312,15 +314,15 @@ nautilus_search_hit_finalize (GObject *object)
{
NautilusSearchHit *hit = NAUTILUS_SEARCH_HIT (object);
- g_free (hit->details->uri);
+ g_free (hit->uri);
- if (hit->details->access_time != NULL)
+ if (hit->access_time != NULL)
{
- g_date_time_unref (hit->details->access_time);
+ g_date_time_unref (hit->access_time);
}
- if (hit->details->modification_time != NULL)
+ if (hit->modification_time != NULL)
{
- g_date_time_unref (hit->details->modification_time);
+ g_date_time_unref (hit->modification_time);
}
G_OBJECT_CLASS (nautilus_search_hit_parent_class)->finalize (object);
@@ -375,15 +377,14 @@ nautilus_search_hit_class_init (NautilusSearchHitClass *class)
0,
G_PARAM_READWRITE));
- g_type_class_add_private (class, sizeof (NautilusSearchHitDetails));
}
static void
nautilus_search_hit_init (NautilusSearchHit *hit)
{
- hit->details = G_TYPE_INSTANCE_GET_PRIVATE (hit,
- NAUTILUS_TYPE_SEARCH_HIT,
- NautilusSearchHitDetails);
+ hit = G_TYPE_INSTANCE_GET_PRIVATE (hit,
+ NAUTILUS_TYPE_SEARCH_HIT,
+ NautilusSearchHit);
}
NautilusSearchHit *
diff --git a/src/nautilus-search-hit.h b/src/nautilus-search-hit.h
index d770400..100c7da 100644
--- a/src/nautilus-search-hit.h
+++ b/src/nautilus-search-hit.h
@@ -23,25 +23,11 @@
#include <glib-object.h>
#include "nautilus-query.h"
-#define NAUTILUS_TYPE_SEARCH_HIT (nautilus_search_hit_get_type ())
-#define NAUTILUS_SEARCH_HIT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_SEARCH_HIT,
NautilusSearchHit))
-#define NAUTILUS_SEARCH_HIT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_SEARCH_HIT,
NautilusSearchHitClass))
-#define NAUTILUS_IS_SEARCH_HIT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_SEARCH_HIT))
-#define NAUTILUS_IS_SEARCH_HIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_SEARCH_HIT))
-#define NAUTILUS_SEARCH_HIT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_SEARCH_HIT,
NautilusSearchHitClass))
+G_BEGIN_DECLS
-typedef struct NautilusSearchHitDetails NautilusSearchHitDetails;
+#define NAUTILUS_TYPE_SEARCH_HIT (nautilus_search_hit_get_type ())
-typedef struct NautilusSearchHit {
- GObject parent;
- NautilusSearchHitDetails *details;
-} NautilusSearchHit;
-
-typedef struct {
- GObjectClass parent_class;
-} NautilusSearchHitClass;
-
-GType nautilus_search_hit_get_type (void);
+G_DECLARE_FINAL_TYPE (NautilusSearchHit, nautilus_search_hit, NAUTILUS, SEARCH_HIT, GObject);
NautilusSearchHit * nautilus_search_hit_new (const char *uri);
@@ -58,4 +44,6 @@ void nautilus_search_hit_compute_scores (NautilusSearchHit
const char * nautilus_search_hit_get_uri (NautilusSearchHit *hit);
gdouble nautilus_search_hit_get_relevance (NautilusSearchHit *hit);
+G_END_DECLS
+
#endif /* NAUTILUS_SEARCH_HIT_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]