InteractiveConf.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "InteractiveConf.h"
  2. InteractiveConf::InteractiveConf(QObject *parent)
  3. : QObject{parent}
  4. {}
  5. void InteractiveConf::confSaveElseMaterials(QStringList &elseMaterials)
  6. {
  7. QDomDocument doc;
  8. QDomElement root = doc.createElement("Config");
  9. doc.appendChild(root);
  10. QDomElement colorsElement = doc.createElement("Rfids");
  11. root.appendChild(colorsElement);
  12. for (const QString &rfid : elseMaterials)
  13. {
  14. QDomElement item = doc.createElement("Rfid");
  15. item.appendChild(doc.createTextNode(rfid));
  16. colorsElement.appendChild(item);
  17. }
  18. QFile file(INTERACTIVE_CONF_FILE);
  19. if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
  20. QTextStream stream(&file);
  21. doc.save(stream, 4);
  22. file.close();
  23. }
  24. }
  25. QStringList InteractiveConf::confReadElseMaterials(void)
  26. {
  27. QStringList elseMaterials;
  28. QFile file(INTERACTIVE_CONF_FILE);
  29. if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
  30. {
  31. return elseMaterials;
  32. }
  33. QDomDocument doc;
  34. if (!doc.setContent(&file))
  35. {
  36. file.close();
  37. return elseMaterials;
  38. }
  39. file.close();
  40. QDomElement root = doc.documentElement();
  41. QDomElement colorsElement = root.firstChildElement("Rfids");
  42. QDomNodeList colorItems = colorsElement.elementsByTagName("Rfid");
  43. for (int i = 0; i < colorItems.count(); ++i)
  44. {
  45. QDomElement item = colorItems.at(i).toElement();
  46. elseMaterials.append(item.text());
  47. }
  48. return elseMaterials;
  49. }