@@ -105,12 +105,25 @@ QString ModelPrinter::getRowSring(UnityMenuModel* sourceModel, int row, int dept
105105
106106 Q_FOREACH(int role, roles) {
107107 const QByteArray& roleName = roleNames[role];
108− stream << tabify(depth) << getVariantString(roleName, sourceModel->get(row, roleName));
108+ stream << getVariantString(roleName, sourceModel->get(row, roleName), depth);
109109 }
110110 return str;
111111}
112112
113−QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &vData) const
113+QString ModelPrinter::getVariantString(const QVariant& vData) const
114+{
115+ if (vData.type() == QVariant::List) {
116+ QStringList strList;
117+ for (const auto& v : vData.toList())
118+ strList.append(getVariantString(v));
119+
120+ return '[' + strList.join(", ") + ']';
121+ }
122+
123+ return vData.toString();
124+}
125+
126+QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &vData, int depth) const
114127{
115128 QString str;
116129 QTextStream stream(&str);
@@ -119,18 +132,20 @@ QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &
119132 QMapIterator<QString, QVariant> iter(vData.toMap());
120133 while (iter.hasNext()) {
121134 iter.next();
135+ stream << tabify(depth);
122136 stream << roleName
123137 << "."
124138 << iter.key()
125139 << ": "
126− << iter.value().toString()
140+ << getVariantString(iter.value())
127141 << endl;
128142 }
129143 }
130144 else {
145+ stream << tabify(depth);
131146 stream << roleName
132147 << ": "
133− << vData.toString()
148+ << getVariantString(vData)
134149 << endl;
135150 }
136151 return str;