[gnome-software] Do not hide review buttons when offline
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Do not hide review buttons when offline
- Date: Thu, 1 Dec 2016 10:16:22 +0000 (UTC)
commit 6c2ee1ae9fab0f9e8be6174245e1eb11e153b682
Author: Richard Hughes <richard hughsie com>
Date: Thu Dec 1 09:55:16 2016 +0000
Do not hide review buttons when offline
Hiding and showing the buttons makes the UI reflow when the network goes up
or down.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=775172
src/gs-review-row.c | 28 +++++++++++++++++++---------
src/gs-shell-details.c | 11 +++++++++--
2 files changed, 28 insertions(+), 11 deletions(-)
---
diff --git a/src/gs-review-row.c b/src/gs-review-row.c
index a648b57..e7cbead 100644
--- a/src/gs-review-row.c
+++ b/src/gs-review-row.c
@@ -61,7 +61,6 @@ gs_review_row_refresh (GsReviewRow *row)
{
GsReviewRowPrivate *priv = gs_review_row_get_instance_private (row);
const gchar *reviewer;
- guint64 actions = 0;
GDateTime *date;
g_autofree gchar *text = NULL;
@@ -89,25 +88,36 @@ gs_review_row_refresh (GsReviewRow *row)
priv->actions = 0;
/* set actions up */
- if (priv->network_available)
- actions = priv->actions;
- if ((actions & (1 << GS_PLUGIN_ACTION_REVIEW_UPVOTE |
+ if ((priv->actions & (1 << GS_PLUGIN_ACTION_REVIEW_UPVOTE |
1 << GS_PLUGIN_ACTION_REVIEW_DOWNVOTE |
1 << GS_PLUGIN_ACTION_REVIEW_DISMISS)) == 0) {
gtk_widget_set_visible (priv->box_voting, FALSE);
} else {
gtk_widget_set_visible (priv->box_voting, TRUE);
gtk_widget_set_visible (priv->button_yes,
- actions & 1 << GS_PLUGIN_ACTION_REVIEW_UPVOTE);
+ priv->actions & 1 << GS_PLUGIN_ACTION_REVIEW_UPVOTE);
gtk_widget_set_visible (priv->button_no,
- actions & 1 << GS_PLUGIN_ACTION_REVIEW_DOWNVOTE);
+ priv->actions & 1 << GS_PLUGIN_ACTION_REVIEW_DOWNVOTE);
gtk_widget_set_visible (priv->button_dismiss,
- actions & 1 << GS_PLUGIN_ACTION_REVIEW_DISMISS);
+ priv->actions & 1 << GS_PLUGIN_ACTION_REVIEW_DISMISS);
}
gtk_widget_set_visible (priv->button_remove,
- actions & 1 << GS_PLUGIN_ACTION_REVIEW_REMOVE);
+ priv->actions & 1 << GS_PLUGIN_ACTION_REVIEW_REMOVE);
gtk_widget_set_visible (priv->button_report,
- actions & 1 << GS_PLUGIN_ACTION_REVIEW_REPORT);
+ priv->actions & 1 << GS_PLUGIN_ACTION_REVIEW_REPORT);
+
+ /* mark insensitive if no network */
+ if (priv->network_available) {
+ gtk_widget_set_sensitive (priv->button_yes, TRUE);
+ gtk_widget_set_sensitive (priv->button_no, TRUE);
+ gtk_widget_set_sensitive (priv->button_remove, TRUE);
+ gtk_widget_set_sensitive (priv->button_report, TRUE);
+ } else {
+ gtk_widget_set_sensitive (priv->button_yes, FALSE);
+ gtk_widget_set_sensitive (priv->button_no, FALSE);
+ gtk_widget_set_sensitive (priv->button_remove, FALSE);
+ gtk_widget_set_sensitive (priv->button_report, FALSE);
+ }
}
void
diff --git a/src/gs-shell-details.c b/src/gs-shell-details.c
index 31aeeca..3545e14 100644
--- a/src/gs-shell-details.c
+++ b/src/gs-shell-details.c
@@ -1285,8 +1285,15 @@ gs_shell_details_refresh_reviews (GsShellDetails *self)
/* show the button only if the user never reviewed */
gtk_widget_set_visible (self->button_review, show_review_button);
- gtk_widget_set_sensitive (self->button_review,
- gs_plugin_loader_get_network_available (self->plugin_loader));
+ if (gs_plugin_loader_get_network_available (self->plugin_loader)) {
+ gtk_widget_set_sensitive (self->button_review, TRUE);
+ gtk_widget_set_tooltip_text (self->button_review, NULL);
+ } else {
+ gtk_widget_set_sensitive (self->button_review, FALSE);
+ gtk_widget_set_tooltip_text (self->button_review,
+ /* TRANSLATORS: we need a remote server to process */
+ _("You need internet access to write a review"));
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]