Warn when closing with unsaved encounter changes
This commit is contained in:
parent
fcb320bd79
commit
53ba6f5ab9
5 changed files with 14 additions and 0 deletions
|
@ -194,6 +194,7 @@ signals:
|
||||||
void selectedObjectsChanged();
|
void selectedObjectsChanged();
|
||||||
void loadMapRequested(QString, QString);
|
void loadMapRequested(QString, QString);
|
||||||
void tilesetChanged(QString);
|
void tilesetChanged(QString);
|
||||||
|
void wildMonDataChanged();
|
||||||
void warpEventDoubleClicked(QString mapName, QString warpNum);
|
void warpEventDoubleClicked(QString mapName, QString warpNum);
|
||||||
void currentMetatilesSelectionChanged();
|
void currentMetatilesSelectionChanged();
|
||||||
void wheelZoom(int delta);
|
void wheelZoom(int delta);
|
||||||
|
|
|
@ -125,6 +125,7 @@ private slots:
|
||||||
void onMapChanged(Map *map);
|
void onMapChanged(Map *map);
|
||||||
void onMapNeedsRedrawing();
|
void onMapNeedsRedrawing();
|
||||||
void onTilesetsSaved(QString, QString);
|
void onTilesetsSaved(QString, QString);
|
||||||
|
void onWildMonDataChanged();
|
||||||
void openNewMapPopupWindow(int, QVariant);
|
void openNewMapPopupWindow(int, QVariant);
|
||||||
void onNewMapCreated();
|
void onNewMapCreated();
|
||||||
|
|
||||||
|
|
|
@ -355,6 +355,7 @@ void Editor::addNewWildMonGroup(QWidget *window) {
|
||||||
tabIndex++;
|
tabIndex++;
|
||||||
}
|
}
|
||||||
saveEncounterTabData();
|
saveEncounterTabData();
|
||||||
|
emit wildMonDataChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -586,6 +587,7 @@ void Editor::configureEncounterJSON(QWidget *window) {
|
||||||
|
|
||||||
// Re-draw the tab accordingly.
|
// Re-draw the tab accordingly.
|
||||||
displayWildMonTables();
|
displayWildMonTables();
|
||||||
|
emit wildMonDataChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,7 @@ void MainWindow::initEditor() {
|
||||||
connect(this->editor, SIGNAL(tilesetChanged(QString)), this, SLOT(onTilesetChanged(QString)));
|
connect(this->editor, SIGNAL(tilesetChanged(QString)), this, SLOT(onTilesetChanged(QString)));
|
||||||
connect(this->editor, SIGNAL(warpEventDoubleClicked(QString,QString)), this, SLOT(openWarpMap(QString,QString)));
|
connect(this->editor, SIGNAL(warpEventDoubleClicked(QString,QString)), this, SLOT(openWarpMap(QString,QString)));
|
||||||
connect(this->editor, SIGNAL(currentMetatilesSelectionChanged()), this, SLOT(currentMetatilesSelectionChanged()));
|
connect(this->editor, SIGNAL(currentMetatilesSelectionChanged()), this, SLOT(currentMetatilesSelectionChanged()));
|
||||||
|
connect(this->editor, SIGNAL(wildMonDataChanged()), this, SLOT(onWildMonDataChanged()));
|
||||||
connect(this->editor, &Editor::wheelZoom, this, &MainWindow::scaleMapView);
|
connect(this->editor, &Editor::wheelZoom, this, &MainWindow::scaleMapView);
|
||||||
|
|
||||||
this->loadUserSettings();
|
this->loadUserSettings();
|
||||||
|
@ -2182,6 +2183,10 @@ void MainWindow::onTilesetsSaved(QString primaryTilesetLabel, QString secondaryT
|
||||||
this->editor->updateSecondaryTileset(secondaryTilesetLabel, true);
|
this->editor->updateSecondaryTileset(secondaryTilesetLabel, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::onWildMonDataChanged() {
|
||||||
|
projectHasUnsavedChanges = true;
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::on_action_Export_Map_Image_triggered() {
|
void MainWindow::on_action_Export_Map_Image_triggered() {
|
||||||
showExportMapImageWindow(false);
|
showExportMapImageWindow(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,7 @@ void MonTabWidget::askActivateTab(int tabIndex, QPoint menuPos) {
|
||||||
populateTab(tabIndex, getDefaultMonInfo(editor->project->wildMonFields.at(tabIndex)), tabText);
|
populateTab(tabIndex, getDefaultMonInfo(editor->project->wildMonFields.at(tabIndex)), tabText);
|
||||||
editor->saveEncounterTabData();
|
editor->saveEncounterTabData();
|
||||||
setCurrentIndex(tabIndex);
|
setCurrentIndex(tabIndex);
|
||||||
|
emit editor->wildMonDataChanged();
|
||||||
});
|
});
|
||||||
contextMenu.addAction(&actionActivateTab);
|
contextMenu.addAction(&actionActivateTab);
|
||||||
contextMenu.exec(mapToGlobal(menuPos));
|
contextMenu.exec(mapToGlobal(menuPos));
|
||||||
|
@ -97,6 +98,7 @@ void MonTabWidget::populateTab(int tabIndex, WildMonInfo monInfo, QString fieldN
|
||||||
encounterRate->setValue(monInfo.encounterRate);
|
encounterRate->setValue(monInfo.encounterRate);
|
||||||
connect(encounterRate, QOverload<int>::of(&QSpinBox::valueChanged), [this](int) {
|
connect(encounterRate, QOverload<int>::of(&QSpinBox::valueChanged), [this](int) {
|
||||||
editor->saveEncounterTabData();
|
editor->saveEncounterTabData();
|
||||||
|
emit editor->wildMonDataChanged();
|
||||||
});
|
});
|
||||||
encounterLayout->addWidget(encounterRate);
|
encounterLayout->addWidget(encounterRate);
|
||||||
encounterFrame->setLayout(encounterLayout);
|
encounterFrame->setLayout(encounterLayout);
|
||||||
|
@ -125,6 +127,7 @@ void MonTabWidget::createSpeciesTableRow(QTableWidget *table, WildPokemon mon, i
|
||||||
QObject::connect(monSelector, &QComboBox::currentTextChanged, [=](QString newSpecies) {
|
QObject::connect(monSelector, &QComboBox::currentTextChanged, [=](QString newSpecies) {
|
||||||
QPixmap monIcon = QPixmap(editor->project->speciesToIconPath.value(newSpecies)).copy(0, 0, 32, 32);
|
QPixmap monIcon = QPixmap(editor->project->speciesToIconPath.value(newSpecies)).copy(0, 0, 32, 32);
|
||||||
monLabel->setPixmap(monIcon);
|
monLabel->setPixmap(monIcon);
|
||||||
|
emit editor->wildMonDataChanged();
|
||||||
if (!monIcon.isNull()) editor->saveEncounterTabData();
|
if (!monIcon.isNull()) editor->saveEncounterTabData();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -141,10 +144,12 @@ void MonTabWidget::createSpeciesTableRow(QTableWidget *table, WildPokemon mon, i
|
||||||
connect(minLevel, QOverload<int>::of(&QSpinBox::valueChanged), [maxLevel, this](int min) {
|
connect(minLevel, QOverload<int>::of(&QSpinBox::valueChanged), [maxLevel, this](int min) {
|
||||||
maxLevel->setMinimum(min);
|
maxLevel->setMinimum(min);
|
||||||
editor->saveEncounterTabData();
|
editor->saveEncounterTabData();
|
||||||
|
emit editor->wildMonDataChanged();
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(maxLevel, QOverload<int>::of(&QSpinBox::valueChanged), [maxLevel, this](int) {
|
connect(maxLevel, QOverload<int>::of(&QSpinBox::valueChanged), [maxLevel, this](int) {
|
||||||
editor->saveEncounterTabData();
|
editor->saveEncounterTabData();
|
||||||
|
emit editor->wildMonDataChanged();
|
||||||
});
|
});
|
||||||
|
|
||||||
int fieldIndex = 0;
|
int fieldIndex = 0;
|
||||||
|
|
Loading…
Reference in a new issue