diff --git a/forms/newmappopup.ui b/forms/newmappopup.ui
index c9ec18ba..213b7ceb 100644
--- a/forms/newmappopup.ui
+++ b/forms/newmappopup.ui
@@ -69,7 +69,7 @@
<html><head/><body><p>New map group.</p></body></html>
- false
+ true
diff --git a/include/ui/newmappopup.h b/include/ui/newmappopup.h
index c573b16e..c77470ca 100644
--- a/include/ui/newmappopup.h
+++ b/include/ui/newmappopup.h
@@ -33,6 +33,7 @@ private:
Project *project;
void setDefaultValues(int, QString);
bool checkNewMapDimensions();
+ bool checkNewMapGroup();
private slots:
void on_pushButton_NewMap_Accept_clicked();
diff --git a/src/ui/newmappopup.cpp b/src/ui/newmappopup.cpp
index 5b2c6426..d38a3ff2 100644
--- a/src/ui/newmappopup.cpp
+++ b/src/ui/newmappopup.cpp
@@ -64,14 +64,31 @@ bool NewMapPopup::checkNewMapDimensions() {
ui->label_NewMap_WarningMessage->clear();
return true;
}
-};
+}
+
+bool NewMapPopup::checkNewMapGroup() {
+ group = project->groupNames.indexOf(this->ui->comboBox_NewMap_Group->currentText());
+
+ if (group < 0) {
+ ui->frame_NewMap_Warning->setVisible(true);
+ QString errorText = QString("Error: The specified map group '%1' does not exist.")
+ .arg(ui->comboBox_NewMap_Group->currentText());
+ ui->label_NewMap_WarningMessage->setText(errorText);
+ ui->label_NewMap_WarningMessage->setWordWrap(true);
+ return false;
+ } else {
+ ui->frame_NewMap_Warning->setVisible(false);
+ ui->label_NewMap_WarningMessage->clear();
+ return true;
+ }
+}
void NewMapPopup::connectSignals() {
ui->spinBox_NewMap_Width->setMinimum(1);
ui->spinBox_NewMap_Height->setMinimum(1);
ui->spinBox_NewMap_Width->setMaximum(project->getMaxMapWidth());
ui->spinBox_NewMap_Height->setMaximum(project->getMaxMapHeight());
-
+
//ui->icon_NewMap_WarningIcon->setPixmap();
connect(ui->spinBox_NewMap_Width, QOverload::of(&QSpinBox::valueChanged), [=](int){checkNewMapDimensions();});
connect(ui->spinBox_NewMap_Height, QOverload::of(&QSpinBox::valueChanged), [=](int){checkNewMapDimensions();});
@@ -177,8 +194,8 @@ void NewMapPopup::on_lineEdit_NewMap_Name_textChanged(const QString &text) {
}
void NewMapPopup::on_pushButton_NewMap_Accept_clicked() {
- if (!checkNewMapDimensions()) {
- // ignore when map dimensions are invalid
+ if (!checkNewMapDimensions() || !checkNewMapGroup()) {
+ // ignore when map dimensions or map group are invalid
return;
}
Map *newMap = new Map;
@@ -236,7 +253,6 @@ void NewMapPopup::on_pushButton_NewMap_Accept_clicked() {
newMap->floorNumber = this->ui->spinBox_NewMap_Floor_Number->value();
}
- group = project->groupNames.indexOf(this->ui->comboBox_NewMap_Group->currentText());
newMap->layout = layout;
newMap->layoutId = layout->id;
if (this->existingLayout) {