Skip to content
Snippets Groups Projects
Commit 9042d5e1 authored by Karsten Rink's avatar Karsten Rink
Browse files

fixed logog-problem and optimised code a little

parent 521c5b01
No related branches found
No related tags found
No related merge requests found
...@@ -29,19 +29,19 @@ void FileListDialog::on_addButton_pressed() ...@@ -29,19 +29,19 @@ void FileListDialog::on_addButton_pressed()
dlg.setDirectory(settings.value("lastOpenedOgsFileDirectory").toString()); dlg.setDirectory(settings.value("lastOpenedOgsFileDirectory").toString());
dlg.setFileMode(QFileDialog::ExistingFiles); dlg.setFileMode(QFileDialog::ExistingFiles);
dlg.setNameFilter(this->getFileTypeString(_input_file_type)); dlg.setNameFilter(this->getFileTypeString(_input_file_type));
QStringList file_names;
if (dlg.exec()) if (dlg.exec())
{ {
file_names = dlg.selectedFiles(); QStringList const file_names = dlg.selectedFiles();
if (!file_names.empty())
{ if (file_names.empty())
QStringList list = _allFiles.stringList(); return;
list.append(file_names);
_allFiles.setStringList(list); QStringList list = _allFiles.stringList();
QDir dir = QDir(file_names[0]); list.append(file_names);
settings.setValue("lastOpenedOgsFileDirectory", dir.absolutePath()); _allFiles.setStringList(list);
} QDir const dir = QDir(file_names[0]);
settings.setValue("lastOpenedOgsFileDirectory", dir.absolutePath());
} }
} }
...@@ -54,24 +54,25 @@ void FileListDialog::on_removeButton_pressed() ...@@ -54,24 +54,25 @@ void FileListDialog::on_removeButton_pressed()
void FileListDialog::on_browseButton_pressed() void FileListDialog::on_browseButton_pressed()
{ {
QSettings settings("UFZ", "OpenGeoSys-5"); QSettings const settings("UFZ", "OpenGeoSys-5");
QFileInfo fi(settings.value("lastOpenedOgsFileDirectory").toString()); QFileInfo const fi(settings.value("lastOpenedOgsFileDirectory").toString());
const QString dirName = QFileDialog::getExistingDirectory(this, "Save to", fi.absolutePath().append("/")); QString const dirName = QFileDialog::getExistingDirectory(this, "Save to", fi.absolutePath().append("/"));
this->outputDirEdit->setText(dirName); this->outputDirEdit->setText(dirName);
} }
void FileListDialog::accept() void FileListDialog::accept()
{ {
if (!_allFiles.stringList().empty()) if (_allFiles.stringList().empty())
{ {
_output_dir = this->outputDirEdit->text(); OGSError::box("No files selected.");
if (!this->outputDirEdit->text().isEmpty() && QDir(_output_dir).exists()) return;
this->done(QDialog::Accepted);
else
OGSError::box("Output directory not found.");
} }
_output_dir = this->outputDirEdit->text();
if (!this->outputDirEdit->text().isEmpty() && QDir(_output_dir).exists())
this->done(QDialog::Accepted);
else else
OGSError::box("No files selected."); OGSError::box("Output directory not found.");
} }
void FileListDialog::reject() void FileListDialog::reject()
...@@ -79,11 +80,11 @@ void FileListDialog::reject() ...@@ -79,11 +80,11 @@ void FileListDialog::reject()
this->done(QDialog::Rejected); this->done(QDialog::Rejected);
} }
QString FileListDialog::getFileTypeString(FileType file_type) const QString FileListDialog::getFileTypeString(FileType file_type) const
{ {
if (file_type==GML) return "OpenGeoSys geometry files (*.gml)"; if (file_type==GML) return "OpenGeoSys geometry files (*.gml)";
else if (file_type==VTU) return "OpenGeoSys mesh files (*.vtu)"; else if (file_type==VTU) return "OpenGeoSys mesh files (*.vtu)";
else if (file_type==GLI) return "GeoSys geometry files (*.gli)"; else if (file_type==GLI) return "GeoSys geometry files (*.gli)";
else if (file_type==MSH) return "GeoSys mesh files (*.msh)"; else if (file_type==MSH) return "GeoSys mesh files (*.msh)";
else return "All files (*.*)"; else return "All files (*.*)";
} }
\ No newline at end of file
...@@ -28,11 +28,11 @@ public: ...@@ -28,11 +28,11 @@ public:
FileListDialog(FileType input, FileType output, QWidget* parent = NULL); FileListDialog(FileType input, FileType output, QWidget* parent = NULL);
~FileListDialog(void); ~FileListDialog(void);
const QStringList getInputFileList() { return _allFiles.stringList(); }; const QStringList getInputFileList() const { return _allFiles.stringList(); };
const QString getOutputDir() { return _output_dir; }; const QString getOutputDir() const { return _output_dir; };
private: private:
QString getFileTypeString(FileType file_type); const QString getFileTypeString(FileType file_type) const;
QStringListModel _allFiles; QStringListModel _allFiles;
QString _output_dir; QString _output_dir;
......
...@@ -34,76 +34,74 @@ OGSFileConverter::~OGSFileConverter() ...@@ -34,76 +34,74 @@ OGSFileConverter::~OGSFileConverter()
{ {
} }
void OGSFileConverter::convertGML2GLI(const QStringList &input, const QString &output) void OGSFileConverter::convertGML2GLI(const QStringList &input, const QString &output) const
{ {
if (input.empty()) if (input.empty())
return; return;
ProjectData project; GeoLib::GEOObjects geo_objects;
GeoLib::GEOObjects* geo_objects = project.getGEOObjects(); FileIO::XmlGmlInterface xml(geo_objects);
FileIO::XmlGmlInterface xml(*geo_objects);
for (QStringList::const_iterator it=input.begin(); it!=input.end(); ++it) for (QStringList::const_iterator it=input.begin(); it!=input.end(); ++it)
{ {
const QFileInfo fi(*it); const QFileInfo fi(*it);
const std::string file_name = fi.baseName().toStdString();
const std::string output_str = QString(output + "/" + fi.completeBaseName() + ".gli").toStdString(); const std::string output_str = QString(output + "/" + fi.completeBaseName() + ".gli").toStdString();
if (!fileExists(output_str)) if (fileExists(output_str))
continue;
if (!xml.readFile(*it))
{ {
xml.readFile(*it); OGSError::box("Error reading geometry " + fi.fileName());
std::vector<std::string> geo_names; continue;
geo_objects->getGeometryNames(geo_names);
FileIO::Legacy::writeGLIFileV4(output_str, geo_names[0], *geo_objects);
geo_objects->removeSurfaceVec(geo_names[0]);
geo_objects->removePolylineVec(geo_names[0]);
geo_objects->removePointVec(geo_names[0]);
} }
std::vector<std::string> geo_names;
geo_objects.getGeometryNames(geo_names);
FileIO::Legacy::writeGLIFileV4(output_str, geo_names[0], geo_objects);
geo_objects.removeSurfaceVec(geo_names[0]);
geo_objects.removePolylineVec(geo_names[0]);
geo_objects.removePointVec(geo_names[0]);
} }
//FileIO::writeAllDataToGLIFileV4(output.toStdString(), *geo_objects);
OGSError::box("File conversion finished"); OGSError::box("File conversion finished");
} }
void OGSFileConverter::convertGLI2GML(const QStringList &input, const QString &output) void OGSFileConverter::convertGLI2GML(const QStringList &input, const QString &output) const
{ {
if (input.empty()) if (input.empty())
return; return;
ProjectData project; GeoLib::GEOObjects geo_objects;
GeoLib::GEOObjects* geo_objects = project.getGEOObjects(); FileIO::XmlGmlInterface xml(geo_objects);
FileIO::XmlGmlInterface xml(*geo_objects);
for (QStringList::const_iterator it=input.begin(); it!=input.end(); ++it) for (QStringList::const_iterator it=input.begin(); it!=input.end(); ++it)
{ {
const QFileInfo fi(*it); const QFileInfo fi(*it);
const std::string output_str = QString(output + "/" + fi.completeBaseName() + ".gml").toStdString(); const std::string output_str = QString(output + "/" + fi.completeBaseName() + ".gml").toStdString();
const std::string geo_name = BaseLib::extractBaseName(it->toStdString());
if (!fileExists(output_str)) if (fileExists(output_str))
continue;
std::string unique_name;
std::vector<std::string> errors;
FileIO::Legacy::readGLIFileV4(it->toStdString(), &geo_objects, unique_name, errors);
if (errors.empty() || (errors.size()==1 && errors[0].compare("[readSurface] polyline for surface not found!")==0))
{ {
std::string unique_name; std::string const geo_name = BaseLib::extractBaseName(it->toStdString());
std::vector<std::string> errors; xml.setNameForExport(geo_name);
xml.writeToFile(output_str);
FileIO::Legacy::readGLIFileV4(it->toStdString(), geo_objects, unique_name, errors); geo_objects.removeSurfaceVec(geo_name);
if (errors.empty() || (errors.size()==1 && errors[0].compare("[readSurface] polyline for surface not found!")==0)) geo_objects.removePolylineVec(geo_name);
{ geo_objects.removePointVec(geo_name);
xml.setNameForExport(geo_name);
xml.writeToFile(output_str);
geo_objects->removeSurfaceVec(geo_name);
geo_objects->removePolylineVec(geo_name);
geo_objects->removePointVec(geo_name);
}
else
for (size_t k(0); k<errors.size(); k++)
OGSError::box(QString::fromStdString(errors[k]));
} }
else
for (std::size_t k(0); k<errors.size(); ++k)
OGSError::box(QString::fromStdString(errors[k]));
} }
OGSError::box("File conversion finished"); OGSError::box("File conversion finished");
} }
void OGSFileConverter::convertVTU2MSH(const QStringList &input, const QString &output) void OGSFileConverter::convertVTU2MSH(const QStringList &input, const QString &output) const
{ {
if (input.empty()) if (input.empty())
return; return;
...@@ -111,24 +109,27 @@ void OGSFileConverter::convertVTU2MSH(const QStringList &input, const QString &o ...@@ -111,24 +109,27 @@ void OGSFileConverter::convertVTU2MSH(const QStringList &input, const QString &o
for (QStringList::const_iterator it=input.begin(); it!=input.end(); ++it) for (QStringList::const_iterator it=input.begin(); it!=input.end(); ++it)
{ {
const QFileInfo fi(*it); const QFileInfo fi(*it);
const std::string msh_name = fi.fileName().toStdString();
const std::string output_str = QString(output + "/" + fi.completeBaseName() + ".msh").toStdString(); const std::string output_str = QString(output + "/" + fi.completeBaseName() + ".msh").toStdString();
if (!fileExists(output_str)) if (fileExists(output_str))
continue;
FileIO::BoostVtuInterface vtu;
MeshLib::Mesh const*const mesh (vtu.readVTUFile(it->toStdString().c_str()));
if (mesh == nullptr)
{ {
FileIO::BoostVtuInterface vtu; OGSError::box("Error reading mesh " + fi.fileName());
MeshLib::Mesh const*const mesh (vtu.readVTUFile(it->toStdString().c_str())); continue;
FileIO::Legacy::MeshIO meshIO;
meshIO.setMesh(mesh);
meshIO.writeToFile(output_str.c_str());
delete mesh;
} }
FileIO::Legacy::MeshIO meshIO;
meshIO.setMesh(mesh);
meshIO.writeToFile(output_str.c_str());
delete mesh;
} }
OGSError::box("File conversion finished"); OGSError::box("File conversion finished");
} }
void OGSFileConverter::convertMSH2VTU(const QStringList &input, const QString &output) void OGSFileConverter::convertMSH2VTU(const QStringList &input, const QString &output) const
{ {
if (input.empty()) if (input.empty())
return; return;
...@@ -137,44 +138,47 @@ void OGSFileConverter::convertMSH2VTU(const QStringList &input, const QString &o ...@@ -137,44 +138,47 @@ void OGSFileConverter::convertMSH2VTU(const QStringList &input, const QString &o
{ {
const QFileInfo fi(*it); const QFileInfo fi(*it);
const std::string output_str = QString(output + "/" + fi.completeBaseName() + ".vtu").toStdString(); const std::string output_str = QString(output + "/" + fi.completeBaseName() + ".vtu").toStdString();
const std::string msh_name = BaseLib::extractBaseName(it->toStdString());
if (!fileExists(output_str)) if (fileExists(output_str))
continue;
FileIO::Legacy::MeshIO meshIO;
MeshLib::Mesh const*const mesh (meshIO.loadMeshFromFile(it->toStdString()));
if (mesh == nullptr)
{ {
FileIO::Legacy::MeshIO meshIO; OGSError::box("Error reading mesh " + fi.fileName());
MeshLib::Mesh const*const mesh (meshIO.loadMeshFromFile(it->toStdString())); continue;
FileIO::BoostVtuInterface vtu;
vtu.setMesh(mesh);
vtu.writeToFile(output_str);
delete mesh;
} }
} FileIO::BoostVtuInterface vtu;
vtu.setMesh(mesh);
vtu.writeToFile(output_str);
delete mesh;
}
OGSError::box("File conversion finished"); OGSError::box("File conversion finished");
} }
void OGSFileConverter::on_gml2gliButton_pressed() void OGSFileConverter::on_gml2gliButton_pressed() const
{ {
FileListDialog dlg(FileListDialog::GML, FileListDialog::GLI); FileListDialog dlg(FileListDialog::GML, FileListDialog::GLI);
if (dlg.exec()) if (dlg.exec())
convertGML2GLI(dlg.getInputFileList(), dlg.getOutputDir()); convertGML2GLI(dlg.getInputFileList(), dlg.getOutputDir());
} }
void OGSFileConverter::on_gli2gmlButton_pressed() void OGSFileConverter::on_gli2gmlButton_pressed() const
{ {
FileListDialog dlg(FileListDialog::GLI, FileListDialog::GML); FileListDialog dlg(FileListDialog::GLI, FileListDialog::GML);
if (dlg.exec()) if (dlg.exec())
convertGLI2GML(dlg.getInputFileList(), dlg.getOutputDir()); convertGLI2GML(dlg.getInputFileList(), dlg.getOutputDir());
} }
void OGSFileConverter::on_vtu2mshButton_pressed() void OGSFileConverter::on_vtu2mshButton_pressed() const
{ {
FileListDialog dlg(FileListDialog::VTU, FileListDialog::MSH); FileListDialog dlg(FileListDialog::VTU, FileListDialog::MSH);
if (dlg.exec()) if (dlg.exec())
convertVTU2MSH(dlg.getInputFileList(), dlg.getOutputDir()); convertVTU2MSH(dlg.getInputFileList(), dlg.getOutputDir());
} }
void OGSFileConverter::on_msh2vtuButton_pressed() void OGSFileConverter::on_msh2vtuButton_pressed() const
{ {
FileListDialog dlg(FileListDialog::MSH, FileListDialog::VTU); FileListDialog dlg(FileListDialog::MSH, FileListDialog::VTU);
if (dlg.exec()) if (dlg.exec())
...@@ -188,12 +192,11 @@ void OGSFileConverter::on_closeDialogButton_pressed() ...@@ -188,12 +192,11 @@ void OGSFileConverter::on_closeDialogButton_pressed()
bool OGSFileConverter::fileExists(const std::string &file_name) const bool OGSFileConverter::fileExists(const std::string &file_name) const
{ {
std::ifstream file(file_name.c_str()); std::ifstream const file(file_name.c_str());
if (file) if (file)
{ {
QString name = QString::fromStdString(BaseLib::extractBaseName(file_name)); QString const name = QString::fromStdString(BaseLib::extractBaseName(file_name));
return !OGSError::question("The file \'" + name + "\' already exists.\n Do you want to overwrite it?", "Warning"); return !OGSError::question("The file \'" + name + "\' already exists.\n Do you want to overwrite it?", "Warning");
} }
return false; return false;
} }
...@@ -21,15 +21,15 @@ private: ...@@ -21,15 +21,15 @@ private:
bool fileExists(const std::string &file_name) const; bool fileExists(const std::string &file_name) const;
private slots: private slots:
void convertGML2GLI(const QStringList &input, const QString &output); void convertGML2GLI(const QStringList &input, const QString &output) const;
void convertGLI2GML(const QStringList &input, const QString &output); void convertGLI2GML(const QStringList &input, const QString &output) const;
void convertVTU2MSH(const QStringList &input, const QString &output); void convertVTU2MSH(const QStringList &input, const QString &output) const;
void convertMSH2VTU(const QStringList &input, const QString &output); void convertMSH2VTU(const QStringList &input, const QString &output) const;
void on_gml2gliButton_pressed(); void on_gml2gliButton_pressed() const;
void on_gli2gmlButton_pressed(); void on_gli2gmlButton_pressed() const;
void on_vtu2mshButton_pressed(); void on_vtu2mshButton_pressed() const;
void on_msh2vtuButton_pressed(); void on_msh2vtuButton_pressed() const;
void on_closeDialogButton_pressed(); void on_closeDialogButton_pressed();
}; };
......
#include "OGSFileConverter.h" #include "OGSFileConverter.h"
#include "logog/include/logog.hpp"
#include "LogogSimpleFormatter.h"
#include <QtGui/QApplication> #include <QtGui/QApplication>
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
LOGOG_INITIALIZE();
logog::Cout* logogCout = new logog::Cout;
BaseLib::LogogSimpleFormatter* formatter = new BaseLib::LogogSimpleFormatter;
logogCout->SetFormatter(*formatter);
QApplication app(argc, argv); QApplication app(argc, argv);
setlocale(LC_NUMERIC,"C"); setlocale(LC_NUMERIC,"C");
OGSFileConverter* fc = new OGSFileConverter(); OGSFileConverter* fc = new OGSFileConverter();
...@@ -11,5 +20,9 @@ int main(int argc, char* argv[]) ...@@ -11,5 +20,9 @@ int main(int argc, char* argv[])
int returncode = app.exec(); int returncode = app.exec();
delete fc; delete fc;
delete formatter;
delete logogCout;
LOGOG_SHUTDOWN();
return returncode; return returncode;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment