26 #include <qtextstream.h>
28 using namespace ::std;
31 static const int _strBufferSize = 64;
61 const QString& currentDirectory)
78 for (
int i = 0; i < nbParams; i++)
102 QFile file(fileName);
103 if (!file.open(QIODevice::ReadOnly))
105 std::cerr <<
"\nError when open '" << fileName.toLatin1().data() <<
"'\n";
111 if (!doc.setContent(&file, &errorMsg, &errorLine, &errorColumn))
113 std::cerr <<
"\nError during parsing: '" << fileName.toLatin1().data() <<
"'\n"
114 <<
"error message is: \n"
115 << errorMsg.toLatin1().constData() <<
"\n"
116 <<
"in line:" << errorLine <<
" in column:" << errorColumn << endl;
122 QDomDocument domDocument = doc;
125 QDomElement rootElement = domDocument.documentElement();
128 QDomNodeList nodeList = rootElement.childNodes();
132 int nodecount = nodeList.length();
135 for (
int i = 0; i < nodecount; i++)
137 QDomNode curElem = nodeList.item(i);
139 if (curElem.isElement())
142 QString dir = curElem.nodeName();
144 QDomNodeList nodeList2 = curElem.childNodes();
146 int nodecount2 = nodeList2.length();
148 for (
int j = 0; j < nodecount2; j++)
150 QDomElement curElem2 = nodeList2.item(j).toElement();
155 QString
name = curElem2.attribute(
"key");
156 QString value = curElem2.attribute(
"value");
176 QDomImplementation domImpl;
179 QString systemId =
"";
181 QDomDocumentType docType = domImpl.createDocumentType(qualifiedName, QString(), systemId);
183 QDomDocument domDocument = domImpl.createDocument(QString(),
187 QDomElement rootElement = domDocument.documentElement();
193 QString dir = (*iter).first;
196 QDomElement dirElem = domDocument.createElement(dir);
198 rootElement.appendChild(dirElem);
207 dirElem.appendChild(prefElem);
210 prefElem.setAttribute(
"key", ((*iter2).first));
211 prefElem.setAttribute(
"value", ((*iter2).second));
215 QFile file(fileName);
216 if (!file.open(QIODevice::WriteOnly))
221 QTextStream ts(&file);
222 ts.setCodec(
"utf-8");
223 ts << domDocument.toString();
300 const int& sizeArray)
307 for (
int i = 0; i < sizeArray; i++)
334 QString* strs =
new QString[sizeArray];
336 for (
int i = 0; i < sizeArray; i++)
344 #if TY_ARCH_TYPE == TY_ARCHITECTURE_64
367 #if TY_COMPILER == TY_COMPILER_MSVC
422 int res = str.toFloat();
449 if (sValue.isEmpty())
505 const int& sizeX,
const int& sizeY)
612 #if TY_ARCH_TYPE == TY_ARCHITECTURE_64
615 char buffer[_strBufferSize];
616 sprintf_s(buffer,
"%d", val);
623 char buffer[_strBufferSize];
624 sprintf_s(buffer,
"%zd", val);
628 #if TY_COMPILER == TY_COMPILER_MSVC
631 char buffer[_strBufferSize];
632 sprintf_s(buffer,
"%lu", val);
640 char buffer[_strBufferSize];
641 sprintf_s(buffer,
"%d", val);
648 char buffer[_strBufferSize];
649 sprintf_s(buffer,
"%lu", val);
657 char buffer[_strBufferSize];
658 sprintf_s(buffer,
"%d", val);
665 char buffer[_strBufferSize];
666 sprintf_s(buffer,
"%f", val);
673 char buffer[_strBufferSize];
674 sprintf_s(buffer,
"%f", val);
QString _xmlParamNodeName
Nom des noeuds des parametres du fichier XML.
void loadDefault(const char *defaultParams[][2], int nbParams)
Charge le tableau associatif preference/valeur avec les valeurs par defaut.
void getColor(const QString &pref, float &r, float &g, float &b)
Charge les composantes RGB d'une couleur, en float.Utilise la categorie courante.
void setDouble(const QString &pref, const double &value)
Met a jour la valeur associee a une preference.
virtual ~OPreferenceManager()
ODirMap _prefDirs
Tableau associatif parametre/valeur.
static QString doubleToString(const double &val)
QString getDirectory(const QString &pref)
Recherche le nom de la categorie pour une preference donnee.
void setBool(const QString &pref, const bool &value)
Met a jour la valeur associee a une preference. Si la preference n'existe pas, celle-ci est ajoutee a...
static QString floatToString(const float &val)
void setString(const QString &pref, const QString &value)
Met a jour la valeur associee a une preference.
static QString intToString(const int &val)
double getDouble(const QString &pref)
Recherche une ressource et retourne sa valeur associee. Utilise la categorie courante.
float getFloat(const QString &pref)
Recherche une ressource et retourne sa valeur associee. Utilise la categorie courante.
QString _curDir
Le nom de la categorie courante.
QString _xmlRootNodeName
Nom du noeud root du fichier XML.
void setUInt(const QString &pref, const unsigned int &value)
static QString uintToString(const unsigned int &val)
bool writeXML(QString fileName)
Enregistre le fichier de preference au format XML.
bool getBool(const QString &pref)
Recherche une ressource et retourne sa valeur associee. Utilise la categorie courante.
void setFrame(const QString &pref, const int &posX, const int &posY, const int &sizeX, const int &sizeY)
Sauvegarde la position et la taille d'une fenetre.
int getInt(const QString &pref)
Recherche une ressource et retourne sa valeur associee.Utilise la categorie courante.
void setFloat(const QString &pref, const float &value)
Met a jour la valeur associee a une preference.
void setXMLParamNodeName(QString name)
Change le nom des noeuds de parametres dans le fichier XML.
void setXMLRootNodeName(QString name)
Change le nom du noeud root du fichier XML.
bool readXML(QString fileName)
Ouvre un fichier de preference en XML et le parcours pour mettre a jour la tableau de preferences.
QString * getStringArray(const QString &pref, int &sizeArray)
Recherche une ressource et retourne son tableau de valeurs associees. Utilise la categorie courante.
void getPoint(const QString &pref, int &x, int &y)
Charge les coordonnees en pixel d'un point. Utilise la categorie courante.
int _nPreferenceModificationStamp
void setColor(const QString &pref, const float &r, const float &g, const float &b)
Sauvegarde les composantes RGB d'une couleur, en float.Utilise la categorie courante.
void setStringArray(const QString &pref, const QString *valueArray, const int &sizeArray)
Met a jour un tableau de valeurs associees a une preference.
void reset()
Vide le tableau associatif preference/valeur.
bool exists(const QString &pref)
Test si une preference est presente dans le tableau de preferences. Utilise la categorie courante.
void setInt(const QString &pref, const int &value)
Met a jour la valeur associee a une preference.
void setPoint(const QString &pref, const int &x, const int &y)
Sauvegarde les coordonnees en pixel d'un point.
void setCurrentDirectory(QString dir)
Defini la categorie courante pour la lecture et l'ecriture de parametres.
void getFrame(const QString &pref, int &posX, int &posY, int &sizeX, int &sizeY)
Charge la position et la taille d'une fenetre. Utilise la categorie courante.
QString getString(const QString &pref)
Recherche une ressource et retourne sa valeur associee. Utilise la categorie courante.
std::map< QString, OPrefMap >::iterator ODirMapIt
std::map< QString, OPrefMap > _dirMap
std::map< QString, QString >::iterator OPrefMapIt