Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef OUTPUTSETTINGSPOPUP_H
Toshihiro Shimizu 890ddd
#define OUTPUTSETTINGSPOPUP_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "toonzqt/dvdialog.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "toonz/sceneproperties.h"
Toshihiro Shimizu 890ddd
shun-iwasawa f36064
#include <qlabel></qlabel>
Toshihiro Shimizu 890ddd
// forward declaration
Toshihiro Shimizu 890ddd
class ToonzScene;
Toshihiro Shimizu 890ddd
class QComboBox;
shun-iwasawa f36064
class QScrollArea;
shun-iwasawa f36064
class QListWidgetItem;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
namespace DVGui {
Toshihiro Shimizu 890ddd
class FileField;
Toshihiro Shimizu 890ddd
class LineEdit;
Toshihiro Shimizu 890ddd
class IntLineEdit;
Toshihiro Shimizu 890ddd
class CheckBox;
Toshihiro Shimizu 890ddd
class DoubleLineEdit;
shun-iwasawa f36064
}  // namespace DVGui
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class CameraSettingsPopup;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
// OutputSettingsPopup
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
shun-iwasawa f36064
class AnimatedLabel : public QLabel {
shun-iwasawa f36064
  Q_OBJECT
shun-iwasawa f36064
  Q_PROPERTY(QColor color READ color WRITE setColor)
shun-iwasawa f36064
public:
shun-iwasawa f36064
  AnimatedLabel(const QString &text, QWidget *parent = 0)
shun-iwasawa f36064
      : QLabel(text, parent) {
shun-iwasawa f36064
    setObjectName("OutputSettingsLabel");
shun-iwasawa f36064
  }
shun-iwasawa f36064
  void setColor(QColor color) {
shun-iwasawa f36064
    setStyleSheet(QString("background-color: rgba(%1,%2,%3,%4);")
shun-iwasawa f36064
                      .arg(color.red())
shun-iwasawa f36064
                      .arg(color.green())
shun-iwasawa f36064
                      .arg(color.blue())
shun-iwasawa f36064
                      .arg(color.alpha()));
shun-iwasawa f36064
  }
shun-iwasawa f36064
  QColor color() { return Qt::black; }
shun-iwasawa f36064
};
shun-iwasawa f36064
Shinya Kitaoka 120a6e
class OutputSettingsPopup : public DVGui::Dialog {
Shinya Kitaoka 120a6e
  Q_OBJECT
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  DVGui::FileField *m_saveInFileFld;
Shinya Kitaoka 120a6e
  DVGui::LineEdit *m_fileNameFld;
Shinya Kitaoka 120a6e
  QComboBox *m_fileFormat;
Shinya Kitaoka 120a6e
  QComboBox *m_outputCameraOm;
Shinya Kitaoka 120a6e
  DVGui::IntLineEdit *m_startFld, *m_endFld;
Shinya Kitaoka 120a6e
  DVGui::IntLineEdit *m_stepFld, *m_shrinkFld;
Shinya Kitaoka 120a6e
  QComboBox *m_multimediaOm;
Shinya Kitaoka 120a6e
  QComboBox *m_resampleBalanceOm;
Shinya Kitaoka 120a6e
  QComboBox *m_channelWidthOm;
shun-iwasawa 481b59
  DVGui::CheckBox *m_linearColorSpaceChk;
shun-iwasawa 481b59
  DVGui::DoubleLineEdit *m_colorSpaceGammaFld;
Shinya Kitaoka 120a6e
  DVGui::DoubleLineEdit *m_gammaFld;
Shinya Kitaoka 120a6e
  QComboBox *m_dominantFieldOm;
Shinya Kitaoka 120a6e
  DVGui::CheckBox *m_applyShrinkChk;
Shinya Kitaoka 120a6e
  DVGui::CheckBox *m_subcameraChk;
Shinya Kitaoka 120a6e
  DVGui::DoubleLineEdit *m_stretchFromFld, *m_stretchToFld;
Shinya Kitaoka 120a6e
  DVGui::CheckBox *m_doStereoscopy;
Shinya Kitaoka 120a6e
  DVGui::DoubleLineEdit *m_stereoShift;
Shinya Kitaoka 120a6e
  QComboBox *m_rasterGranularityOm;
Shinya Kitaoka 120a6e
  QComboBox *m_threadsComboOm;
justburner 69bbaf
  bool m_allowMT;
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  DVGui::DoubleLineEdit *m_frameRateFld;
Shinya Kitaoka 120a6e
  QPushButton *m_fileFormatButton;
Shinya Kitaoka 120a6e
  CameraSettingsPopup *m_cameraSettings;
Shinya Kitaoka 120a6e
  QComboBox *m_presetCombo;
Shinya Kitaoka 120a6e
shun-iwasawa cd4694
  // clapperboard
shun-iwasawa cd4694
  DVGui::CheckBox *m_addBoard;
shun-iwasawa cd4694
  QPushButton *m_boardSettingsBtn;
shun-iwasawa cd4694
shun-iwasawa f36064
  QScrollArea *m_scrollArea;
shun-iwasawa 481b59
  AnimatedLabel *m_cameraLabel, *m_colorLabel, *m_fileLabel, *m_moreLabel;
shun-iwasawa 481b59
  QFrame *m_cameraBox, *m_colorBox, *m_fileBox, *m_moreBox;
shun-iwasawa 481b59
shun-iwasawa 481b59
  DVGui::CheckBox *m_syncColorSettingsButton;
shun-iwasawa f36064
Shinya Kitaoka 120a6e
  bool m_isPreviewSettings;
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  void updatePresetComboItems();
shun-iwasawa 59726b
  void translateResampleOptions();
Toshihiro Shimizu 890ddd
shun-iwasawa f36064
  QFrame *createPanel(bool isPreview);
shun-iwasawa f36064
  QFrame *createCameraSettingsBox(bool isPreview);
shun-iwasawa 481b59
  QFrame *createColorSettingsBox(bool isPreview);
shun-iwasawa f36064
  QFrame *createFileSettingsBox(bool isPreview);
shun-iwasawa eb8f34
  QFrame *createMoreSettingsBox();
shun-iwasawa f36064
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  OutputSettingsPopup(bool isPreview = false);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected:
Shinya Kitaoka 120a6e
  ToonzScene *getCurrentScene() const;
Shinya Kitaoka 120a6e
  TOutputProperties *getProperties() const;
Shinya Kitaoka 473e70
  void showEvent(QShowEvent *) override;
Shinya Kitaoka 473e70
  void hideEvent(QHideEvent *) override;
shun-iwasawa c7ddce
  bool eventFilter(QObject *, QEvent *) override;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected slots:
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void updateField();
Shinya Kitaoka 120a6e
  void onPathChanged();
Shinya Kitaoka 120a6e
  void onNameChanged();
Shinya Kitaoka 120a6e
  void onFormatChanged(const QString &str);
Shinya Kitaoka 120a6e
  void openSettingsPopup();
Shinya Kitaoka 120a6e
  void onCameraChanged(const QString &str);
Shinya Kitaoka 120a6e
  void onFrameFldEditFinished();
Shinya Kitaoka 120a6e
  void onResampleChanged(int type);
Shinya Kitaoka 120a6e
  void onChannelWidthChanged(int type);
shun-iwasawa 481b59
  void onLinearColorSpaceChecked(int state);
shun-iwasawa 481b59
  void onColorSpaceGammaEdited();
Shinya Kitaoka 120a6e
  void onGammaFldEditFinished();
Shinya Kitaoka 120a6e
  void onDominantFieldChanged(int type);
Shinya Kitaoka 120a6e
  void onStretchFldEditFinished();
Shinya Kitaoka 120a6e
  void onApplyShrinkChecked(int state);
Shinya Kitaoka 120a6e
  void onSubcameraChecked(int state);
Shinya Kitaoka 120a6e
  void onMultimediaChanged(int mode);
Shinya Kitaoka 120a6e
  void onThreadsComboChanged(int type);
Shinya Kitaoka 120a6e
  void onRasterGranularityChanged(int type);
Shinya Kitaoka 120a6e
  void onStereoChecked(int);
Shinya Kitaoka 120a6e
  void onStereoChanged();
shun-iwasawa 481b59
  void onSyncColorSettingsChecked(int state);
Jeremy Bullock 4a76fd
  void onRenderClicked();
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  /*-- OutputSettingsのPreset登録/削除/選択 --*/
Shinya Kitaoka 120a6e
  void onAddPresetButtonPressed();
Shinya Kitaoka 120a6e
  void onRemovePresetButtonPressed();
Shinya Kitaoka 120a6e
  void onPresetSelected(const QString &);
Shinya Kitaoka 120a6e
  /*-- OutputsettingsのPresetコンボを更新するため --*/
Shinya Kitaoka 120a6e
  void onCameraSettingsChanged();
Shinya Kitaoka 120a6e
  /*-- Scene Settings のFPSを編集できるようにする --*/
Shinya Kitaoka 120a6e
  void onFrameRateEditingFinished();
shun-iwasawa cd4694
  // clapperboard
shun-iwasawa cd4694
  void onAddBoardChecked(int state);
shun-iwasawa cd4694
  void onBoardSettingsBtnClicked();
shun-iwasawa f36064
shun-iwasawa f36064
  void onCategoryActivated(QListWidgetItem *);
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class PreviewSettingsPopup final : public OutputSettingsPopup {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  PreviewSettingsPopup() : OutputSettingsPopup(true) {}
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
#endif  // OUTPUTSETTINGSPOPUP_H