Example #1
0
void loadDataMap( dataFileIO& file , dataMap_t& dataMap , void* ptr )
{
	if ( dataMap.baseDataMap )
		loadDataMap( file , *dataMap.baseDataMap , ptr );

	for ( int i = 0 ; i < dataMap.numDataField ; ++i )
	{
		dataFieldBase* df = dataMap.dataFieldArray[i];
		df->load( file , ptr );
	}
}
Example #2
0
MapFile::MapFile(QString filename, QObject *parent) : QObject(parent),
    _filename(filename)
{
    Q_ASSERT(!filename.isEmpty());
    QFile load_file(_filename);
    try {
        if (load_file.exists()){
            if (load_file.open(QIODevice::ReadOnly)){
                loadDataMap(load_file);
            }
        } else {
            if (load_file.open(QIODevice::ReadWrite)) {
                QJsonDocument data_doc = QJsonDocument(QJsonObject::fromVariantMap(QVariantMap()));
                load_file.write(data_doc.toJson());
                loadDataMap(load_file);
            }
        }
    } catch (QException e) {
        //TODO: handle catch
    }
}