|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef PREFERENCESPOPUP_H
|
|
Toshihiro Shimizu |
890ddd |
#define PREFERENCESPOPUP_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// TnzQt includes
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/dvdialog.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/intfield.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/doublefield.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/colorfield.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "toonzqt/checkbox.h"
|
|
turtletooth |
04d8fd |
#include "toonzqt/filefield.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// TnzLib includes
|
|
Toshihiro Shimizu |
890ddd |
#include "toonz/preferences.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// Qt includes
|
|
Toshihiro Shimizu |
890ddd |
#include <qcombobox></qcombobox>
|
|
manongjohn |
b66bc4 |
#include <qfontcombobox></qfontcombobox>
|
|
shun-iwasawa |
c54dfb |
#include <qtextedit></qtextedit>
|
|
shun-iwasawa |
215a5b |
#include <qopenglwidget></qopenglwidget>
|
|
shun-iwasawa |
215a5b |
#include <qsurfaceformat></qsurfaceformat>
|
|
shun-iwasawa |
215a5b |
#include <qopenglfunctions></qopenglfunctions>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//==============================================================
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// Forward declarations
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class QLineEdit;
|
|
Toshihiro Shimizu |
890ddd |
class QPushButton;
|
|
Toshihiro Shimizu |
890ddd |
class QLabel;
|
|
Jeremy Bullock |
33e7d1 |
class QGroupBox;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//==============================================================
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
// PreferencesPopup definition
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************
|
|
shun-iwasawa |
8fb291 |
typedef QPair<qstring, qvariant=""> ComboBoxItem;</qstring,>
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
8fb291 |
class SizeField final : public QWidget {
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
shun-iwasawa |
8fb291 |
DVGui::IntLineEdit *m_fieldX, *m_fieldY;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
shun-iwasawa |
8fb291 |
SizeField(QSize min, QSize max, QSize value = QSize(),
|
|
shun-iwasawa |
8fb291 |
QWidget* parent = nullptr);
|
|
shun-iwasawa |
8fb291 |
QSize getValue() const;
|
|
shun-iwasawa |
8fb291 |
void setValue(const QSize&);
|
|
shun-iwasawa |
8fb291 |
signals:
|
|
shun-iwasawa |
8fb291 |
void editingFinished();
|
|
shun-iwasawa |
8fb291 |
};
|
|
Shinya Kitaoka |
120a6e |
|
|
shun-iwasawa |
8fb291 |
class PreferencesPopup;
|
|
Jeremy Bullock |
733ddb |
|
|
shun-iwasawa |
8fb291 |
typedef void (PreferencesPopup::*OnEditedPopupFunc)();
|
|
Shinya Kitaoka |
120a6e |
|
|
shun-iwasawa |
8fb291 |
class PreferencesPopup final : public QDialog {
|
|
shun-iwasawa |
8fb291 |
Q_OBJECT
|
|
Shinya Kitaoka |
120a6e |
|
|
shun-iwasawa |
8fb291 |
QMap<qwidget*, preferencesitemid=""> m_controlIdMap;</qwidget*,>
|
|
shun-iwasawa |
8fb291 |
QMap<preferencesitemid, oneditedpopupfunc=""> m_onEditedFuncMap;</preferencesitemid,>
|
|
shun-iwasawa |
8fb291 |
QMap<preferencesitemid, oneditedpopupfunc=""> m_preEditedFuncMap;</preferencesitemid,>
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
8fb291 |
public:
|
|
shun-iwasawa |
8fb291 |
PreferencesPopup();
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
8fb291 |
private:
|
|
shun-iwasawa |
8fb291 |
class FormatProperties;
|
|
shun-iwasawa |
c54dfb |
class AdditionalStyleEdit;
|
|
shun-iwasawa |
215a5b |
class Display30bitChecker;
|
|
turtletooth |
04d8fd |
|
|
shun-iwasawa |
8fb291 |
private:
|
|
shun-iwasawa |
8fb291 |
Preferences* m_pref;
|
|
shun-iwasawa |
8fb291 |
FormatProperties* m_formatProperties;
|
|
shun-iwasawa |
c54dfb |
AdditionalStyleEdit* m_additionalStyleEdit;
|
|
Jeremy Bullock |
33e7d1 |
|
|
shun-iwasawa |
8fb291 |
DVGui::CheckBox *m_projectRootDocuments, *m_projectRootDesktop,
|
|
shun-iwasawa |
8fb291 |
*m_projectRootCustom;
|
|
shun-iwasawa |
8fb291 |
QPushButton* m_editLevelFormat;
|
|
shun-iwasawa |
8fb291 |
QComboBox* m_levelFormatNames;
|
|
manongjohn |
a21b06 |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
void rebuildFormatsList();
|
|
shun-iwasawa |
8fb291 |
QList<comboboxitem> buildFontStyleList() const;</comboboxitem>
|
|
shun-iwasawa |
8fb291 |
|
|
shun-iwasawa |
8fb291 |
QWidget* createUI(
|
|
shun-iwasawa |
8fb291 |
PreferencesItemId id,
|
|
shun-iwasawa |
8fb291 |
const QList<comboboxitem>& comboItems = QList<comboboxitem>());</comboboxitem></comboboxitem>
|
|
shun-iwasawa |
8fb291 |
QGridLayout* insertGroupBoxUI(PreferencesItemId id, QGridLayout* layout);
|
|
shun-iwasawa |
8fb291 |
void insertUI(PreferencesItemId id, QGridLayout* layout,
|
|
shun-iwasawa |
8fb291 |
const QList<comboboxitem>& comboItems = QList<comboboxitem>());</comboboxitem></comboboxitem>
|
|
shun-iwasawa |
8fb291 |
void insertDualUIs(
|
|
shun-iwasawa |
8fb291 |
PreferencesItemId leftId, PreferencesItemId rightId, QGridLayout* layout,
|
|
shun-iwasawa |
8fb291 |
const QList<comboboxitem>& leftComboItems = QList<comboboxitem>(),</comboboxitem></comboboxitem>
|
|
shun-iwasawa |
8fb291 |
const QList<comboboxitem>& rightComboItems = QList<comboboxitem>());</comboboxitem></comboboxitem>
|
|
shun-iwasawa |
8fb291 |
void insertFootNote(QGridLayout* layout);
|
|
shun-iwasawa |
8fb291 |
QString getUIString(PreferencesItemId id);
|
|
shun-iwasawa |
8fb291 |
QList<comboboxitem> getComboItemList(PreferencesItemId id) const;</comboboxitem>
|
|
shun-iwasawa |
8fb291 |
template <typename t=""></typename>
|
|
shun-iwasawa |
8fb291 |
inline T getUI(PreferencesItemId id);
|
|
shun-iwasawa |
8fb291 |
|
|
shun-iwasawa |
8fb291 |
QWidget* createGeneralPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createInterfacePage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createVisualizationPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createLoadingPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createSavingPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createImportExportPage();
|
|
justburner |
08eb1b |
QWidget* createAutoLipSyncPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createDrawingPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createToolsPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createXsheetPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createAnimationPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createPreviewPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createOnionSkinPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createColorsPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createVersionControlPage();
|
|
shun-iwasawa |
8fb291 |
QWidget* createTouchTabletPage();
|
|
shun-iwasawa |
8fb291 |
|
|
shun-iwasawa |
8fb291 |
//--- callbacks ---
|
|
shun-iwasawa |
8fb291 |
// General
|
|
shun-iwasawa |
8fb291 |
void onAutoSaveChanged();
|
|
shun-iwasawa |
8fb291 |
void onAutoSaveOptionsChanged();
|
|
shun-iwasawa |
8fb291 |
void onWatchFileSystemClicked();
|
|
shun-iwasawa |
8fb291 |
void onPathAliasPriorityChanged();
|
|
shun-iwasawa |
8fb291 |
// Interface
|
|
shun-iwasawa |
8fb291 |
void onStyleSheetTypeChanged();
|
|
Kite |
521c84 |
void onIconThemeChanged();
|
|
shun-iwasawa |
8fb291 |
void onPixelsOnlyChanged();
|
|
shun-iwasawa |
8fb291 |
void onUnitChanged();
|
|
shun-iwasawa |
8fb291 |
void beforeRoomChoiceChanged();
|
|
shun-iwasawa |
a8f111 |
void onColorCalibrationChanged();
|
|
shun-iwasawa |
8fb291 |
// Drawing
|
|
shun-iwasawa |
8fb291 |
void onDefLevelTypeChanged();
|
|
shun-iwasawa |
8fb291 |
void onUseNumpadForSwitchingStylesClicked();
|
|
shun-iwasawa |
8fb291 |
// Tools
|
|
shun-iwasawa |
8fb291 |
void onLevelBasedToolsDisplayChanged();
|
|
shun-iwasawa |
8fb291 |
// Xsheet
|
|
shun-iwasawa |
8fb291 |
void onShowKeyframesOnCellAreaChanged();
|
|
shun-iwasawa |
8fb291 |
void onShowXSheetToolbarClicked();
|
|
shun-iwasawa |
4a3868 |
// Animation
|
|
shun-iwasawa |
4a3868 |
void onModifyExpressionOnMovingReferencesChanged();
|
|
shun-iwasawa |
8fb291 |
// Preview
|
|
shun-iwasawa |
8fb291 |
void onBlankCountChanged();
|
|
shun-iwasawa |
8fb291 |
void onBlankColorChanged();
|
|
shun-iwasawa |
8fb291 |
// Onion Skin
|
|
shun-iwasawa |
8fb291 |
void onOnionSkinVisibilityChanged();
|
|
shun-iwasawa |
8fb291 |
void onOnionColorChanged();
|
|
shun-iwasawa |
8fb291 |
// Colors
|
|
shun-iwasawa |
8fb291 |
void onTranspCheckDataChanged();
|
|
justburner |
a13da2 |
void onChessboardChanged();
|
|
shun-iwasawa |
8fb291 |
// Version Control
|
|
shun-iwasawa |
8fb291 |
void onSVNEnabledChanged();
|
|
shun-iwasawa |
8fb291 |
// Commonly used
|
|
shun-iwasawa |
8fb291 |
void notifySceneChanged();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private slots:
|
|
shun-iwasawa |
8fb291 |
void onChange();
|
|
shun-iwasawa |
8fb291 |
void onColorFieldChanged(const TPixel32&, bool);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Jeremy Bullock |
4c6224 |
void onAutoSaveExternallyChanged();
|
|
Jeremy Bullock |
4c6224 |
void onAutoSavePeriodExternallyChanged();
|
|
shun-iwasawa |
8fb291 |
void onProjectRootChanged();
|
|
shun-iwasawa |
c54dfb |
|
|
shun-iwasawa |
c54dfb |
void onEditAdditionalStyleSheet();
|
|
shun-iwasawa |
c54dfb |
void onAdditionalStyleSheetEdited();
|
|
shun-iwasawa |
8fb291 |
void onPixelUnitExternallySelected(bool on);
|
|
shun-iwasawa |
8fb291 |
void onInterfaceFontChanged(const QString& text);
|
|
shun-iwasawa |
8fb291 |
void onLutPathChanged();
|
|
shun-iwasawa |
215a5b |
void onCheck30bitDisplay();
|
|
shun-iwasawa |
8fb291 |
|
|
Shinya Kitaoka |
120a6e |
void onAddLevelFormat();
|
|
Shinya Kitaoka |
120a6e |
void onRemoveLevelFormat();
|
|
Shinya Kitaoka |
120a6e |
void onEditLevelFormat();
|
|
Shinya Kitaoka |
120a6e |
void onLevelFormatEdited();
|
|
Jeremy Bullock |
b53dba |
void onImportPolicyExternallyChanged(int policy);
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
// PreferencesPopup::FormatProperties definition
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class PreferencesPopup::FormatProperties final : public DVGui::Dialog {
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
shun-iwasawa |
8fb291 |
FormatProperties(PreferencesPopup* parent);
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
8fb291 |
void setLevelFormat(const Preferences::LevelFormat& lf);
|
|
Shinya Kitaoka |
120a6e |
Preferences::LevelFormat levelFormat() const;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
shun-iwasawa |
8fb291 |
QComboBox* m_dpiPolicy;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
DVGui::LineEdit *m_name, *m_regExp;
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
481b59 |
DVGui::DoubleLineEdit *m_dpi, *m_colorSpaceGamma;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
DVGui::IntLineEdit *m_priority, *m_subsampling, *m_antialias;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
DVGui::CheckBox *m_premultiply, *m_whiteTransp, *m_doAntialias;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private slots:
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void updateEnabledStatus();
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
c54dfb |
//**********************************************************************************
|
|
shun-iwasawa |
c54dfb |
// PreferencesPopup::AdditionalStyleEdit definition
|
|
shun-iwasawa |
c54dfb |
//**********************************************************************************
|
|
shun-iwasawa |
c54dfb |
|
|
shun-iwasawa |
c54dfb |
class PreferencesPopup::AdditionalStyleEdit final : public DVGui::Dialog {
|
|
shun-iwasawa |
c54dfb |
Q_OBJECT
|
|
shun-iwasawa |
c54dfb |
|
|
shun-iwasawa |
c54dfb |
public:
|
|
shun-iwasawa |
c54dfb |
AdditionalStyleEdit(PreferencesPopup* parent);
|
|
shun-iwasawa |
c54dfb |
|
|
shun-iwasawa |
c54dfb |
private:
|
|
shun-iwasawa |
c54dfb |
QTextEdit* m_edit;
|
|
shun-iwasawa |
c54dfb |
|
|
shun-iwasawa |
c54dfb |
protected:
|
|
shun-iwasawa |
c54dfb |
void showEvent(QShowEvent* e) override;
|
|
shun-iwasawa |
c54dfb |
|
|
shun-iwasawa |
c54dfb |
private slots:
|
|
shun-iwasawa |
c54dfb |
void onOK();
|
|
shun-iwasawa |
c54dfb |
void onApply();
|
|
shun-iwasawa |
c54dfb |
signals:
|
|
shun-iwasawa |
c54dfb |
void additionalSheetEdited();
|
|
shun-iwasawa |
c54dfb |
};
|
|
shun-iwasawa |
c54dfb |
|
|
shun-iwasawa |
215a5b |
//**********************************************************************************
|
|
shun-iwasawa |
215a5b |
// PreferencesPopup::Display30bitCheckerView definition
|
|
shun-iwasawa |
215a5b |
//**********************************************************************************
|
|
shun-iwasawa |
215a5b |
|
|
shun-iwasawa |
215a5b |
class PreferencesPopup::Display30bitChecker final : public QDialog {
|
|
shun-iwasawa |
215a5b |
Q_OBJECT
|
|
shun-iwasawa |
215a5b |
|
|
shun-iwasawa |
215a5b |
QSurfaceFormat m_currentDefaultFormat;
|
|
shun-iwasawa |
215a5b |
|
|
shun-iwasawa |
215a5b |
private:
|
|
shun-iwasawa |
215a5b |
class GLView;
|
|
shun-iwasawa |
215a5b |
|
|
shun-iwasawa |
215a5b |
public:
|
|
shun-iwasawa |
215a5b |
Display30bitChecker(PreferencesPopup* parent);
|
|
shun-iwasawa |
215a5b |
~Display30bitChecker();
|
|
shun-iwasawa |
215a5b |
};
|
|
shun-iwasawa |
215a5b |
|
|
shun-iwasawa |
215a5b |
class PreferencesPopup::Display30bitChecker::GLView final
|
|
shun-iwasawa |
215a5b |
: public QOpenGLWidget,
|
|
shun-iwasawa |
215a5b |
protected QOpenGLFunctions {
|
|
shun-iwasawa |
215a5b |
Q_OBJECT
|
|
shun-iwasawa |
215a5b |
bool m_is30bit;
|
|
shun-iwasawa |
215a5b |
|
|
shun-iwasawa |
215a5b |
public:
|
|
shun-iwasawa |
215a5b |
GLView(QWidget* parent, bool is30bit);
|
|
shun-iwasawa |
215a5b |
|
|
shun-iwasawa |
215a5b |
protected:
|
|
shun-iwasawa |
215a5b |
void initializeGL() override;
|
|
shun-iwasawa |
215a5b |
void resizeGL(int width, int height) override;
|
|
shun-iwasawa |
215a5b |
void paintGL() override;
|
|
shun-iwasawa |
215a5b |
};
|
|
shun-iwasawa |
215a5b |
|
|
Shinya Kitaoka |
120a6e |
#endif // PREFERENCESPOPUP_H
|