From f204891b9d1f9ef22004548b61bb94fea06b89f3 Mon Sep 17 00:00:00 2001 From: shun-iwasawa Date: Dec 18 2020 06:11:30 +0000 Subject: fix camera settings response --- diff --git a/toonz/sources/include/toonzqt/camerasettingswidget.h b/toonz/sources/include/toonzqt/camerasettingswidget.h index c8dbac7..01b4287 100644 --- a/toonz/sources/include/toonzqt/camerasettingswidget.h +++ b/toonz/sources/include/toonzqt/camerasettingswidget.h @@ -40,7 +40,7 @@ class DoubleLineEdit; class IntLineEdit; class MeasuredDoubleLineEdit; class CheckBox; -} +} // namespace DVGui //--------------------------------------------------------------- @@ -124,8 +124,8 @@ public: // camera => widget fields (i.e. initialize widget) void setFields(const TCamera *camera); - // widget fields => camera - void getFields(TCamera *camera); + // widget fields => camera return true if the value is actually changed + bool getFields(TCamera *camera); QSize sizeHint() const override { return minimumSize(); } diff --git a/toonz/sources/toonz/camerasettingspopup.cpp b/toonz/sources/toonz/camerasettingspopup.cpp index 75da3d1..d3f1d04 100644 --- a/toonz/sources/toonz/camerasettingspopup.cpp +++ b/toonz/sources/toonz/camerasettingspopup.cpp @@ -165,15 +165,15 @@ void CameraSettingsPopup::hideEvent(QHideEvent *e) { bool ret = true; ret = ret && disconnect(sceneHandle, SIGNAL(sceneChanged()), this, SLOT(updateFields())); - ret = ret && disconnect(sceneHandle, SIGNAL(sceneSwitched()), this, + ret = ret && disconnect(sceneHandle, SIGNAL(sceneSwitched()), this, SLOT(updateFields())); - ret = ret && disconnect(objectHandle, SIGNAL(objectChanged(bool)), this, + ret = ret && disconnect(objectHandle, SIGNAL(objectChanged(bool)), this, SLOT(updateFields(bool))); - ret = ret && disconnect(objectHandle, SIGNAL(objectSwitched()), this, + ret = ret && disconnect(objectHandle, SIGNAL(objectSwitched()), this, SLOT(updateFields())); - ret = ret && disconnect(xsheetHandle, SIGNAL(xsheetSwitched()), this, + ret = ret && disconnect(xsheetHandle, SIGNAL(xsheetSwitched()), this, SLOT(updateFields())); - ret = ret && disconnect(xsheetHandle, SIGNAL(xsheetChanged()), this, + ret = ret && disconnect(xsheetHandle, SIGNAL(xsheetChanged()), this, SLOT(updateFields())); ret = ret && disconnect(levelHandle, SIGNAL(xshLevelSwitched(TXshLevel *)), this, SLOT(onLevelSwitched(TXshLevel *))); @@ -219,11 +219,12 @@ void CameraSettingsPopup::updateWindowTitle() { void CameraSettingsPopup::onChanged() { TCamera *camera = getCamera(); if (!camera) return; - m_cameraSettingsWidget->getFields(camera); - TApp::instance()->getCurrentScene()->notifySceneChanged(); - TApp::instance()->getCurrentXsheet()->notifyXsheetChanged(); + if (m_cameraSettingsWidget->getFields(camera)) { + TApp::instance()->getCurrentScene()->notifySceneChanged(); + TApp::instance()->getCurrentXsheet()->notifyXsheetChanged(); - emit changed(); + emit changed(); + } } void CameraSettingsPopup::onNameChanged() { diff --git a/toonz/sources/toonzqt/camerasettingswidget.cpp b/toonz/sources/toonzqt/camerasettingswidget.cpp index 7894b65..2da037a 100644 --- a/toonz/sources/toonzqt/camerasettingswidget.cpp +++ b/toonz/sources/toonzqt/camerasettingswidget.cpp @@ -581,9 +581,14 @@ void CameraSettingsWidget::setFields(const TCamera *camera) { updatePresetListOm(); } -void CameraSettingsWidget::getFields(TCamera *camera) { +bool CameraSettingsWidget::getFields(TCamera *camera) { + TDimensionD old_sz = camera->getSize(); + TDimension old_res = camera->getRes(); + + if (old_sz == getSize() && old_res == getRes()) return false; camera->setSize(getSize()); camera->setRes(getRes()); + return true; } TDimensionD CameraSettingsWidget::getSize() const { @@ -944,8 +949,8 @@ double CameraSettingsWidget::aspectRatioStringToValue(const QString &s) { } int i = s.indexOf("/"); if (i <= 0 || i + 1 >= s.length()) return s.toDouble(); - int num = s.left(i).toInt(); - int den = s.mid(i + 1).toInt(); + int num = s.left(i).toInt(); + int den = s.mid(i + 1).toInt(); if (den <= 0) den = 1; return (double)num / (double)den; }