diff --git a/toonz/sources/include/toonzqt/camerasettingswidget.h b/toonz/sources/include/toonzqt/camerasettingswidget.h index c8dbac77..01b42874 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 d2f7957a..26fb58dc 100644 --- a/toonz/sources/toonz/camerasettingspopup.cpp +++ b/toonz/sources/toonz/camerasettingspopup.cpp @@ -224,11 +224,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 dd1e4962..3d57afa0 100644 --- a/toonz/sources/toonzqt/camerasettingswidget.cpp +++ b/toonz/sources/toonzqt/camerasettingswidget.cpp @@ -591,9 +591,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 { @@ -954,8 +959,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; }