mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Compare commits
83 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9ad7a5983c | ||
|
|
1e892574ec | ||
|
|
635e720181 | ||
|
|
be45e7ac10 | ||
|
|
b06e30edb2 | ||
|
|
2c44834ee8 | ||
|
|
e543478110 | ||
|
|
3bd222b04f | ||
|
|
4ec0af7e8a | ||
|
|
6de02e3cda | ||
|
|
9460eab8f0 | ||
|
|
e94ae76b12 | ||
|
|
09318bdd2e | ||
|
|
ff9e32a5ac | ||
|
|
1f64d8ce71 | ||
|
|
a75d584da0 | ||
|
|
5a05cb15cd | ||
|
|
86bd2daa04 | ||
|
|
9a8459db86 | ||
|
|
2a6992083d | ||
|
|
020974148b | ||
|
|
4244f907e4 | ||
|
|
2da668657d | ||
|
|
33344a2376 | ||
|
|
de1370d719 | ||
|
|
d8f09f625a | ||
|
|
4da7e54d75 | ||
|
|
f84b86e4a4 | ||
|
|
e226860b7a | ||
|
|
91e661ad27 | ||
|
|
dde38bbd67 | ||
|
|
03c161f257 | ||
|
|
120c541ed3 | ||
|
|
a4acad7317 | ||
|
|
3e31df6820 | ||
|
|
ce4596124c | ||
|
|
1ca68fcddc | ||
|
|
ae71d0a12d | ||
|
|
30175f43c5 | ||
|
|
716ca01824 | ||
|
|
1cd7590651 | ||
|
|
9f8c1b03e8 | ||
|
|
eb14050796 | ||
|
|
3c7c538d7c | ||
|
|
1f712ba103 | ||
|
|
dde819c278 | ||
|
|
147deca55d | ||
|
|
bee622e7cc | ||
|
|
3957baaa6f | ||
|
|
75f689ffa9 | ||
|
|
601b90ffd4 | ||
|
|
fc1f573719 | ||
|
|
5e952533d6 | ||
|
|
faf504f2d0 | ||
|
|
7ac471c6f2 | ||
|
|
15020669d9 | ||
|
|
5c9a6edff5 | ||
|
|
8d7572090a | ||
|
|
8b3e64a724 | ||
|
|
e0cf69d6bf | ||
|
|
818982272f | ||
|
|
1a11287dfc | ||
|
|
b3a3c87eba | ||
|
|
cd57178b11 | ||
|
|
7a48bcc228 | ||
|
|
e8e881ff51 | ||
|
|
0272d5ed66 | ||
|
|
da1e965c83 | ||
|
|
e26560188f | ||
|
|
c6140bce49 | ||
|
|
7f520f0b8d | ||
|
|
4364410029 | ||
|
|
fe4c3f6f7d | ||
|
|
eae7513eef | ||
|
|
158cf97bb3 | ||
|
|
429d7e55a2 | ||
|
|
f4b828a3cd | ||
|
|
9c6f602439 | ||
|
|
b030058966 | ||
|
|
c6fc0ad51b | ||
|
|
f9813f1f84 | ||
|
|
d7444ae90c | ||
|
|
8c59b8183a |
6
CREDIT
6
CREDIT
@@ -7,8 +7,11 @@ project ( http://www.kde.org/ ).
|
||||
Thanks to Loic for his mathematics-related explanations.
|
||||
Thanks to Nicolas for the Mac OS X experimentations.
|
||||
Thanks to Remi Collet for the Fedora packaging.
|
||||
Thanks to Piotr SQLek Skólski for the Debian packaging.
|
||||
Thanks to `trem' for the Mandriva packaging.
|
||||
Thanks to TuxFamily ( http://tuxfamily.org ) for hosting the project.
|
||||
Thanks to `Nishiki' for his elements and his support.
|
||||
Thanks to qtcentre.org for their SingleApplication class.
|
||||
|
||||
[fr]
|
||||
Merci à Trolltech pour la bibliothèque Qt ( http://trolltech.com/ ), sous
|
||||
@@ -19,5 +22,8 @@ http://www.kde.org/ ).
|
||||
Merci à Loic pour ses explications d'ordre mathématique.
|
||||
Merci à Nicolas pour les expérimentations Mac OS X.
|
||||
Merci à Remi Collet pour les paquets Fedora.
|
||||
Merci à Piotr SQLek Skólski pour les paquets Debian.
|
||||
Merci à `trem' pour les paquets Mandriva.
|
||||
Merci à TuxFamily ( http://tuxfamily.org ) pour l'hébergement du projet.
|
||||
Merci à `Nishiki' pour ses éléments et son soutien.
|
||||
Merci à qtcentre.org pour leur classe SingleApplication.
|
||||
|
||||
41
ELEMENTS.LICENSE
Normal file
41
ELEMENTS.LICENSE
Normal file
@@ -0,0 +1,41 @@
|
||||
[fr]
|
||||
La collection d'éléments fournie avec QElectroTech est fournie telle quelle et
|
||||
sans la moindre garantie qu'elle convienne à votre utilisation ou qu'elle
|
||||
fonctionne.
|
||||
L'utilisation, la modification et l'intégration des éléments dans des schémas
|
||||
électriques est autorisée sans conditions, quelque soit la licence finale des
|
||||
schémas.
|
||||
Si vous redistribuez tout ou partie de la collection QElectroTech, avec ou sans
|
||||
modification, en dehors d'un schéma électrique, vous devrez respecter les
|
||||
conditions de la licence CC-BY :
|
||||
Cette création est mise à disposition selon le Contrat Paternité 2.0 France
|
||||
disponible en ligne http://creativecommons.org/licenses/by/2.0/fr/ ou par
|
||||
courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco,
|
||||
California 94105, USA.
|
||||
|
||||
[en]
|
||||
The elements collection provided along with QElectroTech is provided as is and
|
||||
without any warranty of fitness for your purpose or working.
|
||||
The usage, the modification and the integration of the elements into electric
|
||||
diagrams is allowed without any condition, whatever the final license of the
|
||||
diagrams is.
|
||||
If you redistribute all or a part of the QElectroTech collection, with or
|
||||
without any modification, out of an electric diagram, you must respect the
|
||||
conditions of the CC-BY license:
|
||||
This work is licensed under the Creative Commons Attribution 2.0 France License.
|
||||
To view a copy of this license, visit
|
||||
http://creativecommons.org/licenses/by/2.0/fr/ or send a letter to Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
|
||||
[es]
|
||||
La colección de elementos QElectrotech es distruibida tal cual y sin ninguna
|
||||
garantía a la conveniencia de su uso y sin garantía de que funciona.
|
||||
Se permite sin condicione alguna, cualquiera que sea la licencia final, usar,
|
||||
editar, e incluir estos elementos en esquemas eléctricos.
|
||||
Si usted redistribuye una parte de la colección o toda la collección de
|
||||
QElectrotech, con o sin ediciones, fuera de un esquema eléctrico, tiene que
|
||||
respetar las condiciones de la licencia CC-BY:
|
||||
Esta obra está bajo una licencia Reconocimiento 2.0 Francia de Creative Commons.
|
||||
Para ver una copia de esta licencia, visite
|
||||
http://creativecommons.org/licenses/by/2.0/fr/ o envie una carta a Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
|
||||
2
INSTALL
2
INSTALL
@@ -6,6 +6,7 @@ cupsys-bsd for printing
|
||||
Howto compile :
|
||||
$ qmake (qmake-qt4 for Debian-based systems)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[fr]
|
||||
@@ -16,4 +17,5 @@ cupsys-bsd pour l'impression
|
||||
Comment compiler :
|
||||
$ qmake (qmake-qt4 pour les systèmes basés sur Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
138
aboutqet.cpp
138
aboutqet.cpp
@@ -1,138 +0,0 @@
|
||||
/*
|
||||
Copyright 2006-2008 Xavier Guerrin
|
||||
This file is part of QElectroTech.
|
||||
|
||||
QElectroTech is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
QElectroTech is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "aboutqet.h"
|
||||
#include "qet.h"
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
@param parent Le QWidget parent de la boite de dialogue
|
||||
*/
|
||||
AboutQET::AboutQET(QWidget *parent) : QDialog(parent) {
|
||||
// Titre, taille, comportement...
|
||||
setWindowTitle(tr("\300 propos de QElectrotech"));
|
||||
setMinimumWidth(680);
|
||||
setMinimumHeight(350);
|
||||
setModal(true);
|
||||
|
||||
// Trois onglets
|
||||
QTabWidget *onglets = new QTabWidget(this);
|
||||
onglets -> addTab(ongletAPropos(), tr("\300 &propos"));
|
||||
onglets -> addTab(ongletAuteurs(), tr("A&uteurs"));
|
||||
onglets -> addTab(ongletLicence(), tr("&Accord de licence"));
|
||||
|
||||
// Un bouton pour fermer la boite de dialogue
|
||||
QDialogButtonBox *boutons = new QDialogButtonBox(QDialogButtonBox::Close);
|
||||
connect(boutons, SIGNAL(accepted()), this, SLOT(accept()));
|
||||
connect(boutons, SIGNAL(rejected()), this, SLOT(accept()));
|
||||
|
||||
// Le tout dans une disposition verticale
|
||||
QVBoxLayout *disposition = new QVBoxLayout();
|
||||
disposition -> addWidget(titre());
|
||||
disposition -> addWidget(onglets);
|
||||
disposition -> addWidget(boutons);
|
||||
setLayout(disposition);
|
||||
}
|
||||
|
||||
/**
|
||||
Destructeur
|
||||
*/
|
||||
AboutQET::~AboutQET() {
|
||||
}
|
||||
|
||||
/**
|
||||
@return Le titre QElectroTech avec son icone
|
||||
*/
|
||||
QWidget *AboutQET::titre() const {
|
||||
QWidget *icone_et_titre = new QWidget();
|
||||
// icone
|
||||
QLabel *icone = new QLabel();
|
||||
icone -> setPixmap(QIcon(":/ico/qelectrotech.png").pixmap(48, 48));
|
||||
// label "QElectroTech"
|
||||
QLabel *titre = new QLabel("<span style=\"font-weight:0;font-size:16pt;\">QElectroTech v" + QET::version + "</span>");
|
||||
titre -> setTextFormat(Qt::RichText);
|
||||
// le tout dans une grille
|
||||
QGridLayout *dispo_horiz = new QGridLayout();
|
||||
dispo_horiz -> addWidget(icone, 0, 0);
|
||||
dispo_horiz -> addWidget(titre, 0, 1);
|
||||
dispo_horiz -> setColumnStretch(0, 1);
|
||||
dispo_horiz -> setColumnStretch(1, 100);
|
||||
icone_et_titre -> setLayout(dispo_horiz);
|
||||
return(icone_et_titre);
|
||||
}
|
||||
|
||||
/**
|
||||
@return Le widget contenu par l'onglet <20> A propos <20>
|
||||
*/
|
||||
QWidget *AboutQET::ongletAPropos() const {
|
||||
QLabel *apropos = new QLabel(
|
||||
tr("QElectroTech, une application de r\351alisation de sch\351mas \351lectriques.") +
|
||||
"<br><br>" +
|
||||
tr("\251 2006-2008 Les d\351veloppeurs de QElectroTech") +
|
||||
"<br><br>"
|
||||
"<a href=\"http://qelectrotech.tuxfamily.org/\">"
|
||||
"http://qelectrotech.tuxfamily.org/</a>"
|
||||
);
|
||||
apropos -> setAlignment(Qt::AlignCenter);
|
||||
apropos -> setOpenExternalLinks(true);
|
||||
apropos -> setTextFormat(Qt::RichText);
|
||||
return(apropos);
|
||||
}
|
||||
|
||||
/**
|
||||
@return Le widget contenu par l'onglet <20> Auteurs <20>
|
||||
*/
|
||||
QWidget *AboutQET::ongletAuteurs() const {
|
||||
QLabel *auteurs = new QLabel(
|
||||
"<span style=\"text-decoration: underline;\">" +
|
||||
tr("Id\351e originale") +
|
||||
"</span> : Beno\356t Ansieau "
|
||||
"<<a href=\"mailto:benoit.ansieau@gmail.com\">"
|
||||
"benoit.ansieau@gmail.com</a>>"
|
||||
"<br><br>"
|
||||
"<span style=\"text-decoration: underline;\">" +
|
||||
tr("Programmation") +
|
||||
"</span> : Xavier Guerrin "
|
||||
"<<a href=\"mailto:xavier.guerrin@gmail.com\">"
|
||||
"xavier.guerrin@gmail.com</a>>"
|
||||
);
|
||||
auteurs -> setAlignment(Qt::AlignCenter);
|
||||
auteurs -> setOpenExternalLinks(true);
|
||||
auteurs -> setTextFormat(Qt::RichText);
|
||||
return(auteurs);
|
||||
}
|
||||
|
||||
/**
|
||||
@return Le widget contenu par l'onglet <20> Accord de Licence <20>
|
||||
*/
|
||||
QWidget *AboutQET::ongletLicence() const {
|
||||
QWidget *licence = new QWidget();
|
||||
// label
|
||||
QLabel *titre_licence = new QLabel(tr("Ce programme est sous licence GNU/GPL."));
|
||||
|
||||
// texte de la GNU/GPL dans une zone de texte scrollable non editable
|
||||
QTextEdit *texte_licence = new QTextEdit();
|
||||
texte_licence -> setPlainText(QET::license());
|
||||
texte_licence -> setReadOnly(true);
|
||||
|
||||
// le tout dans une disposition verticale
|
||||
QVBoxLayout *dispo_licence = new QVBoxLayout();
|
||||
dispo_licence -> addWidget(titre_licence);
|
||||
dispo_licence -> addWidget(texte_licence);
|
||||
licence -> setLayout(dispo_licence);
|
||||
return(licence);
|
||||
}
|
||||
231
borderinset.cpp
231
borderinset.cpp
@@ -1,231 +0,0 @@
|
||||
/*
|
||||
Copyright 2006-2008 Xavier Guerrin
|
||||
This file is part of QElectroTech.
|
||||
|
||||
QElectroTech is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
QElectroTech is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "borderinset.h"
|
||||
#include "qetapp.h"
|
||||
|
||||
/**
|
||||
Constructeur simple : construit une bordure de 15 colonnes de 50x500 avec
|
||||
un cartouche de 400x50.
|
||||
@param parent QObject parent de ce BorderInset
|
||||
*/
|
||||
BorderInset::BorderInset(QObject *parent) : QObject(parent) {
|
||||
nb_columns = qMax(3, QETApp::settings().value("diagrameditor/defaultcols", 15).toInt());
|
||||
min_nb_columns = 3;
|
||||
columns_width = QETApp::settings().value("diagrameditor/defaultcolsize", 50.0).toDouble();
|
||||
columns_height = QETApp::settings().value("diagrameditor/defaultheight", 500.0).toDouble();
|
||||
min_columns_height = 80.0;
|
||||
inset_width = nb_columns * columns_width;
|
||||
inset_height = 50.0;
|
||||
columns_header_height = 20.0;
|
||||
display_inset = true;
|
||||
display_columns = true;
|
||||
display_border = true;
|
||||
updateRectangles();
|
||||
|
||||
bi_author = QETApp::settings().value("diagrameditor/defaultauthor").toString();
|
||||
bi_title = QETApp::settings().value("diagrameditor/defaulttitle").toString();
|
||||
bi_folio = QETApp::settings().value("diagrameditor/defaultfolio").toString();
|
||||
bi_filename = QETApp::settings().value("diagrameditor/defaultfilename").toString();
|
||||
QString settings_date = QETApp::settings().value("diagrameditor/defaultdate").toString();
|
||||
if (settings_date == "now") bi_date = QDate::currentDate();
|
||||
else if (settings_date.isEmpty() || settings_date == "null") bi_date = QDate();
|
||||
else bi_date = QDate::fromString(settings_date, "yyyyMMdd");
|
||||
}
|
||||
|
||||
/**
|
||||
Destructeur - ne fait rien
|
||||
*/
|
||||
BorderInset::~BorderInset() {
|
||||
}
|
||||
|
||||
/**
|
||||
Methode recalculant les rectangles composant le cadre et le cartouche en
|
||||
fonction des attributs de taille
|
||||
*/
|
||||
void BorderInset::updateRectangles() {
|
||||
// rectangle delimitant le schema
|
||||
QRectF previous_border = border;
|
||||
border = QRectF(0, 0, nb_columns * columns_width, columns_height);
|
||||
if (border != previous_border) emit(borderChanged(previous_border, border));
|
||||
|
||||
// rectangles relatifs au cartouche
|
||||
inset = QRectF(border.bottomLeft().x(), border.bottomLeft().y(), inset_width, inset_height);
|
||||
inset_author = QRectF(inset.topLeft(), QSizeF(2.0 * inset_width / 9.0, 0.5 * inset_height));
|
||||
inset_date = QRectF(inset_author.bottomLeft(), inset_author.size());
|
||||
inset_title = QRectF(inset_author.topRight(), QSizeF(5.0 * inset_width / 9.0, inset_height));
|
||||
inset_file = QRectF(inset_title.topRight(), inset_author.size());
|
||||
inset_folio = QRectF(inset_file.bottomLeft(), inset_author.size());
|
||||
}
|
||||
|
||||
/**
|
||||
Dessine le cadre et le cartouche
|
||||
@param qp QPainter a utiliser pour dessiner le cadre et le cartouche
|
||||
@param x Abscisse du cadre
|
||||
@param y Ordonnee du cadre
|
||||
*/
|
||||
void BorderInset::draw(QPainter *qp, qreal x, qreal y) {
|
||||
// translate tous les rectangles
|
||||
border .translate(x, y);
|
||||
inset .translate(x, y);
|
||||
inset_author.translate(x, y);
|
||||
inset_date .translate(x, y);
|
||||
inset_title .translate(x, y);
|
||||
inset_file .translate(x, y);
|
||||
inset_folio .translate(x, y);
|
||||
|
||||
// prepare le QPainter
|
||||
qp -> save();
|
||||
qp -> setPen(Qt::black);
|
||||
qp -> setBrush(Qt::NoBrush);
|
||||
|
||||
// dessine le cadre
|
||||
if (display_border) qp -> drawRect(border);
|
||||
|
||||
// dessine la numerotation des colonnes
|
||||
if (display_columns) {
|
||||
qp -> setBrush(Qt::white);
|
||||
for (int i = 1 ; i <= nb_columns ; ++ i) {
|
||||
QRectF numbered_rectangle = QRectF(
|
||||
border.topLeft().x() + ((i - 1) * columns_width),
|
||||
border.topLeft().y(),
|
||||
columns_width,
|
||||
columns_header_height
|
||||
);
|
||||
qp -> drawRect(numbered_rectangle);
|
||||
qp -> drawText(numbered_rectangle, Qt::AlignVCenter | Qt::AlignCenter, QString("%1").arg(i));
|
||||
}
|
||||
}
|
||||
|
||||
// dessine le cartouche
|
||||
if (display_inset) {
|
||||
qp -> setBrush(Qt::white);
|
||||
qp -> drawRect(inset);
|
||||
|
||||
qp -> drawRect(inset_author);
|
||||
qp -> drawText(inset_author, Qt::AlignVCenter | Qt::AlignLeft, tr(" Auteur : ") + bi_author);
|
||||
|
||||
qp -> drawRect(inset_date);
|
||||
qp -> drawText(inset_date, Qt::AlignVCenter | Qt::AlignLeft, tr(" Date : ") + bi_date.toString("dd/MM/yyyy"));
|
||||
|
||||
qp -> drawRect(inset_title);
|
||||
qp -> drawText(inset_title, Qt::AlignVCenter | Qt::AlignCenter, tr("Titre du document : ") + bi_title);
|
||||
|
||||
qp -> drawRect(inset_file);
|
||||
qp -> drawText(inset_file, Qt::AlignVCenter | Qt::AlignLeft, tr(" Fichier : ") + bi_filename);
|
||||
|
||||
qp -> drawRect(inset_folio);
|
||||
qp -> drawText(inset_folio, Qt::AlignVCenter | Qt::AlignLeft, tr(" Folio : ") + bi_folio);
|
||||
}
|
||||
|
||||
qp -> restore();
|
||||
|
||||
// annule la translation des rectangles
|
||||
border .translate(-x, -y);
|
||||
inset .translate(-x, -y);
|
||||
inset_author.translate(-x, -y);
|
||||
inset_date .translate(-x, -y);
|
||||
inset_title .translate(-x, -y);
|
||||
inset_file .translate(-x, -y);
|
||||
inset_folio .translate(-x, -y);
|
||||
}
|
||||
|
||||
/**
|
||||
Ajoute une colonne.
|
||||
*/
|
||||
void BorderInset::addColumn() {
|
||||
++ nb_columns;
|
||||
setInsetWidth(nb_columns * columns_width);
|
||||
updateRectangles();
|
||||
}
|
||||
|
||||
/**
|
||||
Enleve une colonne. Il doit rester au moins 3 colonnes.
|
||||
*/
|
||||
void BorderInset::removeColumn() {
|
||||
if (nb_columns == min_nb_columns) return;
|
||||
-- nb_columns;
|
||||
setInsetWidth(nb_columns * columns_width);
|
||||
updateRectangles();
|
||||
}
|
||||
|
||||
/**
|
||||
Permet de changer le nombre de colonnes.
|
||||
Si ce nombre de colonnes est inferieur au minimum requis, cette fonction ne
|
||||
fait rien
|
||||
@param nb_c nouveau nombre de colonnes
|
||||
@see minNbColumns()
|
||||
*/
|
||||
void BorderInset::setNbColumns(int nb_c) {
|
||||
if (nb_c < min_nb_columns) return;
|
||||
nb_columns = nb_c;
|
||||
setInsetWidth(nb_columns * columns_width);
|
||||
updateRectangles();
|
||||
}
|
||||
|
||||
/**
|
||||
Change la largeur des colonnes ; celle-ci doit rester comprise entre 10 et
|
||||
200px.
|
||||
*/
|
||||
void BorderInset::setColumnsWidth(const qreal &new_cw) {
|
||||
columns_width = qBound(10.0, new_cw, 200.0);
|
||||
updateRectangles();
|
||||
}
|
||||
|
||||
/**
|
||||
Change la hauteur des en-tetes contenant les numeros de colonnes. Celle-ci
|
||||
doit rester comprise entre 5 et 50 px.
|
||||
*/
|
||||
void BorderInset::setColumnsHeaderHeight(const qreal &new_chh) {
|
||||
columns_header_height = qBound(5.0, new_chh, 50.0);
|
||||
updateRectangles();
|
||||
}
|
||||
|
||||
/**
|
||||
Change la hauteur des colonnes (et donc du cadre). Cette hauteur doit
|
||||
rester superieure a la hauteur des en-tetes de colonnes + 20px.
|
||||
*/
|
||||
void BorderInset::setColumnsHeight(const qreal &new_ch) {
|
||||
columns_height = qMax(columns_header_height + min_columns_height, new_ch);
|
||||
updateRectangles();
|
||||
}
|
||||
|
||||
/**
|
||||
Change la largeur du cartouche. Cette largeur doit rester comprise entre
|
||||
100px et la largeur du cartouche
|
||||
*/
|
||||
void BorderInset::setInsetWidth(const qreal &new_iw) {
|
||||
inset_width = qMax(100.0, qMin(nb_columns * columns_width, new_iw));
|
||||
updateRectangles();
|
||||
}
|
||||
|
||||
/**
|
||||
Change la hauteur du cartouche. Cette largeur doit rester comprise entre
|
||||
20px et la hauteur du cartouche.
|
||||
*/
|
||||
void BorderInset::setInsetHeight(const qreal &new_ih) {
|
||||
inset_height = qMax(20.0, qMin(columns_height, new_ih));
|
||||
updateRectangles();
|
||||
}
|
||||
|
||||
/**
|
||||
Ajuste la largeur du cartouche de facon a ce que celui-ci soit aussi large
|
||||
que le schema
|
||||
*/
|
||||
void BorderInset::adjustInsetToColumns() {
|
||||
setInsetWidth(nbColumn() * columnsWidth());
|
||||
}
|
||||
136
configpages.cpp
136
configpages.cpp
@@ -1,136 +0,0 @@
|
||||
/*
|
||||
Copyright 2006-2008 Xavier Guerrin
|
||||
This file is part of QElectroTech.
|
||||
|
||||
QElectroTech is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
QElectroTech is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "configpages.h"
|
||||
#include "qetapp.h"
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
@param parent QWidget parent
|
||||
*/
|
||||
NewDiagramPage::NewDiagramPage(QWidget *parent) : ConfigPage(parent) {
|
||||
|
||||
// acces a la configuration de QElectroTech
|
||||
QSettings &settings = QETApp::settings();
|
||||
|
||||
// recupere les dimensions du schema
|
||||
int columns_count_value = settings.value("diagrameditor/defaultcols", 15).toInt();
|
||||
int columns_width_value = qRound(settings.value("diagrameditor/defaultcolsize", 50.0).toDouble());
|
||||
int columns_height_value = qRound(settings.value("diagrameditor/defaultheight", 500.0).toDouble());
|
||||
|
||||
QVBoxLayout *vlayout1 = new QVBoxLayout();
|
||||
|
||||
QLabel *title = new QLabel(tr("Nouveau sch\351ma"));
|
||||
vlayout1 -> addWidget(title);
|
||||
|
||||
QFrame *horiz_line = new QFrame();
|
||||
horiz_line -> setFrameShape(QFrame::HLine);
|
||||
vlayout1 -> addWidget(horiz_line);
|
||||
|
||||
QHBoxLayout *hlayout1 = new QHBoxLayout();
|
||||
QVBoxLayout *vlayout2 = new QVBoxLayout();
|
||||
|
||||
QGroupBox *diagram_size_box = new QGroupBox(tr("Dimensions du sch\351ma"));
|
||||
diagram_size_box -> setMinimumWidth(300);
|
||||
QGridLayout *diagram_size_box_layout = new QGridLayout(diagram_size_box);
|
||||
|
||||
QLabel *ds1 = new QLabel(tr("Colonnes :"));
|
||||
|
||||
columns_count = new QSpinBox(diagram_size_box);
|
||||
columns_count -> setMinimum(3); /// @todo methode statique pour recuperer ca
|
||||
columns_count -> setValue(columns_count_value);
|
||||
|
||||
columns_width = new QSpinBox(diagram_size_box);
|
||||
columns_width -> setMinimum(1);
|
||||
columns_width -> setSingleStep(10);
|
||||
columns_width -> setValue(columns_width_value);
|
||||
columns_width -> setPrefix(tr("\327"));
|
||||
columns_width -> setSuffix(tr("px"));
|
||||
|
||||
QLabel *ds2 = new QLabel(tr("Hauteur :"));
|
||||
|
||||
columns_height = new QSpinBox(diagram_size_box);
|
||||
columns_height -> setRange(80, 10000); /// @todo methode statique pour recuperer ca
|
||||
columns_height -> setSingleStep(80);
|
||||
columns_height -> setValue(columns_height_value);
|
||||
|
||||
diagram_size_box_layout -> addWidget(ds1, 0, 0);
|
||||
diagram_size_box_layout -> addWidget(columns_count, 0, 1);
|
||||
diagram_size_box_layout -> addWidget(columns_width, 0, 2);
|
||||
diagram_size_box_layout -> addWidget(ds2, 1, 0);
|
||||
diagram_size_box_layout -> addWidget(columns_height, 1, 1);
|
||||
|
||||
ipw = new InsetPropertiesWidget(QETDiagramEditor::defaultInsetProperties(), true, this);
|
||||
|
||||
// proprietes par defaut des conducteurs
|
||||
ConductorProperties cp;
|
||||
cp.fromSettings(settings, "diagrameditor/defaultconductor");
|
||||
cpw = new ConductorPropertiesWidget(cp);
|
||||
|
||||
vlayout2 -> addWidget(diagram_size_box);
|
||||
vlayout2 -> addWidget(ipw);
|
||||
hlayout1 -> addLayout(vlayout2);
|
||||
hlayout1 -> addWidget(cpw);
|
||||
vlayout1 -> addLayout(hlayout1);
|
||||
vlayout1 -> addStretch(1);
|
||||
hlayout1 -> setAlignment(cpw, Qt::AlignTop);
|
||||
setLayout(vlayout1);
|
||||
}
|
||||
|
||||
/// Destructeur
|
||||
NewDiagramPage::~NewDiagramPage() {
|
||||
}
|
||||
|
||||
/**
|
||||
Applique la configuration de cette page
|
||||
*/
|
||||
void NewDiagramPage::applyConf() {
|
||||
QSettings &settings = QETApp::settings();
|
||||
|
||||
// dimensions des nouveaux schemas
|
||||
settings.setValue("diagrameditor/defaultcols", columns_count -> value());
|
||||
settings.setValue("diagrameditor/defaultcolsize", columns_width -> value());
|
||||
settings.setValue("diagrameditor/defaultheight", columns_height -> value());
|
||||
|
||||
// proprietes du cartouche
|
||||
InsetProperties inset = ipw-> insetProperties();
|
||||
settings.setValue("diagrameditor/defaulttitle", inset.title);
|
||||
settings.setValue("diagrameditor/defaultauthor", inset.author);
|
||||
settings.setValue("diagrameditor/defaultfilename", inset.filename);
|
||||
settings.setValue("diagrameditor/defaultfolio", inset.folio);
|
||||
QString date_setting_value;
|
||||
if (inset.useDate == InsetProperties::UseDateValue) {
|
||||
if (inset.date.isNull()) date_setting_value = "null";
|
||||
else date_setting_value = inset.date.toString("yyyyMMdd");
|
||||
} else {
|
||||
date_setting_value = "now";
|
||||
}
|
||||
settings.setValue("diagrameditor/defaultdate", date_setting_value);
|
||||
|
||||
// proprietes par defaut des conducteurs
|
||||
cpw -> conductorProperties().toSettings(settings, "diagrameditor/defaultconductor");
|
||||
}
|
||||
|
||||
/// @return l'icone de cette page
|
||||
QIcon NewDiagramPage::icon() const {
|
||||
return(QIcon(":/ico/conf_new_diagram.png"));
|
||||
}
|
||||
|
||||
/// @return le titre de cette page
|
||||
QString NewDiagramPage::title() const {
|
||||
return(tr("Nouveau sch\351ma"));
|
||||
}
|
||||
@@ -1,302 +0,0 @@
|
||||
/*
|
||||
Copyright 2006-2007 Xavier Guerrin
|
||||
This file is part of QElectroTech.
|
||||
|
||||
QElectroTech is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
QElectroTech is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "diagramprintdialog.h"
|
||||
#include <math.h>
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
@param dia Schema a imprimer
|
||||
@param printer Imprimante a utiliser
|
||||
@param parent Widget parent du dialogue
|
||||
*/
|
||||
DiagramPrintDialog::DiagramPrintDialog(Diagram *dia, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
diagram(dia),
|
||||
dialog(0)
|
||||
{
|
||||
// initialise l'imprimante
|
||||
printer = new QPrinter();
|
||||
}
|
||||
|
||||
/**
|
||||
Destructeur
|
||||
*/
|
||||
DiagramPrintDialog::~DiagramPrintDialog() {
|
||||
delete dialog;
|
||||
delete printer;
|
||||
}
|
||||
|
||||
/**
|
||||
Definit le nom du PDF si l'utilisateur choisit une sortie vers un PDF
|
||||
*/
|
||||
void DiagramPrintDialog::setPDFName(const QString &name) {
|
||||
pdf_name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
@return le nom du PDF
|
||||
*/
|
||||
QString DiagramPrintDialog::PDFName() const {
|
||||
return(pdf_name);
|
||||
}
|
||||
|
||||
/**
|
||||
Execute le dialogue d'impression
|
||||
*/
|
||||
void DiagramPrintDialog::exec() {
|
||||
|
||||
// affichage du dialogue d'impression standard
|
||||
QPrintDialog print_dialog(printer);
|
||||
print_dialog.setEnabledOptions(QAbstractPrintDialog::PrintToFile);
|
||||
#ifndef Q_OS_WIN32
|
||||
if (!pdf_name.isEmpty()) printer -> setOutputFileName(pdf_name);
|
||||
#endif
|
||||
if (print_dialog.exec() == QDialog::Rejected) return;
|
||||
|
||||
/*
|
||||
Apres l'execution de ce premier dialogue, on connait le format papier a
|
||||
utiliser, son orientation et on est sur que tout cela est supporte par
|
||||
l'imprimante.
|
||||
On peut donc en deduire le nombre de pages a imprimer
|
||||
*/
|
||||
|
||||
// affichage d'un second dialogue, non standard, pour connaitre les pages a imprimer
|
||||
buildDialog();
|
||||
if (dialog -> exec() == QDialog::Rejected) return;
|
||||
|
||||
// effectue l'impression en elle-meme
|
||||
print();
|
||||
}
|
||||
|
||||
/**
|
||||
@param fullPage true pour utiliser toute la feuille dans le calcul
|
||||
@return Le nombre de pages necessaires pour imprimer le schema
|
||||
avec l'orientation et le format papier utilise dans l'imprimante en cours.
|
||||
*/
|
||||
int DiagramPrintDialog::pagesCount(bool fullpage) const {
|
||||
return(horizontalPagesCount(fullpage) * verticalPagesCount(fullpage));
|
||||
}
|
||||
|
||||
/**
|
||||
@param fullPage true pour utiliser toute la feuille dans le calcul
|
||||
@return La largeur du "poster" en nombre de pages pour imprimer le schema
|
||||
avec l'orientation et le format papier utilise dans l'imprimante en cours.
|
||||
*/
|
||||
int DiagramPrintDialog::horizontalPagesCount(bool fullpage) const {
|
||||
// note : pageRect et Paper Rect tiennent compte de l'orientation du papier
|
||||
QRect printable_area = fullpage ? printer -> paperRect() : printer -> pageRect();
|
||||
QRect diagram_rect = diagram -> border().toRect();
|
||||
|
||||
int h_pages_count = int(ceil(qreal(diagram_rect.width()) / qreal(printable_area.width())));
|
||||
return(h_pages_count);
|
||||
}
|
||||
|
||||
/**
|
||||
@param fullPage true pour utiliser toute la feuille dans le calcul
|
||||
@return La largeur du "poster" en nombre de pages pour imprimer le schema
|
||||
avec l'orientation et le format papier utilise dans l'imprimante en cours.
|
||||
*/
|
||||
int DiagramPrintDialog::verticalPagesCount(bool fullpage) const {
|
||||
// note : pageRect et Paper Rect tiennent compte de l'orientation du papier
|
||||
QRect printable_area = fullpage ? printer -> paperRect() : printer -> pageRect();
|
||||
QRect diagram_rect = diagram -> border().toRect();
|
||||
|
||||
int v_pages_count = int(ceil(qreal(diagram_rect.height()) / qreal(printable_area.height())));
|
||||
return(v_pages_count);
|
||||
}
|
||||
|
||||
/**
|
||||
Construit un dialogue non standard pour demander les pages a imprimer a l'utilisateur
|
||||
*/
|
||||
void DiagramPrintDialog::buildDialog() {
|
||||
dialog = new QDialog();
|
||||
dialog -> setWindowTitle(tr("Options d'impression"));
|
||||
options_label = new QLabel();
|
||||
use_full_page = new QCheckBox(tr("Utiliser toute la feuille"));
|
||||
fit_diagram_to_page = new QCheckBox(tr("Adapter le sch\351ma \340 la page"));
|
||||
range_from_label = new QLabel(tr("Plage de "));
|
||||
start_page = new QSpinBox();
|
||||
to_label = new QLabel(tr(" \340 "));
|
||||
end_page = new QSpinBox();
|
||||
buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
|
||||
QHBoxLayout *pages_layout = new QHBoxLayout();
|
||||
pages_layout -> addWidget(range_from_label);
|
||||
pages_layout -> addWidget(start_page);
|
||||
pages_layout -> addWidget(to_label);
|
||||
pages_layout -> addWidget(end_page);
|
||||
|
||||
QVBoxLayout *dialog_layout = new QVBoxLayout(dialog);
|
||||
dialog_layout -> addWidget(options_label);
|
||||
dialog_layout -> addWidget(use_full_page);
|
||||
dialog_layout -> addWidget(fit_diagram_to_page);
|
||||
dialog_layout -> addLayout(pages_layout);
|
||||
dialog_layout -> addStretch();
|
||||
dialog_layout -> addWidget(buttons);
|
||||
|
||||
connect(use_full_page, SIGNAL(stateChanged(int)), this, SLOT(updateDialog()));
|
||||
connect(fit_diagram_to_page, SIGNAL(stateChanged(int)), this, SLOT(updateDialog()));
|
||||
connect(start_page, SIGNAL(valueChanged(int)), this, SLOT(checkStartPage()));
|
||||
connect(end_page, SIGNAL(valueChanged(int)), this, SLOT(checkEndPage()));
|
||||
connect(buttons, SIGNAL(accepted()), dialog, SLOT(accept()));
|
||||
connect(buttons, SIGNAL(rejected()), dialog, SLOT(reject()));
|
||||
|
||||
updateDialog();
|
||||
}
|
||||
|
||||
/**
|
||||
Assure la coherence du dialogue
|
||||
*/
|
||||
void DiagramPrintDialog::updateDialog() {
|
||||
int pages_count;
|
||||
// si on adapte le schema a la page, alors il n'y a qu'une page a imprimer
|
||||
if (fit_diagram_to_page -> isChecked()) {
|
||||
pages_count = 1;
|
||||
} else {
|
||||
pages_count = pagesCount(use_full_page -> isChecked());
|
||||
}
|
||||
options_label -> setText(tr("Nombre total de pages : ") + QString("%1").arg(pages_count));
|
||||
setPagesRangeVisible(pages_count > 1);
|
||||
start_page -> setRange(1, pages_count);
|
||||
end_page -> setRange(1, pages_count);
|
||||
end_page -> setValue(pages_count);
|
||||
}
|
||||
|
||||
/**
|
||||
S'assure que la premiere page ne soit pas superieure a la derniere page
|
||||
*/
|
||||
void DiagramPrintDialog::checkStartPage() {
|
||||
if (start_page -> value() > end_page -> value()) {
|
||||
start_page -> blockSignals(true);
|
||||
start_page -> setValue(end_page -> value());
|
||||
start_page -> blockSignals(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
S'assure que la derniere page ne soit pas inferieure a la premiere page
|
||||
*/
|
||||
void DiagramPrintDialog::checkEndPage() {
|
||||
if (end_page -> value() < start_page -> value()) {
|
||||
end_page -> blockSignals(true);
|
||||
end_page -> setValue(start_page -> value());
|
||||
end_page -> blockSignals(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@param visible true pour afficher les pages, false sinon
|
||||
*/
|
||||
void DiagramPrintDialog::setPagesRangeVisible(bool visible) {
|
||||
range_from_label -> setVisible(visible);
|
||||
start_page -> setVisible(visible);
|
||||
to_label -> setVisible(visible);
|
||||
end_page -> setVisible(visible);
|
||||
}
|
||||
|
||||
/**
|
||||
Effectue l'impression elle-meme
|
||||
*/
|
||||
void DiagramPrintDialog::print() {
|
||||
// recupere les informations collectees dans le second dialogue
|
||||
bool full_page = use_full_page -> isChecked();
|
||||
bool fit_page = fit_diagram_to_page -> isChecked();
|
||||
int first_page = start_page -> value();
|
||||
int last_page = end_page -> value();
|
||||
|
||||
// parametre l'imprimante
|
||||
printer -> setFullPage(full_page);
|
||||
|
||||
// QPainter utiliser pour effectuer le rendu
|
||||
QPainter qp(printer);
|
||||
|
||||
// impression physique (!= fichier PDF)
|
||||
if (printer -> outputFileName().isEmpty()) {
|
||||
// lorsqu'on imprime en paysage sur imprimante reelle, il faut pivoter soi-meme le rendu
|
||||
if (printer -> orientation() == QPrinter::Landscape) {
|
||||
qp.rotate(90.0);
|
||||
qp.translate(0.0, -printer -> pageRect().height());
|
||||
}
|
||||
}
|
||||
|
||||
diagram -> setDisplayGrid(false);
|
||||
diagram -> setDrawTerminals(false);
|
||||
|
||||
if (fit_page) {
|
||||
// impression adaptee sur une seule page
|
||||
diagram -> render(&qp, QRectF(), diagram -> border(), Qt::KeepAspectRatio);
|
||||
} else {
|
||||
// impression sur une ou plusieurs pages
|
||||
QRect diagram_rect = diagram -> border().toRect();
|
||||
QRect printed_area = full_page ? printer -> paperRect() : printer -> pageRect();
|
||||
int used_width = printed_area.width();
|
||||
int used_height = printed_area.height();
|
||||
int h_pages_count = horizontalPagesCount(full_page);
|
||||
int v_pages_count = verticalPagesCount(full_page);
|
||||
|
||||
QVector< QVector< QRect > > pages_grid;
|
||||
// le schema est imprime sur une matrice de feuilles
|
||||
// parcourt les lignes de la matrice
|
||||
int y_offset = 0;
|
||||
for (int i = 0 ; i < v_pages_count ; ++ i) {
|
||||
pages_grid << QVector< QRect >();
|
||||
|
||||
// parcourt les feuilles de la ligne
|
||||
int x_offset = 0;
|
||||
for (int j = 0 ; j < h_pages_count ; ++ j) {
|
||||
pages_grid.last() << QRect(
|
||||
QPoint(x_offset, y_offset),
|
||||
QSize(
|
||||
qMin(used_width, diagram_rect.width() - x_offset),
|
||||
qMin(used_height, diagram_rect.height() - y_offset)
|
||||
)
|
||||
);
|
||||
x_offset += used_width;
|
||||
}
|
||||
|
||||
y_offset += used_height;
|
||||
}
|
||||
|
||||
// ne retient que les pages a imprimer
|
||||
QVector<QRect> pages_to_print;
|
||||
for (int i = 0 ; i < v_pages_count ; ++ i) {
|
||||
for (int j = 0 ; j < h_pages_count ; ++ j) {
|
||||
int page_number = (i * h_pages_count) + j + 1;
|
||||
if (page_number >= first_page && page_number <= last_page) {
|
||||
pages_to_print << pages_grid.at(i).at(j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// parcourt les pages pour impression
|
||||
for (int i = 0 ; i < pages_to_print.count() ; ++ i) {
|
||||
QRect current_rect(pages_to_print.at(i));
|
||||
diagram -> render(
|
||||
&qp,
|
||||
QRect(QPoint(0,0), current_rect.size()),
|
||||
current_rect.translated(diagram_rect.topLeft()),
|
||||
Qt::KeepAspectRatio
|
||||
);
|
||||
if (i != pages_to_print.count() - 1) {
|
||||
printer -> newPage();
|
||||
}
|
||||
}
|
||||
}
|
||||
diagram -> setDrawTerminals(true);
|
||||
diagram -> setDisplayGrid(true);
|
||||
}
|
||||
@@ -1,128 +0,0 @@
|
||||
/*
|
||||
Copyright 2006-2007 Xavier Guerrin
|
||||
This file is part of QElectroTech.
|
||||
|
||||
QElectroTech is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
QElectroTech is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "elementview.h"
|
||||
/**
|
||||
Constructeur
|
||||
@param scene ElementScene visualisee par cette ElementView
|
||||
@param parent QWidget parent de cette ElementView
|
||||
*/
|
||||
ElementView::ElementView(ElementScene *scene, QWidget *parent) :
|
||||
QGraphicsView(scene, parent),
|
||||
scene_(scene)
|
||||
{
|
||||
setInteractive(true);
|
||||
setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||
setResizeAnchor(QGraphicsView::AnchorUnderMouse);
|
||||
zoomReset();
|
||||
}
|
||||
|
||||
/// Destructeur
|
||||
ElementView::~ElementView() {
|
||||
}
|
||||
|
||||
/// @return l'ElementScene visualisee par cette ElementView
|
||||
ElementScene *ElementView::scene() const {
|
||||
return(scene_);
|
||||
}
|
||||
|
||||
/**
|
||||
Definit l'ElementScene visualisee par cette ElementView
|
||||
@param s l'ElementScene visualisee par cette ElementView
|
||||
*/
|
||||
void ElementView::setScene(ElementScene *s) {
|
||||
QGraphicsView::setScene(s);
|
||||
scene_ = s;
|
||||
}
|
||||
|
||||
/**
|
||||
Gere les evenements envoyes a la vue.
|
||||
Methode reimplentee pour gerer le conflit de raccourcis avec Suppr
|
||||
(supprimer une partie ou supprimer le caractere suivant)
|
||||
@param e evenement a gerer
|
||||
*/
|
||||
bool ElementView::event(QEvent *e) {
|
||||
if (e -> type() == QEvent::ShortcutOverride && scene_ -> focusItem()) {
|
||||
e -> accept();
|
||||
return(true);
|
||||
}
|
||||
return(QGraphicsView::event(e));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Agrandit le schema (+33% = inverse des -25 % de zoomMoins())
|
||||
*/
|
||||
void ElementView::zoomIn() {
|
||||
scale(4.0/3.0, 4.0/3.0);
|
||||
}
|
||||
|
||||
/**
|
||||
Retrecit le schema (-25% = inverse des +33 % de zoomPlus())
|
||||
*/
|
||||
void ElementView::zoomOut() {
|
||||
scale(0.75, 0.75);
|
||||
}
|
||||
|
||||
/**
|
||||
Agrandit ou rectrecit le schema de facon a ce que tous les elements du
|
||||
schema soient visibles a l'ecran. S'il n'y a aucun element sur le schema,
|
||||
le zoom est reinitialise
|
||||
*/
|
||||
void ElementView::zoomFit() {
|
||||
adjustSceneRect();
|
||||
fitInView(sceneRect(), Qt::KeepAspectRatio);
|
||||
}
|
||||
|
||||
/**
|
||||
Reinitialise le zoom
|
||||
*/
|
||||
void ElementView::zoomReset() {
|
||||
resetMatrix();
|
||||
scale(4.0, 4.0);
|
||||
}
|
||||
|
||||
/**
|
||||
Ajuste le sceneRect (zone du schema visualisee par l'ElementView) afin que
|
||||
celui inclut a la fois les parties dans et en dehors du cadre et le cadre
|
||||
lui-meme.
|
||||
*/
|
||||
void ElementView::adjustSceneRect() {
|
||||
QRectF old_scene_rect = scene_ -> sceneRect();
|
||||
QRectF new_scene_rect = scene_ -> sceneContent();
|
||||
setSceneRect(new_scene_rect);
|
||||
|
||||
// met a jour la scene
|
||||
scene_ -> update(old_scene_rect.united(new_scene_rect));
|
||||
}
|
||||
|
||||
/**
|
||||
Gere les actions liees a la rollette de la souris
|
||||
@param e QWheelEvent decrivant l'evenement rollette
|
||||
*/
|
||||
void ElementView::wheelEvent(QWheelEvent *e) {
|
||||
// si la touche Ctrl est enfoncee, on zoome / dezoome
|
||||
if (e -> modifiers() & Qt::ControlModifier) {
|
||||
if (e -> delta() > 0) {
|
||||
zoomIn();
|
||||
} else {
|
||||
zoomOut();
|
||||
}
|
||||
} else {
|
||||
QAbstractScrollArea::wheelEvent(e);
|
||||
}
|
||||
}
|
||||
@@ -1,115 +0,0 @@
|
||||
/*
|
||||
Copyright 2006-2007 Xavier Guerrin
|
||||
This file is part of QElectroTech.
|
||||
|
||||
QElectroTech is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
QElectroTech is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "lineeditor.h"
|
||||
#include "partline.h"
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
@param editor L'editeur d'element concerne
|
||||
@param line La ligne a editer
|
||||
@param parent le Widget parent
|
||||
*/
|
||||
LineEditor::LineEditor(QETElementEditor *editor, PartLine *line, QWidget *parent) : ElementItemEditor(editor, parent) {
|
||||
|
||||
part = line;
|
||||
|
||||
x1 = new QLineEdit();
|
||||
y1 = new QLineEdit();
|
||||
x2 = new QLineEdit();
|
||||
y2 = new QLineEdit();
|
||||
|
||||
x1 -> setValidator(new QDoubleValidator(x1));
|
||||
y1 -> setValidator(new QDoubleValidator(y1));
|
||||
x2 -> setValidator(new QDoubleValidator(x2));
|
||||
y2 -> setValidator(new QDoubleValidator(y2));
|
||||
|
||||
QGridLayout *grid = new QGridLayout(this);
|
||||
grid -> addWidget(new QLabel("x1"), 0, 0);
|
||||
grid -> addWidget(x1, 0, 1);
|
||||
grid -> addWidget(new QLabel("y1"), 0, 2);
|
||||
grid -> addWidget(y1, 0, 3);
|
||||
grid -> addWidget(new QLabel("x2"), 1, 0);
|
||||
grid -> addWidget(x2, 1, 1);
|
||||
grid -> addWidget(new QLabel("y2"), 1, 2);
|
||||
grid -> addWidget(y2, 1, 3);
|
||||
|
||||
updateForm();
|
||||
}
|
||||
|
||||
/// Destructeur
|
||||
LineEditor::~LineEditor() {
|
||||
}
|
||||
|
||||
/**
|
||||
Met a jour la ligne a partir des donnees du formulaire
|
||||
*/
|
||||
void LineEditor::updateLine() {
|
||||
part -> setLine(
|
||||
QLineF(
|
||||
part -> mapFromScene(
|
||||
x1 -> text().toDouble(),
|
||||
y1 -> text().toDouble()
|
||||
),
|
||||
part -> mapFromScene(
|
||||
x2 -> text().toDouble(),
|
||||
y2 -> text().toDouble()
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/// Met a jour l'abscisse du premier point de la ligne et cree un objet d'annulation
|
||||
void LineEditor::updateLineX1() { addChangePartCommand(tr("abscisse point 1"), part, "x1", x1 -> text().toDouble()); }
|
||||
/// Met a jour l'ordonnee du premier point de la ligne et cree un objet d'annulation
|
||||
void LineEditor::updateLineY1() { addChangePartCommand(tr("ordonn\351e point 1"), part, "y1", y1 -> text().toDouble()); }
|
||||
/// Met a jour l'abscisse du second point de la ligne et cree un objet d'annulation
|
||||
void LineEditor::updateLineX2() { addChangePartCommand(tr("abscisse point 2"), part, "x2", x2 -> text().toDouble()); }
|
||||
/// Met a jour l'ordonnee du second point de la ligne et cree un objet d'annulation
|
||||
void LineEditor::updateLineY2() { addChangePartCommand(tr("ordonn\351e point 2"), part, "y2", y2 -> text().toDouble()); }
|
||||
|
||||
/**
|
||||
Met a jour le formulaire d'edition
|
||||
*/
|
||||
void LineEditor::updateForm() {
|
||||
activeConnections(false);
|
||||
QPointF p1(part -> sceneP1());
|
||||
QPointF p2(part -> sceneP2());
|
||||
x1 -> setText(QString("%1").arg(p1.x()));
|
||||
y1 -> setText(QString("%1").arg(p1.y()));
|
||||
x2 -> setText(QString("%1").arg(p2.x()));
|
||||
y2 -> setText(QString("%1").arg(p2.y()));
|
||||
activeConnections(true);
|
||||
}
|
||||
|
||||
/**
|
||||
Active ou desactive les connexionx signaux/slots entre les widgets internes.
|
||||
@param active true pour activer les connexions, false pour les desactiver
|
||||
*/
|
||||
void LineEditor::activeConnections(bool active) {
|
||||
if (active) {
|
||||
connect(x1, SIGNAL(editingFinished()), this, SLOT(updateLineX1()));
|
||||
connect(y1, SIGNAL(editingFinished()), this, SLOT(updateLineY1()));
|
||||
connect(x2, SIGNAL(editingFinished()), this, SLOT(updateLineX2()));
|
||||
connect(y2, SIGNAL(editingFinished()), this, SLOT(updateLineY2()));
|
||||
} else {
|
||||
connect(x1, SIGNAL(editingFinished()), this, SLOT(updateLineX1()));
|
||||
connect(y1, SIGNAL(editingFinished()), this, SLOT(updateLineY1()));
|
||||
connect(x2, SIGNAL(editingFinished()), this, SLOT(updateLineX2()));
|
||||
connect(y2, SIGNAL(editingFinished()), this, SLOT(updateLineY2()));
|
||||
}
|
||||
}
|
||||
@@ -1,253 +0,0 @@
|
||||
/*
|
||||
Copyright 2006-2007 Xavier Guerrin
|
||||
This file is part of QElectroTech.
|
||||
|
||||
QElectroTech is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
QElectroTech is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "partline.h"
|
||||
#include "lineeditor.h"
|
||||
#include <cmath>
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
@param editor L'editeur d'element concerne
|
||||
@param parent Le QGraphicsItem parent de cette ligne
|
||||
@param scene La scene sur laquelle figure cette ligne
|
||||
*/
|
||||
PartLine::PartLine(QETElementEditor *editor, QGraphicsItem *parent, QGraphicsScene *scene) : QGraphicsLineItem(parent, scene), CustomElementGraphicPart(editor) {
|
||||
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
|
||||
setAcceptedMouseButtons(Qt::LeftButton);
|
||||
informations = new LineEditor(elementEditor(), this);
|
||||
informations -> setElementTypeName(name());
|
||||
style_editor -> appendWidget(informations);
|
||||
style_editor -> setElementTypeName(name());
|
||||
}
|
||||
|
||||
/// Destructeur
|
||||
PartLine::~PartLine() {
|
||||
}
|
||||
|
||||
/**
|
||||
Dessine la ligne
|
||||
@param painter QPainter a utiliser pour rendre le dessin
|
||||
@param options Options pour affiner le rendu
|
||||
@param widget Widget sur lequel le rendu est effectue
|
||||
*/
|
||||
void PartLine::paint(QPainter *painter, const QStyleOptionGraphicsItem */*q*/, QWidget */*w*/) {
|
||||
applyStylesToQPainter(*painter);
|
||||
QPen t = painter -> pen();
|
||||
if (isSelected()) {
|
||||
t.setColor(Qt::red);
|
||||
painter -> setPen(t);
|
||||
}
|
||||
painter -> setBrush(Qt::NoBrush);
|
||||
painter -> drawLine(line());
|
||||
}
|
||||
|
||||
/**
|
||||
Exporte la ligne en XML
|
||||
@param xml_document Document XML a utiliser pour creer l'element XML
|
||||
@return un element XML decrivant la ligne
|
||||
*/
|
||||
const QDomElement PartLine::toXml(QDomDocument &xml_document) const {
|
||||
|
||||
QPointF p1(sceneP1());
|
||||
QPointF p2(sceneP2());
|
||||
|
||||
QDomElement xml_element = xml_document.createElement("line");
|
||||
xml_element.setAttribute("x1", p1.x());
|
||||
xml_element.setAttribute("y1", p1.y());
|
||||
xml_element.setAttribute("x2", p2.x());
|
||||
xml_element.setAttribute("y2", p2.y());
|
||||
stylesToXml(xml_element);
|
||||
return(xml_element);
|
||||
}
|
||||
|
||||
/**
|
||||
Importe les proprietes d'une ligne depuis un element XML
|
||||
@param qde Element XML a lire
|
||||
*/
|
||||
void PartLine::fromXml(const QDomElement &qde) {
|
||||
stylesFromXml(qde);
|
||||
setLine(
|
||||
QLineF(
|
||||
mapFromScene(
|
||||
qde.attribute("x1", "0").toDouble(),
|
||||
qde.attribute("y1", "0").toDouble()
|
||||
),
|
||||
mapFromScene(
|
||||
qde.attribute("x2", "0").toDouble(),
|
||||
qde.attribute("y2", "0").toDouble()
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
Specifie la valeur d'une propriete donnee de la ligne
|
||||
@param property propriete a modifier. Valeurs acceptees :
|
||||
* x1 : abscisse du premier point
|
||||
* y1 : ordonnee du second point
|
||||
* x2 : abscisse du premier point
|
||||
* y2 : ordonnee du second point
|
||||
@param value Valeur a attribuer a la propriete
|
||||
*/
|
||||
void PartLine::setProperty(const QString &property, const QVariant &value) {
|
||||
CustomElementGraphicPart::setProperty(property, value);
|
||||
if (!value.canConvert(QVariant::Double)) return;
|
||||
QPointF new_p1(sceneP1()), new_p2(sceneP2());
|
||||
bool setline = true;
|
||||
if (property == "x1") {
|
||||
new_p1.setX(value.toDouble());
|
||||
} else if (property == "y1") {
|
||||
new_p1.setY(value.toDouble());
|
||||
} else if (property == "x2") {
|
||||
new_p2.setX(value.toDouble());
|
||||
} else if (property == "y2") {
|
||||
new_p2.setY(value.toDouble());
|
||||
} else setline = false;
|
||||
setLine(QLineF(mapFromScene(new_p1), mapFromScene(new_p2)));
|
||||
}
|
||||
|
||||
/**
|
||||
Permet d'acceder a la valeur d'une propriete donnee de la ligne
|
||||
@param property propriete lue. Valeurs acceptees :
|
||||
* x1 : abscisse du premier point
|
||||
* y1 : ordonnee du second point
|
||||
* x2 : abscisse du premier point
|
||||
* y2 : ordonnee du second point
|
||||
@return La valeur de la propriete property
|
||||
*/
|
||||
QVariant PartLine::property(const QString &property) {
|
||||
// appelle la methode property de CustomElementGraphicpart pour les styles
|
||||
QVariant style_property = CustomElementGraphicPart::property(property);
|
||||
if (style_property != QVariant()) return(style_property);
|
||||
|
||||
if (property == "x1") {
|
||||
return(sceneP1().x());
|
||||
} else if (property == "y1") {
|
||||
return(sceneP1().y());
|
||||
} else if (property == "x2") {
|
||||
return(sceneP2().x());
|
||||
} else if (property == "y2") {
|
||||
return(sceneP2().y());
|
||||
}
|
||||
return(QVariant());
|
||||
}
|
||||
|
||||
/**
|
||||
Gere les changements intervenant sur cette partie
|
||||
@param change Type de changement
|
||||
@param value Valeur numerique relative au changement
|
||||
*/
|
||||
QVariant PartLine::itemChange(GraphicsItemChange change, const QVariant &value) {
|
||||
if (scene()) {
|
||||
if (change == QGraphicsItem::ItemPositionChange || change == QGraphicsItem::ItemSelectedChange) {
|
||||
informations -> updateForm();
|
||||
}
|
||||
}
|
||||
return(QGraphicsLineItem::itemChange(change, value));
|
||||
}
|
||||
|
||||
/**
|
||||
@return le premier point, dans les coordonnees de la scene.
|
||||
*/
|
||||
QPointF PartLine::sceneP1() const {
|
||||
return(mapToScene(line().p1()));
|
||||
}
|
||||
|
||||
/**
|
||||
@return le second point, dans les coordonnees de la scene.
|
||||
*/
|
||||
QPointF PartLine::sceneP2() const {
|
||||
return(mapToScene(line().p2()));
|
||||
}
|
||||
|
||||
/**
|
||||
@return la forme selectionnable de la ligne
|
||||
*/
|
||||
QPainterPath PartLine::shape() const {
|
||||
QList<QPointF> points = fourShapePoints();
|
||||
QPainterPath t;
|
||||
t.setFillRule(Qt::WindingFill);
|
||||
t.moveTo(points.at(0));
|
||||
t.lineTo(points.at(1));
|
||||
t.lineTo(points.at(2));
|
||||
t.lineTo(points.at(3));
|
||||
t.lineTo(points.at(0));
|
||||
return(t);
|
||||
}
|
||||
|
||||
/**
|
||||
@return une liste contenant les deux points de la droite + les 4 points entourant ces deux points
|
||||
*/
|
||||
QList<QPointF> PartLine::fourShapePoints() const {
|
||||
const qreal marge = 2.0;
|
||||
// on a donc A(xa , ya) et B(xb, yb)
|
||||
QPointF a = line().p1();
|
||||
QPointF b = line().p2();
|
||||
|
||||
QList<QPointF> result;
|
||||
|
||||
// cas particulier : la droite se ramene a un point
|
||||
if (a == b) {
|
||||
result << QPointF(a.x() - marge, a.y() - marge);
|
||||
result << QPointF(a.x() - marge, a.y() + marge);
|
||||
result << QPointF(a.x() + marge, a.y() + marge);
|
||||
result << QPointF(a.x() + marge, a.y() - marge);
|
||||
} else {
|
||||
|
||||
// on calcule le vecteur AB : (xb-xa, yb-ya)
|
||||
QPointF v_ab = b - a;
|
||||
|
||||
// et la distance AB : racine des coordonnees du vecteur au carre
|
||||
qreal ab = sqrt(pow(v_ab.x(), 2) + pow(v_ab.y(), 2));
|
||||
|
||||
// ensuite on definit le vecteur u(a, b) qui est egal au vecteur AB divise
|
||||
// par sa longueur et multiplie par la longueur de la marge que tu veux
|
||||
// laisser
|
||||
QPointF u = v_ab / ab * marge;
|
||||
|
||||
// on definit le vecteur v(-b , a) qui est perpendiculaire a AB
|
||||
QPointF v(-u.y(), u.x());
|
||||
QPointF m = -u + v; // on a le vecteur M = -u + v
|
||||
QPointF n = -u - v; // et le vecteur N=-u-v
|
||||
QPointF h = a + m; // H = A + M
|
||||
QPointF k = a + n; // K = A + N
|
||||
QPointF i = b - n; // I = B - N
|
||||
QPointF j = b - m; // J = B - M
|
||||
|
||||
result << h << i << j << k;
|
||||
}
|
||||
return(result);
|
||||
}
|
||||
|
||||
/**
|
||||
@return le rectangle delimitant cette partie.
|
||||
*/
|
||||
QRectF PartLine::boundingRect() const {
|
||||
qreal adjust = 1.5;
|
||||
QRectF r(QGraphicsLineItem::boundingRect());
|
||||
r.adjust(-adjust, -adjust, adjust, adjust);
|
||||
return(r);
|
||||
}
|
||||
|
||||
/**
|
||||
@return true si cette partie n'est pas pertinente et ne merite pas d'etre
|
||||
conservee / enregistree.
|
||||
Une ligne est pertinente des lors que ses deux points sont differents
|
||||
*/
|
||||
bool PartLine::isUseless() const {
|
||||
return(sceneP1() == sceneP2());
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Input</name>
|
||||
<name lang="fr" >Entrée</name>
|
||||
<name lang="es" >Entrada</name>
|
||||
</names>
|
||||
<description>
|
||||
<input x="-18" y="-10" size="9" rotate="true" text="_" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Input (down front)</name>
|
||||
<name lang="fr" >Entrée (front descendant)</name>
|
||||
<name lang="es" >Entrada (front descendant)</name>
|
||||
</names>
|
||||
<description>
|
||||
<text x="-4.25" y="5.25" size="9" text="N" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Inputs</name>
|
||||
<name lang="fr" >Entrées</name>
|
||||
<name lang="es" >Entradas</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Outputs</name>
|
||||
<name lang="fr" >Sorties</name>
|
||||
<name lang="es" >Salidas</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Output</name>
|
||||
<name lang="fr" >Sortie</name>
|
||||
<name lang="es" >Salida</name>
|
||||
</names>
|
||||
<description>
|
||||
<arc width="4" x="6" y="-5" antialias="true" height="10" style="line-style:normal;line-weight:normal;filling:none;color:black" start="80" angle="-160" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Output (reset)</name>
|
||||
<name lang="fr" >Sortie (reset)</name>
|
||||
<name lang="es" >Salida (reset)</name>
|
||||
</names>
|
||||
<description>
|
||||
<text x="-4.25" y="5.25" size="9" text="R" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Output (set)</name>
|
||||
<name lang="fr" >Sortie (set)</name>
|
||||
<name lang="es" >Salida (set)</name>
|
||||
</names>
|
||||
<description>
|
||||
<arc width="4" x="6" y="-5" antialias="true" height="10" style="line-style:normal;line-weight:normal;filling:none;color:black" start="80" angle="-160" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="fr">Ladder</name>
|
||||
<name lang="en">Ladder</name>
|
||||
<name lang="es">Ladder</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="fr">Automatisme</name>
|
||||
<name lang="en">Automatism</name>
|
||||
<name lang="es">Automática</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
16
elements/capteurs/appareils_de_mesure/amperemetre-h.elmt
Normal file
16
elements/capteurs/appareils_de_mesure/amperemetre-h.elmt
Normal file
@@ -0,0 +1,16 @@
|
||||
<definition width="50" version="0.2" hotspot_x="25" hotspot_y="15" height="30" type="element" orientation="dnnn" >
|
||||
<names>
|
||||
<name lang="en" >Horizontal ammeter</name>
|
||||
<name lang="fr" >Ampèremètre horizontal</name>
|
||||
<name lang="es" >Amperímetro horizontal</name>
|
||||
</names>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="-1.75" y2="0" x2="1.75" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="10" y2="0" x2="21" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="-21" y2="0" x2="-10" />
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="6" x1="-5" y2="-6" x2="0" y3="6" x3="5" />
|
||||
<circle x="-10" y="-10" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="20" />
|
||||
<terminal x="-21" y="0" orientation="w" />
|
||||
<terminal x="21" y="0" orientation="e" />
|
||||
</description>
|
||||
</definition>
|
||||
16
elements/capteurs/appareils_de_mesure/amperemetre-v.elmt
Normal file
16
elements/capteurs/appareils_de_mesure/amperemetre-v.elmt
Normal file
@@ -0,0 +1,16 @@
|
||||
<definition width="30" version="0.2" hotspot_x="15" hotspot_y="25" height="50" type="element" orientation="dnnn" >
|
||||
<names>
|
||||
<name lang="en" >Vertical ammeter</name>
|
||||
<name lang="fr" >Ampèremètre vertical</name>
|
||||
<name lang="es" >Amperímetro vertical</name>
|
||||
</names>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="-1.75" y2="0" x2="1.75" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="0" y2="21" x2="0" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-21" x1="0" y2="-10" x2="0" />
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="6" x1="-5" y2="-6" x2="0" y3="6" x3="5" />
|
||||
<circle x="-10" y="-10" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="20" />
|
||||
<terminal x="0" y="-21" orientation="n" />
|
||||
<terminal x="0" y="21" orientation="s" />
|
||||
</description>
|
||||
</definition>
|
||||
19
elements/capteurs/appareils_de_mesure/ohmmetre-h.elmt
Normal file
19
elements/capteurs/appareils_de_mesure/ohmmetre-h.elmt
Normal file
@@ -0,0 +1,19 @@
|
||||
<definition width="50" version="0.2" hotspot_x="25" hotspot_y="15" height="30" type="element" orientation="dnnn" >
|
||||
<names>
|
||||
<name lang="en" >Horizontal ohmmeter</name>
|
||||
<name lang="fr" >Ohmmètre horizontal</name>
|
||||
<name lang="es" >Óhmetro horizontal</name>
|
||||
</names>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="5" x1="-5" y2="5" x2="-3.25" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="5" x1="3.25" y2="5" x2="5" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="5" x1="-3.25" y2="3" x2="-3.25" />
|
||||
<arc width="10" x="-5" y="-6" antialias="true" height="10" style="line-style:normal;line-weight:normal;filling:none;color:black" start="225" angle="-270" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3" x1="3.25" y2="5" x2="3.25" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="10" y2="0" x2="21" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="-21" y2="0" x2="-10" />
|
||||
<circle x="-10" y="-10" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="20" />
|
||||
<terminal x="-21" y="0" orientation="w" />
|
||||
<terminal x="21" y="0" orientation="e" />
|
||||
</description>
|
||||
</definition>
|
||||
19
elements/capteurs/appareils_de_mesure/ohmmetre-v.elmt
Normal file
19
elements/capteurs/appareils_de_mesure/ohmmetre-v.elmt
Normal file
@@ -0,0 +1,19 @@
|
||||
<definition width="30" version="0.2" hotspot_x="15" hotspot_y="25" height="50" type="element" orientation="dnnn" >
|
||||
<names>
|
||||
<name lang="en" >Vertical ohmmeter</name>
|
||||
<name lang="fr" >Ohmmètre vertical</name>
|
||||
<name lang="es" >Óhmetro vertical</name>
|
||||
</names>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="5" x1="-5" y2="5" x2="-3.25" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="5" x1="3.25" y2="5" x2="5" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="5" x1="-3.25" y2="3" x2="-3.25" />
|
||||
<arc width="10" x="-5" y="-6" antialias="true" height="10" style="line-style:normal;line-weight:normal;filling:none;color:black" start="225" angle="-270" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3" x1="3.25" y2="5" x2="3.25" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="0" y2="21" x2="0" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-21" x1="0" y2="-10" x2="0" />
|
||||
<circle x="-10" y="-10" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="20" />
|
||||
<terminal x="0" y="-21" orientation="n" />
|
||||
<terminal x="0" y="21" orientation="s" />
|
||||
</description>
|
||||
</definition>
|
||||
7
elements/capteurs/appareils_de_mesure/qet_directory
Normal file
7
elements/capteurs/appareils_de_mesure/qet_directory
Normal file
@@ -0,0 +1,7 @@
|
||||
<qet-directory>
|
||||
<names>
|
||||
<name lang="en" >Measuring instruments</name>
|
||||
<name lang="fr" >Appareils de mesure</name>
|
||||
<name lang="es" >Instrumento de medición</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
15
elements/capteurs/appareils_de_mesure/voltmetre-h.elmt
Normal file
15
elements/capteurs/appareils_de_mesure/voltmetre-h.elmt
Normal file
@@ -0,0 +1,15 @@
|
||||
<definition width="50" version="0.2" hotspot_x="25" hotspot_y="15" height="30" type="element" orientation="dnnn" >
|
||||
<names>
|
||||
<name lang="en" >Horizontal voltmeter</name>
|
||||
<name lang="fr" >Voltmètre horizontal</name>
|
||||
<name lang="es" >Voltímetro horizontal</name>
|
||||
</names>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="10" y2="0" x2="21" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="-21" y2="0" x2="-10" />
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-6" x1="-5" y2="6" x2="0" y3="-6" x3="5" />
|
||||
<circle x="-10" y="-10" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="20" />
|
||||
<terminal x="-21" y="0" orientation="w" />
|
||||
<terminal x="21" y="0" orientation="e" />
|
||||
</description>
|
||||
</definition>
|
||||
15
elements/capteurs/appareils_de_mesure/voltmetre-v.elmt
Normal file
15
elements/capteurs/appareils_de_mesure/voltmetre-v.elmt
Normal file
@@ -0,0 +1,15 @@
|
||||
<definition width="30" version="0.2" hotspot_x="15" hotspot_y="25" height="50" type="element" orientation="dnnn" >
|
||||
<names>
|
||||
<name lang="en" >Vertical voltmeter</name>
|
||||
<name lang="fr" >Voltmètre vertical</name>
|
||||
<name lang="es" >Voltímetro vertical</name>
|
||||
</names>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="0" y2="21" x2="0" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-21" x1="0" y2="-10" x2="0" />
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-6" x1="-5" y2="6" x2="0" y3="-6" x3="5" />
|
||||
<circle x="-10" y="-10" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="20" />
|
||||
<terminal x="0" y="-21" orientation="n" />
|
||||
<terminal x="0" y="21" orientation="s" />
|
||||
</description>
|
||||
</definition>
|
||||
19
elements/capteurs/appareils_de_mesure/wattmetre-h.elmt
Normal file
19
elements/capteurs/appareils_de_mesure/wattmetre-h.elmt
Normal file
@@ -0,0 +1,19 @@
|
||||
<definition width="50" version="0.2" hotspot_x="25" hotspot_y="15" height="40" type="element" ic="true" orientation="dnnn" >
|
||||
<names>
|
||||
<name lang="en" >Horizontal wattmeter</name>
|
||||
<name lang="fr" >Wattmètre horizontal</name>
|
||||
<name lang="es" >Vatímetro horizontal</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="7.5" x1="7.5" y2="15" x2="10" y3="20" x3="10" />
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="7.5" x1="-7.5" y2="15" x2="-10" y3="20" x3="-10" />
|
||||
<polygon x4="2.5" y5="-6" x5="5" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-6" x1="-5" y2="6" x2="-2.5" y3="0" x3="0" y4="6" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="10" y2="0" x2="21" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="-21" y2="0" x2="-10" />
|
||||
<circle x="-10" y="-10" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="20" />
|
||||
<terminal x="-21" y="0" orientation="w" />
|
||||
<terminal x="21" y="0" orientation="e" />
|
||||
<terminal x="-10" y="20" orientation="s" />
|
||||
<terminal x="10" y="20" orientation="s" />
|
||||
</description>
|
||||
</definition>
|
||||
19
elements/capteurs/appareils_de_mesure/wattmetre-v.elmt
Normal file
19
elements/capteurs/appareils_de_mesure/wattmetre-v.elmt
Normal file
@@ -0,0 +1,19 @@
|
||||
<definition width="40" version="0.2" hotspot_x="15" hotspot_y="25" height="50" type="element" ic="true" orientation="dnnn" >
|
||||
<names>
|
||||
<name lang="en" >Vertical wattmeter</name>
|
||||
<name lang="fr" >Wattmètre vertical</name>
|
||||
<name lang="es" >Vatímetro vertical</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="7.5" x1="7.5" y2="10" x2="15" y3="10" x3="20" />
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-7.5" x1="7.5" y2="-10" x2="15" y3="-10" x3="20" />
|
||||
<polygon x4="2.5" y5="-6" x5="5" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-6" x1="-5" y2="6" x2="-2.5" y3="0" x3="0" y4="6" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="0" y2="21" x2="0" />
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-21" x1="0" y2="-10" x2="0" />
|
||||
<circle x="-10" y="-10" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="20" />
|
||||
<terminal x="0" y="-21" orientation="n" />
|
||||
<terminal x="0" y="21" orientation="s" />
|
||||
<terminal x="20" y="-10" orientation="e" />
|
||||
<terminal x="20" y="10" orientation="e" />
|
||||
</description>
|
||||
</definition>
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Transducers</name>
|
||||
<name lang="fr" >Capteurs</name>
|
||||
<name lang="es" >Sensores</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Sensors</name>
|
||||
<name lang="fr" >Sondes</name>
|
||||
<name lang="es" >Sondeos</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Current toroidal core</name>
|
||||
<name lang="fr" >Tores de courant</name>
|
||||
<name lang="es" >Toros de corriente</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >1-pole toroidal core</name>
|
||||
<name lang="fr" >Tore 1 pôle</name>
|
||||
<name lang="es" >Toro 1 polo</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="5" y2="-10" x2="5" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >2-poles toroidal core</name>
|
||||
<name lang="fr" >Tore 2 pôles</name>
|
||||
<name lang="es" >Toro 2 polos</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="5" y2="-10" x2="5" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >3-poles toroidal core</name>
|
||||
<name lang="fr" >Tore 3 pôles</name>
|
||||
<name lang="es" >Toro 3 polos</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="5" y2="-10" x2="5" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >4-poles toroidal core</name>
|
||||
<name lang="fr" >Tore 4 pôles</name>
|
||||
<name lang="es" >Toro 4 polos</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="5" y2="-10" x2="5" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Input terminal</name>
|
||||
<name lang="fr" >Borne entrée</name>
|
||||
<name lang="es" >Punto de entrada</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-5" x1="-4" y2="1" x2="0" y3="-5" x3="4" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Dual terminal</name>
|
||||
<name lang="fr" >Double borne</name>
|
||||
<name lang="es" >Borne doble</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-1" x1="-4" y2="5" x2="0" y3="-1" x3="4" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Output terminal</name>
|
||||
<name lang="fr" >Borne sortie</name>
|
||||
<name lang="es" >Punto de salida</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-1" x1="-4" y2="5" x2="0" y3="-1" x3="4" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Terminal block</name>
|
||||
<name lang="fr" >Borne continuité</name>
|
||||
<name lang="es" >Punto de combinación</name>
|
||||
</names>
|
||||
<description>
|
||||
<input x="5" y="8" size="7" text="_" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Terminal block</name>
|
||||
<name lang="fr" >Borne finale</name>
|
||||
<name lang="es" >Punto de unión</name>
|
||||
</names>
|
||||
<description>
|
||||
<input x="5" y="8" size="7" text="_" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Simple contact (tight)</name>
|
||||
<name lang="fr" >Contact simple (étanche)</name>
|
||||
<name lang="es" >Contactor simple (resistente al agua)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="-5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Simple contact (NC / tight)</name>
|
||||
<name lang="fr" >Contact simple (NF / étanche)</name>
|
||||
<name lang="es" >Contactor simple (NC / resistente al agua)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Tight</name>
|
||||
<name lang="fr" >Étanches</name>
|
||||
<name lang="es" >Resistentes al agua</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Limit (NC)</name>
|
||||
<name lang="fr" >Fin de course (NF)</name>
|
||||
<name lang="es" >Final de carrera (NC)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Limit</name>
|
||||
<name lang="fr" >Fin de course</name>
|
||||
<name lang="es" >Final de carrera</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="-5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en">Limits</name>
|
||||
<name lang="fr" >Fins de courses</name>
|
||||
<name lang="es" >Finales de carrera</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Switch 2 positions</name>
|
||||
<name lang="fr" >Interrupteur 2 positions</name>
|
||||
<name lang="es" >Interruptor 2 posiciones</name>
|
||||
</names>
|
||||
<description>
|
||||
<input x="22" y="-7" size="9" text="_" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Switch 3 positions including neutral</name>
|
||||
<name lang="fr" >Interrupteur 3 positions dont neutre</name>
|
||||
<name lang="es" >Interruptor 3 posiciones incluso neutro</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="1" x1="10" y2="4" x2="8" y3="4" x3="12" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Switch</name>
|
||||
<name lang="fr" >Interrupteur</name>
|
||||
<name lang="es" >Interruptor</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="-5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Switchs</name>
|
||||
<name lang="fr" >Interrupteurs</name>
|
||||
<name lang="es" >Interruptores</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Push-button</name>
|
||||
<name lang="fr" >Bouton poussoir</name>
|
||||
<name lang="es" >Pulsador</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="-5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Push-button (NC)</name>
|
||||
<name lang="fr" >Bouton poussoir (NF)</name>
|
||||
<name lang="es" >Pulsador (NC)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Push-buttons</name>
|
||||
<name lang="fr" >Poussoirs</name>
|
||||
<name lang="es" >Pulsadores</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<definition width="50" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" orientation="dnny" >
|
||||
<definition width="50" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" ic="true" orientation="dnny" >
|
||||
<names>
|
||||
<name lang="en" >Contact power contactor (NC)</name>
|
||||
<name lang="fr" >Contact puissance contacteur (NF)</name>
|
||||
<name lang="es" >Interruptor de potencia contactor (NC)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<definition width="60" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" orientation="dnny" >
|
||||
<definition width="60" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" ic="true" orientation="dnny" >
|
||||
<names>
|
||||
<name lang="en" >Contact power contactor (NC)</name>
|
||||
<name lang="fr" >Contact puissance contacteur (NF)</name>
|
||||
<name lang="es" >Interruptor de potencia contactor (NC)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="25" y2="10" x2="20" y3="20" x3="20" />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<definition width="70" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" orientation="dnny" >
|
||||
<definition width="70" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" ic="true" orientation="dnny" >
|
||||
<names>
|
||||
<name lang="en" >Contact power contactor (NC)</name>
|
||||
<name lang="fr" >Contact puissance contacteur (NF)</name>
|
||||
<name lang="es" >Interruptor de potencia contactor (NC)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<definition width="70" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" orientation="dnny" >
|
||||
<definition width="70" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" ic="true" orientation="dnny" >
|
||||
<names>
|
||||
<name lang="en" >Contact power contactor (NC)</name>
|
||||
<name lang="fr" >Contact puissance contacteur (NF)</name>
|
||||
<name lang="es" >Interruptor de potencia contactor (NC)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="15" y2="10" x2="10" y3="20" x3="10" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Normally closed</name>
|
||||
<name lang="fr" >Normalement fermés</name>
|
||||
<name lang="es" >Normalmente cerrados</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<definition width="40" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" orientation="dnny" >
|
||||
<definition width="40" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" ic="true" orientation="dnny" >
|
||||
<names>
|
||||
<name lang="en" >Contact power contactor</name>
|
||||
<name lang="fr" >Contact puissance contacteur</name>
|
||||
<name lang="es" >Interruptor de potencia contactor</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="-5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<definition width="60" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" orientation="dnny" >
|
||||
<definition width="60" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" ic="true" orientation="dnny" >
|
||||
<names>
|
||||
<name lang="en" >Contact power contactor</name>
|
||||
<name lang="fr" >Contact puissance contacteur</name>
|
||||
<name lang="es" >Interruptor de potencia contactor</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="15" y2="10" x2="20" y3="20" x3="20" />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<definition width="70" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" orientation="dnny" >
|
||||
<definition width="70" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" ic="true" orientation="dnny" >
|
||||
<names>
|
||||
<name lang="en" >Contact power contactor</name>
|
||||
<name lang="fr" >Contact puissance contacteur</name>
|
||||
<name lang="es" >Interruptor de potencia contactor</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="10" y3="20" x3="10" />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<definition width="70" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" orientation="dnny" >
|
||||
<definition width="70" version="0.1" hotspot_x="10" hotspot_y="25" height="50" type="element" ic="true" orientation="dnny" >
|
||||
<names>
|
||||
<name lang="en" >Contact power contactor</name>
|
||||
<name lang="fr" >Contact puissance contacteur</name>
|
||||
<name lang="es" >Interruptor de potencia contactor</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="10" y3="20" x3="10" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Normally open</name>
|
||||
<name lang="fr" >Normalement ouverts</name>
|
||||
<name lang="es" >Normalemente abiertos</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Power</name>
|
||||
<name lang="fr" >Puissance</name>
|
||||
<name lang="es" >Potencia</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Contacts</name>
|
||||
<name lang="fr" >Contacts</name>
|
||||
<name lang="es" >Contactos</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Contact relais thermique (NO)</name>
|
||||
<name lang="fr" >Contact relais thermique (NO)</name>
|
||||
<name lang="es" >Contacto relé térmico (NA)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="-5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Contact relais thermique (NC)</name>
|
||||
<name lang="fr" >Contact relais thermique (NF)</name>
|
||||
<name lang="es" >Contacto relé térmico (NC)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="fr">Relais thermiques</name>
|
||||
<name lang="en">Thermal relays</name>
|
||||
<name lang="es">Relés térmicos</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Simple contact</name>
|
||||
<name lang="fr" >Contact simple</name>
|
||||
<name lang="es" >Contacto simple</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="-5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Simple contact (NC)</name>
|
||||
<name lang="fr" >Contact simple (NF)</name>
|
||||
<name lang="es" >Contacto simple (NC)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Simple</name>
|
||||
<name lang="fr" >Simples</name>
|
||||
<name lang="es" >Simples</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Switch Delay</name>
|
||||
<name lang="fr" >Temporisés</name>
|
||||
<name lang="es" >Temporizadores</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Simple contact (NC / switch-off delay timer)</name>
|
||||
<name lang="fr" >Contact simple (NF / tempo repos)</name>
|
||||
<name lang="es" >Contacto simple (NC / temporizador a la deconexión)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Simple contact (switch-off delay timer)</name>
|
||||
<name lang="fr" >Contact simple (tempo repos)</name>
|
||||
<name lang="es" >Contacto simple (temporizador a la deconexión)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="-5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Switch-off delay</name>
|
||||
<name lang="fr" >Repos</name>
|
||||
<name lang="es" >Temporizadores a la deconexión</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Simple contact (NC / switch-on delay timer)</name>
|
||||
<name lang="fr" >Contact simple (NF / tempo travail)</name>
|
||||
<name lang="es" >Contacto simple (NC / temporizador a la conexión)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Simple contact (switch-on delay timer)</name>
|
||||
<name lang="fr" >Contact simple (tempo travail)</name>
|
||||
<name lang="es" >Contacto simple (temporizador a la conexión)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="-5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Switch-on delay</name>
|
||||
<name lang="fr" >Travail</name>
|
||||
<name lang="es" >Temporizadores a la conexión</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="fr" >Alternatif monophasé > Alternatif monophasé</name>
|
||||
<name lang="en" >One-phase alternating > One-phase alternating</name>
|
||||
<name lang="es" >Alterna monofásica > Alterna monofásica</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10" x1="-15" y2="-10" x2="-20" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="fr" >Alternatif monophasé > Continu</name>
|
||||
<name lang="en" >One-phase alternating > Direct</name>
|
||||
<name lang="es" >Alterna monofásica > Continua</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10" x1="-15" y2="-10" x2="-20" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="fr" >Continu > Alternatif monophasé</name>
|
||||
<name lang="en" >Direct > One-phase alternating</name>
|
||||
<name lang="es" >Continua > Alterna monofásica</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10" x1="-15" y2="-10" x2="-20" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="fr" >Continu > Continu</name>
|
||||
<name lang="en" >Direct > Direct</name>
|
||||
<name lang="es" >Continua > Continua</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10" x1="-15" y2="-10" x2="-20" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Boxes</name>
|
||||
<name lang="fr" >Blocs</name>
|
||||
<name lang="es" >Bloques</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="fr" >Convertisseurs</name>
|
||||
<name lang="en" >Converters</name>
|
||||
<name lang="es" >Convertidores</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Emergency stop (NC)</name>
|
||||
<name lang="fr" >Arrêt d'urgence (NF)</name>
|
||||
<name lang="es" >Parada de emergencia (NC)</name>
|
||||
</names>
|
||||
<description>
|
||||
<polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" closed="false" y1="-10" x1="5" y2="10" x2="0" y3="20" x3="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur</name>
|
||||
<name lang="es" >Interruptor magnetotérmico</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" x1="0" y2="-10" x2="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur</name>
|
||||
<name lang="es" >Interruptor magnetotérmico</name>
|
||||
</names>
|
||||
<description>
|
||||
<input x="12.75" y="3" size="9" text="_" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur</name>
|
||||
<name lang="es" >Interruptor magnetotérmico</name>
|
||||
</names>
|
||||
<description>
|
||||
<input x="12.75" y="3" size="9" text="_" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur</name>
|
||||
<name lang="es" >Interruptor magnetotérmico</name>
|
||||
</names>
|
||||
<description>
|
||||
<input x="22.75" y="3" size="9" text="_" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur</name>
|
||||
<name lang="es" >Interruptor magnetotérmico</name>
|
||||
</names>
|
||||
<description>
|
||||
<input x="32.75" y="3" size="9" text="_" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur</name>
|
||||
<name lang="es" >Interruptor magnetotérmico</name>
|
||||
</names>
|
||||
<description>
|
||||
<input x="32.75" y="3" size="9" text="_" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Circuit-breakers</name>
|
||||
<name lang="fr" >Disjoncteurs</name>
|
||||
<name lang="es" >Interruptores magnetotérmicos</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Differential circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur différentiel</name>
|
||||
<name lang="es" >Dispositivo diferenciale residual</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" x1="0" y2="-10" x2="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Differential circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur différentiel</name>
|
||||
<name lang="es" >Dispositivo diferenciale residual</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" x1="0" y2="-10" x2="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Differential circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur différentiel</name>
|
||||
<name lang="es" >Dispositivo diferenciale residual</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" x1="0" y2="-10" x2="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Differential circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur différentiel</name>
|
||||
<name lang="es" >Dispositivo diferenciale residual</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" x1="0" y2="-10" x2="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Differential circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur différentiel</name>
|
||||
<name lang="es" >Dispositivo diferenciale residual</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" x1="0" y2="-10" x2="0" />
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<names>
|
||||
<name lang="en" >Differential circuit-breaker</name>
|
||||
<name lang="fr" >Disjoncteur différentiel</name>
|
||||
<name lang="es" >Dispositivo diferenciale residual</name>
|
||||
</names>
|
||||
<description>
|
||||
<line antialias="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" x1="0" y2="-10" x2="0" />
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<names>
|
||||
<name lang="en" >Differential circuit-breakers</name>
|
||||
<name lang="fr" >Disjoncteurs différentiels</name>
|
||||
<name lang="es" >Dispositivos diferenciales residuales</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user