Les modifications de conducteur sont desormais annulables

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@140 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2007-09-27 17:42:02 +00:00
parent 27e8ced638
commit 2c184a46da
6 changed files with 129 additions and 12 deletions

View File

@@ -14,11 +14,40 @@ ConducerProfile::ConducerProfile(Conducer *conducer) {
fromConducer(conducer);
}
/**
Constructeur de copie
@param c autre conducteur
*/
ConducerProfile::ConducerProfile(const ConducerProfile &c) {
beginOrientation = c.beginOrientation;
endOrientation = c.endOrientation;
foreach(ConducerSegmentProfile *csp, c.segments) {
segments << new ConducerSegmentProfile(*csp);
}
}
/**
Operateur =
@param c autre conducteur
*/
ConducerProfile &ConducerProfile::operator=(const ConducerProfile &c) {
if (&c == this) return(*this);
// supprime ses informations
setNull();
// copie les informations de l'autre profil de conducteur
beginOrientation = c.beginOrientation;
endOrientation = c.endOrientation;
foreach(ConducerSegmentProfile *csp, c.segments) {
segments << new ConducerSegmentProfile(*csp);
}
return(*this);
}
/// destructeur
ConducerProfile::~ConducerProfile() {
foreach(ConducerSegmentProfile * s, segments) {
delete s;
}
setNull();
}
/// @return true si le profil est nul
@@ -26,6 +55,12 @@ bool ConducerProfile::isNull() const {
return(segments.isEmpty());
}
/// supprime les segments du profil de conducteur
void ConducerProfile::setNull() {
foreach(ConducerSegmentProfile *csp, segments) delete csp;
segments.clear();
}
/// @return la largeur occupee par le conducteur
qreal ConducerProfile::width() const {
qreal width = 0.0;
@@ -78,8 +113,7 @@ QList<ConducerSegmentProfile *> ConducerProfile::verticalSegments() {
void ConducerProfile::fromConducer(Conducer *conducer) {
// supprime les segments precedents
foreach(ConducerSegmentProfile *csp, segments) delete csp;
segments.clear();
setNull();
foreach(ConducerSegment *conducer_segment, conducer -> segmentsList()) {
segments << new ConducerSegmentProfile(conducer_segment);