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.

76 lines
2.3KB

  1. #include "config.h"
  2. config::config(dialog_Options* parent)
  3. {
  4. this->parent = parent;
  5. if (!wxFileExists("cosmos.cfg"))
  6. createDefault();
  7. else
  8. load();
  9. }
  10. void config::createDefault()
  11. {
  12. dbpath = wxGetCwd();
  13. useproxy = true;
  14. proxyurl = "www-proxy.chu-nancy.fr";
  15. proxyport = 8080;
  16. fichier_config = new wxXmlDocument();
  17. wxXmlNode* rootnode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "CosMoS_config");
  18. wxXmlNode* proxynode = new wxXmlNode(rootnode, wxXML_ELEMENT_NODE, "proxy");
  19. if (useproxy)
  20. proxynode->AddAttribute("set", "true");
  21. else
  22. proxynode->AddAttribute("set", "false");
  23. wxXmlNode* proxyportnode = new wxXmlNode(proxynode, wxXML_ELEMENT_NODE, "port");
  24. wxXmlNode* proxyporttext = new wxXmlNode(proxyportnode, wxXML_TEXT_NODE, "", wxString::Format("%i",proxyport));
  25. wxXmlNode* proxyurlnode = new wxXmlNode(proxynode, wxXML_ELEMENT_NODE, "url");
  26. wxXmlNode* proxyurltext = new wxXmlNode(proxyurlnode, wxXML_TEXT_NODE, "", proxyurl);
  27. wxXmlNode* dbpathnode = new wxXmlNode(rootnode, wxXML_ELEMENT_NODE, "dbpath");
  28. wxXmlNode* dbpathtext = new wxXmlNode(dbpathnode, wxXML_TEXT_NODE, "", dbpath);
  29. fichier_config->SetRoot(rootnode);
  30. wxMessageBox("Vous lancez CosMoS pour la première fois,\nveuillez configurer le chemin de la base\nainsi que les paramètres de connexion");
  31. first_time = true;
  32. }
  33. config::~config()
  34. {
  35. delete fichier_config;
  36. }
  37. void config::save()
  38. {
  39. wxXmlNode* parcours = fichier_config->GetRoot()->GetChildren();
  40. parcours->GetChildren()->SetContent(dbpath);
  41. parcours = parcours->GetNext();
  42. if (useproxy)
  43. parcours->GetAttributes()->SetValue("true");
  44. else
  45. parcours->GetAttributes()->SetValue("false");
  46. parcours = parcours->GetChildren();
  47. parcours->GetChildren()->SetContent(proxyurl);
  48. parcours = parcours->GetNext();
  49. parcours->GetChildren()->SetContent(wxString::Format("%i",proxyport));
  50. fichier_config->Save("cosmos.cfg");
  51. }
  52. void config::load()
  53. {
  54. fichier_config = new wxXmlDocument("cosmos.cfg");
  55. wxXmlNode* parcours = fichier_config->GetRoot()->GetChildren();
  56. dbpath = parcours->GetNodeContent();
  57. parcours = parcours->GetNext();
  58. if (parcours->GetAttribute("set") == "true")
  59. useproxy = true;
  60. else
  61. useproxy = false;
  62. parcours = parcours->GetChildren();
  63. proxyurl = parcours->GetNodeContent();
  64. parcours = parcours->GetNext();
  65. proxyport = wxAtoi(parcours->GetNodeContent());
  66. first_time = false;
  67. }