Fix palette editor crash

This commit is contained in:
Marcus Huderle 2019-01-06 09:43:18 -06:00
parent 9f8849aced
commit cd37192657
4 changed files with 9 additions and 9 deletions

View file

@ -26,6 +26,7 @@ public:
explicit PaletteEditor(Project*, Tileset*, Tileset*, QWidget *parent = nullptr); explicit PaletteEditor(Project*, Tileset*, Tileset*, QWidget *parent = nullptr);
~PaletteEditor(); ~PaletteEditor();
void setPaletteId(int); void setPaletteId(int);
void setTilesets(Tileset*, Tileset*);
private: private:
Ui::PaletteEditor *ui; Ui::PaletteEditor *ui;

View file

@ -48,7 +48,6 @@ private slots:
void onSelectedTilesChanged(); void onSelectedTilesChanged();
void onMetatileLayerTileChanged(int, int); void onMetatileLayerTileChanged(int, int);
void onMetatileLayerSelectionChanged(QPoint, int, int); void onMetatileLayerSelectionChanged(QPoint, int, int);
void onPaletteEditorClosed();
void onPaletteEditorChangedPaletteColor(); void onPaletteEditorChangedPaletteColor();
void onPaletteEditorChangedPalette(int); void onPaletteEditorChangedPalette(int);

View file

@ -188,6 +188,13 @@ void PaletteEditor::setPaletteId(int paletteId) {
this->ui->spinBox_PaletteId->blockSignals(false); 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) { void PaletteEditor::setColor(int colorIndex) {
int paletteNum = this->ui->spinBox_PaletteId->value(); int paletteNum = this->ui->spinBox_PaletteId->value();
int red = this->sliders[colorIndex][0]->value() * 8; int red = this->sliders[colorIndex][0]->value() * 8;

View file

@ -313,6 +313,7 @@ void TilesetEditor::on_actionSave_Tileset_triggered()
{ {
this->project->saveTilesets(this->primaryTileset, this->secondaryTileset); this->project->saveTilesets(this->primaryTileset, this->secondaryTileset);
emit this->tilesetsSaved(this->primaryTileset->name, this->secondaryTileset->name); 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->ui->statusbar->showMessage(QString("Saved primary and secondary Tilesets!"), 5000);
this->hasUnsavedChanges = false; 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() void TilesetEditor::on_actionChange_Palettes_triggered()
{ {
if (!this->paletteEditor) { if (!this->paletteEditor) {
this->paletteEditor = new PaletteEditor(this->project, this->primaryTileset, this->secondaryTileset, this); 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(changedPaletteColor()), this, SLOT(onPaletteEditorChangedPaletteColor()));
connect(this->paletteEditor, SIGNAL(changedPalette(int)), this, SLOT(onPaletteEditorChangedPalette(int))); connect(this->paletteEditor, SIGNAL(changedPalette(int)), this, SLOT(onPaletteEditorChangedPalette(int)));
} }