summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2018-05-02 23:11:48 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2018-05-02 23:11:48 -0300
commit36af5e51d13b035eb3eb6b7d196d8924996ce344 (patch)
tree7821fdf5e0ed9f5caa674fe1904e0b307e418d50
parent3228632d55fb0dffae3015022dfb814d0bdb13c9 (diff)
downloadgnome-control-center-36af5e51d13b035eb3eb6b7d196d8924996ce344.tar.gz
shell-model: Remove boilerplate and update code style
-rw-r--r--shell/cc-shell-model.c37
-rw-r--r--shell/cc-shell-model.h70
2 files changed, 34 insertions, 73 deletions
diff --git a/shell/cc-shell-model.c b/shell/cc-shell-model.c
index 220063075..4dcddba45 100644
--- a/shell/cc-shell-model.c
+++ b/shell/cc-shell-model.c
@@ -19,23 +19,25 @@
* Author: Thomas Wood <thos@gnome.org>
*/
+#include "cc-shell-model.h"
+#include "cc-util.h"
+
#include <string.h>
#include <gio/gdesktopappinfo.h>
-#include "cc-shell-model.h"
-#include "cc-util.h"
-
#define GNOME_SETTINGS_PANEL_ID_KEY "X-GNOME-Settings-Panel"
#define GNOME_SETTINGS_PANEL_CATEGORY GNOME_SETTINGS_PANEL_ID_KEY
#define GNOME_SETTINGS_PANEL_ID_KEYWORDS "Keywords"
-struct _CcShellModelPrivate
+struct _CcShellModel
{
- gchar **sort_terms;
+ GtkListStore parent;
+
+ GStrv sort_terms;
};
-G_DEFINE_TYPE_WITH_PRIVATE (CcShellModel, cc_shell_model, GTK_TYPE_LIST_STORE)
+G_DEFINE_TYPE (CcShellModel, cc_shell_model, GTK_TYPE_LIST_STORE)
static gint
sort_by_name (GtkTreeModel *model,
@@ -224,20 +226,19 @@ cc_shell_model_sort_func (GtkTreeModel *model,
gpointer data)
{
CcShellModel *self = data;
- CcShellModelPrivate *priv = self->priv;
- if (!priv->sort_terms || !priv->sort_terms[0])
+ if (!self->sort_terms || !self->sort_terms[0])
return sort_by_name (model, a, b);
else
- return sort_with_terms (model, a, b, priv->sort_terms);
+ return sort_with_terms (model, a, b, self->sort_terms);
}
static void
cc_shell_model_finalize (GObject *object)
{
- CcShellModelPrivate *priv = CC_SHELL_MODEL (object)->priv;;
+ CcShellModel *self = CC_SHELL_MODEL (object);
- g_strfreev (priv->sort_terms);
+ g_clear_pointer (&self->sort_terms, g_strfreev);
G_OBJECT_CLASS (cc_shell_model_parent_class)->finalize (object);
}
@@ -245,9 +246,8 @@ cc_shell_model_finalize (GObject *object)
static void
cc_shell_model_class_init (CcShellModelClass *klass)
{
- GObjectClass *gobject_class;
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gobject_class = G_OBJECT_CLASS (klass);
gobject_class->finalize = cc_shell_model_finalize;
}
@@ -257,8 +257,6 @@ cc_shell_model_init (CcShellModel *self)
GType types[] = {G_TYPE_STRING, G_TYPE_STRING, G_TYPE_APP_INFO, G_TYPE_STRING,
G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_ICON, G_TYPE_STRV};
- self->priv = cc_shell_model_get_instance_private (self);
-
gtk_list_store_set_column_types (GTK_LIST_STORE (self),
N_COLS, types);
@@ -390,13 +388,14 @@ void
cc_shell_model_set_sort_terms (CcShellModel *self,
gchar **terms)
{
- CcShellModelPrivate *priv = self->priv;
+ g_return_if_fail (CC_IS_SHELL_MODEL (self));
- g_strfreev (priv->sort_terms);
- priv->sort_terms = g_strdupv (terms);
+ g_clear_pointer (&self->sort_terms, g_strfreev);
+ self->sort_terms = g_strdupv (terms);
/* trigger a re-sort */
gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (self),
cc_shell_model_sort_func,
- self, NULL);
+ self,
+ NULL);
}
diff --git a/shell/cc-shell-model.h b/shell/cc-shell-model.h
index 4ba8342e5..b0fe50ff6 100644
--- a/shell/cc-shell-model.h
+++ b/shell/cc-shell-model.h
@@ -18,9 +18,7 @@
* Author: Thomas Wood <thos@gnome.org>
*/
-
-#ifndef _CC_SHELL_MODEL_H
-#define _CC_SHELL_MODEL_H
+#pragma once
#include <gtk/gtk.h>
@@ -28,31 +26,10 @@ G_BEGIN_DECLS
#define CC_TYPE_SHELL_MODEL cc_shell_model_get_type()
-#define CC_SHELL_MODEL(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
- CC_TYPE_SHELL_MODEL, CcShellModel))
-
-#define CC_SHELL_MODEL_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), \
- CC_TYPE_SHELL_MODEL, CcShellModelClass))
-
-#define CC_IS_SHELL_MODEL(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
- CC_TYPE_SHELL_MODEL))
-
-#define CC_IS_SHELL_MODEL_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), \
- CC_TYPE_SHELL_MODEL))
+G_DECLARE_FINAL_TYPE (CcShellModel, cc_shell_model, CC, SHELL_MODEL, GtkListStore)
-#define CC_SHELL_MODEL_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), \
- CC_TYPE_SHELL_MODEL, CcShellModelClass))
-
-typedef struct _CcShellModel CcShellModel;
-typedef struct _CcShellModelClass CcShellModelClass;
-typedef struct _CcShellModelPrivate CcShellModelPrivate;
-
-typedef enum {
+typedef enum
+{
CC_CATEGORY_CONNECTIVITY,
CC_CATEGORY_PERSONALIZATION,
CC_CATEGORY_ACCOUNT,
@@ -77,37 +54,22 @@ enum
N_COLS
};
-struct _CcShellModel
-{
- GtkListStore parent;
- CcShellModelPrivate *priv;
-};
-
-struct _CcShellModelClass
-{
- GtkListStoreClass parent_class;
-};
+CcShellModel* cc_shell_model_new (void);
-GType cc_shell_model_get_type (void) G_GNUC_CONST;
+void cc_shell_model_add_item (CcShellModel *model,
+ CcPanelCategory category,
+ GAppInfo *appinfo,
+ const char *id);
-CcShellModel *cc_shell_model_new (void);
+gboolean cc_shell_model_has_panel (CcShellModel *model,
+ const char *id);
-void cc_shell_model_add_item (CcShellModel *model,
- CcPanelCategory category,
- GAppInfo *appinfo,
- const char *id);
+gboolean cc_shell_model_iter_matches_search (CcShellModel *model,
+ GtkTreeIter *iter,
+ const char *term);
-gboolean cc_shell_model_has_panel (CcShellModel *model,
- const char *id);
-
-gboolean cc_shell_model_iter_matches_search (CcShellModel *model,
- GtkTreeIter *iter,
- const char *term);
-
-void cc_shell_model_set_sort_terms (CcShellModel *model,
- gchar **terms);
+void cc_shell_model_set_sort_terms (CcShellModel *model,
+ GStrv terms);
G_END_DECLS
-
-#endif /* _CC_SHELL_MODEL_H */