diff --git a/toonz/sources/include/toonzqt/camerasettingswidget.h b/toonz/sources/include/toonzqt/camerasettingswidget.h index 14f7f2d..f922cad 100644 --- a/toonz/sources/include/toonzqt/camerasettingswidget.h +++ b/toonz/sources/include/toonzqt/camerasettingswidget.h @@ -28,6 +28,7 @@ class TCamera; class QRadioButton; class QComboBox; +class QLabel; class ResListManager; class TFilePath; class TXshSimpleLevel; @@ -82,6 +83,9 @@ class DVAPI CameraSettingsWidget final : public QFrame { double m_arValue; DVGui::IntLineEdit *m_xResFld, *m_yResFld; DVGui::DoubleLineEdit *m_xDpiFld, *m_yDpiFld; + QLabel* m_dpiLabel; + QLabel* m_resLabel; + QLabel* m_xLabel; QPushButton *m_fspChk; // Force Squared Pixel => dpix == dpiy @@ -147,6 +151,7 @@ public: protected: bool eventFilter(QObject *obj, QEvent *e) override; + void showEvent(QShowEvent *e) override; void hComputeLx(); void hComputeLy(); diff --git a/toonz/sources/toonz/levelcreatepopup.cpp b/toonz/sources/toonz/levelcreatepopup.cpp index 3a0ed2f..98fc8e2 100644 --- a/toonz/sources/toonz/levelcreatepopup.cpp +++ b/toonz/sources/toonz/levelcreatepopup.cpp @@ -277,6 +277,8 @@ LevelCreatePopup::LevelCreatePopup() m_buttonLayout->addStretch(1); } + + //---- signal-slot connections bool ret = true; ret = ret && @@ -335,6 +337,15 @@ void LevelCreatePopup::showEvent(QShowEvent *) { nextName(); update(); m_nameFld->setFocus(); + if (Preferences::instance()->getUnits() == "pixel") + { + m_dpiFld->hide(); + m_dpiLabel->hide(); + } + else { + m_dpiFld->show(); + m_dpiLabel->show(); + } } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/levelsettingspopup.cpp b/toonz/sources/toonz/levelsettingspopup.cpp index a31f255..be3e961 100644 --- a/toonz/sources/toonz/levelsettingspopup.cpp +++ b/toonz/sources/toonz/levelsettingspopup.cpp @@ -132,6 +132,9 @@ LevelSettingsPopup::LevelSettingsPopup() m_cameraDpiLabel = new QLabel(tr("")); m_imageDpiLabel = new QLabel(tr("")); m_imageResLabel = new QLabel(tr("")); + m_cameraDpiTitle = new QLabel(tr("Camera DPI:")); + m_imageDpiTitle = new QLabel(tr("Image DPI:")); + m_imageResTitle = new QLabel(tr("Resolution:")); // subsampling m_subsamplingLabel = new QLabel(tr("Subsampling:")); @@ -200,9 +203,13 @@ LevelSettingsPopup::LevelSettingsPopup() m_topLayout->addWidget(nameBox); //----DPI & Resolution - QGroupBox *dpiBox = new QGroupBox(tr("DPI && Resolution"), this); + QGroupBox *dpiBox; + if (Preferences::instance()->getUnits() == "pixel") + dpiBox = new QGroupBox(tr("Resolution"), this); + else + dpiBox = new QGroupBox(tr("DPI && Resolution"), this); QGridLayout *dpiLayout = new QGridLayout(); - dpiLayout->setMargin(5); + dpiLayout->setMargin(5); dpiLayout->setSpacing(5); { dpiLayout->addWidget(m_dpiTypeOm, 0, 1, 1, 3); @@ -217,15 +224,16 @@ LevelSettingsPopup::LevelSettingsPopup() Qt::AlignRight | Qt::AlignVCenter); dpiLayout->addWidget(m_heightFld, 2, 3); dpiLayout->addWidget(m_useCameraDpiBtn, 3, 1, 1, 3); - dpiLayout->addWidget(new QLabel(tr("Camera DPI:"), this), 4, 0, + dpiLayout->addWidget(m_cameraDpiTitle, 4, 0, Qt::AlignRight | Qt::AlignVCenter); dpiLayout->addWidget(m_cameraDpiLabel, 4, 1, 1, 3); - dpiLayout->addWidget(new QLabel(tr("Image DPI:"), this), 5, 0, + dpiLayout->addWidget(m_imageDpiTitle, 5, 0, Qt::AlignRight | Qt::AlignVCenter); dpiLayout->addWidget(m_imageDpiLabel, 5, 1, 1, 3); - dpiLayout->addWidget(new QLabel(tr("Resolution:"), this), 6, 0, + dpiLayout->addWidget(m_imageResTitle, 6, 0, Qt::AlignRight | Qt::AlignVCenter); dpiLayout->addWidget(m_imageResLabel, 6, 1, 1, 3); + } dpiLayout->setColumnStretch(0, 0); dpiLayout->setColumnStretch(1, 1); @@ -312,6 +320,33 @@ void LevelSettingsPopup::showEvent(QShowEvent *e) { assert(ret); updateLevelSettings(); + if (Preferences::instance()->getUnits() == "pixel") + { + m_dpiTypeOm->hide(); + m_dpiLabel->hide(); + m_dpiFld->hide(); + m_squarePixCB->hide(); + m_useCameraDpiBtn->hide(); + m_cameraDpiLabel->hide(); + m_imageDpiLabel->hide(); + m_imageDpiTitle->hide(); + m_cameraDpiTitle->hide(); + m_imageResTitle->hide(); + m_imageResLabel->hide(); + } + else { + m_dpiTypeOm->show(); + m_dpiLabel->show(); + m_dpiFld->show(); + m_squarePixCB->show(); + m_useCameraDpiBtn->show(); + m_cameraDpiLabel->show(); + m_imageDpiLabel->show(); + m_imageDpiTitle->show(); + m_cameraDpiTitle->show(); + m_imageResTitle->show(); + m_imageResLabel->show(); + } } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/levelsettingspopup.h b/toonz/sources/toonz/levelsettingspopup.h index 955ce10..a93d214 100644 --- a/toonz/sources/toonz/levelsettingspopup.h +++ b/toonz/sources/toonz/levelsettingspopup.h @@ -56,6 +56,9 @@ class LevelSettingsPopup final : public DVGui::Dialog { QLabel *m_cameraDpiLabel; QLabel *m_imageDpiLabel; QLabel *m_imageResLabel; + QLabel *m_cameraDpiTitle; + QLabel *m_imageDpiTitle; + QLabel *m_imageResTitle; DVGui::CheckBox *m_doPremultiply; DVGui::CheckBox *m_whiteTransp; DVGui::CheckBox *m_doAntialias; diff --git a/toonz/sources/toonz/preferencespopup.cpp b/toonz/sources/toonz/preferencespopup.cpp index 30087f5..57c1caf 100644 --- a/toonz/sources/toonz/preferencespopup.cpp +++ b/toonz/sources/toonz/preferencespopup.cpp @@ -233,6 +233,8 @@ void PreferencesPopup::onPixelsOnlyChanged(int index) { m_cameraUnitOm->setCurrentIndex(4); m_unitOm->setDisabled(true); m_cameraUnitOm->setDisabled(true); + m_defLevelDpi->setDisabled(true); + m_defLevelDpi->setValue(120); } else { @@ -247,6 +249,11 @@ void PreferencesPopup::onPixelsOnlyChanged(int index) { m_unitOm->setDisabled(false); m_cameraUnitOm->setDisabled(false); m_pref->setPixelsOnly(false); + int levelType = m_pref->getDefLevelType(); + bool isRaster = levelType != PLI_XSHLEVEL; + if (isRaster) { + m_defLevelDpi->setDisabled(false); + } } } @@ -719,7 +726,8 @@ void PreferencesPopup::onDefLevelTypeChanged(int index) { bool isRaster = levelType != PLI_XSHLEVEL; m_defLevelWidth->setEnabled(isRaster); m_defLevelHeight->setEnabled(isRaster); - m_defLevelDpi->setEnabled(isRaster); + if (!m_pixelsOnlyCB->isChecked()) + m_defLevelDpi->setEnabled(isRaster); } } @@ -959,7 +967,7 @@ PreferencesPopup::PreferencesPopup() m_defLevelHeight = new MeasuredDoubleLineEdit(0); m_defLevelDpi = new DoubleLineEdit(0, 66.76); m_autocreationType = new QComboBox(this); - + m_dpiLabel = new QLabel(tr("DPI:"), this); CheckBox *keepOriginalCleanedUpCB = new CheckBox(tr("Keep Original Cleaned Up Drawings As Backup"), this); CheckBox *multiLayerStylePickerCB = new CheckBox( @@ -1337,7 +1345,7 @@ PreferencesPopup::PreferencesPopup() Qt::AlignRight | Qt::AlignVCenter); styleLay->addWidget(m_cameraUnitOm, 3, 1); - styleLay->addWidget(new QLabel(tr("Rooms *:"), this), 4, 0, + styleLay->addWidget(new QLabel(tr("Rooms*:"), this), 4, 0, Qt::AlignRight | Qt::AlignVCenter); styleLay->addWidget(roomChoice, 4, 1); } @@ -1509,11 +1517,9 @@ PreferencesPopup::PreferencesPopup() drawingTopLay->addWidget(new QLabel(tr(" Height:")), 2, 2, Qt::AlignRight); drawingTopLay->addWidget(m_defLevelHeight, 2, 3); - - drawingTopLay->addWidget(new QLabel(tr("DPI:")), 3, 0, Qt::AlignRight); - drawingTopLay->addWidget(m_defLevelDpi, 3, 1); - - drawingTopLay->addWidget(new QLabel(tr("Autocreation:")), 4, 0, + drawingTopLay->addWidget(m_dpiLabel, 3, 0, Qt::AlignRight); + drawingTopLay->addWidget(m_defLevelDpi, 3, 1); + drawingTopLay->addWidget(new QLabel(tr("Autocreation:")), 4, 0, Qt::AlignRight); drawingTopLay->addWidget(m_autocreationType, 4, 1, 1, 3); } @@ -1531,6 +1537,8 @@ PreferencesPopup::PreferencesPopup() } drawingBox->setLayout(drawingFrameLay); stackedWidget->addWidget(drawingBox); + if (m_pixelsOnlyCB->isChecked()) + m_defLevelDpi->setDisabled(true); //--- Xsheet -------------------------- QWidget *xsheetBox = new QWidget(this); diff --git a/toonz/sources/toonz/preferencespopup.h b/toonz/sources/toonz/preferencespopup.h index de64ef1..31575a3 100644 --- a/toonz/sources/toonz/preferencespopup.h +++ b/toonz/sources/toonz/preferencespopup.h @@ -57,6 +57,8 @@ private: DVGui::DoubleLineEdit *m_defLevelDpi; + QLabel* m_dpiLabel; + DVGui::IntLineEdit *m_minuteFld, *m_chunkSizeFld, *m_iconSizeLx, *m_iconSizeLy, *m_viewShrink, *m_viewStep, *m_blanksCount, *m_onionPaperThickness, *m_animationStepField, *m_undoMemorySize, diff --git a/toonz/sources/toonzqt/camerasettingswidget.cpp b/toonz/sources/toonzqt/camerasettingswidget.cpp index f0daef8..dbeadc3 100644 --- a/toonz/sources/toonzqt/camerasettingswidget.cpp +++ b/toonz/sources/toonzqt/camerasettingswidget.cpp @@ -194,6 +194,10 @@ CameraSettingsWidget::CameraSettingsWidget(bool forCleanup) m_xDpiFld = new DoubleLineEdit(); m_yDpiFld = new DoubleLineEdit(); + m_dpiLabel = new QLabel(tr("DPI")); + m_resLabel = new QLabel(tr("Pixels")); + m_xLabel = new QLabel(tr("x")); + m_fspChk = new QPushButton(""); m_useLevelSettingsBtn = new QPushButton(tr("Use Current Level Settings")); @@ -290,13 +294,13 @@ CameraSettingsWidget::CameraSettingsWidget(bool forCleanup) gridLay->addWidget(m_arFld, 2, 4); gridLay->addWidget(m_dotPrev, 3, 0, Qt::AlignRight | Qt::AlignVCenter); - gridLay->addWidget(new QLabel("Pixel"), 3, 1, + gridLay->addWidget(m_resLabel, 3, 1, Qt::AlignRight | Qt::AlignVCenter); gridLay->addWidget(m_xResFld, 3, 2); - gridLay->addWidget(new QLabel("x"), 3, 3, Qt::AlignCenter); + gridLay->addWidget(m_xLabel, 3, 3, Qt::AlignCenter); gridLay->addWidget(m_yResFld, 3, 4); - gridLay->addWidget(new QLabel("DPI"), 4, 1, + gridLay->addWidget(m_dpiLabel, 4, 1, Qt::AlignRight | Qt::AlignVCenter); gridLay->addWidget(m_xDpiFld, 4, 2); gridLay->addWidget(m_fspChk, 4, 3, Qt::AlignCenter); @@ -323,6 +327,30 @@ CameraSettingsWidget::CameraSettingsWidget(bool forCleanup) } setLayout(mainLay); + if (Preferences::instance()->getCameraUnits() == "pixel") + { + m_resLabel->hide(); + m_dpiLabel->hide(); + m_xLabel->hide(); + m_xResFld->hide(); + m_yResFld->hide(); + m_xDpiFld->hide(); + m_yDpiFld->hide(); + m_fspChk->hide(); + m_dotPrev->hide(); + } + else { + m_resLabel->show(); + m_dpiLabel->show(); + m_xLabel->show(); + m_xResFld->show(); + m_yResFld->show(); + m_xDpiFld->show(); + m_yDpiFld->show(); + m_fspChk->show(); + m_dotPrev->show(); + } + // initialize fields TCamera camera; setFields(&camera); @@ -367,6 +395,32 @@ CameraSettingsWidget::CameraSettingsWidget(bool forCleanup) CameraSettingsWidget::~CameraSettingsWidget() { setCurrentLevel(0); } +void CameraSettingsWidget::showEvent(QShowEvent *e) { + if (Preferences::instance()->getCameraUnits() == "pixel") + { + m_resLabel->hide(); + m_dpiLabel->hide(); + m_xLabel->hide(); + m_xResFld->hide(); + m_yResFld->hide(); + m_xDpiFld->hide(); + m_yDpiFld->hide(); + m_fspChk->hide(); + m_dotPrev->hide(); + } + else { + m_resLabel->show(); + m_dpiLabel->show(); + m_xLabel->show(); + m_xResFld->show(); + m_yResFld->show(); + m_xDpiFld->show(); + m_yDpiFld->show(); + m_fspChk->show(); + m_dotPrev->show(); + } +} + void CameraSettingsWidget::loadPresetList() { if (m_presetListFile == "") return; m_presetListOm->clear();