#pragma once #ifndef EXPRESSIONREFERENCEMONITOR_H #define EXPRESSIONREFERENCEMONITOR_H #undef DVAPI #undef DVVAR #ifdef TOONZLIB_EXPORTS #define DVAPI DV_EXPORT_API #define DVVAR DV_EXPORT_VAR #else #define DVAPI DV_IMPORT_API #define DVVAR DV_IMPORT_VAR #endif #include #include #include class TDoubleParam; class DVAPI ExpressionReferenceMonitorInfo { // name of the parameter QString m_name = ""; // true if the parameter is not monitored bool m_ignored = false; // column indices to which the parameter refers. // note that the columns referred by the "cell" syntax will be // registered in this container, but not in the paramRefMap. QSet m_colRefMap; // parameters to which the parameter refers QSet m_paramRefMap; public: QString& name() { return m_name; } bool& ignored() { return m_ignored; } QSet& colRefMap() { return m_colRefMap; } QSet& paramRefMap() { return m_paramRefMap; } }; class DVAPI ExpressionReferenceMonitor { QMap m_info; public: ExpressionReferenceMonitor() {} QMap& info() { return m_info; } void clearAll() { m_info.clear(); } ExpressionReferenceMonitor* clone() { ExpressionReferenceMonitor* ret = new ExpressionReferenceMonitor(); ret->info() = m_info; return ret; } }; #endif