1 #pragma once 2 3 #ifndef TSCENEHANDLE_H 4 #define TSCENEHANDLE_H 5 6 #include <QObject> 7 8 #include "tcommon.h" 9 10 #undef DVAPI 11 #undef DVVAR 12 #ifdef TOONZLIB_EXPORTS 13 #define DVAPI DV_EXPORT_API 14 #define DVVAR DV_EXPORT_VAR 15 #else 16 #define DVAPI DV_IMPORT_API 17 #define DVVAR DV_IMPORT_VAR 18 #endif 19 20 // forward declaration 21 class ToonzScene; 22 class TFilePath; 23 24 //============================================================================= 25 // TSceneHandle 26 //----------------------------------------------------------------------------- 27 28 class DVAPI TSceneHandle final : public QObject { 29 Q_OBJECT 30 31 ToonzScene *m_scene; 32 bool m_dirtyFlag; 33 34 public: 35 TSceneHandle(); 36 ~TSceneHandle(); 37 38 ToonzScene *getScene() const; 39 40 void setScene(ToonzScene *scene); 41 void notifySceneChanged(bool setDirty = true) { 42 emit sceneChanged(); 43 if (setDirty) setDirtyFlag(true); 44 } notifySceneSwitched()45 void notifySceneSwitched() { 46 emit sceneSwitched(); 47 setDirtyFlag(false); 48 } notifyCastChange()49 void notifyCastChange() { emit castChanged(); } notifyCastFolderAdded(const TFilePath & path)50 void notifyCastFolderAdded(const TFilePath &path) { 51 emit castFolderAdded(path); 52 } notifyNameSceneChange()53 void notifyNameSceneChange() { emit nameSceneChanged(); } 54 notifyPreferenceChanged(const QString & prefName)55 void notifyPreferenceChanged(const QString &prefName) { 56 emit preferenceChanged(prefName); 57 } 58 notifyPixelUnitSelected(bool on)59 void notifyPixelUnitSelected(bool on) { emit pixelUnitSelected(on); } notifyImportPolicyChanged(int policy)60 void notifyImportPolicyChanged(int policy) { 61 emit importPolicyChanged(policy); 62 } 63 setDirtyFlag(bool dirtyFlag)64 void setDirtyFlag(bool dirtyFlag) { 65 if (m_dirtyFlag == dirtyFlag) return; 66 m_dirtyFlag = dirtyFlag; 67 emit nameSceneChanged(); 68 } getDirtyFlag()69 bool getDirtyFlag() const { return m_dirtyFlag; } 70 71 public slots: setDirtyFlag()72 void setDirtyFlag() { 73 if (m_dirtyFlag == true) return; 74 m_dirtyFlag = true; 75 emit nameSceneChanged(); 76 } 77 78 signals: 79 void sceneSwitched(); 80 void sceneChanged(); 81 void castChanged(); 82 void castFolderAdded(const TFilePath &path); 83 void nameSceneChanged(); 84 void preferenceChanged(const QString &prefName); 85 void pixelUnitSelected(bool on); 86 void importPolicyChanged(int policy); 87 }; 88 89 #endif // TSCENEHANDLE_H 90