[gtksourceview] Completion: do not show "All" when only one provider
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] Completion: do not show "All" when only one provider
- Date: Sun, 6 Oct 2013 13:07:10 +0000 (UTC)
commit f042c5e330c5a19600a7cb0fba894f4e726e6c77
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun Oct 6 15:00:06 2013 +0200
Completion: do not show "All" when only one provider
In the bottom bar of the completion window, at the right of the Details
button, there is an icon and a label to show on which provider we are.
When there is only one provider, all the proposals are shown. Displaying
the "All" label in this case is useless, and users don't know what it
means. So it's better to display nothing in this case.
gtksourceview/gtksourcecompletion.c | 29 ++++++++++++++++-------------
1 files changed, 16 insertions(+), 13 deletions(-)
---
diff --git a/gtksourceview/gtksourcecompletion.c b/gtksourceview/gtksourcecompletion.c
index 75b7471..e861468 100644
--- a/gtksourceview/gtksourcecompletion.c
+++ b/gtksourceview/gtksourcecompletion.c
@@ -742,10 +742,21 @@ update_selection_label (GtkSourceCompletion *completion)
guint pos;
guint num;
gchar *name;
- GtkSourceCompletionProvider *visible = get_visible_provider (completion);
+ gchar *selection_text;
+ GtkSourceCompletionProvider *visible;
get_num_visible_providers (completion, &num, &pos);
+ if (num <= 1)
+ {
+ /* At most one provider. All the proposals are shown. */
+ gtk_image_clear (completion->priv->selection_image);
+ gtk_widget_hide (GTK_WIDGET (completion->priv->selection_label));
+ return;
+ }
+
+ visible = get_visible_provider (completion);
+
if (visible == NULL)
{
/* Translators: "All" is used as a label in the status bar of the
@@ -764,19 +775,11 @@ update_selection_label (GtkSourceCompletion *completion)
gtk_source_completion_provider_get_icon (visible));
}
- if (num > 1)
- {
- gchar *tmp = g_strdup_printf ("<small>%s (%d/%d)</small>", name, pos + 1, num + 1);
- gtk_label_set_markup (completion->priv->selection_label, tmp);
- g_free (tmp);
- }
- else
- {
- gchar *tmp = g_strdup_printf ("<small>%s</small>", name);
- gtk_label_set_markup (completion->priv->selection_label, tmp);
- g_free (tmp);
- }
+ selection_text = g_strdup_printf ("<small>%s (%d/%d)</small>", name, pos + 1, num + 1);
+ gtk_label_set_markup (completion->priv->selection_label, selection_text);
+ gtk_widget_show (GTK_WIDGET (completion->priv->selection_label));
+ g_free (selection_text);
g_free (name);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]