diff --git a/src/editor/dialogs/editspritedialog.ui b/src/editor/dialogs/editspritedialog.ui index c1e118e..0bbc087 100644 --- a/src/editor/dialogs/editspritedialog.ui +++ b/src/editor/dialogs/editspritedialog.ui @@ -214,7 +214,7 @@ - :/qtgameengine/icons/open.png:/qtgameengine/icons/open.png + :/qtgameengine/icons/create-from-file.png:/qtgameengine/icons/create-from-file.png &Create from file... @@ -226,7 +226,7 @@ - :/qtgameengine/icons/create-group.png:/qtgameengine/icons/create-group.png + :/qtgameengine/icons/add-from-file.png:/qtgameengine/icons/add-from-file.png &Add from file... @@ -251,6 +251,10 @@ + + + :/qtgameengine/icons/create-from-strip.png:/qtgameengine/icons/create-from-strip.png + Create from Strip... @@ -259,6 +263,10 @@ + + + :/qtgameengine/icons/add-from-strip.png:/qtgameengine/icons/add-from-strip.png + Add from Stri&p... @@ -334,6 +342,10 @@ + + + :/qtgameengine/icons/blue-arrow-left.png:/qtgameengine/icons/blue-arrow-left.png + Move &Left @@ -342,6 +354,10 @@ + + + :/qtgameengine/icons/blue-arrow-right.png:/qtgameengine/icons/blue-arrow-right.png + &Move Right @@ -350,6 +366,10 @@ + + + :/qtgameengine/icons/add-sprite.png:/qtgameengine/icons/add-sprite.png + &Add Empty @@ -358,6 +378,10 @@ + + + :/qtgameengine/icons/insert-sprite.png:/qtgameengine/icons/insert-sprite.png + &Insert Empty @@ -366,6 +390,10 @@ + + + :/qtgameengine/icons/pen.png:/qtgameengine/icons/pen.png + Edit... diff --git a/src/editor/dialogs/imageeditordialog.cpp b/src/editor/dialogs/imageeditordialog.cpp index 2f774e4..02374e1 100644 --- a/src/editor/dialogs/imageeditordialog.cpp +++ b/src/editor/dialogs/imageeditordialog.cpp @@ -41,11 +41,45 @@ ImageEditorDialog::ImageEditorDialog(const QPixmap &pixmap, const QString &title m_ui->actionCut->setShortcut(QKeySequence::Cut); m_ui->actionCopy->setShortcut(QKeySequence::Copy); m_ui->actionPaste->setShortcut(QKeySequence::Paste); + m_ui->actionZoomIn->setShortcut(QKeySequence::ZoomIn); + m_ui->actionZoomOut->setShortcut(QKeySequence::ZoomOut); m_ui->scrollArea->setBackgroundRole(QPalette::Dark); + connect(m_ui->actionNew, &QAction::triggered, + this, &ImageEditorDialog::newFile); + connect(m_ui->actionOpen, &QAction::triggered, + this, &ImageEditorDialog::openFile); connect(m_ui->actionSaveAsPngFile, &QAction::triggered, this, &ImageEditorDialog::saveAsPng); + connect(m_ui->actionPreviousImage, &QAction::triggered, + this, &ImageEditorDialog::previousSprite); + connect(m_ui->actionNextImage, &QAction::triggered, + this, &ImageEditorDialog::nextSprite); + connect(m_ui->actionUndo, &QAction::triggered, + this, &ImageEditorDialog::undo); + connect(m_ui->actionRedo, &QAction::triggered, + this, &ImageEditorDialog::redo); + connect(m_ui->actionEraseToLeftColor, &QAction::triggered, + this, &ImageEditorDialog::eraseToLeftColor); + connect(m_ui->actionDelete, &QAction::triggered, + this, &ImageEditorDialog::delete_); + connect(m_ui->actionCut, &QAction::triggered, + this, &ImageEditorDialog::cut); + connect(m_ui->actionCopy, &QAction::triggered, + this, &ImageEditorDialog::copy); + connect(m_ui->actionPaste, &QAction::triggered, + this, &ImageEditorDialog::paste); + connect(m_ui->actionPasteFromFile, &QAction::triggered, + this, &ImageEditorDialog::pasteFromFile); + connect(m_ui->actionSelectAll, &QAction::triggered, + this, &ImageEditorDialog::selectAll); + connect(m_ui->actionZoomIn, &QAction::triggered, + this, &ImageEditorDialog::zoomIn); + connect(m_ui->actionNoZoom, &QAction::triggered, + this, &ImageEditorDialog::resetZoom); + connect(m_ui->actionZoomOut, &QAction::triggered, + this, &ImageEditorDialog::zoomOut); connect(m_ui->actionSetTransparencyBackground, &QAction::triggered, this, &ImageEditorDialog::transparentBackgroundSettings); @@ -204,6 +238,30 @@ void ImageEditorDialog::reject() } } +void ImageEditorDialog::newFile() +{ + if (m_unsavedChanges) + { + if (QMessageBox::warning( + this, + tr("The Image has been modified."), + tr("Do you really want to start new?"), + QMessageBox::Ok | QMessageBox::Cancel + ) != QMessageBox::Ok) + return; + } + + QPixmap pixmap{m_ui->canvas->pixmap().size()}; + pixmap.fill(Qt::transparent); + m_ui->canvas->setPixmap(pixmap); + changed(); +} + +void ImageEditorDialog::openFile() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + void ImageEditorDialog::saveAsPng() { const auto &image = m_ui->canvas->image(); @@ -216,6 +274,76 @@ void ImageEditorDialog::saveAsPng() saveImage(this, image); } +void ImageEditorDialog::previousSprite() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::nextSprite() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::undo() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::redo() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::eraseToLeftColor() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::delete_() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::cut() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::copy() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::paste() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::pasteFromFile() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::selectAll() +{ + QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); +} + +void ImageEditorDialog::zoomIn() +{ + m_ui->canvas->setZoom(m_ui->canvas->zoom() * 2.f); +} + +void ImageEditorDialog::resetZoom() +{ + m_ui->canvas->setZoom(1.f); +} + +void ImageEditorDialog::zoomOut() +{ + m_ui->canvas->setZoom(m_ui->canvas->zoom() / 2.f); +} + void ImageEditorDialog::transparentBackgroundSettings() { TransparentBackgroundSettingsDialog dialog{m_settings, this}; diff --git a/src/editor/dialogs/imageeditordialog.h b/src/editor/dialogs/imageeditordialog.h index c832766..965292c 100644 --- a/src/editor/dialogs/imageeditordialog.h +++ b/src/editor/dialogs/imageeditordialog.h @@ -28,7 +28,23 @@ public: void reject() override; private slots: + void newFile(); + void openFile(); void saveAsPng(); + void previousSprite(); + void nextSprite(); + void undo(); + void redo(); + void eraseToLeftColor(); + void delete_(); + void cut(); + void copy(); + void paste(); + void pasteFromFile(); + void selectAll(); + void zoomIn(); + void resetZoom(); + void zoomOut(); void transparentBackgroundSettings(); void changed(); diff --git a/src/editor/dialogs/imageeditordialog.ui b/src/editor/dialogs/imageeditordialog.ui index 806f29c..0bed58e 100644 --- a/src/editor/dialogs/imageeditordialog.ui +++ b/src/editor/dialogs/imageeditordialog.ui @@ -1054,16 +1054,31 @@ + + + :/qtgameengine/icons/zoom-out.png:/qtgameengine/icons/zoom-out.png + Zoom &Out + + + :/qtgameengine/icons/zoom-original.png:/qtgameengine/icons/zoom-original.png + &No Zoom + + Ctrl+0 + + + + :/qtgameengine/icons/zoom-in.png:/qtgameengine/icons/zoom-in.png + Zoom &In diff --git a/src/editor/icons/add (Kopie).png b/src/editor/icons/add (Kopie).png deleted file mode 100644 index 5ff8629..0000000 Binary files a/src/editor/icons/add (Kopie).png and /dev/null differ diff --git a/src/editor/icons/add-from-file.png b/src/editor/icons/add-from-file.png new file mode 100644 index 0000000..c54829c Binary files /dev/null and b/src/editor/icons/add-from-file.png differ diff --git a/src/editor/icons/add-from-strip.png b/src/editor/icons/add-from-strip.png new file mode 100644 index 0000000..d7349af Binary files /dev/null and b/src/editor/icons/add-from-strip.png differ diff --git a/src/editor/icons/add-sprite.png b/src/editor/icons/add-sprite.png new file mode 100644 index 0000000..aa28985 Binary files /dev/null and b/src/editor/icons/add-sprite.png differ diff --git a/src/editor/icons/create-from-file.png b/src/editor/icons/create-from-file.png new file mode 100644 index 0000000..33c0f45 Binary files /dev/null and b/src/editor/icons/create-from-file.png differ diff --git a/src/editor/icons/create-from-strip.png b/src/editor/icons/create-from-strip.png new file mode 100644 index 0000000..3a274e0 Binary files /dev/null and b/src/editor/icons/create-from-strip.png differ diff --git a/src/editor/icons/insert-sprite.png b/src/editor/icons/insert-sprite.png new file mode 100644 index 0000000..c92baf0 Binary files /dev/null and b/src/editor/icons/insert-sprite.png differ diff --git a/src/editor/icons/new.png b/src/editor/icons/new.png index c4e0380..58f3df0 100644 Binary files a/src/editor/icons/new.png and b/src/editor/icons/new.png differ diff --git a/src/editor/icons/pen.png b/src/editor/icons/pen.png new file mode 100644 index 0000000..a0b836c Binary files /dev/null and b/src/editor/icons/pen.png differ diff --git a/src/editor/icons/zoom-in.png b/src/editor/icons/zoom-in.png new file mode 100644 index 0000000..7d76f4d Binary files /dev/null and b/src/editor/icons/zoom-in.png differ diff --git a/src/editor/icons/zoom-original.png b/src/editor/icons/zoom-original.png new file mode 100644 index 0000000..694c0f9 Binary files /dev/null and b/src/editor/icons/zoom-original.png differ diff --git a/src/editor/icons/zoom-out.png b/src/editor/icons/zoom-out.png new file mode 100644 index 0000000..e5e1a01 Binary files /dev/null and b/src/editor/icons/zoom-out.png differ diff --git a/src/editor/insert-sprite.png b/src/editor/insert-sprite.png new file mode 100644 index 0000000..58f3df0 Binary files /dev/null and b/src/editor/insert-sprite.png differ diff --git a/src/editor/resources_editor.qrc b/src/editor/resources_editor.qrc index fe47c6e..7964bc1 100644 --- a/src/editor/resources_editor.qrc +++ b/src/editor/resources_editor.qrc @@ -1,6 +1,5 @@ - icons/action.png icons/action-execute-code.png icons/action-move-fixed.png icons/action-move-free.png @@ -8,6 +7,10 @@ icons/action-set-gravity.png icons/action-speed-horizontal.png icons/action-speed-vertical.png + icons/action.png + icons/add-from-file.png + icons/add-from-strip.png + icons/add-sprite.png icons/add.png icons/arrow-down.png icons/arrow-left.png @@ -15,12 +18,23 @@ icons/arrow-up.png icons/background-file.png icons/background.png + icons/blue-arrow-down-left.png + icons/blue-arrow-down-right.png + icons/blue-arrow-down.png + icons/blue-arrow-left.png + icons/blue-arrow-right.png + icons/blue-arrow-up-left.png + icons/blue-arrow-up-right.png + icons/blue-arrow-up.png + icons/blue-stop.png icons/cascade.png icons/center.png icons/check.png icons/constants.png icons/copy.png icons/create-executable.png + icons/create-from-file.png + icons/create-from-strip.png icons/create-group.png icons/create.png icons/cut.png @@ -54,6 +68,7 @@ icons/import-resources.png icons/included-files.png icons/info.png + icons/insert-sprite.png icons/isometric.png icons/lock.png icons/merge.png @@ -67,6 +82,7 @@ icons/paste.png icons/path-file.png icons/path.png + icons/pen.png icons/preferences.png icons/print.png icons/properties.png @@ -97,14 +113,8 @@ icons/trigger.png icons/undo.png icons/unlock.png - icons/blue-arrow-down.png - icons/blue-arrow-down-left.png - icons/blue-arrow-down-right.png - icons/blue-arrow-left.png - icons/blue-arrow-right.png - icons/blue-arrow-up.png - icons/blue-arrow-up-left.png - icons/blue-arrow-up-right.png - icons/blue-stop.png + icons/zoom-in.png + icons/zoom-original.png + icons/zoom-out.png diff --git a/src/editor/widgets/drawingcanvaswidget.cpp b/src/editor/widgets/drawingcanvaswidget.cpp index 2e36e42..3641d60 100644 --- a/src/editor/widgets/drawingcanvaswidget.cpp +++ b/src/editor/widgets/drawingcanvaswidget.cpp @@ -32,7 +32,7 @@ void DrawingCanvasWidget::setPixmap(const QPixmap &pixmap) update(); } -void DrawingCanvasWidget::setScale(float zoom) +void DrawingCanvasWidget::setZoom(float zoom) { if (m_zoom == zoom) return; diff --git a/src/editor/widgets/drawingcanvaswidget.h b/src/editor/widgets/drawingcanvaswidget.h index 33d94f7..81af963 100644 --- a/src/editor/widgets/drawingcanvaswidget.h +++ b/src/editor/widgets/drawingcanvaswidget.h @@ -10,7 +10,7 @@ class DrawingCanvasWidget : public QWidget { Q_OBJECT - Q_PROPERTY(float zoom READ zoom WRITE setScale NOTIFY zoomChanged FINAL) + Q_PROPERTY(float zoom READ zoom WRITE setZoom NOTIFY zoomChanged FINAL) Q_PROPERTY(QColor leftButtonColor READ leftButtonColor WRITE setLeftButtonColor NOTIFY leftButtonColorChanged FINAL) Q_PROPERTY(QColor rightButtonColor READ rightButtonColor WRITE setRightButtonColor NOTIFY rightButtonColorChanged FINAL) Q_PROPERTY(TransparentBackgroundPattern transparentBackgroundPattern READ transparentBackgroundPattern WRITE setTransparentBackgroundPattern NOTIFY transparentBackgroundPatternChanged FINAL) @@ -46,7 +46,7 @@ public: void setPixmap(const QPixmap &pixmap); float zoom() const { return m_zoom; } - void setScale(float zoom); + void setZoom(float zoom); QColor leftButtonColor() const { return m_leftButtonColor; } void setLeftButtonColor(const QColor &LeftButtonColor); diff --git a/src/editor/widgets/zoomablescrollarea.cpp b/src/editor/widgets/zoomablescrollarea.cpp index 0121b52..dceb799 100644 --- a/src/editor/widgets/zoomablescrollarea.cpp +++ b/src/editor/widgets/zoomablescrollarea.cpp @@ -23,7 +23,7 @@ void ZoomableScrollArea::wheelEvent(QWheelEvent *event) else zoom /= 2; - w->setScale(zoom); + w->setZoom(zoom); event->accept(); }