+ if (editable || groups.count() == 0) {
+ QDomElement profiles = doc.documentElement();
+ if (editable && profiles.attribute("version", 0).toInt() < 1) {
+ kDebug() << "// OLD profile version";
+ // this is an old profile version, update it
+ QDomDocument newdoc;
+ QDomElement newprofiles = newdoc.createElement("profiles");
+ newprofiles.setAttribute("version", 1);
+ newdoc.appendChild(newprofiles);
+ QDomNodeList profilelist = doc.elementsByTagName("profile");
+ for (int i = 0; i < profilelist.count(); i++) {
+ QString category = i18n("Custom");
+ QString extension;
+ QDomNode parent = profilelist.at(i).parentNode();
+ if (!parent.isNull()) {
+ QDomElement parentNode = parent.toElement();
+ if (parentNode.hasAttribute("name")) category = parentNode.attribute("name");
+ extension = parentNode.attribute("extension");
+ }
+ profilelist.at(i).toElement().setAttribute("category", category);
+ if (!extension.isEmpty()) profilelist.at(i).toElement().setAttribute("extension", extension);
+ QDomNode n = profilelist.at(i).cloneNode();
+ newprofiles.appendChild(newdoc.importNode(n, true));
+ }
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ KMessageBox::sorry(this, i18n("Unable to write to file %1", exportFile));
+ return;
+ }
+ QTextStream out(&file);
+ out << newdoc.toString();
+ file.close();
+ parseFile(exportFile, editable);
+ return;
+ }
+