/**
 * @brief cwRegionLoadTask::loadFromProtoBuffer
 * @return
 */
bool cwRegionLoadTask::loadFromProtoBuffer()
{
    bool okay;
    QByteArray protoBufferData = readProtoBufferFromDatabase(&okay);

    if(!okay) {
        return false;
    }

    CavewhereProto::CavingRegion region;
    bool couldParse = region.ParseFromArray(protoBufferData.data(), protoBufferData.size());

    if(!couldParse) {
        qDebug() << "Couldn't read proto buffer. Corrupted?!";
        //Don't close the Database here because, the xml loader needs it
        return false;
    }

    loadCavingRegion(region);

    //Clean up old images
    cwImageCleanupTask imageCleanupTask;
    imageCleanupTask.setDatabaseFilename(databaseFilename());
    imageCleanupTask.setRegion(Region);
    imageCleanupTask.start();

    Database.close();
    return true;
}
Exemple #2
0
//------------------------------------------------------------------------------
const QString ctkDICOMDatabase::databaseDirectory() const {
  QString databaseFile = databaseFilename();
  if (!QFileInfo(databaseFile).isAbsolute())
    {
    databaseFile.prepend(QDir::currentPath() + "/");
    }
  return QFileInfo ( databaseFile ).absoluteDir().path();
}