further clearify error messages, and add sanity symbol checking

This commit is contained in:
Karathan 2019-03-23 15:44:21 +01:00 committed by huderlem
parent 37a688b32a
commit 8c3c498ac9

View file

@ -868,13 +868,24 @@ void MainWindow::on_actionNew_Tileset_triggered() {
return;
}
QString fullDirectoryPath = editor->project->root + createTilesetDialog->path;
QString auxilaryPath = editor->project->root + "/data/tilesets/" + (createTilesetDialog->isSecondary ? "primary/" : "secondary/") + createTilesetDialog->friendlyName.toLower();
QDir directory;
if(directory.exists(fullDirectoryPath) || directory.exists(auxilaryPath)) {
logError(QString("Could not create tileset \"%1\", it already exists.").arg(createTilesetDialog->friendlyName));
if(directory.exists(fullDirectoryPath)) {
logError(QString("Could not create tileset \"%1\", the folder \"%2\" already exists.").arg(createTilesetDialog->friendlyName, fullDirectoryPath));
QMessageBox msgBox(this);
msgBox.setText("Failed to add new tileset.");
QString message = QString("The tileset \"%1\" already exists.").arg(createTilesetDialog->friendlyName);
QString message = QString("The folder for tileset \"%1\" already exists. View porymap.log for specific errors.").arg(createTilesetDialog->friendlyName);
msgBox.setInformativeText(message);
msgBox.setDefaultButton(QMessageBox::Ok);
msgBox.setIcon(QMessageBox::Icon::Critical);
msgBox.exec();
return;
}
QMap<QString, QStringList> tilesets = this->editor->project->getTilesets();
if(tilesets.value("primary").contains(createTilesetDialog->fullSymbolName) || tilesets.value("secondary").contains(createTilesetDialog->fullSymbolName)) {
logError(QString("Could not create tileset \"%1\", the symbol \"%2\" already exists.").arg(createTilesetDialog->friendlyName, createTilesetDialog->fullSymbolName));
QMessageBox msgBox(this);
msgBox.setText("Failed to add new tileset.");
QString message = QString("The symbol for tileset \"%1\" (\"%2\") already exists.").arg(createTilesetDialog->friendlyName, createTilesetDialog->fullSymbolName);
msgBox.setInformativeText(message);
msgBox.setDefaultButton(QMessageBox::Ok);
msgBox.setIcon(QMessageBox::Icon::Critical);