show number category for multiple contact methods
When a Person (Contact) has more than one Contact Method, try to
display the CM's number category (eg: "home").
Change-Id: Ic868990e2190f4ae47dd2db1cff09bfca76000ab
Tuleap: #349
diff --git a/src/recentcontactsview.cpp b/src/recentcontactsview.cpp
index 69f327e..bb4c561 100644
--- a/src/recentcontactsview.cpp
+++ b/src/recentcontactsview.cpp
@@ -39,6 +39,7 @@
#include <QtCore/QDateTime>
#include <QtCore/QMimeData>
#include "utils/drawing.h"
+#include "numbercategory.h"
static constexpr const char* COPY_DATA_KEY = "copy_data";
@@ -408,7 +409,16 @@
auto call_menu = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(call_item), call_menu);
for (int i = 0; i < cms.size(); ++i) {
- auto item = gtk_menu_item_new_with_label(cms.at(i)->uri().toUtf8().constData());
+ gchar *number = nullptr;
+ if (cms.at(i)->category()) {
+ // try to get the number category, eg: "home"
+ number = g_strdup_printf("(%s) %s", cms.at(i)->category()->name().toUtf8().constData(),
+ cms.at(i)->uri().toUtf8().constData());
+ } else {
+ number = g_strdup_printf("%s", cms.at(i)->uri().toUtf8().constData());
+ }
+ auto item = gtk_menu_item_new_with_label(number);
+ g_free(number);
gtk_menu_shell_append(GTK_MENU_SHELL(call_menu), item);
g_signal_connect(item,
"activate",
@@ -472,8 +482,16 @@
auto copy_menu = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(copy_item), copy_menu);
for (int i = 0; i < cms.size(); ++i) {
- gchar *number = g_strdup_printf("%s",cms.at(i)->uri().toUtf8().constData());
- auto item = gtk_menu_item_new_with_label(cms.at(i)->uri().toUtf8().constData());
+ gchar *number = nullptr;
+ if (cms.at(i)->category()) {
+ // try to get the number category, eg: "home"
+ number = g_strdup_printf("(%s) %s", cms.at(i)->category()->name().toUtf8().constData(),
+ cms.at(i)->uri().toUtf8().constData());
+ } else {
+ number = g_strdup_printf("%s", cms.at(i)->uri().toUtf8().constData());
+ }
+ auto item = gtk_menu_item_new_with_label(number);
+ g_free(number);
gtk_menu_shell_append(GTK_MENU_SHELL(copy_menu), item);
g_object_set_data_full(G_OBJECT(item), COPY_DATA_KEY, number, (GDestroyNotify)g_free);
g_signal_connect(item,