Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef LEVELSETTINGSPOPUP_H
Toshihiro Shimizu 890ddd
#define LEVELSETTINGSPOPUP_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "toonzqt/dvdialog.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "toonz/txshsimplelevel.h"
Toshihiro Shimizu 890ddd
#include "toonz/txshpalettelevel.h"
Toshihiro Shimizu 890ddd
#include "toonz/txshchildlevel.h"
Toshihiro Shimizu 890ddd
#include "toonz/txshsoundlevel.h"
Toshihiro Shimizu 890ddd
shun-iwasawa 29ceb2
#include <qset></qset>
shun-iwasawa 29ceb2
Toshihiro Shimizu 890ddd
// forward declaration
Toshihiro Shimizu 890ddd
class QLabel;
Toshihiro Shimizu 890ddd
class QComboBox;
Toshihiro Shimizu 890ddd
class QPushButton;
Toshihiro Shimizu 890ddd
class TXshLevel;
Toshihiro Shimizu 890ddd
class TSelection;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
namespace DVGui {
Toshihiro Shimizu 890ddd
class FileField;
Toshihiro Shimizu 890ddd
class DoubleField;
Toshihiro Shimizu 890ddd
class LineEdit;
Toshihiro Shimizu 890ddd
class IntLineEdit;
Toshihiro Shimizu 890ddd
class DoubleLineEdit;
Toshihiro Shimizu 890ddd
class MeasuredDoubleLineEdit;
Toshihiro Shimizu 890ddd
class CheckBox;
shun-iwasawa 29ceb2
}  // namespace DVGui
shun-iwasawa 29ceb2
shun-iwasawa 29ceb2
enum SelectedLevelType {
shun-iwasawa 481b59
  None            = 0x0,
shun-iwasawa 481b59
  ToonzRaster     = 0x1,
shun-iwasawa 481b59
  NonLinearRaster = 0x2,
shun-iwasawa 481b59
  Mesh            = 0x4,
shun-iwasawa 481b59
  ToonzVector     = 0x8,
shun-iwasawa 481b59
  Palette         = 0x10,
shun-iwasawa 481b59
  SubXsheet       = 0x20,
shun-iwasawa 481b59
  Sound           = 0x40,
shun-iwasawa 481b59
  LinearRaster = 0x80,  // EXR files only enables the "Color Space Gamma" field
shun-iwasawa 481b59
  Others       = 0x100,
shun-iwasawa 481b59
shun-iwasawa 481b59
  MultiSelection  = 0x1000,
shun-iwasawa 481b59
  HideOnPixelMode = 0x2000,
shun-iwasawa 481b59
  NoSelection     = 0x4000,
shun-iwasawa 481b59
shun-iwasawa 481b59
  Raster      = NonLinearRaster | LinearRaster,
shun-iwasawa 29ceb2
  SimpleLevel = ToonzRaster | Raster | Mesh | ToonzVector,
shun-iwasawa 29ceb2
  HasDPILevel = ToonzRaster | Raster | Mesh,
shun-iwasawa 29ceb2
  AllTypes    = SimpleLevel | Palette | SubXsheet | Sound
shun-iwasawa 29ceb2
};
shun-iwasawa 29ceb2
shun-iwasawa 29ceb2
struct LevelSettingsValues {
shun-iwasawa 29ceb2
  QString name, path, scanPath, typeStr, imageDpi, imageRes;
shun-iwasawa 29ceb2
  int dpiType = -1, softness = -1, subsampling = -1;
shun-iwasawa 29ceb2
  TPointD dpi               = TPointD(0, 0);
shun-iwasawa 29ceb2
  Qt::CheckState doPremulti = Qt::Unchecked, whiteTransp = Qt::Unchecked,
shun-iwasawa 29ceb2
                 doAntialias = Qt::Unchecked, isDirty = Qt::Unchecked;
shun-iwasawa 481b59
  double width = 0.0, height = 0.0, colorSpaceGamma = -1.0;
shun-iwasawa 29ceb2
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
// LevelSettingsPopup
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class LevelSettingsPopup final : public DVGui::Dialog {
Shinya Kitaoka 120a6e
  Q_OBJECT
Shinya Kitaoka 120a6e
shun-iwasawa 29ceb2
  QSet<txshlevelp> m_selectedLevels;</txshlevelp>
shun-iwasawa 29ceb2
  QMap<qwidget *,="" int="" unsigned=""> m_activateFlags;</qwidget>
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  DVGui::LineEdit *m_nameFld;
Shinya Kitaoka 120a6e
  DVGui::FileField *m_pathFld;
Shinya Kitaoka 120a6e
  DVGui::FileField *m_scanPathFld;
Shinya Kitaoka 120a6e
  QLabel *m_typeLabel;
Shinya Kitaoka 120a6e
  QComboBox *m_dpiTypeOm;
Shinya Kitaoka 120a6e
  DVGui::DoubleLineEdit *m_dpiFld;
Shinya Kitaoka 120a6e
  DVGui::CheckBox *m_squarePixCB;
Shinya Kitaoka 120a6e
  DVGui::MeasuredDoubleLineEdit *m_widthFld;
Shinya Kitaoka 120a6e
  DVGui::MeasuredDoubleLineEdit *m_heightFld;
Shinya Kitaoka 120a6e
  QPushButton *m_useCameraDpiBtn;
Shinya Kitaoka 120a6e
  QLabel *m_cameraDpiLabel;
Shinya Kitaoka 120a6e
  QLabel *m_imageDpiLabel;
Shinya Kitaoka 120a6e
  QLabel *m_imageResLabel;
Shinya Kitaoka 120a6e
  DVGui::CheckBox *m_doPremultiply;
Shinya Kitaoka 120a6e
  DVGui::CheckBox *m_whiteTransp;
Shinya Kitaoka 120a6e
  DVGui::CheckBox *m_doAntialias;
shun-iwasawa 29ceb2
  QLabel *m_softnessLabel;
Shinya Kitaoka 120a6e
  DVGui::IntLineEdit *m_antialiasSoftness;
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  QLabel *m_subsamplingLabel;
Shinya Kitaoka 120a6e
  DVGui::IntLineEdit *m_subsamplingFld;
Toshihiro Shimizu 890ddd
shun-iwasawa 481b59
  QLabel *m_colorSpaceGammaLabel;
shun-iwasawa 481b59
  DVGui::DoubleLineEdit *m_colorSpaceGammaFld;
shun-iwasawa 481b59
shun-iwasawa 29ceb2
  SelectedLevelType getType(TXshLevelP);
shun-iwasawa 29ceb2
  LevelSettingsValues getValues(TXshLevelP);
shun-iwasawa 29ceb2
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  LevelSettingsPopup();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected:
Shinya Kitaoka 473e70
  void showEvent(QShowEvent *e) override;
Shinya Kitaoka 473e70
  void hideEvent(QHideEvent *e) override;
Toshihiro Shimizu 890ddd
shun-iwasawa 29ceb2
protected slots:
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void onCastSelectionChanged();
Shinya Kitaoka 120a6e
  void onSelectionSwitched(TSelection *oldSelection, TSelection *newSelection);
Shinya Kitaoka 120a6e
  void updateLevelSettings();
Shinya Kitaoka 120a6e
  void onNameChanged();
Shinya Kitaoka 120a6e
  void onPathChanged();
Shinya Kitaoka 120a6e
  void onScanPathChanged();
shun-iwasawa e87e08
  void onDpiTypeChanged(int);
Shinya Kitaoka 120a6e
  void onDpiFieldChanged();
Shinya Kitaoka 120a6e
  void onWidthFieldChanged();
Shinya Kitaoka 120a6e
  void onHeightFieldChanged();
Shinya Kitaoka 120a6e
  void onSquarePixelChanged(int);
Shinya Kitaoka 120a6e
  void useCameraDpi();
Shinya Kitaoka 120a6e
  void onSubsamplingChanged();
shun-iwasawa 29ceb2
  void onDoPremultiplyClicked();
shun-iwasawa 29ceb2
  void onDoAntialiasClicked();
Shinya Kitaoka 120a6e
  void onAntialiasSoftnessChanged();
shun-iwasawa 29ceb2
  void onWhiteTranspClicked();
shun-iwasawa 481b59
  void onColorSpaceGammaFieldChanged();
Shinya Kitaoka 120a6e
  void onSceneChanged();
shun-iwasawa 29ceb2
  void onPreferenceChanged(const QString &);
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
#endif  // LEVELSETTINGSPOPUP_H