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
public:
/**
permet de caster un QGraphicsItem en Conductor avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; }
void destroy();
/// @return true si ce conducteur est detruit

View File

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

View File

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

View File

@@ -858,6 +858,10 @@ bool DiagramView::event(QEvent *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() {
is_adding_text = true;
}

View File

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

View File

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

View File

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

View File

@@ -42,6 +42,10 @@ class PartArc : public QGraphicsEllipseItem, public CustomElementGraphicPart {
// methodes
public:
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 void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0);
virtual QString name() const { return(QObject::tr("arc")); }

View File

@@ -40,6 +40,10 @@ class PartCircle : public QGraphicsEllipseItem, public CustomElementGraphicPart
// methodes
public:
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 void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0);
virtual QString name() const { return(QObject::tr("cercle")); }

View File

@@ -40,6 +40,10 @@ class PartEllipse : public QGraphicsEllipseItem, public CustomElementGraphicPart
// methodes
public:
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 void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0);
virtual QString name() const { return(QObject::tr("ellipse")); }

View File

@@ -40,6 +40,10 @@ class PartLine : public QGraphicsLineItem, public CustomElementGraphicPart {
// methodes
public:
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 void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0);
virtual QString name() const { return(QObject::tr("ligne")); }

View File

@@ -53,6 +53,10 @@ class PartPolygon : public QGraphicsPolygonItem, public CustomElementGraphicPart
// methodes
public:
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 QString name() const { return(QObject::tr("polygone")); }
void fromXml(const QDomElement &);

View File

@@ -43,6 +43,10 @@ class PartTerminal : public CustomElementPart, public QGraphicsItem {
// methodes
public:
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 QString name() const { return(QObject::tr("borne")); }
virtual void fromXml(const QDomElement &);

View File

@@ -39,6 +39,10 @@ class PartText : public QGraphicsTextItem, public CustomElementPart {
// methodes
public:
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 QString name() const { return(QObject::tr("texte")); }
void fromXml(const QDomElement &);

View File

@@ -43,6 +43,10 @@ class PartTextField : public QGraphicsTextItem, public CustomElementPart {
// methodes
public:
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 QString name() const { return(QObject::tr("champ de texte")); }
void fromXml(const QDomElement &);

View File

@@ -23,6 +23,10 @@
#include "newelementwizard.h"
#include "elementitemeditor.h"
/**
Constructeur
@param parent QWidget parent
*/
QETElementEditor::QETElementEditor(QWidget *parent) :
QMainWindow(parent),
read_only(false),
@@ -47,9 +51,13 @@ QETElementEditor::QETElementEditor(QWidget *parent) :
show();
}
/// Destructeur
QETElementEditor::~QETElementEditor() {
}
/**
Met en place les actions
*/
void QETElementEditor::setupActions() {
new_element = new QAction(QIcon(":/ico/new.png"), tr("&Nouveau"), 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()));
}
/**
Met en place les menus.
*/
void QETElementEditor::setupMenus() {
file_menu = new QMenu(tr("Fichier"), this);
edit_menu = new QMenu(tr("\311dition"), this);
@@ -240,6 +251,9 @@ void QETElementEditor::setupMenus() {
*/
}
/**
Met a jour les menus
*/
void QETElementEditor::slot_updateMenus() {
bool selected_items = !ce_scene -> selectedItems().isEmpty();
edit_delete -> setEnabled(selected_items);
@@ -250,6 +264,9 @@ void QETElementEditor::slot_updateMenus() {
save -> setEnabled(!ce_scene -> undoStack().isClean());
}
/**
Met a jour le titre de la fenetre
*/
void QETElementEditor::slot_updateTitle() {
QString title = min_title;
title += " - " + ce_scene -> names().name() + " ";
@@ -260,6 +277,9 @@ void QETElementEditor::slot_updateTitle() {
setWindowTitle(title);
}
/**
Met en place l'interface
*/
void QETElementEditor::setupInterface() {
// editeur
ce_scene = new ElementScene(this, this);
@@ -316,20 +336,36 @@ void QETElementEditor::setupInterface() {
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() {
ce_view -> setDragMode(QGraphicsView::RubberBandDrag);
}
/**
Passe l'editeur d'element en mode immobile (utilise pour la lecture seule)
*/
void QETElementEditor::slot_setNoDragToView() {
ce_view -> setDragMode(QGraphicsView::NoDrag);
}
/**
Passe l'editeur en mode normal
*/
void QETElementEditor::slot_setNormalMode() {
if (!move -> isChecked()) move -> setChecked(true);
ce_view -> setDragMode(QGraphicsView::RubberBandDrag);
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() {
QList<QGraphicsItem *> selected_qgis = ce_scene -> selectedItems();
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() {
QMessageBox::information(
this,
@@ -371,6 +411,10 @@ void QETElementEditor::xmlPreview() {
);
}
/**
Charge un fichier
@param filepath Chemin du fichier a charger
*/
void QETElementEditor::fromFile(const QString &filepath) {
bool state = true;
QString error_message;
@@ -424,6 +468,12 @@ void QETElementEditor::fromFile(const QString &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) {
QFile file(fn);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
@@ -469,11 +519,17 @@ bool QETElementEditor::isReadOnly() const {
return(read_only);
}
/**
Lance l'assistant de creation d'un nouvel element.
*/
void QETElementEditor::slot_new() {
NewElementWizard new_element_wizard;
new_element_wizard.exec();
}
/**
Ouvre un fichier
*/
void QETElementEditor::slot_open() {
// demande un nom de fichier a ouvrir a l'utilisateur
QString user_filename = QFileDialog::getOpenFileName(
@@ -513,6 +569,12 @@ void QETElementEditor::slot_reload() {
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() {
// si on ne connait pas le nom du fichier en cours, enregistrer revient a enregistrer sous
if (_filename.isEmpty()) return(slot_saveAs());
@@ -522,6 +584,9 @@ bool QETElementEditor::slot_save() {
return(result_save);
}
/**
Demande un nom de fichier a l'utilisateur et enregistre l'element
*/
bool QETElementEditor::slot_saveAs() {
// demande un nom de fichier a l'utilisateur pour enregistrer l'element
QString fn = QFileDialog::getSaveFileName(
@@ -545,6 +610,12 @@ bool QETElementEditor::slot_saveAs() {
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() {
if (ce_scene -> undoStack().isClean()) return(true);
// 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
public:
/**
permet de caster un QGraphicsItem en Element avec qgraphicsitem_cast
@return le type de QGraphicsItem
*/
virtual int type() const { return Type; }
// methodes virtuelles pures a definir dans les classes enfants
/// @return la liste des bornes de cet element
virtual QList<Terminal *> terminals() const = 0;
/// @return la liste des conducteurs relies a cet element
virtual QList<Conductor *> conductors() const = 0;
/// @return le nombre de bornes actuel de cet element
virtual int nbTerminals() const = 0;
/// @return le nombre de bornes minimum de cet element
virtual int nbTerminalsMin() const = 0;
/// @return le nombre de bornes maximum de cet element
virtual int nbTerminalsMax() const = 0;
/**
Dessine l'element
*/
virtual void paint(QPainter *, const QStyleOptionGraphicsItem *) = 0;
/// @return L'ID du type de l'element
virtual QString typeId() const = 0;
/// @return Le nom de l'element
virtual QString nom() const = 0;
Diagram *diagram() const;

View File

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

View File

@@ -42,6 +42,7 @@ class ElementTextItem : public DiagramTextItem {
// methodes
public:
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)); }
bool followParentRotations() const;
void setFollowParentRotations(bool);

View File

@@ -43,7 +43,7 @@ class Terminal : public QGraphicsItem {
// methodes
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
*/
virtual int type() const { return Type; }