HAL
hal::FileStatusManager Class Reference

Holds information about the state (e.g. saved/unsaved) of all laded files (i.e. .hal/.python files). More...

#include <file_status_manager.h>

Inheritance diagram for hal::FileStatusManager:
Inheritance graph
Collaboration diagram for hal::FileStatusManager:
Collaboration graph

Signals

void status_changed (bool gateLibrary, bool isDirty)
 

Public Member Functions

 FileStatusManager (QObject *parent=nullptr)
 
 ~FileStatusManager ()
 
bool modifiedFilesExisting () const
 
void fileChanged (const QUuid uuid, const QString &descriptor)
 
void fileSaved (const QUuid uuid)
 
void netlistChanged ()
 
void netlistSaved ()
 
void netlistClosed ()
 
void gatelibChanged ()
 
void gatelibSaved ()
 
bool isGatelibModified () const
 
QList< QStringgetUnsavedChangeDescriptors () const
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () const const
 
 QObject (QObject *parent)
 
virtual ~QObject ()
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
QString objectName () const const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
bool signalsBlocked () const const
 
bool blockSignals (bool block)
 
QThreadthread () const const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectListchildren () const const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const const
 
void dumpObjectInfo () const const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const const
 
QList< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 Q_CLASSINFO (Name, Value)
 
 Q_INTERFACES (...)
 
 Q_PROPERTY (...)
 
 Q_ENUMS (...)
 
 Q_FLAGS (...)
 
 Q_ENUM (...)
 
 Q_FLAG (...)
 
 Q_ENUM_NS (...)
 
 Q_FLAG_NS (...)
 
 Q_OBJECT Q_OBJECT
 
 Q_GADGET Q_GADGET
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SLOTS Q_SLOTS
 
 Q_SLOT Q_SLOT
 
 Q_EMIT Q_EMIT
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from QObject
QObjectsender () const const
 
int senderSignalIndex () const const
 
int receivers (const char *signal) const const
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Holds information about the state (e.g. saved/unsaved) of all laded files (i.e. .hal/.python files).

The FileStatusManager class is the central point to store the status of any file (or element) that can be modified, such as the modifications to the current netlist or (yet to be created /saved) python tabs / files.

Definition at line 45 of file file_status_manager.h.

Constructor & Destructor Documentation

◆ FileStatusManager()

hal::FileStatusManager::FileStatusManager ( QObject parent = nullptr)

The constructor.

Parameters
parent- The manager's parent.

Definition at line 8 of file file_status_manager.cpp.

◆ ~FileStatusManager()

hal::FileStatusManager::~FileStatusManager ( )

The destructor.

Definition at line 13 of file file_status_manager.cpp.

Member Function Documentation

◆ fileChanged()

void hal::FileStatusManager::fileChanged ( const QUuid  uuid,
const QString descriptor 
)

Registers a tuple consisting of an unique id (e.g. the id of a PythonCodeEditor that basically represents a file) and its description (e.g. the name of the file or tab).

Parameters
uuid- The unique id.
descriptor- The description of the file / object.

Definition at line 16 of file file_status_manager.cpp.

References QMap::insert(), QSet::insert(), modifiedFilesExisting(), QObject::Q_EMIT(), and status_changed().

Referenced by hal::PythonEditor::handleTabFileChanged(), and hal::PythonEditor::handleTextChanged().

◆ fileSaved()

void hal::FileStatusManager::fileSaved ( const QUuid  uuid)

Removes a registered element.

Parameters
uuid- The id of the element that is to be removed.

Definition at line 25 of file file_status_manager.cpp.

References modifiedFilesExisting(), QObject::Q_EMIT(), QMap::remove(), QSet::remove(), and status_changed().

Referenced by hal::PythonEditor::discardTab(), hal::PythonEditor::saveFile(), and hal::PythonEditor::tabLoadFile().

◆ gatelibChanged()

void hal::FileStatusManager::gatelibChanged ( )

Sets the gate-library-modified flag that can be queried by isGatelibModified() method.

Definition at line 66 of file file_status_manager.cpp.

References QObject::Q_EMIT(), and status_changed().

Referenced by hal::GateLibraryWizard::accept(), and hal::GateLibraryManager::handleDeleteType().

◆ gatelibSaved()

void hal::FileStatusManager::gatelibSaved ( )

◆ getUnsavedChangeDescriptors()

QList< QString > hal::FileStatusManager::getUnsavedChangeDescriptors ( ) const

Get a list of the descriptions of all modified files that are registered to this manager. Appends "Netlist modifications" to the list if the netlist-modified flag is set.

Returns
The list of the descriptions.

Definition at line 83 of file file_status_manager.cpp.

References QList::append(), and QMap::value().

◆ isGatelibModified()

◆ modifiedFilesExisting()

bool hal::FileStatusManager::modifiedFilesExisting ( ) const

Checks if either the netlist is modified (in the case a netlist is opened) or any files are registered to this manager.

Returns
True if registered files are present. False otherwise.

Definition at line 34 of file file_status_manager.cpp.

References QSet::empty(), and hal::FileManager::get_instance().

Referenced by fileChanged(), fileSaved(), netlistChanged(), netlistSaved(), and hal::FileActions::setup().

◆ netlistChanged()

void hal::FileStatusManager::netlistChanged ( )

Sets the netlist-modified flag that affects the modifiedFilesExisting() method.

Definition at line 42 of file file_status_manager.cpp.

References modifiedFilesExisting(), QObject::Q_EMIT(), and status_changed().

Referenced by hal::UserAction::exec(), hal::FileManager::importFile(), and hal::FileManager::newProject().

◆ netlistClosed()

void hal::FileStatusManager::netlistClosed ( )

Resets the netlist-modified flag that affects the modifiedFilesExisting() method.

Definition at line 58 of file file_status_manager.cpp.

References QMap::clear(), QSet::clear(), QObject::Q_EMIT(), and status_changed().

◆ netlistSaved()

void hal::FileStatusManager::netlistSaved ( )

Unsets the netlist-modified flag that affects the modifiedFilesExisting() method.

Definition at line 50 of file file_status_manager.cpp.

References modifiedFilesExisting(), QObject::Q_EMIT(), and status_changed().

Referenced by hal::FileManager::importFile(), and hal::FileManager::newProject().

◆ status_changed

void hal::FileStatusManager::status_changed ( bool  gateLibrary,
bool  isDirty 
)
signal

The documentation for this class was generated from the following files: