[gnome-calendar/calendar-management] source-manager: rewrite sources sort function
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar/calendar-management] source-manager: rewrite sources sort function
- Date: Fri, 6 Feb 2015 14:58:31 +0000 (UTC)
commit e0040bc959395c3335144541cbb5b4ac5f99958d
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Fri Feb 6 12:58:25 2015 -0200
source-manager: rewrite sources sort function
src/gcal-source-manager-dialog.c | 51 ++++++++++++-------------------------
1 files changed, 17 insertions(+), 34 deletions(-)
---
diff --git a/src/gcal-source-manager-dialog.c b/src/gcal-source-manager-dialog.c
index 0e197af..f2e8402 100644
--- a/src/gcal-source-manager-dialog.c
+++ b/src/gcal-source-manager-dialog.c
@@ -55,12 +55,6 @@ enum {
PROP_MANAGER
};
-enum {
- SOURCE_GOOGLE,
- SOURCE_OWNCLOUD,
- SOURCE_OTHER
-};
-
/* callbacks */
static gboolean button_release_cb (GtkWidget *widget,
GdkEventButton *event,
@@ -589,7 +583,7 @@ sort_func_cb (GtkListBoxRow *current,
GcalSourceManagerDialogPrivate *priv;
ESource *current_source, *prev_source;
GcalSourceOrigin *current_origin, *prev_origin;
- gint current_ext, prev_ext;
+ gint name_cmp;
priv = gcal_source_manager_dialog_get_instance_private (GCAL_SOURCE_MANAGER_DIALOG (user_data));
@@ -599,39 +593,28 @@ sort_func_cb (GtkListBoxRow *current,
prev_source = g_hash_table_lookup (priv->row_to_source, before);
prev_origin = g_hash_table_lookup (priv->source_origin, prev_source);
- /* current row */
- if (g_strcmp0 (current_origin->name, "Google") == 0)
- current_ext = SOURCE_GOOGLE;
- else if (g_strcmp0 (current_origin->name, "ownCloud") == 0)
- current_ext = SOURCE_OWNCLOUD;
- else
- current_ext = SOURCE_OTHER;
-
- /* previous row */
- if (g_strcmp0 (prev_origin->name, "Google") == 0)
- prev_ext = SOURCE_GOOGLE;
- else if (g_strcmp0 (prev_origin->name, "ownCloud") == 0)
- prev_ext = SOURCE_OWNCLOUD;
- else
- prev_ext = SOURCE_OTHER;
+ /* compare by source names */
+ name_cmp = g_strcmp0 (current_origin->name, prev_origin->name);
- if (current_ext == prev_ext)
+ if (name_cmp == 0)
{
- /**
- * If they are GOA sources, we must first check
- * the account. Only if the accounts mismatch is
- * when we compare by the source name.
- */
- if (current_ext != SOURCE_OTHER)
+ /* Compare by account name */
+ gint account_cmp = g_strcmp0 (current_origin->account, prev_origin->account);
+
+ if (account_cmp == 0)
{
- if (g_strcmp0 (current_origin->account, prev_origin->account) != 0)
- return g_strcmp0 (current_origin->account, prev_origin->account);
+ return account_cmp;
+ }
+ else
+ {
+ // Compare by source name
+ return g_strcmp0 (e_source_get_display_name (current_source), e_source_get_display_name
(prev_source));
}
-
- return g_strcmp0 (e_source_get_display_name (current_source), e_source_get_display_name (prev_source));
}
else
- return (current_ext > prev_ext ? 1 : -1);
+ {
+ return name_cmp;
+ }
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]