#include "dirtystatemanager.h" #include DirtyStateManager& DirtyStateManager::instance() { static DirtyStateManager instance; return instance; } void DirtyStateManager::markDirty(QWidget* tab) { if (!tab) return; if (!m_dirtyTabs.contains(tab)) { m_dirtyTabs.insert(tab); emit dirtyStateChanged(tab, true); } } void DirtyStateManager::markClean(QWidget* tab) { if (!tab) return; if (m_dirtyTabs.contains(tab)) { m_dirtyTabs.remove(tab); emit dirtyStateChanged(tab, false); } } bool DirtyStateManager::isDirty(QWidget* tab) const { return m_dirtyTabs.contains(tab); } QList DirtyStateManager::dirtyTabs() const { return m_dirtyTabs.values(); } bool DirtyStateManager::hasDirtyTabs() const { return !m_dirtyTabs.isEmpty(); } void DirtyStateManager::setFilePath(QWidget* tab, const QString& path) { if (tab) { m_filePaths[tab] = path; } } QString DirtyStateManager::filePath(QWidget* tab) const { return m_filePaths.value(tab); } void DirtyStateManager::removeTab(QWidget* tab) { if (!tab) return; m_dirtyTabs.remove(tab); m_filePaths.remove(tab); }