#include <project.h>

Inheritance diagram for dnai::Project:
Inheritance graph
Collaboration diagram for dnai::Project:
Collaboration graph

Public Slots

void removeEntity (dnai::models::Entity *entity)
 
void addEntity (dnai::models::Entity *entity)
 

Signals

void selectedEntityChanged (models::Entity *entity)
 
void entityAdded (models::Entity *entity)
 
void entityRemoved (models::Entity *entity)
 
void savedChanged (bool saveState)
 

Public Member Functions

 Project ()
 
 Project (const QString &filename)
 
 ~Project ()
 
const QJsonObject & jsonData () const override
 
void serialize (QJsonObject &obj) const override
 Implement this function to serialize into QJsonObject. More...
 
void _deserialize (const QJsonObject &obj) override
 Implement this function in order to use deserialize(const QJsonObject &obj) More...
 
models::EntityselectedEntity () const
 
void setSelectedEntity (models::Entity *entity)
 
void setSaved (bool)
 
Q_INVOKABLE void save () override
 
bool saved () const
 
void load (const QString &path) override
 
void loadFromJson (const QJsonObject &obj)
 
void close () override
 
const QString & version () const override
 
void setVersion (const QString &version) override
 
const QString & name () const override
 
void setName (const QString &name) override
 
const QString & description () const override
 
void setDescription (const QString &name) override
 
const QString & fileName () const override
 
void setFileName (const QString &name) override
 
void foreachEntity (const std::function< void(models::Entity *)> &func) const
 
int childCount () const
 
models::EntitygetRoot () const
 
models::ml::MlProjectmlData ()
 
models::ml::MlProjectMlData ()
 
Q_INVOKABLE int expandedRows (const QModelIndex &parent) const
 Project::expandedRows Count the number of children to display in treeview. More...
 
Q_INVOKABLE int expandedRows () const
 Project::expandedRows Count the expanded rows of the entire project in the tree view. More...
 
Q_INVOKABLE void addEntityColumnUid (quint32 parentId, QString const &name, QString const &listIndex)
 
Q_INVOKABLE QString generateUniqueChildName (dnai::models::Entity *parent) const
 
template<>
void _foreachEntity (models::Entity *root, const std::function< void(models::Entity *)> &func) const
 
- Public Member Functions inherited from dnai::models::EntityTree
 EntityTree (QObject *parent=nullptr)
 
QModelIndex index (int row, int column, const QModelIndex &parent) const override
 
QModelIndex parent (const QModelIndex &child) const override
 
int rowCount (const QModelIndex &parent) const override
 
int columnCount (const QModelIndex &parent) const override
 
QVariant data (const QModelIndex &index, int role) const override
 
Q_INVOKABLE int getRoleKey (QString rolename) const
 
- Public Member Functions inherited from dnai::interfaces::ASerializable< Project >
virtual ~ASerializable ()=default
 
QJsonArray serializeList (const QList< DataType * > &datalist) const
 
- Public Member Functions inherited from dnai::interfaces::IProject
virtual ~IProject ()=default
 
- Public Member Functions inherited from dnai::interfaces::ISavable
virtual ~ISavable ()=default
 

Properties

dnai::models::Entity selectedEntity
 
int childCount
 
bool saved
 
dnai::models::ml::MlProject mlData
 

Private Member Functions

QModelIndex getIndexOf (models::Entity *e) const
 
models::ColumngetColumnOf (models::Entity *e)
 
template<class T >
_foreachEntity (models::Entity *root, const std::function< T(models::Entity *)> &func) const
 
template<>
int _foreachEntity (models::Entity *root, const std::function< int(models::Entity *)> &func) const
 

Private Attributes

QFile * m_file
 
Count count
 
models::Entitym_selectedEntity {}
 
QString m_filename
 
QString m_description
 
QJsonObject m_data
 
QString m_version
 
models::Entitym_rootEntity
 
QMap< QString, QString > m_entityColumnUid
 
models::ml::MlProject m_mlData
 
bool m_save = true
 

Additional Inherited Members

- Public Types inherited from dnai::models::EntityTree
enum  ROLES {
  ID = Qt::UserRole + 1, TYPE, CONTAINER_ID, NAME,
  VISIBILITY, INDEX, LISTINDEX, DESCRIPTION,
  CORE_MODEL, GUI_MODEL, MODEL, EXPANDED,
  LIST_COLUMN
}
 
- Static Public Member Functions inherited from dnai::interfaces::ASerializable< Project >
static Projectdeserialize (const QJsonObject &obj, Args &...args)
 This function deserialize into a new instance of type T *. More...
 
- Protected Member Functions inherited from dnai::models::EntityTree
EntitygetItem (const QModelIndex &index) const
 
virtual QHash< int, QByteArray > roleNames () const override
 
- Protected Attributes inherited from dnai::models::EntityTree
Entitym_rootItem
 

Constructor & Destructor Documentation

dnai::Project::Project ( )
dnai::Project::Project ( const QString &  filename)
dnai::Project::~Project ( )

Member Function Documentation

void dnai::Project::_deserialize ( const QJsonObject &  obj)
overridevirtual

Implement this function in order to use deserialize(const QJsonObject &obj)

Parameters
obj

Implements dnai::interfaces::ASerializable< Project >.

template<class T >
T dnai::Project::_foreachEntity ( models::Entity root,
const std::function< T(models::Entity *)> &  func 
) const
private
template<>
void dnai::Project::_foreachEntity ( models::Entity root,
const std::function< void(models::Entity *)> &  func 
) const
inline
template<>
int dnai::Project::_foreachEntity ( models::Entity root,
const std::function< int(models::Entity *)> &  func 
) const
private
void dnai::Project::addEntity ( dnai::models::Entity entity)
slot
void dnai::Project::addEntityColumnUid ( quint32  parentId,
QString const &  name,
QString const &  listIndex 
)
int dnai::Project::childCount ( ) const
void dnai::Project::close ( )
overridevirtual
const QString & dnai::Project::description ( ) const
overridevirtual
void dnai::Project::entityAdded ( models::Entity entity)
signal
void dnai::Project::entityRemoved ( models::Entity entity)
signal
int dnai::Project::expandedRows ( const QModelIndex &  parent) const

Project::expandedRows Count the number of children to display in treeview.

It do a breadth-first order traversal from the given node in each expanded children but stops depth research at first children collapsed

Parameters
parentThe item that is expanded/collapse
Returns
Number of child to display
int dnai::Project::expandedRows ( ) const

Project::expandedRows Count the expanded rows of the entire project in the tree view.

Returns
Count of expanded rows from root
const QString & dnai::Project::fileName ( ) const
overridevirtual
void dnai::Project::foreachEntity ( const std::function< void(models::Entity *)> &  func) const
QString dnai::Project::generateUniqueChildName ( dnai::models::Entity parent) const
dnai::models::Column * dnai::Project::getColumnOf ( models::Entity e)
private
QModelIndex dnai::Project::getIndexOf ( models::Entity e) const
private
models::Entity & dnai::Project::getRoot ( ) const
const QJsonObject & dnai::Project::jsonData ( ) const
overridevirtual
void dnai::Project::load ( const QString &  path)
overridevirtual
void dnai::Project::loadFromJson ( const QJsonObject &  obj)
models::ml::MlProject* dnai::Project::mlData ( )
models::ml::MlProject & dnai::Project::MlData ( )
const QString & dnai::Project::name ( ) const
overridevirtual
void dnai::Project::removeEntity ( dnai::models::Entity entity)
slot
void dnai::Project::save ( )
overridevirtual
bool dnai::Project::saved ( ) const
void dnai::Project::savedChanged ( bool  saveState)
signal
models::Entity* dnai::Project::selectedEntity ( ) const
void dnai::Project::selectedEntityChanged ( models::Entity entity)
signal
void dnai::Project::serialize ( QJsonObject &  obj) const
overridevirtual

Implement this function to serialize into QJsonObject.

Parameters
obj

Implements dnai::interfaces::ASerializable< Project >.

void dnai::Project::setDescription ( const QString &  name)
overridevirtual
void dnai::Project::setFileName ( const QString &  name)
overridevirtual
void dnai::Project::setName ( const QString &  name)
overridevirtual
void dnai::Project::setSaved ( bool  save)
void dnai::Project::setSelectedEntity ( models::Entity entity)
void dnai::Project::setVersion ( const QString &  version)
overridevirtual
const QString & dnai::Project::version ( ) const
overridevirtual

Member Data Documentation

Count dnai::Project::count
private
QJsonObject dnai::Project::m_data
private
QString dnai::Project::m_description
private
QMap<QString, QString> dnai::Project::m_entityColumnUid
private
QFile* dnai::Project::m_file
private
QString dnai::Project::m_filename
private
models::ml::MlProject dnai::Project::m_mlData
private
models::Entity* dnai::Project::m_rootEntity
private
bool dnai::Project::m_save = true
private
models::Entity* dnai::Project::m_selectedEntity {}
private
QString dnai::Project::m_version
private

Property Documentation

int dnai::Project::childCount
read
models::ml::MlProject * dnai::Project::mlData
read
bool dnai::Project::saved
readwrite
models::Entity * dnai::Project::selectedEntity
readwrite

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