Merge branch 'master' of /opt/src/sb1/qt/scorecard
[scorecard] / src / xml-dom-parser.cpp
index 7964c65..a8ecde5 100644 (file)
@@ -79,7 +79,7 @@ ClubXmlHandler::ClubXmlHandler(QList<Club *> &list) : list(list)
 {
 }
 
-int ClubXmlHandler::parse(QString &fileName)
+int ClubXmlHandler::parse(QString &fileName, bool readOnly)
 {
   QFile file(fileName);
 
@@ -102,22 +102,22 @@ int ClubXmlHandler::parse(QString &fileName)
   QDomElement clubElement = root.firstChildElement("club");
   while (!clubElement.isNull()) {
 
-    Club *club = new Club(clubElement);
+      Club *club = new Club(clubElement, readOnly);
 
     QDomElement courseElement = clubElement.firstChildElement("course");
     while (!courseElement.isNull()) {
 
-      Course *course = new Course(courseElement);
-      club->addCourse(course);
+        Course *course = new Course(courseElement, club);
+        club->addCourse(course);
 
-      QDomElement holeElement = courseElement.firstChildElement("hole");
-      while (!holeElement.isNull()) {
-       Hole *hole = new Hole(holeElement);
-       course->addHole(hole);
+        QDomElement holeElement = courseElement.firstChildElement("hole");
+        while (!holeElement.isNull()) {
+            Hole *hole = new Hole(holeElement);
+            course->addHole(hole);
 
-       holeElement = holeElement.nextSiblingElement("hole");
-      }
-      courseElement = courseElement.nextSiblingElement("course");
+            holeElement = holeElement.nextSiblingElement("hole");
+        }
+        courseElement = courseElement.nextSiblingElement("course");
     }
     list << club;
     clubElement = clubElement.nextSiblingElement("club");
@@ -134,7 +134,8 @@ int ClubXmlHandler::save(QString &fileName)
 
   for (int i = 0; i < list.size(); i++) {
     Club *club = list.at(i);
-    root.appendChild(club->toElement(doc));
+    if (!club->isReadOnly())
+        root.appendChild(club->toElement(doc));
   }
 
   if (!file.open(QFile::WriteOnly))