Implemented save as png in sprite editor

This commit is contained in:
2025-11-29 21:41:32 +01:00
parent 103d780e8c
commit 47381ac6bb
10 changed files with 170 additions and 19 deletions
+22
View File
@@ -7,6 +7,8 @@
#include <QFontDialog>
#include <QColorDialog>
#include "imagehelpers.h"
ImageEditorDialog::ImageEditorDialog(const QPixmap &pixmap, const QString &title, QWidget *parent) :
QDialog{parent},
m_ui{std::make_unique<Ui::ImageEditorDialog>()},
@@ -29,6 +31,9 @@ ImageEditorDialog::ImageEditorDialog(const QPixmap &pixmap, const QString &title
m_ui->scrollArea->setBackgroundRole(QPalette::Dark);
connect(m_ui->actionSaveAsPngFile, &QAction::triggered,
this, &ImageEditorDialog::saveAsPng);
connect(m_ui->pushButtonSelectFont, &QAbstractButton::pressed,
this, &ImageEditorDialog::selectFont);
@@ -136,6 +141,11 @@ QPixmap ImageEditorDialog::pixmap() const
return m_ui->canvas->pixmap();
}
const QImage &ImageEditorDialog::image() const
{
return m_ui->canvas->image();
}
void ImageEditorDialog::accept()
{
// TODO
@@ -173,6 +183,18 @@ void ImageEditorDialog::reject()
}
}
void ImageEditorDialog::saveAsPng()
{
const auto &image = m_ui->canvas->image();
if (image.isNull())
{
QMessageBox::warning(this, tr("Invalid sprite!"), tr("The sprite you tried to save is invalid!"));
return;
}
saveImage(this, image);
}
void ImageEditorDialog::changed()
{
if (!m_unsavedChanges)