[gnome-builder] create-project: sort preferred languages first



commit 86e4220a839f2a260c546cb5d4261a49cc4871ba
Author: Christian Hergert <chergert redhat com>
Date:   Sat Sep 16 16:07:23 2017 -0700

    create-project: sort preferred languages first
    
    As we add more languages, we want to keep certain languages at
    the top.

 plugins/create-project/gbp-create-project-widget.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/plugins/create-project/gbp-create-project-widget.c 
b/plugins/create-project/gbp-create-project-widget.c
index 5784a92..3862b17 100644
--- a/plugins/create-project/gbp-create-project-widget.c
+++ b/plugins/create-project/gbp-create-project-widget.c
@@ -23,6 +23,7 @@
 #include <ide.h>
 #include <libpeas/peas.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include "gbp-create-project-template-icon.h"
 #include "gbp-create-project-widget.h"
@@ -51,12 +52,28 @@ static GParamSpec *properties [N_PROPS];
 
 G_DEFINE_TYPE (GbpCreateProjectWidget, gbp_create_project_widget, GTK_TYPE_BIN)
 
+static gboolean
+is_preferred (const gchar *name)
+{
+  return 0 == strcasecmp (name, "c") ||
+         0 == strcasecmp (name, "vala") ||
+         0 == strcasecmp (name, "javascript") ||
+         0 == strcasecmp (name, "python");
+}
+
 static int
 sort_by_name (gconstpointer a,
               gconstpointer b)
 {
   const gchar * const *astr = a;
   const gchar * const *bstr = b;
+  gboolean apref = is_preferred (*astr);
+  gboolean bpref = is_preferred (*bstr);
+
+  if (apref && !bpref)
+    return -1;
+  else if (!apref && bpref)
+    return 1;
 
   return g_utf8_collate (*astr, *bstr);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]