From cd37192657dd288158814ac771b094df651dd126 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 6 Jan 2019 09:43:18 -0600 Subject: [PATCH] Fix palette editor crash --- include/ui/paletteeditor.h | 1 + include/ui/tileseteditor.h | 1 - src/ui/paletteeditor.cpp | 7 +++++++ src/ui/tileseteditor.cpp | 9 +-------- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/ui/paletteeditor.h b/include/ui/paletteeditor.h index 827aaad0..679e2872 100644 --- a/include/ui/paletteeditor.h +++ b/include/ui/paletteeditor.h @@ -26,6 +26,7 @@ public: explicit PaletteEditor(Project*, Tileset*, Tileset*, QWidget *parent = nullptr); ~PaletteEditor(); void setPaletteId(int); + void setTilesets(Tileset*, Tileset*); private: Ui::PaletteEditor *ui; diff --git a/include/ui/tileseteditor.h b/include/ui/tileseteditor.h index f57ea79c..0a58c30c 100644 --- a/include/ui/tileseteditor.h +++ b/include/ui/tileseteditor.h @@ -48,7 +48,6 @@ private slots: void onSelectedTilesChanged(); void onMetatileLayerTileChanged(int, int); void onMetatileLayerSelectionChanged(QPoint, int, int); - void onPaletteEditorClosed(); void onPaletteEditorChangedPaletteColor(); void onPaletteEditorChangedPalette(int); diff --git a/src/ui/paletteeditor.cpp b/src/ui/paletteeditor.cpp index 82c2b4ba..fa195d7c 100644 --- a/src/ui/paletteeditor.cpp +++ b/src/ui/paletteeditor.cpp @@ -188,6 +188,13 @@ void PaletteEditor::setPaletteId(int paletteId) { this->ui->spinBox_PaletteId->blockSignals(false); } +void PaletteEditor::setTilesets(Tileset *primaryTileset, Tileset *secondaryTileset) { + this->primaryTileset = primaryTileset; + this->secondaryTileset = secondaryTileset; + this->refreshColorSliders(); + this->refreshColors(); +} + void PaletteEditor::setColor(int colorIndex) { int paletteNum = this->ui->spinBox_PaletteId->value(); int red = this->sliders[colorIndex][0]->value() * 8; diff --git a/src/ui/tileseteditor.cpp b/src/ui/tileseteditor.cpp index 829d19f1..99c98584 100644 --- a/src/ui/tileseteditor.cpp +++ b/src/ui/tileseteditor.cpp @@ -313,6 +313,7 @@ void TilesetEditor::on_actionSave_Tileset_triggered() { this->project->saveTilesets(this->primaryTileset, this->secondaryTileset); emit this->tilesetsSaved(this->primaryTileset->name, this->secondaryTileset->name); + this->paletteEditor->setTilesets(this->primaryTileset, this->secondaryTileset); this->ui->statusbar->showMessage(QString("Saved primary and secondary Tilesets!"), 5000); this->hasUnsavedChanges = false; } @@ -483,18 +484,10 @@ void TilesetEditor::on_actionChange_Metatiles_Count_triggered() } } -void TilesetEditor::onPaletteEditorClosed() { - if (this->paletteEditor) { - delete this->paletteEditor; - this->paletteEditor = nullptr; - } -} - void TilesetEditor::on_actionChange_Palettes_triggered() { if (!this->paletteEditor) { this->paletteEditor = new PaletteEditor(this->project, this->primaryTileset, this->secondaryTileset, this); - connect(this->paletteEditor, SIGNAL(closed()), this, SLOT(onPaletteEditorClosed())); connect(this->paletteEditor, SIGNAL(changedPaletteColor()), this, SLOT(onPaletteEditorChangedPaletteColor())); connect(this->paletteEditor, SIGNAL(changedPalette(int)), this, SLOT(onPaletteEditorChangedPalette(int))); }