@@ -105,12 +105,32 @@ 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+ QString str = "[";
117+ QTextStream stream(&str);
118+ const QString seperator = ", ";
119+
120+ for (auto v : vData.toList())
121+ stream << getVariantString(v) << seperator;
122+
123+ if (str.endsWith(seperator))
124+ str.resize(str.length() - seperator.length());
125+
126+ str += "]";
127+ return str;
128+ }
129+
130+ return vData.toString();
131+}
132+
133+QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &vData, int depth) const
114134{
115135 QString str;
116136 QTextStream stream(&str);
@@ -119,18 +139,20 @@ QString ModelPrinter::getVariantString(const QString& roleName, const QVariant &
119139 QMapIterator<QString, QVariant> iter(vData.toMap());
120140 while (iter.hasNext()) {
121141 iter.next();
142+ stream << tabify(depth);
122143 stream << roleName
123144 << "."
124145 << iter.key()
125146 << ": "
126− << iter.value().toString()
147+ << getVariantString(iter.value())
127148 << endl;
128149 }
129150 }
130151 else {
152+ stream << tabify(depth);
131153 stream << roleName
132154 << ": "
133− << vData.toString()
155+ << getVariantString(vData)
134156 << endl;
135157 }
136158 return str;