Project dirty state manager -> plater dirty state

This commit is contained in:
enricoturri1966 2021-04-07 12:58:14 +02:00
parent edbb1d0f69
commit 926ecd0585
5 changed files with 149 additions and 26 deletions

View file

@ -17,15 +17,29 @@ class ProjectDirtyStateManager
{
bool plater{ false };
bool presets{ false };
bool current_gizmo{ false };
bool is_dirty() const { return plater || presets; }
bool is_dirty() const { return plater || presets || current_gizmo; }
void reset() {
plater = false;
presets = false;
current_gizmo = false;
}
};
struct Timestamps
{
size_t main{ 0 };
size_t gizmo{ 0 };
void reset() {
main = 0;
gizmo = 0;
}
};
DirtyState m_state;
Timestamps m_last_save;
// keeps track of initial selected presets
std::array<std::string, Preset::TYPE_COUNT> m_initial_presets;
@ -39,6 +53,10 @@ public:
#if ENABLE_PROJECT_DIRTY_STATE_DEBUG_WINDOW
void render_debug_window() const;
#endif // ENABLE_PROJECT_DIRTY_STATE_DEBUG_WINDOW
private:
void update_from_undo_redo_main_stack(const Slic3r::UndoRedo::Stack& stack);
void update_from_undo_redo_gizmo_stack(const Slic3r::UndoRedo::Stack& stack);
};
} // namespace GUI