Initial commit
[golf-scorecard] / src / playermanagement.cpp
1 #include "playermanagement.h"\r
2 #include "ui_playermanagement.h"\r
3 #include "pcmanagement.h"\r
4 \r
5 #include <QFileDialog>\r
6 #include <QMessageBox>\r
7 #include <QDomNode>\r
8 #include <QCoreApplication>\r
9 \r
10 #include <QDebug>\r
11 \r
12 #define N900\r
13 \r
14 playermanagement::playermanagement(QWidget *parent) :\r
15     QMainWindow(parent),\r
16     ui(new Ui::playermanagement)\r
17 {\r
18     ui->setupUi(this);\r
19     fileName = (QCoreApplication::applicationDirPath() + "/xml/players/playerdata.xml");\r
20 \r
21     #ifdef N900\r
22         fileName = "/opt/GolfScorecard/xml/players/playerdata.xml";\r
23     #endif\r
24 }\r
25 \r
26 playermanagement::~playermanagement()\r
27 {\r
28     delete ui;\r
29 }\r
30 \r
31 void playermanagement::changeEvent(QEvent *e)\r
32 {\r
33     QMainWindow::changeEvent(e);\r
34     switch (e->type()) {\r
35     case QEvent::LanguageChange:\r
36         ui->retranslateUi(this);\r
37         break;\r
38     default:\r
39         break;\r
40     }\r
41 }\r
42 \r
43 void playermanagement::on_saveAndContinue_clicked()\r
44 {\r
45     if(!ui->fullName->toPlainText().isEmpty() && !ui->hcp->toPlainText().isEmpty())\r
46     {\r
47 \r
48         if (fileName.isEmpty()){\r
49             QMessageBox::warning(this, tr("Player file"),\r
50                                  tr("EMPTY! Cannot read file."));\r
51 \r
52         }\r
53 \r
54         QFile file(fileName);\r
55 \r
56         if (!file.open(QFile::ReadOnly | QFile::Text)) {\r
57             QMessageBox::warning(this, tr("Player file"),\r
58                                  tr("Cannot read file %1:\n%2.")\r
59                                  .arg(fileName)\r
60                                  .arg(file.errorString()));\r
61 \r
62         }\r
63 \r
64         QDomDocument doc("Players");\r
65 \r
66         if( !doc.setContent( &file ) )\r
67         {\r
68             file.close();\r
69             QMessageBox::warning(this, tr("Parsing failed"), tr("Parsing failed totally"));\r
70         }\r
71         file.close();\r
72 \r
73         file.remove(fileName);\r
74 \r
75         QDomElement root = doc.documentElement();\r
76         if( root.tagName() != "players" )\r
77             QMessageBox::warning(this, tr("No root found!"), tr("There was no root in XML found!"));\r
78 \r
79         QDomElement tag = doc.createElement("player");\r
80         tag.setAttribute("name", ui->fullName->toPlainText());\r
81         tag.setAttribute("gender", ui->gender_comboBox->currentText());\r
82         tag.setAttribute("hcp", ui->hcp->toPlainText());\r
83         root.appendChild(tag);\r
84 \r
85         qDebug() << doc.toString();\r
86 \r
87         if (!file.open(QFile::WriteOnly | QFile::Text)) {\r
88             QMessageBox::warning(this, tr("Player file"),\r
89                                  tr("Cannot read file %1:\n%2.")\r
90                                  .arg(fileName)\r
91                                  .arg(file.errorString()));\r
92 \r
93         }\r
94 \r
95         QTextStream ts( &file );\r
96         ts << doc.toString();\r
97 \r
98         file.close();\r
99 \r
100         QMessageBox msgBox;\r
101         msgBox.setText("Player created!");\r
102         msgBox.exec();\r
103 \r
104         PCManagement *pcm = new PCManagement();\r
105         pcm->show();\r
106         this->hide();\r
107     }\r
108     else\r
109     {\r
110         QMessageBox msgBox;\r
111         msgBox.setText("You have not filled all fields!");\r
112         msgBox.exec();\r
113     }\r
114 }\r
115 \r
116 void playermanagement::on_prevWindowButton_clicked()\r
117 {\r
118     PCManagement *pcm = new PCManagement();\r
119     pcm->show();\r
120     this->hide();\r
121 }\r