#ifndef CONDUCTORAUTONUMEROTATION_H #define CONDUCTORAUTONUMEROTATION_H #include #include "conductor.h" #include "diagram.h" class NumStrategy; class ConductorAutoNumerotation: public QObject { Q_OBJECT public: //constructors & destructor ConductorAutoNumerotation (); ConductorAutoNumerotation(Conductor *); ~ConductorAutoNumerotation(); //methods void setConductor(Conductor *); void numerate(); void removeNum_ofDiagram(Diagram *); public slots: void applyText(QString); protected: //methods void setNumStrategy (); //attributes Conductor *conductor_; Diagram *diagram_; QSet conductor_list; NumStrategy *strategy_; }; class NumStrategy: public QObject { Q_OBJECT public: NumStrategy (Conductor *); virtual ~NumStrategy (); virtual void createNumerotation() = 0; //cree la numerotation en fonction de la strategie utilisé protected: Conductor *conductor_; QSet c_list; Diagram *diagram_; }; bool eachIsEqual (const QStringList &); #endif // CONDUCTORAUTONUMEROTATION_H