[gnome-software] trivial: Use a indirect function for reloading a page
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] trivial: Use a indirect function for reloading a page
- Date: Mon, 13 Jun 2016 08:17:16 +0000 (UTC)
commit 341cb663bc7b4c11e47a5dec34cb6deb1f86da8b
Author: Richard Hughes <richard hughsie com>
Date: Sat Jun 11 21:36:32 2016 +0100
trivial: Use a indirect function for reloading a page
This allows us to add future functionality.
src/gs-page.c | 10 ++++++++++
src/gs-page.h | 2 ++
src/gs-shell-category.c | 15 +++++++--------
src/gs-shell-category.h | 1 -
src/gs-shell-details.c | 13 ++++++-------
src/gs-shell-details.h | 1 -
src/gs-shell-extras.c | 6 ++++--
src/gs-shell-extras.h | 1 -
src/gs-shell-installed.c | 9 ++++-----
src/gs-shell-installed.h | 1 -
src/gs-shell-moderate.c | 9 ++++-----
src/gs-shell-moderate.h | 1 -
src/gs-shell-overview.c | 9 ++++-----
src/gs-shell-overview.h | 1 -
src/gs-shell-search.c | 14 ++++++--------
src/gs-shell-search.h | 1 -
src/gs-shell-updates.c | 6 ++++--
src/gs-shell-updates.h | 1 -
src/gs-shell.c | 18 +++++++++---------
19 files changed, 60 insertions(+), 59 deletions(-)
---
diff --git a/src/gs-page.c b/src/gs-page.c
index c160a65..e72fb7a 100644
--- a/src/gs-page.c
+++ b/src/gs-page.c
@@ -453,6 +453,16 @@ gs_page_switch_to (GsPage *page,
}
void
+gs_page_reload (GsPage *page)
+{
+ GsPageClass *klass;
+ g_return_if_fail (GS_IS_PAGE (page));
+ klass = GS_PAGE_GET_CLASS (page);
+ g_assert (klass->reload != NULL);
+ klass->reload (page);
+}
+
+void
gs_page_setup (GsPage *page,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-page.h b/src/gs-page.h
index b63bd8e..426e3b4 100644
--- a/src/gs-page.h
+++ b/src/gs-page.h
@@ -44,6 +44,7 @@ struct _GsPageClass
GsApp *app);
void (*switch_to) (GsPage *page,
gboolean scroll_up);
+ void (*reload) (GsPage *page);
};
GsPage *gs_page_new (void);
@@ -67,6 +68,7 @@ void gs_page_shortcut_remove (GsPage *page,
GsApp *app);
void gs_page_switch_to (GsPage *page,
gboolean scroll_up);
+void gs_page_reload (GsPage *page);
void gs_page_setup (GsPage *page,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-shell-category.c b/src/gs-shell-category.c
index f017701..5a2456d 100644
--- a/src/gs-shell-category.c
+++ b/src/gs-shell-category.c
@@ -49,14 +49,6 @@ struct _GsShellCategory
G_DEFINE_TYPE (GsShellCategory, gs_shell_category, GS_TYPE_PAGE)
-/**
- * gs_shell_category_reload:
- */
-void
-gs_shell_category_reload (GsShellCategory *self)
-{
-}
-
static void
gs_shell_category_switch_to (GsPage *page, gboolean scroll_up)
{
@@ -161,6 +153,12 @@ gs_shell_category_populate_filtered (GsShellCategory *self, GsCategory *subcateg
}
static void
+gs_shell_category_reload (GsPage *page)
+{
+ //GsShellCategory *self = GS_SHELL_CATEGORY (page);
+}
+
+static void
filter_selected (GtkListBox *filters, GtkListBoxRow *row, gpointer data)
{
GsShellCategory *self = GS_SHELL_CATEGORY (data);
@@ -277,6 +275,7 @@ gs_shell_category_class_init (GsShellCategoryClass *klass)
object_class->dispose = gs_shell_category_dispose;
page_class->switch_to = gs_shell_category_switch_to;
+ page_class->reload = gs_shell_category_reload;
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/Software/gs-shell-category.ui");
diff --git a/src/gs-shell-category.h b/src/gs-shell-category.h
index 6340348..71d38a2 100644
--- a/src/gs-shell-category.h
+++ b/src/gs-shell-category.h
@@ -40,7 +40,6 @@ GsShellCategory *gs_shell_category_new (void);
void gs_shell_category_set_category (GsShellCategory *self,
GsCategory *category);
GsCategory *gs_shell_category_get_category (GsShellCategory *self);
-void gs_shell_category_reload (GsShellCategory *self);
void gs_shell_category_setup (GsShellCategory *self,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-shell-details.c b/src/gs-shell-details.c
index d6a1c98..28ff0a3 100644
--- a/src/gs-shell-details.c
+++ b/src/gs-shell-details.c
@@ -1553,12 +1553,10 @@ gs_shell_details_load (GsShellDetails *self)
self);
}
-/**
- * gs_shell_details_reload:
- **/
-void
-gs_shell_details_reload (GsShellDetails *self)
+static void
+gs_shell_details_reload (GsPage *page)
{
+ GsShellDetails *self = GS_SHELL_DETAILS (page);
if (self->app != NULL)
gs_shell_details_load (self);
}
@@ -1761,13 +1759,13 @@ gs_shell_details_write_review_cb (GtkButton *button,
static void
gs_shell_details_app_installed (GsPage *page, GsApp *app)
{
- gs_shell_details_reload (GS_SHELL_DETAILS (page));
+ gs_shell_details_reload (page);
}
static void
gs_shell_details_app_removed (GsPage *page, GsApp *app)
{
- gs_shell_details_reload (GS_SHELL_DETAILS (page));
+ gs_shell_details_reload (page);
}
/**
@@ -1866,6 +1864,7 @@ gs_shell_details_class_init (GsShellDetailsClass *klass)
page_class->app_installed = gs_shell_details_app_installed;
page_class->app_removed = gs_shell_details_app_removed;
page_class->switch_to = gs_shell_details_switch_to;
+ page_class->reload = gs_shell_details_reload;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Software/gs-shell-details.ui");
diff --git a/src/gs-shell-details.h b/src/gs-shell-details.h
index 3ffd72a..99cd490 100644
--- a/src/gs-shell-details.h
+++ b/src/gs-shell-details.h
@@ -43,7 +43,6 @@ void gs_shell_details_set_app (GsShellDetails *self,
void gs_shell_details_set_filename (GsShellDetails *self,
const gchar *filename);
GsApp *gs_shell_details_get_app (GsShellDetails *self);
-void gs_shell_details_reload (GsShellDetails *self);
void gs_shell_details_setup (GsShellDetails *self,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-shell-extras.c b/src/gs-shell-extras.c
index 3dc5893..156c8a5 100644
--- a/src/gs-shell-extras.c
+++ b/src/gs-shell-extras.c
@@ -732,9 +732,10 @@ gs_shell_extras_load (GsShellExtras *self, GPtrArray *array_search_data)
}
}
-void
-gs_shell_extras_reload (GsShellExtras *self)
+static void
+gs_shell_extras_reload (GsPage *page)
{
+ GsShellExtras *self = GS_SHELL_EXTRAS (page);
if (self->array_search_data != NULL)
gs_shell_extras_load (self, NULL);
}
@@ -1195,6 +1196,7 @@ gs_shell_extras_class_init (GsShellExtrasClass *klass)
object_class->dispose = gs_shell_extras_dispose;
page_class->switch_to = gs_shell_extras_switch_to;
+ page_class->reload = gs_shell_extras_reload;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Software/gs-shell-extras.ui");
diff --git a/src/gs-shell-extras.h b/src/gs-shell-extras.h
index 1d51bc6..6363693 100644
--- a/src/gs-shell-extras.h
+++ b/src/gs-shell-extras.h
@@ -53,7 +53,6 @@ GsShellExtras *gs_shell_extras_new (void);
void gs_shell_extras_search (GsShellExtras *self,
const gchar *mode,
gchar **resources);
-void gs_shell_extras_reload (GsShellExtras *self);
void gs_shell_extras_setup (GsShellExtras *self,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-shell-installed.c b/src/gs-shell-installed.c
index 01e2f43..04106f2 100644
--- a/src/gs-shell-installed.c
+++ b/src/gs-shell-installed.c
@@ -247,12 +247,10 @@ gs_shell_installed_load (GsShellInstalled *self)
gtk_stack_set_visible_child_name (GTK_STACK (self->stack_install), "spinner");
}
-/**
- * gs_shell_installed_reload:
- */
-void
-gs_shell_installed_reload (GsShellInstalled *self)
+static void
+gs_shell_installed_reload (GsPage *page)
{
+ GsShellInstalled *self = GS_SHELL_INSTALLED (page);
gs_shell_installed_invalidate (self);
gs_shell_installed_load (self);
}
@@ -796,6 +794,7 @@ gs_shell_installed_class_init (GsShellInstalledClass *klass)
object_class->dispose = gs_shell_installed_dispose;
page_class->app_removed = gs_shell_installed_app_removed;
page_class->switch_to = gs_shell_installed_switch_to;
+ page_class->reload = gs_shell_installed_reload;
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/Software/gs-shell-installed.ui");
diff --git a/src/gs-shell-installed.h b/src/gs-shell-installed.h
index f071805..ba32125 100644
--- a/src/gs-shell-installed.h
+++ b/src/gs-shell-installed.h
@@ -36,7 +36,6 @@ G_DECLARE_FINAL_TYPE (GsShellInstalled, gs_shell_installed, GS, SHELL_INSTALLED,
GsShellInstalled *gs_shell_installed_new (void);
void gs_shell_installed_invalidate (GsShellInstalled *self);
-void gs_shell_installed_reload (GsShellInstalled *self);
void gs_shell_installed_setup (GsShellInstalled *self,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-shell-moderate.c b/src/gs-shell-moderate.c
index 5e5872e..24038da 100644
--- a/src/gs-shell-moderate.c
+++ b/src/gs-shell-moderate.c
@@ -200,12 +200,10 @@ gs_shell_moderate_load (GsShellModerate *self)
gtk_stack_set_visible_child_name (GTK_STACK (self->stack_install), "spinner");
}
-/**
- * gs_shell_moderate_reload:
- */
-void
-gs_shell_moderate_reload (GsShellModerate *self)
+static void
+gs_shell_moderate_reload (GsPage *page)
{
+ GsShellModerate *self = GS_SHELL_MODERATE (page);
gs_shell_moderate_load (self);
}
@@ -300,6 +298,7 @@ gs_shell_moderate_class_init (GsShellModerateClass *klass)
object_class->dispose = gs_shell_moderate_dispose;
page_class->switch_to = gs_shell_moderate_switch_to;
+ page_class->reload = gs_shell_moderate_reload;
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/Software/gs-shell-moderate.ui");
diff --git a/src/gs-shell-moderate.h b/src/gs-shell-moderate.h
index 0fb4ae5..27fe6ea 100644
--- a/src/gs-shell-moderate.h
+++ b/src/gs-shell-moderate.h
@@ -35,7 +35,6 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (GsShellModerate, gs_shell_moderate, GS, SHELL_MODERATE, GsPage)
GsShellModerate *gs_shell_moderate_new (void);
-void gs_shell_moderate_reload (GsShellModerate *self);
void gs_shell_moderate_setup (GsShellModerate *self,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-shell-overview.c b/src/gs-shell-overview.c
index a4f1a3a..4820be4 100644
--- a/src/gs-shell-overview.c
+++ b/src/gs-shell-overview.c
@@ -496,12 +496,10 @@ gs_shell_overview_load (GsShellOverview *self)
}
}
-/**
- * gs_shell_overview_reload:
- */
-void
-gs_shell_overview_reload (GsShellOverview *self)
+static void
+gs_shell_overview_reload (GsPage *page)
{
+ GsShellOverview *self = GS_SHELL_OVERVIEW (page);
gs_shell_overview_invalidate (self);
gs_shell_overview_load (self);
}
@@ -654,6 +652,7 @@ gs_shell_overview_class_init (GsShellOverviewClass *klass)
object_class->dispose = gs_shell_overview_dispose;
page_class->switch_to = gs_shell_overview_switch_to;
+ page_class->reload = gs_shell_overview_reload;
klass->refreshed = gs_shell_overview_refreshed;
signals [SIGNAL_REFRESHED] =
diff --git a/src/gs-shell-overview.h b/src/gs-shell-overview.h
index 08bba19..03bc5ed 100644
--- a/src/gs-shell-overview.h
+++ b/src/gs-shell-overview.h
@@ -45,7 +45,6 @@ struct _GsShellOverviewClass
GsShellOverview *gs_shell_overview_new (void);
void gs_shell_overview_invalidate (GsShellOverview *self);
-void gs_shell_overview_reload (GsShellOverview *self);
void gs_shell_overview_setup (GsShellOverview *self,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-shell-search.c b/src/gs-shell-search.c
index 7632ee7..2a88a17 100644
--- a/src/gs-shell-search.c
+++ b/src/gs-shell-search.c
@@ -202,17 +202,14 @@ gs_shell_search_load (GsShellSearch *self)
self);
}
-/**
- * gs_shell_search_reload:
- */
-void
-gs_shell_search_reload (GsShellSearch *self)
+static void
+gs_shell_search_reload (GsPage *page)
{
+ GsShellSearch *self = GS_SHELL_SEARCH (page);
if (self->value != NULL)
gs_shell_search_load (self);
}
-
/**
* gs_shell_search_set_appid_to_show:
*
@@ -389,13 +386,13 @@ gs_shell_search_cancel_cb (GCancellable *cancellable,
static void
gs_shell_search_app_installed (GsPage *page, GsApp *app)
{
- gs_shell_search_reload (GS_SHELL_SEARCH (page));
+ gs_shell_search_reload (page);
}
static void
gs_shell_search_app_removed (GsPage *page, GsApp *app)
{
- gs_shell_search_reload (GS_SHELL_SEARCH (page));
+ gs_shell_search_reload (page);
}
static void
@@ -499,6 +496,7 @@ gs_shell_search_class_init (GsShellSearchClass *klass)
page_class->app_installed = gs_shell_search_app_installed;
page_class->app_removed = gs_shell_search_app_removed;
page_class->switch_to = gs_shell_search_switch_to;
+ page_class->reload = gs_shell_search_reload;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Software/gs-shell-search.ui");
diff --git a/src/gs-shell-search.h b/src/gs-shell-search.h
index 1b10a7c..1a2449b 100644
--- a/src/gs-shell-search.h
+++ b/src/gs-shell-search.h
@@ -41,7 +41,6 @@ void gs_shell_search_set_appid_to_show (GsShellSearch *self,
const gchar *gs_shell_search_get_text (GsShellSearch *self);
void gs_shell_search_set_text (GsShellSearch *self,
const gchar *value);
-void gs_shell_search_reload (GsShellSearch *self);
void gs_shell_search_setup (GsShellSearch *self,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-shell-updates.c b/src/gs-shell-updates.c
index a6e34d2..bffc04f 100644
--- a/src/gs-shell-updates.c
+++ b/src/gs-shell-updates.c
@@ -622,9 +622,10 @@ gs_shell_updates_load (GsShellUpdates *self)
/**
* gs_shell_updates_reload:
*/
-void
-gs_shell_updates_reload (GsShellUpdates *self)
+static void
+gs_shell_updates_reload (GsPage *page)
{
+ GsShellUpdates *self = GS_SHELL_UPDATES (page);
gs_shell_updates_invalidate (self);
gs_shell_updates_load (self);
}
@@ -1426,6 +1427,7 @@ gs_shell_updates_class_init (GsShellUpdatesClass *klass)
object_class->dispose = gs_shell_updates_dispose;
page_class->switch_to = gs_shell_updates_switch_to;
+ page_class->reload = gs_shell_updates_reload;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Software/gs-shell-updates.ui");
diff --git a/src/gs-shell-updates.h b/src/gs-shell-updates.h
index d5bdded..91c8882 100644
--- a/src/gs-shell-updates.h
+++ b/src/gs-shell-updates.h
@@ -36,7 +36,6 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (GsShellUpdates, gs_shell_updates, GS, SHELL_UPDATES, GsPage)
GsShellUpdates *gs_shell_updates_new (void);
-void gs_shell_updates_reload (GsShellUpdates *self);
void gs_shell_updates_setup (GsShellUpdates *self,
GsShell *shell,
GsPluginLoader *plugin_loader,
diff --git a/src/gs-shell.c b/src/gs-shell.c
index b6c46e4..332625c 100644
--- a/src/gs-shell.c
+++ b/src/gs-shell.c
@@ -451,8 +451,8 @@ initial_overview_load_done (GsShellOverview *shell_overview, gpointer data)
g_signal_handlers_disconnect_by_func (shell_overview, initial_overview_load_done, data);
- gs_shell_updates_reload (priv->shell_updates);
- gs_shell_installed_reload (priv->shell_installed);
+ gs_page_reload (GS_PAGE (priv->shell_updates));
+ gs_page_reload (GS_PAGE (priv->shell_installed));
g_signal_emit (shell, signals[SIGNAL_LOADED], 0);
}
@@ -557,13 +557,13 @@ static void
gs_shell_updates_changed_cb (GsPluginLoader *plugin_loader, GsShell *shell)
{
GsShellPrivate *priv = gs_shell_get_instance_private (shell);
- gs_shell_category_reload (priv->shell_category);
- gs_shell_extras_reload (priv->shell_extras);
- gs_shell_details_reload (priv->shell_details);
- gs_shell_installed_reload (priv->shell_installed);
- gs_shell_overview_reload (priv->shell_overview);
- gs_shell_search_reload (priv->shell_search);
- gs_shell_updates_reload (priv->shell_updates);
+ gs_page_reload (GS_PAGE (priv->shell_category));
+ gs_page_reload (GS_PAGE (priv->shell_extras));
+ gs_page_reload (GS_PAGE (priv->shell_details));
+ gs_page_reload (GS_PAGE (priv->shell_installed));
+ gs_page_reload (GS_PAGE (priv->shell_overview));
+ gs_page_reload (GS_PAGE (priv->shell_search));
+ gs_page_reload (GS_PAGE (priv->shell_updates));
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]