[gnome-software] Add a simple donation button on the details page
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Add a simple donation button on the details page
- Date: Sat, 5 Aug 2017 13:16:59 +0000 (UTC)
commit e1155f1cc1d9c1a6c6bd8d7b2bebdea5a6f7daf8
Author: Richard Hughes <richard hughsie com>
Date: Sat Aug 5 13:50:37 2017 +0100
Add a simple donation button on the details page
src/gs-details-page.c | 17 +++++++++++++++++
src/gs-details-page.ui | 15 +++++++++++++++
2 files changed, 32 insertions(+), 0 deletions(-)
---
diff --git a/src/gs-details-page.c b/src/gs-details-page.c
index 8b882eb..76a04cb 100644
--- a/src/gs-details-page.c
+++ b/src/gs-details-page.c
@@ -80,6 +80,7 @@ struct _GsDetailsPage
GtkWidget *button_details_add_shortcut;
GtkWidget *button_details_remove_shortcut;
GtkWidget *button_details_website;
+ GtkWidget *button_donate;
GtkWidget *button_install;
GtkWidget *button_remove;
GtkWidget *button_cancel;
@@ -670,6 +671,12 @@ gs_details_page_website_cb (GtkWidget *widget, GsDetailsPage *self)
}
static void
+gs_details_page_donate_cb (GtkWidget *widget, GsDetailsPage *self)
+{
+ gs_shell_show_uri (self->shell, gs_app_get_url (self->app, AS_URL_KIND_DONATION));
+}
+
+static void
gs_details_page_set_description (GsDetailsPage *self, const gchar *tmp)
{
GtkStyleContext *style_context;
@@ -802,6 +809,12 @@ gs_details_page_refresh_all (GsDetailsPage *self)
} else {
gtk_widget_set_visible (self->button_details_website, FALSE);
}
+ tmp = gs_app_get_url (self->app, AS_URL_KIND_DONATION);
+ if (tmp != NULL && tmp[0] != '\0') {
+ gtk_widget_set_visible (self->button_donate, TRUE);
+ } else {
+ gtk_widget_set_visible (self->button_donate, FALSE);
+ }
/* set the developer name, falling back to the project group */
tmp = gs_app_get_developer_name (self->app);
@@ -2185,6 +2198,9 @@ gs_details_page_setup (GsPage *page,
g_signal_connect (self->button_details_website, "clicked",
G_CALLBACK (gs_details_page_website_cb),
self);
+ g_signal_connect (self->button_donate, "clicked",
+ G_CALLBACK (gs_details_page_donate_cb),
+ self);
g_signal_connect (self->button_details_license_free, "clicked",
G_CALLBACK (gs_details_page_license_free_cb),
self);
@@ -2254,6 +2270,7 @@ gs_details_page_class_init (GsDetailsPageClass *klass)
gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_add_shortcut);
gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_remove_shortcut);
gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_website);
+ gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_donate);
gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_install);
gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_remove);
gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_cancel);
diff --git a/src/gs-details-page.ui b/src/gs-details-page.ui
index cacd1a0..36a43b0 100644
--- a/src/gs-details-page.ui
+++ b/src/gs-details-page.ui
@@ -574,6 +574,21 @@
<property name="position">0</property>
</packing>
</child>
+ <child>
+ <object class="GtkButton" id="button_donate">
+ <property name="label" translatable="yes">_Donate</property>
+ <property name="width_request">150</property>
+ <property name="visible">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]