From kde-commits Thu Oct 15 20:17:51 2009 From: Laurent Garnier Date: Thu, 15 Oct 2009 20:17:51 +0000 To: kde-commits Subject: KDE/kdeedu/kgeography Message-Id: <1255637871.509278.5769.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=125563793301113 SVN commit 1035761 by lauranger: Adding optional tags for (english) question patterns and titles to kgm format, to give answer to bug 209889 M +4 -0 data/world_continents.kgm M +3 -2 src/capitaldivisionasker.cpp M +2 -2 src/divisioncapitalasker.cpp M +2 -2 src/kgeography.cpp M +42 -0 src/map.cpp M +12 -0 src/map.h M +44 -1 src/mapparser.cpp M +4 -0 src/mapsdatatranslation.cpp M +1 -1 src/placeasker.cpp M +16 -0 src/script.cpp --- trunk/KDE/kdeedu/kgeography/data/world_continents.kgm #1035760:1035761 @@ -2,6 +2,10 @@ world_continents.png World continents (from North Pole) Continents + What is the highest summit of %1 ? + Continents by highest summit + Which has %1 as highest summit ? + Highest summit of continents Laurent Garnier Frontier --- trunk/KDE/kdeedu/kgeography/src/capitaldivisionasker.cpp #1035760:1035761 @@ -31,7 +31,7 @@ p_currentAnswer.setCorrectAnswer(i18nc("@option:radio is the capital of...", "%1", i18nc(p_map -> getFileName().toUtf8(), division.toUtf8()))); QString capitalName = i18nc(p_map -> getFileName().toUtf8(), p_capital.toUtf8()); - setQuestion(i18nc("@title:group", "%1 is the capital of...", capitalName)); + setQuestion(i18nc("@title:group", p_map->getCapitalToDivisionQuestionPattern().toUtf8(), capitalName)); p_rb[i] -> setText(i18nc("@option:radio is the capital of...", "%1", i18nc(p_map -> getFileName().toUtf8(), division.toUtf8()))); b = true; } @@ -62,5 +62,6 @@ QString capitalDivisionAsker::getQuestionHook() const { QString divisionType = i18nc(p_map -> getFileName().toUtf8(), p_map->getDivisionsString().toUtf8()); - return i18nc("@title", "%1 by Capital", divisionType); + return i18nc("@title", p_map->getCapitalToDivisionTitle().toUtf8()); + //return i18nc("@title", p_map->getCapitalToDivisionTitle().toUtf8(), divisionType); } --- trunk/KDE/kdeedu/kgeography/src/divisioncapitalasker.cpp #1035760:1035761 @@ -28,7 +28,7 @@ if (isAnswer) { QString divisionName = i18nc(p_map -> getFileName().toUtf8(), division.toUtf8()); - setQuestion(i18nc("@title:group", "The capital of %1 is...", divisionName)); + setQuestion(i18nc("@title:group", p_map->getDivisionToCapitalQuestionPattern().toUtf8(), divisionName)); p_currentAnswer.setQuestion(i18nc("@item:intable column Question, %1 is region name", "%1", i18nc(p_map -> getFileName().toUtf8(), division.toUtf8()))); p_capital = p_map -> getDivisionCapital(division); p_currentAnswer.setCorrectAnswer(i18nc("@option:radio The capital of is...", "%1", i18nc(p_map -> getFileName().toUtf8(), p_capital.toUtf8()))); @@ -78,5 +78,5 @@ QString divisionCapitalAsker::getQuestionHook() const { QString divisionType = i18nc(p_map -> getFileName().toUtf8(), p_map->getDivisionsString().toUtf8()); - return i18nc("@title", "Capital of %1", divisionType); + return i18nc("@title", p_map->getDivisionToCapitalTitle().toUtf8()); } --- trunk/KDE/kdeedu/kgeography/src/kgeography.cpp #1035760:1035761 @@ -379,8 +379,8 @@ p_askMap->setText(i18n("&Location of %1", divisionType)); p_askPlaceMap->setText(i18n("&Place %1 in the Map", divisionType)); - p_askCapitalDivisions->setText(i18n("%1 by Capital", divisionType)); - p_askDivisionCapitals->setText(i18n("&Capitals of %1", divisionType)); + p_askCapitalDivisions->setText(i18nc("@title", p_map->getCapitalToDivisionTitle().toUtf8())); + p_askDivisionCapitals->setText(i18nc("@title", p_map->getDivisionToCapitalTitle().toUtf8())); p_askFlagDivisions->setText(i18n("%1 by Flag", divisionType)); p_askDivisionFlags->setText(i18n("&Flags of %1", divisionType)); --- trunk/KDE/kdeedu/kgeography/src/map.cpp #1035760:1035761 @@ -22,6 +22,8 @@ KGmap::KGmap() { + p_capitalToDivisionPattern = "%1 is the capital of..."; + p_divisionToCapitalPattern = "The capital of %1 is..."; } KGmap::~KGmap() @@ -68,6 +70,26 @@ p_author = s; } +void KGmap::setCapitalToDivisionQuestionPattern(const QString &str) +{ + p_capitalToDivisionPattern = str; +} + +void KGmap::setDivisionToCapitalQuestionPattern(const QString &str) +{ + p_divisionToCapitalPattern = str; +} + +void KGmap::setCapitalToDivisionTitle(const QString &str) +{ + p_capitalToDivisionTitle = str; +} + +void KGmap::setDivisionToCapitalTitle(const QString &str) +{ + p_divisionToCapitalTitle = str; +} + uint KGmap::count(division::askMode am) const { uint count = 0; @@ -93,6 +115,26 @@ return getDivision(divisionName) -> getFalseCapitals(); } +QString KGmap::getCapitalToDivisionQuestionPattern() const +{ + return p_capitalToDivisionPattern; +} + +QString KGmap::getDivisionToCapitalQuestionPattern() const +{ + return p_divisionToCapitalPattern; +} + +QString KGmap::getCapitalToDivisionTitle() const +{ + return p_capitalToDivisionTitle; +} + +QString KGmap::getDivisionToCapitalTitle() const +{ + return p_divisionToCapitalTitle; +} + QString KGmap::getFile() const { return p_file; --- trunk/KDE/kdeedu/kgeography/src/map.h #1035760:1035761 @@ -29,6 +29,10 @@ void setName(const QString &s); void setDivisionsString(const QString &s); void setAuthor(const QString &s); + void setCapitalToDivisionQuestionPattern(const QString &str); + void setDivisionToCapitalQuestionPattern(const QString &str); + void setCapitalToDivisionTitle(const QString &str); + void setDivisionToCapitalTitle(const QString &str); // return the number of askable divisions uint count(division::askMode am) const; @@ -46,6 +50,10 @@ QString getAuthor() const; QColor getColor(const QString &s) const; const QList getIgnoredDivisions(division::askMode am) const; + QString getCapitalToDivisionQuestionPattern() const; + QString getDivisionToCapitalQuestionPattern() const; + QString getCapitalToDivisionTitle() const; + QString getDivisionToCapitalTitle() const; private: division *getDivision(const QString &divisionName) const; @@ -55,6 +63,10 @@ QString p_name, p_file, p_mapFile; QString p_divisionsString; + QString p_capitalToDivisionPattern; + QString p_divisionToCapitalPattern; + QString p_capitalToDivisionTitle; + QString p_divisionToCapitalTitle; QString p_author; }; --- trunk/KDE/kdeedu/kgeography/src/mapparser.cpp #1035760:1035761 @@ -14,6 +14,7 @@ #include #include +#include #include "division.h" #include "map.h" @@ -49,7 +50,49 @@ } // Divisions string - kgmap -> setDivisionsString( getElementString("divisionsName", root, Mandatory) ); + QString divisionKindName = getElementString("divisionsName", root, Mandatory); + kgmap -> setDivisionsString(divisionKindName); + + QString pat = getElementString("capitalToDivisionPattern", root, Optional); + if ( pat.contains('%') ) + { + kgmap->setCapitalToDivisionQuestionPattern(pat); + } + else if ( ! pat.isEmpty() ) + { + kDebug() << "capitalToDivisionPattern element should contain one '%%' in map " << kgmap->getName(); + } + + pat = getElementString("divisionToCapitalPattern", root, Optional); + if ( pat.contains('%') ) + { + kgmap->setDivisionToCapitalQuestionPattern(pat); + } + else if ( ! pat.isEmpty() ) + { + kDebug() << "divisionToCapitalPattern element should contain one '%%' in map " << kgmap->getName(); + } + + QString title = getElementString("capitalToDivisionTitle", root, Optional); + if ( ! title.isEmpty() ) + { + kgmap->setCapitalToDivisionTitle(title); + } + else + { + kgmap->setCapitalToDivisionTitle(i18n("%1 by Capital", divisionKindName)); + } + + title = getElementString("divisionToCapitalTitle", root, Optional); + if ( ! title.isEmpty() ) + { + kgmap->setDivisionToCapitalTitle(title); + } + else + { + kgmap->setDivisionToCapitalTitle(i18n("&Capitals of %1", divisionKindName)); + } + // Author string kgmap -> setAuthor( getElementString("author", root, Mandatory) ); --- trunk/KDE/kdeedu/kgeography/src/mapsdatatranslation.cpp #1035760:1035761 @@ -6802,6 +6802,10 @@ i18nc("world.kgm", "Nuuk"); i18nc("world_continents.kgm", "World continents (from North Pole)"); i18nc("world_continents.kgm", "Continents"); +i18nc("@title:group", "What is the highest summit of %1 ?"); +i18nc("@title", "Continents by highest summit"); +i18nc("@title:group", "Which has %1 as highest summit ?"); +i18nc("@title", "Highest summit of continents"); i18nc("world_continents.kgm", "Frontier"); i18nc("world_continents.kgm", "Water"); i18nc("world_continents.kgm", "Africa"); --- trunk/KDE/kdeedu/kgeography/src/placeasker.cpp #1035760:1035761 @@ -179,7 +179,7 @@ for (int y = minY; y < maxY; y++) { if (p_mapImage->pixel(x,y) == divColor) - p_currentDivisionImage->setPixel(x - minX, y - minY, p_mapImage->pixel(x,y)); + p_currentDivisionImage->setPixel(x - minX, y - minY, divColor); } } } --- trunk/KDE/kdeedu/kgeography/src/script.cpp #1035760:1035761 @@ -83,6 +83,22 @@ { os << "i18nc(\"" << *it << "\", \"" << n.firstChild().nodeValue() << "\");\n"; } + else if (n.nodeName() == "divisionToCapitalPattern") + { + os << "i18nc(\"@title:group\", \"" << n.firstChild().nodeValue() << "\");\n"; + } + else if (n.nodeName() == "capitalToDivisionPattern") + { + os << "i18nc(\"@title:group\", \"" << n.firstChild().nodeValue() << "\");\n"; + } + else if (n.nodeName() == "divisionToCapitalTitle") + { + os << "i18nc(\"@title\", \"" << n.firstChild().nodeValue() << "\");\n"; + } + else if (n.nodeName() == "capitalToDivisionTitle") + { + os << "i18nc(\"@title\", \"" << n.firstChild().nodeValue() << "\");\n"; + } } f -> close();