Index: NetworkEditor/src/MainWindow.hxx =================================================================== --- NetworkEditor/src/MainWindow.hxx (revision 14381) +++ NetworkEditor/src/MainWindow.hxx (working copy) @@ -254,10 +254,9 @@ query.evaluateTo(&readClamVersion); #endif readClamVersion = readClamVersion.trimmed(); - - int comparision = compareVersions(readClamVersion, CLAM::GetVersion()); - - if (comparision==-1) +#if defined CLAMREFACTOR + int comparison = compareVersions(readClamVersion, CLAM::GetVersion()); + if (comparison==-1) { int response = QMessageBox::question(this, tr("NetworkEditor"), @@ -276,9 +275,8 @@ // TODO: Updating the script return; } - } - if (comparision==+1) + if (comparison==+1) { int response = QMessageBox::question(this, tr("NetworkEditor"), @@ -291,11 +289,10 @@ QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes); if (response == QMessageBox::No) return; } - - - loadVersionChecked(filename); +#endif + loadFromFile(filename); } - void loadVersionChecked(const QString & filename) + void loadFromFile(const QString & filename) { _network.ResetConnectionReport(); @@ -332,6 +329,41 @@ _networkFile = filename; updateCaption(); } + void loadFromString(const std::string & strNetwork, const QString & filename) + { + _network.ResetConnectionReport(); + + std::istringstream istrNetwork(strNetwork); + try + { + CLAM::XMLStorage::Restore(_network, istrNetwork); + } + catch(CLAM::XmlStorageErr &e) + { + QMessageBox::critical(this, tr("Error loading the network"), + tr("
An occurred while loading the network file.
" + "
%1
").arg(e.what())); + clear(); + return; + } + _textDescriptionEdit->setText(QString::fromLocal8Bit(_network.GetDescription().c_str())); + + _playingLabel->setNetwork(&_network); + _canvas->loadNetwork(&_network); + _canvas->loadGeometriesFromXML(); + + CLAM::Network::ConnectionState connectionState = _network.GetConnectionReport(); + if (connectionState.first) + { + QMessageBox::warning(this, tr("Broken connections found"), + tr("The following connections are broken.
" + "
%1
").arg(connectionState.second.c_str())); + } + + appendRecentFile(filename); + _networkFile = filename; + updateCaption(); + } void save(const QString & filename) { std::string localFilename = filename.toLocal8Bit().constData();