ResourcesDB: save type and basedir property as string rather than number

So far the type and basedir properties were saved as numbers (as they
are defined in internal enumeration). This is bad style so these
properties are now translated into a human-readable string when saving
and back to internal enumeration type when loading.
This commit is contained in:
Tobias Doerffel
2009-05-18 14:27:02 +02:00
parent 55548d58c0
commit 002021aac5
2 changed files with 75 additions and 5 deletions

View File

@@ -27,6 +27,7 @@
#include <QtCore/QDateTime>
#include <QtCore/QHash>
#include <QtCore/QMap>
#include <QtCore/QStringList>
#include <QtXml/QDomDocument>
@@ -81,6 +82,48 @@ private:
QDomElement & _de );
void loadTreeItem( ResourcesTreeItem * _i, QDomElement & _de );
static inline QString typeName( ResourcesItem::Type _t )
{
return s_typeNames[_t];
}
static inline QString baseDirName( ResourcesItem::BaseDirectory _bd )
{
return s_baseDirNames[_bd];
}
static inline ResourcesItem::Type typeFromName( const QString & _n )
{
for( TypeStringMap::ConstIterator it = s_typeNames.begin();
it != s_typeNames.end(); ++it )
{
if( it.value() == _n )
{
return it.key();
}
}
return ResourcesItem::TypeUnknown;
}
static inline ResourcesItem::BaseDirectory baseDirFromName(
const QString & _n )
{
for( BaseDirStringMap::ConstIterator it =
s_baseDirNames.begin();
it != s_baseDirNames.end(); ++it )
{
if( it.value() == _n )
{
return it.key();
}
}
return ResourcesItem::BaseRoot;
}
typedef QMap<ResourcesItem::Type, QString> TypeStringMap;
typedef QMap<ResourcesItem::BaseDirectory, QString> BaseDirStringMap;
static TypeStringMap s_typeNames;
static BaseDirStringMap s_baseDirNames;
ResourcesProvider * m_provider;
ItemList m_items;