mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-20 16:20:52 +01:00
Ajout d'une classe DiagramContent pour eviter de passer plusieurs listes en parametre lorsqu'on veut transmettre tout ou partie du contenu du schema.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@208 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
91
diagramcontent.cpp
Normal file
91
diagramcontent.cpp
Normal file
@@ -0,0 +1,91 @@
|
||||
#include "diagramcontent.h"
|
||||
#include <QGraphicsItem>
|
||||
#include "element.h"
|
||||
#include "diagramtextitem.h"
|
||||
#include "conductor.h"
|
||||
|
||||
/**
|
||||
Constructeur par defaut. Ne contient rien.
|
||||
*/
|
||||
DiagramContent::DiagramContent() {
|
||||
}
|
||||
|
||||
/**
|
||||
Constructeur de copie.
|
||||
*/
|
||||
DiagramContent::DiagramContent(const DiagramContent &other) :
|
||||
elements(other.elements),
|
||||
textFields(other.textFields),
|
||||
conductorsToUpdate(other.conductorsToUpdate),
|
||||
conductorsToMove(other.conductorsToMove)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
*/
|
||||
DiagramContent::~DiagramContent() {
|
||||
}
|
||||
|
||||
/**
|
||||
@return tous les conducteurs
|
||||
*/
|
||||
QList<Conductor *> DiagramContent::conductors() const {
|
||||
return(conductorsToMove + conductorsToUpdate.keys());
|
||||
}
|
||||
|
||||
/**
|
||||
Vide le conteneur
|
||||
*/
|
||||
void DiagramContent::clear() {
|
||||
elements.clear();
|
||||
textFields.clear();
|
||||
conductorsToUpdate.clear();
|
||||
conductorsToMove.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
@return la liste des items formant le contenu du schema
|
||||
*/
|
||||
QList<QGraphicsItem *> DiagramContent::items() const {
|
||||
QList<QGraphicsItem *> items_list;
|
||||
foreach(QGraphicsItem *qgi, conductors()) items_list << qgi;
|
||||
foreach(QGraphicsItem *qgi, elements) items_list << qgi;
|
||||
foreach(QGraphicsItem *qgi, textFields) items_list << qgi;
|
||||
return(items_list);
|
||||
}
|
||||
|
||||
/**
|
||||
@param include_updated_conductors true pour compter les conducteurs mis a jour, false sinon
|
||||
@return le nombre d'items formant le contenu du schema
|
||||
*/
|
||||
int DiagramContent::count(bool include_updated_conductors) const {
|
||||
int conductors_count = conductorsToMove.count();
|
||||
if (include_updated_conductors) conductors_count += conductorsToUpdate.count();
|
||||
|
||||
return(
|
||||
elements.count()
|
||||
+ textFields.count()
|
||||
+ conductors_count
|
||||
+ conductorsToUpdate.count()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
Permet de composer rapidement la proposition "x elements, y conducteurs et
|
||||
z champs de texte".
|
||||
@param include_updated_conductors true pour compter les conducteurs mis a jour, false sinon
|
||||
@return la proposition decrivant le contenu.
|
||||
*/
|
||||
QString DiagramContent::sentence(bool include_updated_conductors) const {
|
||||
int conductors_count = conductorsToMove.count();
|
||||
if (include_updated_conductors) conductors_count += conductorsToUpdate.count();
|
||||
|
||||
return(
|
||||
QET::ElementsAndConductorsSentence(
|
||||
elements.count(),
|
||||
conductors_count,
|
||||
textFields.count()
|
||||
)
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user