diff --git a/CHANGELOG.md b/CHANGELOG.md index d4feb60d..34a9b266 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project somewhat adheres to [Semantic Versioning](https://semver.org/sp ### Fixed - Fix metatile images exporting at 2x scale. +- Fix pasting Wild Pokémon data then changing maps resetting the pasted data. - Fix click-drag map selections behaving unexpectedly when the cursor is outside the map grid. - Fix events being dragged in negative coordinates lagging behind the cursor. - Fix the shortcut for duplicating events working while on the Connections tab. diff --git a/include/ui/montabwidget.h b/include/ui/montabwidget.h index 8292d28e..004fa475 100644 --- a/include/ui/montabwidget.h +++ b/include/ui/montabwidget.h @@ -33,6 +33,9 @@ public slots: void setTabActive(int index, bool active = true); void deactivateTab(int tabIndex); +signals: + void edited(); + private: void actionCopyTab(int index); void actionAddDeleteTab(int index); diff --git a/src/ui/montabwidget.cpp b/src/ui/montabwidget.cpp index 3a04c1b7..e2291f11 100644 --- a/src/ui/montabwidget.cpp +++ b/src/ui/montabwidget.cpp @@ -11,6 +11,9 @@ static WildMonInfo encounterClipboard; MonTabWidget::MonTabWidget(Editor *editor, QWidget *parent) : QTabWidget(parent) { this->editor = editor; + connect(this, &MonTabWidget::edited, this->editor, &Editor::saveEncounterTabData); + connect(this, &MonTabWidget::edited, this->editor, &Editor::wildMonTableEdited); + populate(); this->tabBar()->installEventFilter(new WheelFilter(this)); } @@ -64,7 +67,7 @@ void MonTabWidget::paste(int index) { WildMonInfo newInfo = getDefaultMonInfo(this->editor->project->wildMonFields.at(index)); combineEncounters(newInfo, encounterClipboard); populateTab(index, newInfo); - emit editor->wildMonTableEdited(); + emit edited(); } void MonTabWidget::actionCopyTab(int index) { @@ -88,15 +91,12 @@ void MonTabWidget::actionAddDeleteTab(int index) { if (activeTabs[index]) { // delete tab deactivateTab(index); - editor->saveEncounterTabData(); - } - else { + } else { // add tab populateTab(index, getDefaultMonInfo(editor->project->wildMonFields.at(index))); - editor->saveEncounterTabData(); setCurrentIndex(index); } - emit editor->wildMonTableEdited(); + emit edited(); } void MonTabWidget::clearTableAt(int tabIndex) { @@ -123,8 +123,7 @@ void MonTabWidget::populateTab(int tabIndex, WildMonInfo monInfo) { QTableView *speciesTable = tableAt(tabIndex); EncounterTableModel *model = new EncounterTableModel(monInfo, editor->project->wildMonFields[tabIndex], this); - connect(model, &EncounterTableModel::edited, editor, &Editor::saveEncounterTabData); - connect(model, &EncounterTableModel::edited, editor, &Editor::wildMonTableEdited); + connect(model, &EncounterTableModel::edited, this, &MonTabWidget::edited); speciesTable->setModel(model); speciesTable->setItemDelegateForColumn(EncounterTableModel::ColumnType::Species, new SpeciesComboDelegate(editor->project, this));