gchar * fname = nullptr;
GVariant * fvalue = nullptr;
+ /**
+ * @todo Refactor GVariant dictionary iteration code.
+ */
while (g_variant_iter_next(vi, "{sv}", &fname, &fvalue)) {
+ //
unique_ptr<gchar> const name(fname);
- unique_ptr<GVariant> const value(fvalue);
+ unique_ptr<GVariant> const arguments(fvalue);
+ GVariantIter * ai = nullptr;
+ g_variant_get(arguments.get(), "(a{sv})", &ai);
+ unique_ptr<GVariantIter> const iter(ai);
+
+ gchar * argname = nullptr;
+ GVariant * argvalue = nullptr;
+
+ while (g_variant_iter_next(ai, "{sv}", &argname, &argvalue)) {
+ unique_ptr<gchar> const name(argname);
+ unique_ptr<GVariant> const value(argvalue);
+ }
}
});