215 lines
5.9 KiB
C++
215 lines
5.9 KiB
C++
#pragma once
|
|
|
|
#ifndef PREFERENCESPOPUP_H
|
|
#define PREFERENCESPOPUP_H
|
|
|
|
// TnzQt includes
|
|
#include "toonzqt/dvdialog.h"
|
|
#include "toonzqt/intfield.h"
|
|
#include "toonzqt/doublefield.h"
|
|
#include "toonzqt/colorfield.h"
|
|
#include "toonzqt/checkbox.h"
|
|
#include "toonzqt/filefield.h"
|
|
|
|
// TnzLib includes
|
|
#include "toonz/preferences.h"
|
|
|
|
// Qt includes
|
|
#include <QComboBox>
|
|
#include <QFontComboBox>
|
|
|
|
//==============================================================
|
|
|
|
// Forward declarations
|
|
|
|
class QLineEdit;
|
|
class QPushButton;
|
|
class QLabel;
|
|
class QGroupBox;
|
|
class QListWidget;
|
|
class QStackedWidget;
|
|
|
|
//==============================================================
|
|
|
|
//**********************************************************************************
|
|
// PreferencesPopup definition
|
|
//**********************************************************************************
|
|
typedef QPair<QString, QVariant> ComboBoxItem;
|
|
|
|
class SizeField final : public QWidget {
|
|
Q_OBJECT
|
|
DVGui::IntLineEdit *m_fieldX, *m_fieldY;
|
|
|
|
public:
|
|
SizeField(QSize min, QSize max, QSize value = QSize(),
|
|
QWidget* parent = nullptr);
|
|
QSize getValue() const;
|
|
void setValue(const QSize&);
|
|
signals:
|
|
void editingFinished();
|
|
};
|
|
|
|
class PreferencesPopup;
|
|
|
|
typedef void (PreferencesPopup::*OnEditedPopupFunc)();
|
|
|
|
class PreferencesPopup final : public QDialog {
|
|
Q_OBJECT
|
|
|
|
QMap<QWidget*, PreferencesItemId> m_controlIdMap;
|
|
QMap<PreferencesItemId, OnEditedPopupFunc> m_onEditedFuncMap;
|
|
QMap<PreferencesItemId, OnEditedPopupFunc> m_preEditedFuncMap;
|
|
|
|
public:
|
|
PreferencesPopup();
|
|
|
|
private:
|
|
class FormatProperties;
|
|
|
|
private:
|
|
Preferences* m_pref;
|
|
FormatProperties* m_formatProperties;
|
|
|
|
// DVGui::CheckBox *m_projectRootDocuments, *m_projectRootDesktop,
|
|
// *m_projectRootCustom;
|
|
QPushButton* m_editLevelFormat;
|
|
QComboBox* m_levelFormatNames;
|
|
|
|
QListWidget* m_categoryList;
|
|
QStackedWidget* m_stackedWidget;
|
|
|
|
// For importing preferences from a different installation
|
|
DVGui::FileField* m_importPrefpath;
|
|
QCheckBox* m_importPrefsCB;
|
|
QCheckBox* m_importFavoritesCB;
|
|
QCheckBox* m_importRoomsCB;
|
|
QCheckBox* m_importProjectsCB;
|
|
QCheckBox* m_importFxPluginsCB;
|
|
QCheckBox* m_importStudioPalettesCB;
|
|
QCheckBox* m_importLibraryCB;
|
|
QCheckBox* m_importToonzfarmCB;
|
|
|
|
private:
|
|
void rebuildFormatsList();
|
|
QList<ComboBoxItem> buildFontStyleList() const;
|
|
|
|
QWidget* createUI(
|
|
PreferencesItemId id,
|
|
const QList<ComboBoxItem>& comboItems = QList<ComboBoxItem>());
|
|
QGridLayout* insertGroupBoxUI(PreferencesItemId id, QGridLayout* layout);
|
|
void insertUI(PreferencesItemId id, QGridLayout* layout,
|
|
const QList<ComboBoxItem>& comboItems = QList<ComboBoxItem>());
|
|
void insertDualUIs(
|
|
PreferencesItemId leftId, PreferencesItemId rightId, QGridLayout* layout,
|
|
const QList<ComboBoxItem>& leftComboItems = QList<ComboBoxItem>(),
|
|
const QList<ComboBoxItem>& rightComboItems = QList<ComboBoxItem>());
|
|
void insertFootNote(QGridLayout* layout);
|
|
QString getUIString(PreferencesItemId id);
|
|
QList<ComboBoxItem> getComboItemList(PreferencesItemId id) const;
|
|
template <typename T>
|
|
inline T getUI(PreferencesItemId id);
|
|
|
|
QWidget* createGeneralPage();
|
|
QWidget* createInterfacePage();
|
|
QWidget* createVisualizationPage();
|
|
QWidget* createLoadingPage();
|
|
QWidget* createSavingPage();
|
|
QWidget* createImportExportPage();
|
|
QWidget* createDrawingPage();
|
|
QWidget* createToolsPage();
|
|
QWidget* createXsheetPage();
|
|
QWidget* createAnimationPage();
|
|
QWidget* createPreviewPage();
|
|
QWidget* createOnionSkinPage();
|
|
QWidget* createColorsPage();
|
|
QWidget* createVersionControlPage();
|
|
QWidget* createTouchTabletPage();
|
|
QWidget* createImportPrefsPage();
|
|
|
|
//--- callbacks ---
|
|
// General
|
|
void onAutoSaveChanged();
|
|
void onAutoSaveOptionsChanged();
|
|
void onWatchFileSystemClicked();
|
|
void onPathAliasPriorityChanged();
|
|
// Interface
|
|
void onStyleSheetTypeChanged();
|
|
// void onIconThemeChanged();
|
|
void onPixelsOnlyChanged();
|
|
void onUnitChanged();
|
|
void beforeRoomChoiceChanged();
|
|
void onColorCalibrationChanged();
|
|
// Drawing
|
|
void onDefLevelTypeChanged();
|
|
void onUseNumpadForSwitchingStylesClicked();
|
|
// Tools
|
|
void onLevelBasedToolsDisplayChanged();
|
|
// Xsheet
|
|
void onShowKeyframesOnCellAreaChanged();
|
|
void onShowQuickToolbarClicked();
|
|
// Animation
|
|
void onModifyExpressionOnMovingReferencesChanged();
|
|
// Preview
|
|
void onBlankCountChanged();
|
|
void onBlankColorChanged();
|
|
// Onion Skin
|
|
void onOnionSkinVisibilityChanged();
|
|
void onOnionColorChanged();
|
|
// Colors
|
|
void onTranspCheckDataChanged();
|
|
void onUseThemeViewerColorsChanged();
|
|
// Version Control
|
|
void onSVNEnabledChanged();
|
|
// Commonly used
|
|
void notifySceneChanged();
|
|
|
|
private slots:
|
|
void onChange();
|
|
void onColorFieldChanged(const TPixel32&, bool);
|
|
|
|
void onAutoSaveExternallyChanged();
|
|
void onAutoSavePeriodExternallyChanged();
|
|
// void onProjectRootChanged();
|
|
void onPixelUnitExternallySelected(bool on);
|
|
void onInterfaceFontChanged(const QString& text);
|
|
void onLutPathChanged();
|
|
|
|
void onAddLevelFormat();
|
|
void onRemoveLevelFormat();
|
|
void onEditLevelFormat();
|
|
void onLevelFormatEdited();
|
|
void onImportPolicyExternallyChanged(int policy);
|
|
void onImportPreferences();
|
|
void onImport();
|
|
};
|
|
|
|
//**********************************************************************************
|
|
// PreferencesPopup::FormatProperties definition
|
|
//**********************************************************************************
|
|
|
|
class PreferencesPopup::FormatProperties final : public DVGui::Dialog {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
FormatProperties(PreferencesPopup* parent);
|
|
|
|
void setLevelFormat(const Preferences::LevelFormat& lf);
|
|
Preferences::LevelFormat levelFormat() const;
|
|
|
|
private:
|
|
QComboBox* m_dpiPolicy;
|
|
|
|
DVGui::LineEdit *m_name, *m_regExp;
|
|
|
|
DVGui::DoubleLineEdit* m_dpi;
|
|
|
|
DVGui::IntLineEdit *m_priority, *m_subsampling, *m_antialias;
|
|
|
|
DVGui::CheckBox *m_premultiply, *m_whiteTransp, *m_doAntialias;
|
|
|
|
private slots:
|
|
|
|
void updateEnabledStatus();
|
|
};
|
|
|
|
#endif // PREFERENCESPOPUP_H
|