Your warranties manager
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

111 lines
2.9 KiB

  1. #include "manufacturersmanager.h"
  2. #include <QSettings>
  3. #include <QFile>
  4. #include <QDomDocument>
  5. #include <QDomElement>
  6. #include <QDomNode>
  7. /**
  8. * Class constructor
  9. */
  10. ManufacturersManager::ManufacturersManager()
  11. {
  12. QSettings *settings = new QSettings("Deuchnord", "Hermes");
  13. QFile fichierMagasins(settings->value("placeSave").toString()+"/deuchnord-hermes/manufacturers.xml");
  14. fichierMagasins.open(QFile::ReadOnly);
  15. if(fichierMagasins.isOpen())
  16. {
  17. QString contenuFichier = fichierMagasins.readAll();
  18. fichierMagasins.close();
  19. QDomDocument dom;
  20. dom.setContent(contenuFichier);
  21. QDomElement root = dom.firstChildElement();
  22. QDomElement manufacturer;
  23. QDomNode node = root.firstChild();
  24. while(!node.isNull())
  25. {
  26. manufacturer = node.toElement();
  27. if(manufacturer.tagName() == "manufacturer")
  28. manufacturers.append(manufacturer.firstChild().toText().data());
  29. node = node.nextSibling();
  30. }
  31. }
  32. }
  33. /**
  34. * Adds a manufacturer to the list.
  35. * /!\ after adding a manufacturer, the <code>save</code> method should be called.
  36. * @param manufacturer the manufacturer to add
  37. */
  38. void ManufacturersManager::addManufacturer(QString manufacturer) {
  39. manufacturers.append(manufacturer);
  40. #define shouldsave 1
  41. }
  42. /**
  43. * @return a list of known manufacturers, including those that've been added with <code>addManufacturer()</code>.
  44. */
  45. QList<QString> ManufacturersManager::getManufacturers() {
  46. return manufacturers;
  47. }
  48. /**
  49. * Deletes the manufacturer set in parameter.
  50. * /!\ after deleting a manufacturer, the <code>save</code> method should be called.
  51. * @param manufacturerToDelete the index of the manufacturer to delete
  52. */
  53. void ManufacturersManager::deleteManufacturer(int manufacturerToDelete) {
  54. manufacturers.removeAt(manufacturerToDelete);
  55. #define shouldsave 1
  56. }
  57. /**
  58. * Saves the changes made on the list of manufacturers.
  59. */
  60. void ManufacturersManager::save() {
  61. QDomDocument dom("manufacturers");
  62. QDomElement rootElement = dom.createElement("manufacturers");
  63. dom.appendChild(rootElement);
  64. for(QString manufacturer : manufacturers) {
  65. QDomElement domManufacturer = dom.createElement("manufacturer");
  66. root.appendChild(domManufacturer);
  67. QDomText textManufacturer = dom.createTextNode(manufacturer);
  68. domManufacturer.appendChild(textManufacturer);
  69. }
  70. QSettings *settings = new QSettings("Deuchnord", "Hermes");
  71. QFile fichierMagasins(settings->value("placeSave").toString()+"/deuchnord-hermes/manufacturers.xml");
  72. if(fichierMagasins.open(QFile::WriteOnly)) {
  73. fichierMagasins.write(dom.toString().toUtf8());
  74. fichierMagasins.close();
  75. }
  76. #undef shouldsave
  77. }
  78. ManufacturerManager::~ManufacturerManager() {
  79. #ifdef shouldsave
  80. #warning The manufacturers list have been changed, but has not been saved. You should call the save() method.
  81. #endif
  82. }