@@ -53,15 +53,15 @@ GVariant* GVariantFromQVariant(const QVariant &var)
5353 QHash<QString, QVariant>::const_iterator it = hash.constBegin();
5454 while (it != hash.constEnd()) {
5555 GVariant *key = g_variant_new_string(it.key().toUtf8());
56− children[++cnt] = g_variant_new_dict_entry(key, GVariantFromQVariant(it.value()));
56+ children[cnt++] = g_variant_new_dict_entry(key, g_variant_new_variant(GVariantFromQVariant(it.value())));
5757 ++it;
5858 }
59− gv = g_variant_new_array(G_VARIANT_TYPE_DICT_ENTRY, children, 1);
59+ gv = g_variant_new_array(G_VARIANT_TYPE("{sv}"), children, hash.size());
6060 delete [] children;
6161 break;
6262 }
6363 default:
64− return NULL;
64+ break;
6565 }
6666 return gv;
6767}
@@ -69,6 +69,14 @@ GVariant* GVariantFromQVariant(const QVariant &var)
6969unity::glib::HintsMap hintsMapFromQVariant(const QVariant &var)
7070{
7171 if (var.type() == QVariant::Hash) {
72+ unity::glib::HintsMap hintsMap;
73+ const auto hash = var.toHash();
74+ QHash<QString, QVariant>::const_iterator it = hash.constBegin();
75+ while (it != hash.constEnd()) {
76+ hintsMap[it.key().toStdString()] = GVariantFromQVariant(it.value());
77+ ++it;
78+ }
79+ return hintsMap;
7280 }
7381 return unity::glib::HintsMap();
7482}