Ajout de documentation

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@235 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2007-12-16 13:21:28 +00:00
parent b58489fdf3
commit fe19644ec7
20 changed files with 172 additions and 2 deletions

View File

@@ -50,6 +50,10 @@ class Conductor : public QGraphicsPathItem {
// methodes // methodes
public: public:
/**
permet de caster un QGraphicsItem en Conductor avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
void destroy(); void destroy();
/// @return true si ce conducteur est detruit /// @return true si ce conducteur est detruit

View File

@@ -28,10 +28,18 @@
class ConfigPage : public QWidget { class ConfigPage : public QWidget {
Q_OBJECT Q_OBJECT
public: public:
/**
Constructeur
@param parent QWidget parent
*/
ConfigPage(QWidget *parent) : QWidget(parent) {}; ConfigPage(QWidget *parent) : QWidget(parent) {};
/// Destructeur
virtual ~ConfigPage() {}; virtual ~ConfigPage() {};
/// Applique la configuration saisie par l'utilisateur dans la page de configuration
virtual void applyConf() = 0; virtual void applyConf() = 0;
/// @return le titre de la page de configuration
virtual QString title() const = 0; virtual QString title() const = 0;
/// @return l'icone de la page de configuration
virtual QIcon icon() const = 0; virtual QIcon icon() const = 0;
}; };

View File

@@ -104,6 +104,10 @@ QDomElement DiagramTextItem::toXml(QDomDocument &document) const {
return(result); return(result);
} }
/**
Gere les double-clics sur ce champ de texte.
@param event un QGraphicsSceneMouseEvent decrivant le double-clic
*/
void DiagramTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) { void DiagramTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {
if (flags() & QGraphicsItem::ItemIsMovable && !(textInteractionFlags() & Qt::TextEditable)) { if (flags() & QGraphicsItem::ItemIsMovable && !(textInteractionFlags() & Qt::TextEditable)) {
// rend le champ de texte editable // rend le champ de texte editable

View File

@@ -858,6 +858,10 @@ bool DiagramView::event(QEvent *e) {
return(QGraphicsView::event(e)); return(QGraphicsView::event(e));
} }
/**
Passe le DiagramView en mode "ajout de texte". Un clic cree alors un
nouveau champ de texte.
*/
void DiagramView::addText() { void DiagramView::addText() {
is_adding_text = true; is_adding_text = true;
} }

View File

@@ -59,6 +59,7 @@ class DiagramView : public QGraphicsView {
void removeColumn(); void removeColumn();
void expand(); void expand();
void shrink(); void shrink();
/// @return Le schema visualise par ce DiagramView
Diagram *diagram() { return(scene); } Diagram *diagram() { return(scene); }
QETDiagramEditor *diagramEditor() const; QETDiagramEditor *diagramEditor() const;
bool hasSelectedItems(); bool hasSelectedItems();

View File

@@ -36,6 +36,10 @@ class CustomElementGraphicPart : public CustomElementPart {
// constructeurs, destructeur // constructeurs, destructeur
public: public:
/**
Constructeur
@param editor Editeur d'element auquel cette partie est rattachee
*/
CustomElementGraphicPart(QETElementEditor *editor) : CustomElementGraphicPart(QETElementEditor *editor) :
CustomElementPart(editor), CustomElementPart(editor),
_linestyle(NormalStyle), _linestyle(NormalStyle),
@@ -47,6 +51,7 @@ class CustomElementGraphicPart : public CustomElementPart {
style_editor = new StyleEditor(elementEditor(), this); style_editor = new StyleEditor(elementEditor(), this);
}; };
/// Destructeur
virtual ~CustomElementGraphicPart() { virtual ~CustomElementGraphicPart() {
delete style_editor; delete style_editor;
}; };

View File

@@ -34,7 +34,12 @@ class ElementScene;
class CustomElementPart { class CustomElementPart {
// constructeurs, destructeur // constructeurs, destructeur
public: public:
/**
Constructeur
@param editor Editeur d'element auquel cette partie est rattachee
*/
CustomElementPart(QETElementEditor *editor) : element_editor(editor) {} CustomElementPart(QETElementEditor *editor) : element_editor(editor) {}
/// Destructeur
virtual ~CustomElementPart() {} virtual ~CustomElementPart() {}
private: private:
@@ -46,15 +51,37 @@ class CustomElementPart {
// methodes // methodes
public: public:
/**
Charge la partie depuis un element XML sense le decrire
*/
virtual void fromXml(const QDomElement &) = 0; virtual void fromXml(const QDomElement &) = 0;
/**
Enregistre la partie dans un document XML
*/
virtual const QDomElement toXml(QDomDocument &) const = 0; virtual const QDomElement toXml(QDomDocument &) const = 0;
/// @return un widget suppose decrire et/ou permettre de modifier la partie
virtual QWidget *elementInformations() = 0; virtual QWidget *elementInformations() = 0;
/**
Permet de modifier une des proprietes de la partie
*/
virtual void setProperty(const QString &, const QVariant &) = 0; virtual void setProperty(const QString &, const QVariant &) = 0;
/**
Permet de lire une des proprietes de la partie
*/
virtual QVariant property(const QString &) = 0; virtual QVariant property(const QString &) = 0;
/**
@return true si la partie n'est pas pertinente, false sinon
Typiquement, une partie non pertinente n'est pas conservee lors de
l'enregistrement de l'element.
*/
virtual bool isUseless() const = 0; virtual bool isUseless() const = 0;
/// @return un pointeur vers l'editeur d'element parent
virtual QETElementEditor *elementEditor() const; virtual QETElementEditor *elementEditor() const;
/// @return un pointeur vers la scene d'edition parente
virtual ElementScene *elementScene() const; virtual ElementScene *elementScene() const;
/// @return la pile d'annulations a utiliser
virtual QUndoStack &undoStack() const; virtual QUndoStack &undoStack() const;
/// @return le nom de la partie
virtual QString name() const = 0; virtual QString name() const = 0;
}; };
#endif #endif

View File

@@ -42,6 +42,10 @@ class PartArc : public QGraphicsEllipseItem, public CustomElementGraphicPart {
// methodes // methodes
public: public:
enum { Type = UserType + 1101 }; enum { Type = UserType + 1101 };
/**
permet de caster un QGraphicsItem en PartArc avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0); virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0);
virtual QString name() const { return(QObject::tr("arc")); } virtual QString name() const { return(QObject::tr("arc")); }

View File

@@ -40,6 +40,10 @@ class PartCircle : public QGraphicsEllipseItem, public CustomElementGraphicPart
// methodes // methodes
public: public:
enum { Type = UserType + 1102 }; enum { Type = UserType + 1102 };
/**
permet de caster un QGraphicsItem en PartCircle avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0); virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0);
virtual QString name() const { return(QObject::tr("cercle")); } virtual QString name() const { return(QObject::tr("cercle")); }

View File

@@ -40,6 +40,10 @@ class PartEllipse : public QGraphicsEllipseItem, public CustomElementGraphicPart
// methodes // methodes
public: public:
enum { Type = UserType + 1103 }; enum { Type = UserType + 1103 };
/**
permet de caster un QGraphicsItem en PartEllipse avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0); virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0);
virtual QString name() const { return(QObject::tr("ellipse")); } virtual QString name() const { return(QObject::tr("ellipse")); }

View File

@@ -40,6 +40,10 @@ class PartLine : public QGraphicsLineItem, public CustomElementGraphicPart {
// methodes // methodes
public: public:
enum { Type = UserType + 1104 }; enum { Type = UserType + 1104 };
/**
permet de caster un QGraphicsItem en PartLine avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0); virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0);
virtual QString name() const { return(QObject::tr("ligne")); } virtual QString name() const { return(QObject::tr("ligne")); }

View File

@@ -53,6 +53,10 @@ class PartPolygon : public QGraphicsPolygonItem, public CustomElementGraphicPart
// methodes // methodes
public: public:
enum { Type = UserType + 1105 }; enum { Type = UserType + 1105 };
/**
permet de caster un QGraphicsItem en PartPolygon avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
virtual QString name() const { return(QObject::tr("polygone")); } virtual QString name() const { return(QObject::tr("polygone")); }
void fromXml(const QDomElement &); void fromXml(const QDomElement &);

View File

@@ -43,6 +43,10 @@ class PartTerminal : public CustomElementPart, public QGraphicsItem {
// methodes // methodes
public: public:
enum { Type = UserType + 1106 }; enum { Type = UserType + 1106 };
/**
permet de caster un QGraphicsItem en PartTerminal avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
virtual QString name() const { return(QObject::tr("borne")); } virtual QString name() const { return(QObject::tr("borne")); }
virtual void fromXml(const QDomElement &); virtual void fromXml(const QDomElement &);

View File

@@ -39,6 +39,10 @@ class PartText : public QGraphicsTextItem, public CustomElementPart {
// methodes // methodes
public: public:
enum { Type = UserType + 1107 }; enum { Type = UserType + 1107 };
/**
permet de caster un QGraphicsItem en PartText avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
virtual QString name() const { return(QObject::tr("texte")); } virtual QString name() const { return(QObject::tr("texte")); }
void fromXml(const QDomElement &); void fromXml(const QDomElement &);

View File

@@ -43,6 +43,10 @@ class PartTextField : public QGraphicsTextItem, public CustomElementPart {
// methodes // methodes
public: public:
enum { Type = UserType + 1108 }; enum { Type = UserType + 1108 };
/**
permet de caster un QGraphicsItem en PartTextField avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
virtual QString name() const { return(QObject::tr("champ de texte")); } virtual QString name() const { return(QObject::tr("champ de texte")); }
void fromXml(const QDomElement &); void fromXml(const QDomElement &);

View File

@@ -23,6 +23,10 @@
#include "newelementwizard.h" #include "newelementwizard.h"
#include "elementitemeditor.h" #include "elementitemeditor.h"
/**
Constructeur
@param parent QWidget parent
*/
QETElementEditor::QETElementEditor(QWidget *parent) : QETElementEditor::QETElementEditor(QWidget *parent) :
QMainWindow(parent), QMainWindow(parent),
read_only(false), read_only(false),
@@ -47,9 +51,13 @@ QETElementEditor::QETElementEditor(QWidget *parent) :
show(); show();
} }
/// Destructeur
QETElementEditor::~QETElementEditor() { QETElementEditor::~QETElementEditor() {
} }
/**
Met en place les actions
*/
void QETElementEditor::setupActions() { void QETElementEditor::setupActions() {
new_element = new QAction(QIcon(":/ico/new.png"), tr("&Nouveau"), this); new_element = new QAction(QIcon(":/ico/new.png"), tr("&Nouveau"), this);
open = new QAction(QIcon(":/ico/open.png"), tr("&Ouvrir"), this); open = new QAction(QIcon(":/ico/open.png"), tr("&Ouvrir"), this);
@@ -184,6 +192,9 @@ void QETElementEditor::setupActions() {
connect(&(ce_scene -> undoStack()), SIGNAL(cleanChanged(bool)), this, SLOT(slot_updateTitle())); connect(&(ce_scene -> undoStack()), SIGNAL(cleanChanged(bool)), this, SLOT(slot_updateTitle()));
} }
/**
Met en place les menus.
*/
void QETElementEditor::setupMenus() { void QETElementEditor::setupMenus() {
file_menu = new QMenu(tr("Fichier"), this); file_menu = new QMenu(tr("Fichier"), this);
edit_menu = new QMenu(tr("\311dition"), this); edit_menu = new QMenu(tr("\311dition"), this);
@@ -240,6 +251,9 @@ void QETElementEditor::setupMenus() {
*/ */
} }
/**
Met a jour les menus
*/
void QETElementEditor::slot_updateMenus() { void QETElementEditor::slot_updateMenus() {
bool selected_items = !ce_scene -> selectedItems().isEmpty(); bool selected_items = !ce_scene -> selectedItems().isEmpty();
edit_delete -> setEnabled(selected_items); edit_delete -> setEnabled(selected_items);
@@ -250,6 +264,9 @@ void QETElementEditor::slot_updateMenus() {
save -> setEnabled(!ce_scene -> undoStack().isClean()); save -> setEnabled(!ce_scene -> undoStack().isClean());
} }
/**
Met a jour le titre de la fenetre
*/
void QETElementEditor::slot_updateTitle() { void QETElementEditor::slot_updateTitle() {
QString title = min_title; QString title = min_title;
title += " - " + ce_scene -> names().name() + " "; title += " - " + ce_scene -> names().name() + " ";
@@ -260,6 +277,9 @@ void QETElementEditor::slot_updateTitle() {
setWindowTitle(title); setWindowTitle(title);
} }
/**
Met en place l'interface
*/
void QETElementEditor::setupInterface() { void QETElementEditor::setupInterface() {
// editeur // editeur
ce_scene = new ElementScene(this, this); ce_scene = new ElementScene(this, this);
@@ -316,20 +336,36 @@ void QETElementEditor::setupInterface() {
statusBar() -> showMessage(tr("\311diteur d'\351l\351ments")); statusBar() -> showMessage(tr("\311diteur d'\351l\351ments"));
} }
/**
Passe l'editeur d'element en mode selection : le pointeur deplace les
elements selectionnes et il est possible d'utiliser un rectangle de selection.
*/
void QETElementEditor::slot_setRubberBandToView() { void QETElementEditor::slot_setRubberBandToView() {
ce_view -> setDragMode(QGraphicsView::RubberBandDrag); ce_view -> setDragMode(QGraphicsView::RubberBandDrag);
} }
/**
Passe l'editeur d'element en mode immobile (utilise pour la lecture seule)
*/
void QETElementEditor::slot_setNoDragToView() { void QETElementEditor::slot_setNoDragToView() {
ce_view -> setDragMode(QGraphicsView::NoDrag); ce_view -> setDragMode(QGraphicsView::NoDrag);
} }
/**
Passe l'editeur en mode normal
*/
void QETElementEditor::slot_setNormalMode() { void QETElementEditor::slot_setNormalMode() {
if (!move -> isChecked()) move -> setChecked(true); if (!move -> isChecked()) move -> setChecked(true);
ce_view -> setDragMode(QGraphicsView::RubberBandDrag); ce_view -> setDragMode(QGraphicsView::RubberBandDrag);
ce_scene -> slot_move(); ce_scene -> slot_move();
} }
/**
Met a jour la zone d'information et d'edition.
Si plusieurs parties sont selectionnees, seul leur nombre est affiche.
Sinon, le widget d'edition de la partie est insere.
@see CustomElementPart::elementInformations()
*/
void QETElementEditor::slot_updateInformations() { void QETElementEditor::slot_updateInformations() {
QList<QGraphicsItem *> selected_qgis = ce_scene -> selectedItems(); QList<QGraphicsItem *> selected_qgis = ce_scene -> selectedItems();
QList<CustomElementPart *> selected_parts; QList<CustomElementPart *> selected_parts;
@@ -363,6 +399,10 @@ void QETElementEditor::slot_updateInformations() {
} }
} }
/**
Affiche le code XML correspondant a l'element dans son etat actuel dans
une boite de dialogue.
*/
void QETElementEditor::xmlPreview() { void QETElementEditor::xmlPreview() {
QMessageBox::information( QMessageBox::information(
this, this,
@@ -371,6 +411,10 @@ void QETElementEditor::xmlPreview() {
); );
} }
/**
Charge un fichier
@param filepath Chemin du fichier a charger
*/
void QETElementEditor::fromFile(const QString &filepath) { void QETElementEditor::fromFile(const QString &filepath) {
bool state = true; bool state = true;
QString error_message; QString error_message;
@@ -424,6 +468,12 @@ void QETElementEditor::fromFile(const QString &filepath) {
setFileName(filepath); setFileName(filepath);
} }
/**
Enregistre l'element vers un fichier
@param fn Chemin du fichier a enregistrer
@return true en cas de reussite, false sinon
*/
bool QETElementEditor::toFile(const QString &fn) { bool QETElementEditor::toFile(const QString &fn) {
QFile file(fn); QFile file(fn);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
@@ -469,11 +519,17 @@ bool QETElementEditor::isReadOnly() const {
return(read_only); return(read_only);
} }
/**
Lance l'assistant de creation d'un nouvel element.
*/
void QETElementEditor::slot_new() { void QETElementEditor::slot_new() {
NewElementWizard new_element_wizard; NewElementWizard new_element_wizard;
new_element_wizard.exec(); new_element_wizard.exec();
} }
/**
Ouvre un fichier
*/
void QETElementEditor::slot_open() { void QETElementEditor::slot_open() {
// demande un nom de fichier a ouvrir a l'utilisateur // demande un nom de fichier a ouvrir a l'utilisateur
QString user_filename = QFileDialog::getOpenFileName( QString user_filename = QFileDialog::getOpenFileName(
@@ -513,6 +569,12 @@ void QETElementEditor::slot_reload() {
fromFile(_filename); fromFile(_filename);
} }
/**
Enregistre l'element en cours d'edition.
Si le nom du fichier en cours n'est pas connu, cette methode equivaut a
l'action "Enregistrer sous"
@see slot_saveAs()
*/
bool QETElementEditor::slot_save() { bool QETElementEditor::slot_save() {
// si on ne connait pas le nom du fichier en cours, enregistrer revient a enregistrer sous // si on ne connait pas le nom du fichier en cours, enregistrer revient a enregistrer sous
if (_filename.isEmpty()) return(slot_saveAs()); if (_filename.isEmpty()) return(slot_saveAs());
@@ -522,6 +584,9 @@ bool QETElementEditor::slot_save() {
return(result_save); return(result_save);
} }
/**
Demande un nom de fichier a l'utilisateur et enregistre l'element
*/
bool QETElementEditor::slot_saveAs() { bool QETElementEditor::slot_saveAs() {
// demande un nom de fichier a l'utilisateur pour enregistrer l'element // demande un nom de fichier a l'utilisateur pour enregistrer l'element
QString fn = QFileDialog::getSaveFileName( QString fn = QFileDialog::getSaveFileName(
@@ -545,6 +610,12 @@ bool QETElementEditor::slot_saveAs() {
return(result_save); return(result_save);
} }
/**
@return true si l'element peut etre ferme.
Un element peut etre ferme s'il ne comporte aucune modification.
Si l'element comporte des modifications, la question est posee a
l'utilisateur.
*/
bool QETElementEditor::canClose() { bool QETElementEditor::canClose() {
if (ce_scene -> undoStack().isClean()) return(true); if (ce_scene -> undoStack().isClean()) return(true);
// demande d'abord a l'utilisateur s'il veut enregistrer l'element en cours // demande d'abord a l'utilisateur s'il veut enregistrer l'element en cours

View File

@@ -48,16 +48,30 @@ class Element : public QGraphicsItem {
// methodes // methodes
public: public:
/**
permet de caster un QGraphicsItem en Element avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; } virtual int type() const { return Type; }
// methodes virtuelles pures a definir dans les classes enfants // methodes virtuelles pures a definir dans les classes enfants
/// @return la liste des bornes de cet element
virtual QList<Terminal *> terminals() const = 0; virtual QList<Terminal *> terminals() const = 0;
/// @return la liste des conducteurs relies a cet element
virtual QList<Conductor *> conductors() const = 0; virtual QList<Conductor *> conductors() const = 0;
/// @return le nombre de bornes actuel de cet element
virtual int nbTerminals() const = 0; virtual int nbTerminals() const = 0;
/// @return le nombre de bornes minimum de cet element
virtual int nbTerminalsMin() const = 0; virtual int nbTerminalsMin() const = 0;
/// @return le nombre de bornes maximum de cet element
virtual int nbTerminalsMax() const = 0; virtual int nbTerminalsMax() const = 0;
/**
Dessine l'element
*/
virtual void paint(QPainter *, const QStyleOptionGraphicsItem *) = 0; virtual void paint(QPainter *, const QStyleOptionGraphicsItem *) = 0;
/// @return L'ID du type de l'element
virtual QString typeId() const = 0; virtual QString typeId() const = 0;
/// @return Le nom de l'element
virtual QString nom() const = 0; virtual QString nom() const = 0;
Diagram *diagram() const; Diagram *diagram() const;

View File

@@ -29,7 +29,6 @@ class ElementsCategoryEditor : public QDialog {
// constructeurs, destructeur // constructeurs, destructeur
public: public:
ElementsCategoryEditor(QWidget * = 0);
ElementsCategoryEditor(const QString &, bool = true, QWidget * = 0); ElementsCategoryEditor(const QString &, bool = true, QWidget * = 0);
virtual ~ElementsCategoryEditor(); virtual ~ElementsCategoryEditor();

View File

@@ -42,6 +42,7 @@ class ElementTextItem : public DiagramTextItem {
// methodes // methodes
public: public:
virtual int type() const { return Type; } virtual int type() const { return Type; }
/// @return le rectangle delimitant le champ de texte
virtual QRectF boundingRect() const { return(QGraphicsTextItem::boundingRect().adjusted(0.0, -1.1, 0.0, 0.0)); } virtual QRectF boundingRect() const { return(QGraphicsTextItem::boundingRect().adjusted(0.0, -1.1, 0.0, 0.0)); }
bool followParentRotations() const; bool followParentRotations() const;
void setFollowParentRotations(bool); void setFollowParentRotations(bool);

View File

@@ -43,7 +43,7 @@ class Terminal : public QGraphicsItem {
// methodes // methodes
public: public:
/** /**
permet de caster un QGraphicsItem en Borne avec qgraphicsitem_cast permet de caster un QGraphicsItem en Terminal avec qgraphicsitem_cast
@return le type de QGraphicsItem @return le type de QGraphicsItem
*/ */
virtual int type() const { return Type; } virtual int type() const { return Type; }