@@ -105,12 +105,32 @@ QString ModelPrinter::getRowSring(UnityMenuModel* sourceModel, int row, int dept
106 Q_FOREACH(int role, roles) {
106 Q_FOREACH(int role, roles) {
107 const QByteArray& roleName = roleNames[role];
107 const QByteArray& roleName = roleNames[role];
108− stream << tabify(depth) << getVariantString(roleName, sourceModel->get(row, roleName));
108+ stream << getVariantString(roleName, sourceModel->get(row, roleName), depth);
110 return str;
110 return str;
113−QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &vData) const
113+QString ModelPrinter::getVariantString(const QVariant& vData) const
115+ if (vData.type() == QVariant::List) {
117+ QTextStream stream(&str);
118+ const QString seperator = ", ";
120+ for (auto v : vData.toList())
121+ stream << getVariantString(v) << seperator;
123+ if (str.endsWith(seperator))
124+ str.resize(str.length() - seperator.length());
130+ return vData.toString();
133+QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &vData, int depth) const
115 QString str;
135 QString str;
116 QTextStream stream(&str);
136 QTextStream stream(&str);
@@ -119,18 +139,20 @@ QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &
119 QMapIterator<QString, QVariant> iter(vData.toMap());
139 QMapIterator<QString, QVariant> iter(vData.toMap());
120 while (iter.hasNext()) {
140 while (iter.hasNext()) {
121 iter.next();
141 iter.next();
142+ stream << tabify(depth);
122 stream << roleName
143 stream << roleName
124 << iter.key()
145 << iter.key()
126− << iter.value().toString()
147+ << getVariantString(iter.value())
152+ stream << tabify(depth);
131 stream << roleName
153 stream << roleName
133− << vData.toString()
155+ << getVariantString(vData)
136 return str;
158 return str;