diff --git a/classes/imageeditor/editor.cpp b/classes/imageeditor/editor.cpp index 12f9214..654434b 100644 --- a/classes/imageeditor/editor.cpp +++ b/classes/imageeditor/editor.cpp @@ -34,11 +34,11 @@ Editor::Editor(QObject *parent) : QObject(parent) this->mWidget->setScale(this->mTools->scale()); this->connect(this->mWidget, SIGNAL(imageChanged()), SLOT(on_imageChanged())); this->connect(this->mWidget, SIGNAL(mouseMove(const QPoint *)), SLOT(on_mouseMove(const QPoint*))); - this->connect(this->mWidget, SIGNAL(scaleSchanged(int)), SLOT(on_scaleSchanged(int))); + this->connect(this->mWidget, SIGNAL(scaleChanged(int)), SLOT(on_scaleChanged(int))); this->mForeColor = new QColor(); this->mBackColor = new QColor(); - this->connect(this->mTools, SIGNAL(scaleChanged(int)), SLOT(on_scaleSchanged(int))); + this->connect(this->mTools, SIGNAL(scaleChanged(int)), SLOT(on_scaleChanged(int))); } //----------------------------------------------------------------------------- Editor::~Editor() @@ -61,9 +61,9 @@ const QImage *Editor::image() const return this->mWidget->image(); } //----------------------------------------------------------------------------- -void Editor::setImage(const QImage *_value) +void Editor::setImage(const QImage *value) { - this->mWidget->setImage(_value); + this->mWidget->setImage(value); } //----------------------------------------------------------------------------- const QColor *Editor::foreColor() const @@ -78,7 +78,7 @@ const QColor *Editor::backColor() const //----------------------------------------------------------------------------- int Editor::scale() const { - return this->mWidget->scale(); + return this->mTools->scale(); } //----------------------------------------------------------------------------- void Editor::on_imageChanged() @@ -91,11 +91,14 @@ void Editor::on_mouseMove(const QPoint *point) emit this->mouseMoved(point); } //----------------------------------------------------------------------------- -void Editor::on_scaleSchanged(int scale) +void Editor::on_scaleChanged(int value) { - emit this->scaleChanged(scale); - this->mWidget->setScale(scale); - this->mTools->setScale(scale); + if (value > 0) + { + this->mTools->setScale(value); + this->mWidget->setScale(this->mTools->scale()); + emit this->scaleChanged(this->mTools->scale()); + } } //----------------------------------------------------------------------------- } // end of namespace diff --git a/classes/imageeditor/editor.h b/classes/imageeditor/editor.h index ad47abd..41b4999 100644 --- a/classes/imageeditor/editor.h +++ b/classes/imageeditor/editor.h @@ -42,7 +42,7 @@ public: QWidget *widget() const; const QImage *image() const; - void setImage(const QImage *_value); + void setImage(const QImage *value); const QColor *foreColor() const; const QColor *backColor() const; @@ -50,9 +50,9 @@ public: int scale() const; signals: - void imageChanged(const QImage *_image); - void scaleChanged(int _scale); - void mouseMoved(const QPoint *_point); + void imageChanged(const QImage *value); + void scaleChanged(int value); + void mouseMoved(const QPoint *value); signals: @@ -67,7 +67,7 @@ private: private slots: void on_imageChanged(); void on_mouseMove(const QPoint *point); - void on_scaleSchanged(int scale); + void on_scaleChanged(int value); }; } diff --git a/classes/imageeditor/toolzoom.cpp b/classes/imageeditor/toolzoom.cpp index 4b1ae94..55de0f7 100644 --- a/classes/imageeditor/toolzoom.cpp +++ b/classes/imageeditor/toolzoom.cpp @@ -106,7 +106,7 @@ void ToolZoom::mouseRelease(const QMouseEvent *event) //----------------------------------------------------------------------------- void ToolZoom::setScale(int value) { - if (this->mScale != value) + if (this->mScale != value && value >= this->mSpinBoxScale->minimum() && value <= this->mSpinBoxScale->maximum()) { this->mScale = value; this->mSpinBoxScale->setValue(value); @@ -118,6 +118,7 @@ void ToolZoom::initializeWidgets() { this->mSpinBoxScale = new QSpinBox(); this->mSpinBoxScale->setMinimum(1); + this->mSpinBoxScale->setMaximum(50); this->mSpinBoxScale->setSuffix(QString("x")); this->mSpinBoxScale->setValue(this->mScale); this->connect(this->mSpinBoxScale, SIGNAL(valueChanged(int)), SLOT(on_spinBoxScale_valueChanged(int))); diff --git a/controls/imageeditor/windoweditor.cpp b/controls/imageeditor/windoweditor.cpp index 7985822..d5049ac 100644 --- a/controls/imageeditor/windoweditor.cpp +++ b/controls/imageeditor/windoweditor.cpp @@ -58,7 +58,7 @@ void WindowEditor::changeEvent(QEvent *e) switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); - this->updateImageScaled(this->mScale); + this->updateImageScaled(this->mTools->scale()); break; default: break; @@ -78,8 +78,8 @@ bool WindowEditor::eventFilter(QObject *obj, QEvent *event) // get coordinates int xscaled = me->pos().x(); int yscaled = me->pos().y(); - int xreal = xscaled / this->mScale; - int yreal = yscaled / this->mScale; + int xreal = xscaled / this->mTools->scale(); + int yreal = yscaled / this->mTools->scale(); if (!this->mImageOriginal.isNull()) { if (xreal < this->mImageOriginal.width() && yreal < this->mImageOriginal.height()) @@ -142,14 +142,13 @@ void WindowEditor::wheelEvent(QWheelEvent *event) { if (event->orientation() == Qt::Vertical) { - int scale = this->mScale; + int scale = this->mTools->scale(); if (event->delta() > 0) scale++; else scale--; - this->setScale(scale); - //this->ui->spinBoxScale->setValue(this->mScale); + emit this->scaleChanged(scale); } event->accept(); } @@ -165,7 +164,7 @@ const QImage *WindowEditor::image() const void WindowEditor::setImage(const QImage *value) { this->mImageOriginal = QImage(*value); - this->updateImageScaled(this->mScale); + this->updateImageScaled(this->mTools->scale()); } //----------------------------------------------------------------------------- QColor WindowEditor::color1() const @@ -178,11 +177,6 @@ QColor WindowEditor::color2() const return this->mColor2; } //----------------------------------------------------------------------------- -int WindowEditor::scale() const -{ - return this->mScale; -} -//----------------------------------------------------------------------------- void WindowEditor::setTools(ToolsManager *tools) { this->mTools = tools; @@ -191,12 +185,12 @@ void WindowEditor::setTools(ToolsManager *tools) this->connect(this->mTools, SIGNAL(toolChanged(int)), SLOT(toolChanged(int))); } //----------------------------------------------------------------------------- -void WindowEditor::updateImageScaled(int scale) +void WindowEditor::updateImageScaled(int value) { if (!this->mImageOriginal.isNull()) { - this->mImageScaled = BitmapHelper::scale(&this->mImageOriginal, scale); - this->mImageScaled = BitmapHelper::drawGrid(&this->mImageScaled, scale); + this->mImageScaled = BitmapHelper::scale(&this->mImageOriginal, value); + this->mImageScaled = BitmapHelper::drawGrid(&this->mImageScaled, value); this->mPixmapScaled = QPixmap::fromImage(this->mImageScaled); this->ui->label->setPixmap(this->mPixmapScaled); @@ -207,7 +201,7 @@ void WindowEditor::drawPixel(int x, int y, const QColor &color) { QImage image = this->mImageOriginal; this->mImageOriginal = BitmapHelper::drawPixel(&image, x, y, color); - this->updateImageScaled(this->mScale); + this->updateImageScaled(this->mTools->scale()); } //----------------------------------------------------------------------------- void WindowEditor::on_pushButtonColor1_clicked() @@ -236,17 +230,9 @@ void WindowEditor::on_pushButtonColor2_clicked() //----------------------------------------------------------------------------- void WindowEditor::setScale(int value) { - if (value > 0 && value <= 50) + if (this->mImageOriginal.size() * value != this->mImageScaled.size()) { - if (this->mScale != value) - { - this->mScale = value; - this->updateImageScaled(this->mScale); - - BitmapEditorOptions::setScale(value); - - emit this->scaleSchanged(this->mScale); - } + this->updateImageScaled(value); } } //----------------------------------------------------------------------------- diff --git a/controls/imageeditor/windoweditor.h b/controls/imageeditor/windoweditor.h index 5bf6103..f216bf2 100644 --- a/controls/imageeditor/windoweditor.h +++ b/controls/imageeditor/windoweditor.h @@ -43,7 +43,6 @@ public: QColor color1() const; QColor color2() const; - int scale() const; void setTools(ToolsManager *tools); @@ -57,7 +56,6 @@ private: QImage mImageOriginal; QImage mImageScaled; QPixmap mPixmapScaled; - int mScale; QColor mColor1; QColor mColor2; QPixmap mPixmapColor1; @@ -65,7 +63,7 @@ private: bool mFlagChanged; ToolsManager *mTools; - void updateImageScaled(int scale); + void updateImageScaled(int value); void drawPixel(int x, int y, const QColor &color); private slots: @@ -81,7 +79,7 @@ public slots: signals: void imageChanged(); void mouseMove(const QPoint *point); - void scaleSchanged(int scale); + void scaleChanged(int scale); }; //----------------------------------------------------------------------------- } // end of namespace diff --git a/controls/images/widgetbitmapeditor.cpp b/controls/images/widgetbitmapeditor.cpp index 8998795..4d5cd84 100644 --- a/controls/images/widgetbitmapeditor.cpp +++ b/controls/images/widgetbitmapeditor.cpp @@ -238,17 +238,14 @@ void WidgetBitmapEditor::on_pushButtonColor2_clicked() //----------------------------------------------------------------------------- void WidgetBitmapEditor::setScale(int value) { - if (value > 0 && value <= 50) + if (this->mScale != value) { - if (this->mScale != value) - { - this->mScale = value; - this->updateImageScaled(this->mScale); + this->mScale = value; + this->updateImageScaled(this->mScale); - BitmapEditorOptions::setScale(value); + BitmapEditorOptions::setScale(value); - emit this->scaleSchanged(this->mScale); - } + emit this->scaleSchanged(this->mScale); } } //-----------------------------------------------------------------------------