mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c65413e61d |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +0,0 @@
|
||||
*.snap
|
||||
44
CREDIT
44
CREDIT
@@ -1,5 +1,7 @@
|
||||
[en]
|
||||
Thanks to Qt Software for their Qt library ( http://www.qtsoftware.com/ ), licensed under GNU/GPL.
|
||||
Thanks to Everaldo Coelho for the Crystal SVG icons theme ( http://www.iconfinder.com/iconsets/crystalproject) licensed under LGPL.
|
||||
Thanks to Nuno Pinheiro for the Oxygen icons theme ( http://www.oxygen-icons.org/ ) licensed under LGPL but also for the QElectroTech-dedicated icons.
|
||||
Thanks to the KDE project ( http://www.kde.org/ ).
|
||||
Thanks to Loic for his mathematics-related explanations.
|
||||
Thanks to Remi Collet for the Fedora packaging.
|
||||
@@ -8,7 +10,7 @@ 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.
|
||||
Thanks to Alfredo Carreto for his Spanish translations and fixing Spanish translations ( http://electronicosmx.net )
|
||||
Thanks to Alfredo Carreto for his Spanish translations and fixing Spanish translations ( http://electronicosmx.comxa.com )
|
||||
Thanks to 'Dr.Slump' and Sivio for their translations in Italian
|
||||
Thanks to Jose Carlos Martins for his translations in Portuguese
|
||||
Thanks to Pavel Fric for his translations in Czech
|
||||
@@ -30,6 +32,8 @@ Thanks to Mrbit for ebuild Gentoo packaging.
|
||||
|
||||
[fr]
|
||||
Merci à Qt Software pour la bibliothèque Qt ( http://www.qtsoftware.com/ ), sous licence GNU/GPL.
|
||||
Merci à Everaldo Coelho pour le thème d'icônes Crystal SVG ( http://www.iconfinder.com/iconsets/crystalproject ) sous licence LGPL.
|
||||
Merci à Nuno Pinheiro pour le thème d'icônes Oxygen ( http://www.oxygen-icons.org/ ) sous licence LGPL mais aussi pour les icônes dédiées à QElectroTech
|
||||
Merci au projet KDE ( http://www.kde.org/ ).
|
||||
Merci à Loic pour ses explications d'ordre mathématique.
|
||||
Merci à Remi Collet pour les paquets Fedora.
|
||||
@@ -38,7 +42,7 @@ 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.
|
||||
Merci à Alfredo Carreto pour ses traductions et corrections en espagnol ( http://electronicosmx.net )
|
||||
Merci à Alfredo Carreto pour ses traductions et corrections en espagnol ( http://electronicosmx.comxa.com )
|
||||
Merci à 'Dr.Slump' et Sivio pour leurs traductions en italien
|
||||
Merci à Jose Carlos Martins pour ses traductions en portugais
|
||||
Merci à Pavel Fric pour ses traductions en Tchèque
|
||||
@@ -60,6 +64,8 @@ Merci à Mrbit for ebuild les paquets Gentoo
|
||||
|
||||
[ru]
|
||||
Спасибо Qt Software за их библиотеку Qt ( http://www.qtsoftware.com/ ), лицензированную на условиях GNU/GPL.
|
||||
Спасибо Everaldo Coelho за тему значков Crystal SVG ( http://www.iconfinder.com/iconsets/crystalproject ) лицензированную на условиях LGPL.
|
||||
Спасибо Nuno Pinheiro за тему значков Oxygen ( http://www.oxygen-icons.org/ ) лицензированную на условиях LGPL, а также за значки связанные с QElectroTech.
|
||||
Спасибо проекту KDE ( http://www.kde.org/ ).
|
||||
Спасибо Loic за объяснения связанные с математикой.
|
||||
Спасибо Remi Collet за пакет для Fedora.
|
||||
@@ -68,11 +74,13 @@ Merci à Mrbit for ebuild les paquets Gentoo
|
||||
Спасибо TuxFamily ( http://tuxfamily.org/ ) за хостинг для проекта.
|
||||
Спасибо `Nishiki' за элементы и поддержку.
|
||||
Спасибо qtcentre.org за их класс SingleApplication.
|
||||
Спасибо Alfredo Carreto за исправления и перевод на испанский ( http://electronicosmx.net )
|
||||
Спасибо Alfredo Carreto за исправления и перевод на испанский ( http://electronicosmx.comxa.com )
|
||||
Спасибо 'Dr.Slump' за исправления и перевод
|
||||
|
||||
[pt]
|
||||
Agradecimentos a Qt Software pela sua biblioteca Qt ( http://www.qtsoftware.com/ ), licenciada de acordo com a GNU/GPL.
|
||||
Agradecimentos a Everaldo Coelho pelo tema de ícones Crystal SVG ( http://www.iconfinder.com/iconsets/crystalproject ), licenciado de acordo com a LGPL.
|
||||
Agradecimentos a Nuno Pinheiro pelo tema de ícones Oxygen e em especial pelos ícones dedicados ao programa QElectroTech ( http://www.oxygen-icons.org/ ), lincenciado de acordo com a LGPL.
|
||||
Agradecimentos ao projecto KDE ( http://www.kde.org/ ).
|
||||
Agradecimentos a Loic pelas suas explicações relacionadas com problemas matemáticos.
|
||||
Agradecimentos a Remi Collet pela criação dos pacotes para Fedora.
|
||||
@@ -81,11 +89,13 @@ Agradecimentos a "trem" pela criação dos pacotes para Mandriva.
|
||||
Agradecimentos a TuxFamily ( http://tuxfamily.org/ ) por albergarem este projecto.
|
||||
Agradecimentos a "Nishiki" pela criação de elementos e o seu suporte.
|
||||
Agradecimentos a qtcentre.org pela classe SingleApplication.
|
||||
Agradecimentos a Alfredo Carreto pela tradução para Espanhol e pela correcção de traduções em Espanhol ( http://electronicosmx.net ).
|
||||
Agradecimentos a Alfredo Carreto pela tradução para Espanhol e pela correcção de traduções em Espanhol ( http://electronicosmx.comxa.com ).
|
||||
Agradecimentos a 'Dr.Slump'pela tradução para italiano
|
||||
|
||||
[es]
|
||||
Agradecimientos a Qt Software por su biblioteca Qt ( http://www.qtsoftware.com/ ), licenciada bajo GNU/GPL.
|
||||
Agradecimientos a Everaldo Coelho por el tema de icónos Crystal SVG ( http://www.iconfinder.com/iconsets/crystalproject ), licenciado bajo LGPL.
|
||||
Agradecimientos a Nuno Pinheiro por el tema de icónos Oxygen y especialmente por los icónos dedicados al programa QElectroTech ( http://www.oxygen-icons.org/ ), licenciado bajo LGPL.
|
||||
Agradecimientos al proyecto KDE ( http://www.kde.org/ ).
|
||||
Agradecimientos a Loic por sus explicaciones relacionadas con problemas matemáticos.
|
||||
Agradecimientos a Remi Collet por criación de paquetes para Fedora.
|
||||
@@ -94,11 +104,13 @@ Agradecimientos a "trem" por creación de paquetes para Mandriva.
|
||||
Agradecimientos a TuxFamily ( http://tuxfamily.org/ ) por el alojamiento de este proyecto.
|
||||
Agradecimientos a "Nishiki" por creación de elementos e de su suporte.
|
||||
Agradecimientos a qtcentre.org por classe SingleApplication.
|
||||
Agradecimientos a Alfredo Carreto por sus traducciones en español y correcciones de traducción en español ( http://electronicosmx.net)
|
||||
Agradecimientos a Alfredo Carreto por sus traducciones en español y correcciones de traducción en español ( http://electronicosmx.comxa.com)
|
||||
Agradecimientos a 'Dr.Slump' por sus traducciones en italiano
|
||||
|
||||
[cs]
|
||||
Díky Qt Software za jejich knihovnu Qt ( http://www.qtsoftware.com/ ), pod licencí GNU/GPL.
|
||||
Díky Everaldovi Coelho za téma Crystal SVG icons theme ( http://www.iconfinder.com/iconsets/crystalproject ) pod licencí LGPL.
|
||||
Díky Nunovi Pinheirovi za téma ikon Oxygen ( http://www.oxygen-icons.org/ ) pod licencí LGPL ale také za ikony věnované QElectroTech.
|
||||
Díky projektu KDE ( http://www.kde.org/ ).
|
||||
Díky Loicovi za jeho vysvětlení vztahující se k matematice.
|
||||
Díky Remi Colletovi za balíček pro Fedoru.
|
||||
@@ -107,11 +119,13 @@ Díky `trem' za balíček pro Mandrivu.
|
||||
Díky TuxFamily ( http://tuxfamily.org/ ) za poskytování hostingu pro projekt.
|
||||
Díky `Nishiki' za jeho prvky a jeho podporu.
|
||||
Díky qtcentre.org za jejich třídu SingleApplication.
|
||||
Poděkování Alfredovi Carretovi za jeho španělský překlad a opravy španělského překladu ( http://electronicosmx.net )
|
||||
Poděkování Alfredovi Carretovi za jeho španělský překlad a opravy španělského překladu ( http://electronicosmx.comxa.com )
|
||||
Dìky 'Dr.Slump' za jeho italianský překlad
|
||||
|
||||
[pl]
|
||||
Podziękowania dla Qt Software, za biblioteki Qt (http://www.qtsoftware.com/) na licencji GNU / GPL.
|
||||
Podziękowania dla Everaldo Coelho, za ikony Crystal SVG ( http://www.iconfinder.com/iconsets/crystalproject) na licencji LGPL.
|
||||
Podziękowania dla Nun Pinheiro, za ikony Oxygen (http://www.oxygen-icons.org/) na licencji LGPL, a także za ikony przeznaczone do projektu QElectroTech.
|
||||
Podziękowania dla projektu KDE (http://www.kde.org/).
|
||||
Podziękowania dla Loic, za pomoc w rozwiązaniu problemów matematycznych.
|
||||
Podziękowania dla Remi Collet, za pakiety dla Fedory.
|
||||
@@ -120,10 +134,12 @@ Podziękowania dla "trem", za pakiety dla Mandrivy.
|
||||
Podziękowania dla TuxFamily (http://tuxfamily.org/), za organizację projektu.
|
||||
Podziękowanie dla "Nishiki", zajego elementy i poparcie.
|
||||
Podziękowania dla qtcentre.org, za klasę SingleApplication.
|
||||
Podziękowania dla Alfredo Carreto, za jego tłumaczenie na język hiszpański i korektę ( http://electronicosmx.net)
|
||||
Podziękowania dla Alfredo Carreto, za jego tłumaczenie na język hiszpański i korektę ( http://electronicosmx.comxa.com)
|
||||
|
||||
[it]
|
||||
Grazie a Qt Software per le loro librerie Qt (http://www.qtsoftware.com/), licenzate sotto GNU/GPL.
|
||||
Grazie a Everaldo Coelho per il tema icone Crystal SVG ( http://www.iconfinder.com/iconsets/crystalproject) licenzato sotto LGPL.
|
||||
Grazie a Nuno Pinheiro per il tema icone Oxygen (http://www.oxygen-icons.org/) licenzato sotto LGPL ma anche per le icone dedicate a QElectroTech.
|
||||
Grazie al progetto KDE (http://www.kde.org/).
|
||||
Grazie a Loic per le sue spiegazioni matematiche.
|
||||
Grazie a Remi Collet per i pacchetti per Fedora.
|
||||
@@ -132,7 +148,7 @@ Grazie a `trem' per i pacchetti per Mandriva.
|
||||
Grazie a TuxFamily (http://tuxfamily.org/) per l'ospitalità al progetto.
|
||||
Grazie a `Nishiki' per i suoi elementi ed il supporto.
|
||||
Grazie a qtcentre.org per la loro classe SingleApplication.
|
||||
Grazie a Alfredo Carreto per le traduzioni e le correzioni in spagnolo (http://electronicosmx.net).
|
||||
Grazie a Alfredo Carreto per le traduzioni e le correzioni in spagnolo (http://electronicosmx.comxa.com).
|
||||
Grazie a 'Dr.Slump' e 'Silvio' per la traduzione in italiano.
|
||||
Grazie a Jose Carlos Martins per la traduzione in portoghese.
|
||||
Grazie a Pavel Fric per la traduzione in ceco.
|
||||
@@ -149,6 +165,8 @@ Grazie a Markos Chandras per i pacchetti per Gentoo.
|
||||
|
||||
[el]
|
||||
Ευχαριστίες στην Qt Software για την βιβλιοθήκη Qt ( http://www.qtsoftware.com/ ), αδειοδοτημένο ως GNU/GPL.
|
||||
Ευχαριστίες στον Everaldo Coelho για τα εικονίδια του θέματος Crystal SVG ( http://www.iconfinder.com/iconsets/crystalproject) αδειοδοτημένο ως LGPL.
|
||||
Ευχαριστίες to Nuno Pinheiro για τα εικονίδια του θέματος Oxygen ( http://www.oxygen-icons.org/ ) αδειοδοτημένο ως LGPL και επίσης για τα εικονίδια ειδικά για το QElectroTech.
|
||||
Ευχαριστίες στο έργο KDE ( http://www.kde.org/ ).
|
||||
Ευχαριστίες στον Loic για τις εξηγήσεις σχετικές με μαθηματικά.
|
||||
Ευχαριστίες στον Remi Collet για τα πακέτα Fedora.
|
||||
@@ -157,7 +175,7 @@ Grazie a Markos Chandras per i pacchetti per Gentoo.
|
||||
Ευχαριστίες στο TuxFamily ( http://tuxfamily.org/ ) για τη φιλοξενία του έργου.
|
||||
Ευχαριστίες στον `Nishiki' για τα στοιχεία και την υποστήριξη του.
|
||||
Ευχαριστίες στο qtcentre.org για την κλάση SingleApplication.
|
||||
Ευχαριστίες στον Alfredo Carreto για τις μεταφράσεις του και για την επισκευή της Ισπανικής μετάφρασης ( http://electronicosmx.net )
|
||||
Ευχαριστίες στον Alfredo Carreto για τις μεταφράσεις του και για την επισκευή της Ισπανικής μετάφρασης ( http://electronicosmx.comxa.com )
|
||||
Ευχαριστίες στον 'Dr.Slump' και τον Sivio για τις μεταφράσεις τους στα Ιταλικά
|
||||
Ευχαριστίες στον Jose Carlos Martins για την μετάφραση στα Πορτογαλικά
|
||||
Ευχαριστίες στον Pavel Fric Για την μετάφραση στα Τσέχικα
|
||||
@@ -179,6 +197,8 @@ Grazie a Markos Chandras per i pacchetti per Gentoo.
|
||||
|
||||
[nl]
|
||||
Dank aan Qt Software voor hun Qt library ( http://www.qtsoftware.com/ ) , onder de GNU / GPL licentie .
|
||||
Dank aan Everaldo Coelho voor de Crystal SVG iconen thema ( http://www.iconfinder.com/iconsets/crystalproject ) gelicenseerd onder LGPL .
|
||||
Dank aan Nuno Pinheiro voor de Oxygen iconen thema ( http://www.oxygen-icons.org/ ) gelicenseerd onder LGPL maar ook voor de QElectroTech -dedicated iconen.
|
||||
Dank aan het KDE-project ( http://www.kde.org/ ) .
|
||||
Dank aan Loic voor zijn wiskunde - gerelateerde verklaringen .
|
||||
Met dank aan Remi Collet voor de Fedora pakket.
|
||||
@@ -187,7 +207,7 @@ Dank aan ` tremolo ' voor de Mandriva pakket.
|
||||
Dank aan TuxFamily ( http://tuxfamily.org/ ) voor het hosten van het project .
|
||||
Dank aan ` Nishiki ' voor zijn elementen en zijn steun .
|
||||
Dank aan qtcentre.org voor hun SingleApplication klasse .
|
||||
Dank aan Alfredo Carreto voor zijn Spaanse vertalingen en tot vaststelling Spaanse vertalingen ( http://electronicosmx.net )
|
||||
Dank aan Alfredo Carreto voor zijn Spaanse vertalingen en tot vaststelling Spaanse vertalingen ( http://electronicosmx.comxa.com )
|
||||
Dank aan ' Dr.Slump ' en Sivio voor hun vertalingen in het Italiaans
|
||||
Met dank aan Jose Carlos Martins voor zijn vertalingen in het Portugees
|
||||
Met dank aan Pavel Fric voor zijn vertalingen in het Tsjechisch
|
||||
@@ -209,6 +229,8 @@ Dank aan Mrbit voor ebuild Gentoo pakket.
|
||||
|
||||
[be]
|
||||
Dank aan Qt Software bibliotheek voor Qt ( http://www.qtsoftware.com/ ), onder licentie van GNU/GPL.
|
||||
Dank aan Everaldo Coelho voor het pictogram thema Crystal SVG ( http://www.iconfinder.com/iconsets/crystalproject )onder licentie van licence LGPL.
|
||||
Dank aan Nuno Pinheiro voor het pictogram thema Oxygen ( http://www.oxygen-icons.org/ ) onder licentie van LGPL maar ook voor de iconen opgedragen aan QElectroTech
|
||||
Dank aan project KDE ( http://www.kde.org/ ).
|
||||
Dank aan Loic voor zijn uitleg van de mathematische orde.
|
||||
Dank aan Remi Collet voor de pakketten Fedora.
|
||||
@@ -217,7 +239,7 @@ Dank aan `trem' voor de pakketten Mandriva.
|
||||
Dank aan TuxFamily ( http://tuxfamily.org/ ) voor het hosten van het project.
|
||||
Dank aan `Nishiki' voor zijn elementen en ondersteuning.
|
||||
Dank aan qtcentre.org voor hun SingleApplication klasse.
|
||||
Dank aan Alfredo Carreto voor zijn vertalingen en correcties in het Spaans ( http://electronicosmx.net )
|
||||
Dank aan Alfredo Carreto voor zijn vertalingen en correcties in het Spaans ( http://electronicosmx.comxa.com )
|
||||
Dank aan 'Dr.Slump' en Sivio hun vertaling in het Italiaans
|
||||
Dank aan Jose Carlos Martins voor zijn vertalingen in het Portugees
|
||||
Dank aan Pavel Fric voor zijn vertalingen in het Tsjechisch
|
||||
|
||||
200
ChangeLog
200
ChangeLog
@@ -1,184 +1,3 @@
|
||||
====== ChangeLog from 0.6 to 0.7 ======
|
||||
|
||||
|
||||
* Element editor :
|
||||
* Element informations (manufacturer, reference etc...) can be created directly from the element editor. For that go to the widget "Element Property"
|
||||
* It is no longer required to have a text field, for save the edited element.
|
||||
* Improve the behavior with the arrow keys (depending to the current selection (nothing / one / several).
|
||||
* Context menu display only enabled actions.
|
||||
* Added new feature -> alignment.
|
||||
* Alignment of text field can be edited.
|
||||
* Added two new actions in context menu for insert or remove point of a selected polygon.
|
||||
* Rectangle can have rounded corner.
|
||||
* Polyline: finish the creation of polyline with the last point at the same position of the first point, close the polyline.
|
||||
|
||||
|
||||
* Diagram editor :
|
||||
* Conductors can now be drawn with two colors.
|
||||
* Improve High-DPI support on Windows and Linux plateform.
|
||||
* The code for the resize handles has been almost completely redesigned.
|
||||
* Dissociate fonts policy and size for independent text item and for summarry pages (foliolist), added a 2 button in config page for open Qfontdialog widget and choose policy for independent text item.
|
||||
* Add in config page a Qfontdialog widget for change dynamic text size, font family, orientation angle and text length, by default.
|
||||
* Basic shape add new CustomDashLine style with Dash Pattern (<< 10 << 10 );
|
||||
* It is now possible to add a text field to an element directly from the diagram.
|
||||
* Element text item with are now converted to dynamic element text item.
|
||||
* Element editor, part text can't be edited directly.
|
||||
* User can export / import the configuration of the texts and texts group of an element.
|
||||
* Context menu display only enabled actions.
|
||||
* Added new action in the context menu, multiple paste, check box for autonum the pasted element.
|
||||
* Multipaste -> improve the conductor autonum, conductors are numerated from top to bottom, and left to right.
|
||||
* Text of conductor can be placed at top/bottom/left/right of conductor, and text never overlaps the conductor.
|
||||
* Function for search conductor at the same potential.
|
||||
When the search function is searching in a terminal element, they search only for the first terminal found, no matter if the terminal element have more than two terminals.
|
||||
So the list of conductors at the same potential is missing some conductors.
|
||||
This commit fix it, now the search function search for every terminals of a terminal element.
|
||||
* When remove an element with several conductors connected to the same terminal, the electrical potential is partially or totally destroyed.
|
||||
This commit fix it : When element is removed one or several conductors are created (if needed) to conserve the electrical potential.
|
||||
|
||||
* Added new feature -> alignment.
|
||||
* Alignment of text field can be edited.
|
||||
* Added new context menu action "group the selected texts".
|
||||
* Widget used to edit text item group can edit the pos of the group.
|
||||
* Element text item group can now be framed.
|
||||
* Added two new actions in context menu for insert or remove point of a selected polygon.
|
||||
* QETshapeItem rectangle can have rounded corner.
|
||||
* Add in config the possibility to start the numbering of the columns of titleblocks at 0.
|
||||
* Add new function Search and replace widget Crtl +F
|
||||
* Diagram properties, Element properties, Independent text item can be changed (and mass changed) through the search and replace widget.
|
||||
* Added 4 tools for edit the depth (Z value) of items.
|
||||
* Element panel : elements can be searched by their name but also with by all their informations.
|
||||
* New free selection style.
|
||||
* Diagram editor : dock used to edit the shape item, can now edit several items in the same time.
|
||||
* Dynamic element text item : The font of the dynamic texts can be individually be setted.
|
||||
|
||||
* Adding or revoming diagram set project to modified
|
||||
* When user cleanning an project, set project to modified
|
||||
* Add a shortcut "Ctrl+Shift+P" to quickly open the dialog used for create the auto numbering rules.
|
||||
* Add missing StatusTip of some QAction
|
||||
|
||||
* When user add a polygon, a message in statusBar show how to finish this shape
|
||||
* Polyline: finish the creation of polyline with the last point at the same position of the first point, close the polyline.
|
||||
|
||||
|
||||
|
||||
* Plug-in : Add StatusTip instruction for install and launching DXF plugin depending on the operating system
|
||||
* when plugin qet-tb-generator"generate terminal blocks and connectors" isn't installed show an QMessageBox instruction now depending on the operating system for install it
|
||||
Add in QMessageBox url encoding/decoding for easy download packages
|
||||
|
||||
* Elementspanelwidget: adds keyboard shortcuts to quickly move up, down,or move the targeted folio to the beginning of the project
|
||||
F3 MoveUp
|
||||
F4 MoveDown
|
||||
F5 MoveUpTop
|
||||
|
||||
* Title block editor :
|
||||
Added new title block variables %projectpath, %projectfilename, %projecttitle, previous-folio-num and next-folio-num
|
||||
"%saveddate, %savedtime, %savedfilename and %savedfilepath" they variables should be updated after file save or save as dialog is confirmed,
|
||||
before file is saved.
|
||||
* NameList widget : add a combo box for easily paste texts, like the variables for title block.
|
||||
* The font of the dynamic text field can be edited.
|
||||
* The font of the static text field can be edited.
|
||||
* The color of the static text field can be edited.
|
||||
|
||||
|
||||
|
||||
* Improve for new qet_tb_generator plug-in : added the full path of the current project as
|
||||
an argument when calling the plug-in from QET if a project is open.
|
||||
If not a file dialog is showed to select the QET project.
|
||||
|
||||
|
||||
|
||||
* QET create a backup file, use to restore the project when a crash occur.
|
||||
* Use KAutoSaveFile for the backup system, instead of home made function.
|
||||
* Use of QSAveFile instead a QFile.
|
||||
* User can enable and edit autosave timer.
|
||||
* let user define the file system path of the common,custom elements collections, and custom title blocks template.
|
||||
|
||||
|
||||
* QetGraphicsItem, remove the function applyRotation and rotateBy, and use instead the native function of QGraphicsItem : setRotation
|
||||
* Conductor is an herited class of QGraphicsObject, instead of QObject and QGraphicsPathItem
|
||||
* Clean (and reduce the size) the class QETDiagramEditor, mostly by replacing the connection syntax "signal -> slot" by "signal -> lambda".
|
||||
* Replace deprecated QMatrix by QTransform.
|
||||
|
||||
|
||||
* DXF export : fix some double items in dxf file.
|
||||
* DXF export : add some colors for basic shapes inside dxf.
|
||||
|
||||
|
||||
* Bug fix :
|
||||
* Fix compilation warning (clang and gcc).
|
||||
|
||||
* Fix element text item alignment work well when text rotation != 0.
|
||||
* Fix crash when the properties of a element text item group
|
||||
* Fix crash occurred by the conductor and shape "ghost".
|
||||
* Fix element text alignment work also when font size change.
|
||||
* fix :
|
||||
1- When open a .qet by double click on it, QET ask user for open the backup file, of this .qet.
|
||||
2- On windows, if user open a project from the recent files menu, when close QET the file is deleted  user lose her work.
|
||||
clear the element texts when paste an element with the option "Do not store the labels of items in the copy paste" enabled.
|
||||
* elements can't be moved up and left, when there rotation are different than 0.
|
||||
* minor fix : slave link dialog doesn't display the good label, when the label of master element is build from formula.
|
||||
* Fix : in some condition, dynamic text are not at the same position when open a project.
|
||||
* On windows when user drag and drop an element from the common elements collection to the custom elements collection,
|
||||
the element file stay in read only mode, and so user can't save the element
|
||||
* Improvement : minimize the unwanted gap of the top right folio of the view (see https://qelectrotech.org/forum/viewtopic.php?pid=9379#p9379)
|
||||
* Fix: bug 168
|
||||
* Fix : when create multiple conductors with the free hand selection, the checking of existing potentiel don't search trought a folio report.
|
||||
* Fix: DXF export.
|
||||
* Minor fix : remove from the element information the html hexadecimal and decimal characters of line feed and carriage return.
|
||||
* fix : in the diagram editor, when we select several shapes at the same time, the properties widget only apply the change to one shape.
|
||||
* Bug fix : when user load a project which contains summary pages, project was marked modified (summary was created on the fly and moved from the end on second
|
||||
position), now the project is no longer marked as amended when user have one or multiples summary pages when loading this project.
|
||||
* Static text of element are now exported to dxf
|
||||
* Fix Static text size of element exported to dxf
|
||||
* Improvement : minimize the unwanted gap of the top right folio of the view
|
||||
* Fix : when create multiple conductors with the free hand selection, the checking of existing potentiel don't search trought a folio report.
|
||||
* Don't display gui when qet is launched with specific argument
|
||||
|
||||
|
||||
|
||||
====== ChangeLog from 0.5 to 0.6 ======
|
||||
In the official collection, there are now 4106 elements, and 539 categoris for a total of 4645 files
|
||||
|
||||
* Improved performance, added multithreading to speed up the loading of items when launching QET.
|
||||
* RAM consumption has been considerably reduced.
|
||||
* New "collections" panel.
|
||||
* Automatic numberings (autonum), Variables and prefix.
|
||||
* Folio generator
|
||||
* Management Policy
|
||||
* New thickness properties for conductors.
|
||||
* The thickness of the lines of all basic shapes (lines, rectangles, ellipses, polygons) can be changed from 0,2px to 50,0px.
|
||||
* The color of lines and fillings of basic shapes can be choosed from a color palette or set with a html color code.
|
||||
* Added Copy/paste from another project.
|
||||
* Online documentation and links to download the latest packages of the version under development for Windows and MacOS are available directly from the software.
|
||||
* Resetting the layout of the summary pages.
|
||||
* In the panel left split the view into a several docks.
|
||||
* High-DPI support (Qt 5.6.0)
|
||||
* new python plugin to generate terminal block.
|
||||
* Windows packages are now created on a Debian operating system using cross-compilation and targeted to make executable binary files for these operating systems.
|
||||
This technical evolution allows a significant time saving during the creation of the packages. And we can provide also in the same time Windows XP and Vista packages by cross-compil with Qt 5.7.1 environment
|
||||
* The Mac OS X executable binary files are created on a virtual environment, moved compiler to latest LLVM clan version, improved dmg packages with added Info.plist.
|
||||
* An annoying memory leak has been found and solved. Afters hours of use, some users noticed that the RAM consumption growed steadily, up to 10GB or more. This problem is now solved.
|
||||
|
||||
|
||||
|
||||
====== ChangeLog from 0.4 to 0.5 ======
|
||||
In the official collection, there are now 2625 elements, and 418 catégoris for a total of 3043 files.
|
||||
|
||||
* Port to Qt 5 framework
|
||||
* New QSettings native format for config files.
|
||||
* In the diagram editor, the grid is not displayed by default outside the diagram, the minimum zoom is blocked. A button allows you to un-validate this operation.
|
||||
* It is now possible to put the tittle block on the right vertical mode.
|
||||
* The default tittle block can be defined for the next folios of the project.
|
||||
* The summary now takes the font set in the QElectroTech.conf
|
||||
* The floating dock is now operational, variables, actions are taken into account on the fly.
|
||||
* A transformation tool transforms quickly and finely each primitive by handles.
|
||||
* Add UUID tag for element XML.
|
||||
* The database enables faster loading a large number of managing symbols in tables changes pixmaps collections, it no longer compares the modification date of the files but their use UUID attributes to update the cache .
|
||||
* In terms of basic shapes, the transform tool works directly on vectors, it replaces the reduction tool / enlargement that has just been deleted as unnecessary.
|
||||
* Improve Undo command by QPropertyUndoCommand class.
|
||||
|
||||
|
||||
|
||||
====== ChangeLog from 0.3 to 0.4 ======
|
||||
In the official collection, there are now 2298 elements, and 376 catégoris for a total of 2674 files.
|
||||
|
||||
@@ -210,29 +29,29 @@ Qet detects the Windows version and applies the appropriate graphic style, depen
|
||||
|
||||
|
||||
====== ChangeLog from 0.3 rc to 0.3 ======
|
||||
First, the collection of symbols has made a big step forward, with about 1560 new elements.
|
||||
There are now symbols for pneumatics, hydraulics, process, solar, cold, etc. Considerable effort has been done to organize the collection in a better way.
|
||||
First, the collection of symbols has made a big step forward, with about 1560 new elements.
|
||||
There are now symbols for pneumatics, hydraulics, process, solar, cold, etc. Considerable effort has been done to organize the collection in a better way.
|
||||
We hope that the new organisation is clearer for all. We would like to thank all the contributors who send us symbols.
|
||||
|
||||
=====-Element Editor: =====
|
||||
Considerable work has be done to replace the manual defining zone of the symbol, aka hotspot.And fix bugs, It is now automatic. You do not have to care about it anymore.
|
||||
Primary colors have been added for the drawing shapes.
|
||||
Considerable work has be done to replace the manual defining zone of the symbol, aka hotspot.And fix bugs, It is now automatic. You do not have to care about it anymore.
|
||||
Primary colors have been added for the drawing shapes.
|
||||
A contextual menu (right click) has been added. So, you can now work more quickly with symbols. It is also more user-friendly.
|
||||
|
||||
====== ChangeLog from v0.3 rc ======
|
||||
|
||||
=====-Element Editor: =====
|
||||
* Replacing checkboxes with lists of colors.
|
||||
* Replacing checkboxes with lists of colors.
|
||||
* Removed the manual hotspot, it is now automatic and you do not have to worry.
|
||||
Officially Collection: a large classification work on the structure was realized. It should be clear to everyone.
|
||||
The collection is enriched with 1711 items in 286 categories (ie 1997 files)
|
||||
|
||||
=====-Schema Editor:=====
|
||||
* Added import image, image rotation, image resizing and saving the file in the project.
|
||||
(Double click on the image called a widget and cursor that reduce or enlarge the selected image.)
|
||||
* Added import image, image rotation, image resizing and saving the file in the project.
|
||||
(Double click on the image called a widget and cursor that reduce or enlarge the selected image.)
|
||||
NB: Following the "edit image" entry will also be added in the right click menu.
|
||||
* F5 keyboard shortcut can recharge symbol collections.
|
||||
Some bugs have been resolved, and the translation status continues to grow.
|
||||
Some bugs have been resolved, and the translation status continues to grow.
|
||||
|
||||
|
||||
======ChangeLog from v0.3 beta ======
|
||||
@@ -409,5 +228,4 @@ Le dialogue "Exporter" (pour générer un fichier image d'un schéma) a égaleme
|
||||
* Affinage du constructeur de la classe QETApp
|
||||
* Moins d'avertissements à la compilation (testé avec gcc 4.3)
|
||||
* Moins d'inclusions non pertinentes
|
||||
|
||||
|
||||
* Nettoyage du trunk : déplacement des sources dans un sous-répertoire
|
||||
|
||||
4
Doxyfile
4
Doxyfile
@@ -31,7 +31,7 @@ PROJECT_NAME = QElectroTech
|
||||
# This could be handy for archiving the generated documentation or
|
||||
# if some version control system is used.
|
||||
|
||||
PROJECT_NUMBER = 0.70
|
||||
PROJECT_NUMBER = 0.3a
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
||||
# base path where the generated documentation will be put.
|
||||
@@ -124,7 +124,7 @@ FULL_PATH_NAMES = NO
|
||||
# If left blank the directory from which doxygen is run is used as the
|
||||
# path to strip.
|
||||
|
||||
STRIP_FROM_PATH = /home/laurent/Qet-svn/git/qet/
|
||||
STRIP_FROM_PATH = /home/xavier/projets/qet/qelectrotech/
|
||||
|
||||
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
|
||||
# the path mentioned in the documentation of a class, which tells
|
||||
|
||||
@@ -59,7 +59,7 @@ ou envie uma carta para o endereço Creative Commons, 171 Second Street, Suite
|
||||
[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 condicion alguna, cualquiera que sea la licencia final, usar,
|
||||
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
|
||||
@@ -163,15 +163,3 @@ Dit werk is gelicenseerd onder de Creative Commons Attribution 3.0-licentie.
|
||||
Om een kopie van deze licentie te bekijken, bezoek
|
||||
http://creativecommons.org/licenses/by/3.0/ of stuur een brief naar Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
|
||||
[da]
|
||||
Element samlinger leveret sammen med QElectroTech er tilvejebragt som er og
|
||||
uden nogen garanti for egnethed til dit formål eller arbejde.
|
||||
Brug, modifikation og integration af elementer til elektrisk diagrammer er
|
||||
tilladt uden nogen betingelse uanset den endelige diagram licens.
|
||||
Omfordeling af hele eller dele af QElectroTech samlingen, med eller
|
||||
uden ændring af et elektrisk diagram, skal du respektere betingelser for CC-BY-licens:
|
||||
Dette værk er licenseret under Creative Commons Attribution 3.0 License.
|
||||
For at se en kopi af denne licens, besøg
|
||||
http://creativecommons.org/licenses/by/3.0/ or send a letter to Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
|
||||
59
INSTALL
59
INSTALL
@@ -1,142 +1,131 @@
|
||||
[en]
|
||||
Requirements :
|
||||
libQt5 (see packages libqt5*)
|
||||
libQt4 (see packages libqt4*)
|
||||
cupsys-bsd for printing
|
||||
|
||||
Howto compile :
|
||||
$ qmake (qmake-qt5 for Debian-based systems)
|
||||
$ qmake (qmake-qt4 for Debian-based systems)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[fr]
|
||||
Pré-requis :
|
||||
libQt5 (paquets libqt5*)
|
||||
libQt4 (paquets libqt4*)
|
||||
cupsys-bsd pour l'impression
|
||||
|
||||
Comment compiler :
|
||||
$ qmake (qmake-qt5 pour les systèmes basés sur Debian)
|
||||
$ qmake (qmake-qt4 pour les systèmes basés sur Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[ru]
|
||||
Зависимости:
|
||||
libQt5 (пакет libqt5*)
|
||||
libQt4 (пакет libqt4*)
|
||||
cupsys-bsd для печати
|
||||
|
||||
Как компилировать?:
|
||||
$ qmake (qmake-qt5 для систем основанных на Debian)
|
||||
$ qmake (qmake-qt4 для систем основанных на Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[pt]
|
||||
Dependências:
|
||||
libQt5 (ver pacotes libqt5*)
|
||||
libQt4 (ver pacotes libqt4*)
|
||||
cupsys-bsd para impressão
|
||||
|
||||
Como compilar:
|
||||
$ qmake (qmake-qt5 para sistemas baseados em Debian)
|
||||
$ qmake (qmake-qt4 para sistemas baseados em Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[es]
|
||||
Dependencias:
|
||||
libQt5 (paquetes libqt5*)
|
||||
libQt4 (paquetes libqt4*)
|
||||
cupsys-bsd para imprimir
|
||||
|
||||
Cómo compilar:
|
||||
$ qmake (qmake-qt5 para los sistemas basados en Debian)
|
||||
$ qmake (qmake-qt4 para los sistemas basados en Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[ca]
|
||||
Dependències:
|
||||
libQt5 (paquets libqt5*)
|
||||
libQt4 (paquets libqt4*)
|
||||
cupsys-bsd per imprimir
|
||||
|
||||
Com compilar:
|
||||
$ qmake (qmake-qt5 pels sistemes basats en Debian)
|
||||
$ qmake (qmake-qt4 pels sistemes basats en Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[cs]
|
||||
Požadavky :
|
||||
libQt5 (viz balíček libqt5*)
|
||||
libQt4 (viz balíček libqt4*)
|
||||
cupsys-bsd kvůli tisku
|
||||
|
||||
Jak program sestavit :
|
||||
$ qmake (qmake-qt5 u systémů založených na Debianu)
|
||||
$ qmake (qmake-qt4 u systémů založených na Debianu)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[pl]
|
||||
Zależności:
|
||||
libQt5 (pakiety libqt5 *)
|
||||
libQt4 (pakiety libqt4 *)
|
||||
cupsys-bsd do druku
|
||||
|
||||
Sposób kompilacji:
|
||||
$ qmake (qmake-qt5 dla systemów opartych na Debianie)
|
||||
$ qmake (qmake-qt4 dla systemów opartych na Debianie)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[it]
|
||||
Dipendenze:
|
||||
libQt5 (vedi pacchetti libqt5*)
|
||||
libQt4 (vedi pacchetti libqt4*)
|
||||
cupsys-bsd per la stampa
|
||||
|
||||
Come compilare:
|
||||
$ qmake (qmake-qt5 per sistemi basati su Debian)
|
||||
$ qmake (qmake-qt4 per sistemi basati su Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[el]
|
||||
Απαιτήσεις:
|
||||
libQt5 (δείτε για πακέτα libqt5*)
|
||||
libQt4 (δείτε για πακέτα libqt4*)
|
||||
cupsys-bsd για εκτύπωση
|
||||
|
||||
Πως να το μεταγλωττίσετε:
|
||||
$ qmake (qmake-qt5 για συστήματα βασισμένα σε Debian)
|
||||
$ qmake (qmake-qt4 για συστήματα βασισμένα σε Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[nl]
|
||||
vereisten:
|
||||
libqt5 (zie pakketten libqt5 *)
|
||||
libqt4 (zie pakketten libqt4 *)
|
||||
cupsys-bsd om af te drukken
|
||||
|
||||
Hoe te compileren:
|
||||
$ Qmake (qmake-qt5 voor Debian-gebaseerde systemen)
|
||||
$ Qmake (qmake-qt4 voor Debian-gebaseerde systemen)
|
||||
$ make
|
||||
# Umask 0022
|
||||
# Make install
|
||||
|
||||
[be]
|
||||
Vereisten:
|
||||
libQt5 (pakketten libqt5*)
|
||||
libQt4 (pakketten libqt4*)
|
||||
cupsys-bsd voor het afdrukken
|
||||
|
||||
Hoe te compileren :
|
||||
$ qmake (qmake-qt5 voor systemen op basis van Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[da]
|
||||
Krav:
|
||||
libQt5 (se pakke libqt5*)
|
||||
cupsys-bsd til udskrivning
|
||||
|
||||
Hvordan man kompilerer:
|
||||
$ qmake (qmake-qt5 for Debian baserede systemer)
|
||||
$ qmake (qmake-qt4 voor systemen op basis van Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
33
README
33
README
@@ -1,52 +1,43 @@
|
||||
[en]
|
||||
QElectroTech is a Qt5 application to design electric diagrams.
|
||||
QElectroTech is a Qt4 application to design electric diagrams.
|
||||
It uses XML files for elements and diagrams, and includes both a diagram editor, a element editor, and an titleblock editor.
|
||||
|
||||
[fr]
|
||||
QElectroTech est une application Qt5 pour réaliser des schémas électriques.
|
||||
QElectroTech est une application Qt4 pour réaliser des schémas électriques.
|
||||
QET utilise le format XML pour ses éléments et ses schémas et inclut un éditeur de schémas, un éditeur d'élément, ainsi qu'un editeur de cartouche.
|
||||
|
||||
[de]
|
||||
QElectroTech ist eine Qt5 Software, um Schaltpläne zu erstellen.
|
||||
QET benutzt das XML Format für seine Bauteile und seine Projekte, und beinhaltet einen Schaltplaneditor, einen Bauteileditor sowie einen Zeichnungskopfeditor.
|
||||
|
||||
|
||||
[ru]
|
||||
QElectroTech - приложение написанное на Qt5 и предназначенное для разработки электрических схем.
|
||||
QElectroTech - приложение написанное на Qt4 и предназначенное для разработки электрических схем.
|
||||
Оно использует XML-файлы для элементов и схем, и включает, как редактор схем, так и редактор элементов.
|
||||
|
||||
[pt]
|
||||
QElectroTech é uma aplicação baseada em Qt5 para desenhar esquemas eléctricos.
|
||||
QElectroTech é uma aplicação baseada em Qt4 para desenhar esquemas eléctricos.
|
||||
QET utiliza ficheiros XML para os elementos e para os esquemas e inclui um editor de esquemas e um editor de elementos.
|
||||
|
||||
[es]
|
||||
QElectroTech es una aplicación Qt5 para diseñar esquemas eléctricos.
|
||||
Utiliza archivos XML para los elementos y esquemas, e incluye un editor de esquemas y un editor de elementos.
|
||||
QElectroTech es una aplicación Qt4 para diseñar esquemas eléctricos.
|
||||
Utiliza archivos XML para los elementos y esquemas, e incluye un editor de esquemas y un editor de elemento.
|
||||
|
||||
[cs]
|
||||
QElectroTech je aplikací Qt5 určenou pro návrh nákresů elektrických obvodů.
|
||||
QElectroTech je aplikací Qt4 určenou pro návrh nákresů elektrických obvodů.
|
||||
Pro prvky a nákresy používá soubory XML, a zahrnuje v sobě jak editor nákresů, tak editor prvků.
|
||||
|
||||
[pl]
|
||||
QElectroTech to aplikacja napisana w Qt5, przeznaczona do tworzenia schematów elektrycznych.
|
||||
QElectroTech to aplikacja napisana w Qt4, przeznaczona do tworzenia schematów elektrycznych.
|
||||
Wykorzystuje XML do zapisywania plików elementów i projektów. Posiada edytor schematów i elementów.
|
||||
|
||||
[it]
|
||||
QElectroTech è una applicazione fatta in Qt5 per disegnare schemi elettrici.
|
||||
QElectroTech è una applicazione fatta in Qt4 per disegnare schemi elettrici.
|
||||
QET usa il formato XML per i suoi elementi e schemi, includendo anche un editor per gli stessi.
|
||||
|
||||
[el]
|
||||
Το QElectroTech είναι μια εφαρμογή Qt5 για σχεδίαση ηλεκτρικών διαγραμμάτων.
|
||||
Το QElectroTech είναι μια εφαρμογή Qt4 για σχεδίαση ηλεκτρικών διαγραμμάτων.
|
||||
Χρησιμοποιεί αρχεία XML για στοιχεία και διαγράμματα, και περιλαμβάνει επεξεργαστή διαγραμμάτων καθώς και επεξεργαστή στοιχείων.
|
||||
|
||||
[nl]
|
||||
QElectroTech is een Qt5 applicatie om elektrische schema's te ontwerpen.
|
||||
QElectroTech is een Qt4 applicatie om elektrische schema's te ontwerpen.
|
||||
Het maakt gebruik van XML-bestanden voor elementen en diagrammen, en omvat zowel een diagram bewerker, een element bewerker, en een bloksjabloon bewerker.
|
||||
|
||||
[be]
|
||||
QElectroTech is een Qt5 toepassing voor het maken en beheren van elektrische schema's.
|
||||
QElectroTech is een QT4 toepassing voor het maken en beheren van elektrische schema's.
|
||||
QET gebruikt XML voor de elementen en schema's en omvat een schematische editor, itemeditor, en een titel sjabloon editor.
|
||||
|
||||
[da]
|
||||
QElectroTech er et Qt5 program til at redigere elektriske diagrammer.
|
||||
Det bruger XML filer for symboler og diagrammer og inkluderer diagram, symbol og titelblok redigering.
|
||||
|
||||
@@ -1,180 +0,0 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
__3.0.12a__
|
||||
----------
|
||||
|
||||
* Removed signal handling.
|
||||
|
||||
__3.0.11a__
|
||||
----------
|
||||
|
||||
* Fixed bug where the message sent by the second process was not received
|
||||
correctly when the message is sent immediately following a connection.
|
||||
|
||||
_Francis Giraldeau_
|
||||
|
||||
* Refactored code and implemented shared memory block consistency checks
|
||||
via `qChecksum()` (CRC-16).
|
||||
* Explicit `qWarning` and `qCritical` when the library is unable to initialise
|
||||
correctly.
|
||||
|
||||
__3.0.10__
|
||||
----------
|
||||
|
||||
* Removed C style casts and eliminated all clang warnings. Fixed `instanceId`
|
||||
reading from only one byte in the message deserialization. Cleaned up
|
||||
serialization code using `QDataStream`. Changed connection type to use
|
||||
`quint8 enum` rather than `char`.
|
||||
* Renamed `SingleAppConnectionType` to `ConnectionType`. Added initialization
|
||||
values to all `ConnectionType` enum cases.
|
||||
|
||||
_Jedidiah Buck McCready_
|
||||
|
||||
__3.0.9__
|
||||
---------
|
||||
|
||||
* Added SingleApplicationPrivate::primaryPid() as a solution to allow
|
||||
bringing the primary window of an application to the foreground on
|
||||
Windows.
|
||||
|
||||
_Eelco van Dam from Peacs BV_
|
||||
|
||||
__3.0.8__
|
||||
---------
|
||||
|
||||
* Bug fix - changed QApplication::instance() to QCoreApplication::instance()
|
||||
|
||||
_Evgeniy Bazhenov_
|
||||
|
||||
__3.0.7a__
|
||||
----------
|
||||
|
||||
* Fixed compilation error with Mingw32 in MXE thanks to Vitaly Tonkacheyev.
|
||||
* Removed QMutex used for thread safe behaviour. The implementation now uses
|
||||
QCoreApplication::instance() to get an instance to SingleApplication for
|
||||
memory deallocation.
|
||||
|
||||
__3.0.6a__
|
||||
----------
|
||||
|
||||
* Reverted GetUserName API usage on Windows. Fixed bug with missing library.
|
||||
* Fixed bug in the Calculator example, preventing it's window to be raised
|
||||
on Windows.
|
||||
|
||||
Special thanks to Charles Gunawan.
|
||||
|
||||
__3.0.5a__
|
||||
----------
|
||||
|
||||
* Fixed a memory leak in the SingleApplicationPrivate destructor.
|
||||
|
||||
_Sergei Moiseev_
|
||||
|
||||
__3.0.4a__
|
||||
----------
|
||||
|
||||
* Fixed shadow and uninitialised variable warnings.
|
||||
|
||||
_Paul Walmsley_
|
||||
|
||||
__3.0.3a__
|
||||
----------
|
||||
|
||||
* Removed Microsoft Windows specific code for getting username due to
|
||||
multiple problems and compiler differences on Windows platforms. On
|
||||
Windows the shared memory block in User mode now includes the user's
|
||||
home path (which contains the user's username).
|
||||
|
||||
* Explicitly getting absolute path of the user's home directory as on Unix
|
||||
a relative path (`~`) may be returned.
|
||||
|
||||
__3.0.2a__
|
||||
----------
|
||||
|
||||
* Fixed bug on Windows when username containing wide characters causes the
|
||||
library to crash.
|
||||
|
||||
_Le Liu_
|
||||
|
||||
__3.0.1a__
|
||||
----------
|
||||
|
||||
* Allows the application path and version to be excluded from the server name
|
||||
hash. The following flags were added for this purpose:
|
||||
* `SingleApplication::Mode::ExcludeAppVersion`
|
||||
* `SingleApplication::Mode::ExcludeAppPath`
|
||||
* Allow a non elevated process to connect to a local server created by an
|
||||
elevated process run by the same user on Windows
|
||||
* Fixes a problem with upper case letters in paths on Windows
|
||||
|
||||
_Le Liu_
|
||||
|
||||
__v3.0a__
|
||||
---------
|
||||
|
||||
* Depricated secondary instances count.
|
||||
* Added a sendMessage() method to send a message to the primary instance.
|
||||
* Added a receivedMessage() signal, emitted when a message is received from a
|
||||
secondary instance.
|
||||
* The SingleApplication constructor's third parameter is now a bool
|
||||
specifying if the current instance should be allowed to run as a secondary
|
||||
instance if there is already a primary instance.
|
||||
* The SingleApplication constructor accept a fourth parameter specifying if
|
||||
the SingleApplication block should be User-wide or System-wide.
|
||||
* SingleApplication no longer relies on `applicationName` and
|
||||
`organizationName` to be set. It instead concatenates all of the following
|
||||
data and computes a `SHA256` hash which is used as the key of the
|
||||
`QSharedMemory` block and the `QLocalServer`. Since at least
|
||||
`applicationFilePath` is always present there is no need to explicitly set
|
||||
any of the following prior to initialising `SingleApplication`.
|
||||
* `QCoreApplication::applicationName`
|
||||
* `QCoreApplication::applicationVersion`
|
||||
* `QCoreApplication::applicationFilePath`
|
||||
* `QCoreApplication::organizationName`
|
||||
* `QCoreApplication::organizationDomain`
|
||||
* User name or home directory path if in User mode
|
||||
* The primary instance is no longer notified when a secondary instance had
|
||||
been started by default. A `Mode` flag for this feature exists.
|
||||
* Added `instanceNumber()` which represents a unique identifier for each
|
||||
secondary instance started. When called from the primary instance will
|
||||
return `0`.
|
||||
|
||||
__v2.4__
|
||||
--------
|
||||
|
||||
* Stability improvements
|
||||
* Support for secondary instances.
|
||||
* The library now recovers safely after the primary process has crashed
|
||||
and the shared memory had not been deleted.
|
||||
|
||||
__v2.3__
|
||||
--------
|
||||
|
||||
* Improved pimpl design and inheritance safety.
|
||||
|
||||
_Vladislav Pyatnichenko_
|
||||
|
||||
__v2.2__
|
||||
--------
|
||||
|
||||
* The `QAPPLICATION_CLASS` macro can now be defined in the file including the
|
||||
Single Application header or with a `DEFINES+=` statement in the project file.
|
||||
|
||||
__v2.1__
|
||||
--------
|
||||
|
||||
* A race condition can no longer occur when starting two processes nearly
|
||||
simultaneously.
|
||||
|
||||
Fix issue [#3](https://github.com/itay-grudev/SingleApplication/issues/3)
|
||||
|
||||
__v2.0__
|
||||
--------
|
||||
|
||||
* SingleApplication is now being passed a reference to `argc` instead of a
|
||||
copy.
|
||||
|
||||
Fix issue [#1](https://github.com/itay-grudev/SingleApplication/issues/1)
|
||||
|
||||
* Improved documentation.
|
||||
@@ -1,24 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Itay Grudev 2015 - 2016
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Note: Some of the examples include code not distributed under the terms of the
|
||||
MIT License.
|
||||
@@ -1,265 +0,0 @@
|
||||
SingleApplication
|
||||
=================
|
||||
|
||||
This is a replacement of the QtSingleApplication for `Qt5`.
|
||||
|
||||
Keeps the Primary Instance of your Application and kills each subsequent
|
||||
instances. It can (if enabled) spawn secondary (non-related to the primary)
|
||||
instances and can send data to the primary instance from secondary instances.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
The `SingleApplication` class inherits from whatever `Q[Core|Gui]Application`
|
||||
class you specify via the `QAPPLICATION_CLASS` macro (`QCoreApplication` is the
|
||||
default). Further usage is similar to the use of the `Q[Core|Gui]Application`
|
||||
classes.
|
||||
|
||||
The library sets up a `QLocalServer` and a `QSharedMemory` block. The first
|
||||
instance of your Application is your Primary Instance. It would check if the
|
||||
shared memory block exists and if not it will start a `QLocalServer` and listen
|
||||
for connections. Each subsequent instance of your application would check if the
|
||||
shared memory block exists and if it does, it will connect to the QLocalServer
|
||||
to notify the primary instance that a new instance had been started, after which
|
||||
it would terminate with status code `0`. In the Primary Instance
|
||||
`SingleApplication` would emit the `instanceStarted()` signal upon detecting
|
||||
that a new instance had been started.
|
||||
|
||||
The library uses `stdlib` to terminate the program with the `exit()` function.
|
||||
|
||||
You can use the library as if you use any other `QCoreApplication` derived
|
||||
class:
|
||||
|
||||
```cpp
|
||||
#include <QApplication>
|
||||
#include <SingleApplication.h>
|
||||
|
||||
int main( int argc, char* argv[] )
|
||||
{
|
||||
SingleApplication app( argc, argv );
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
```
|
||||
|
||||
To include the library files I would recommend that you add it as a git
|
||||
submodule to your project and include it's contents with a `.pri` file. Here is
|
||||
how:
|
||||
|
||||
```bash
|
||||
git submodule add git@github.com:itay-grudev/SingleApplication.git singleapplication
|
||||
```
|
||||
|
||||
Then include the `singleapplication.pri` file in your `.pro` project file. Also
|
||||
don't forget to specify which `QCoreApplication` class your app is using if it
|
||||
is not `QCoreApplication`.
|
||||
|
||||
```qmake
|
||||
include(singleapplication/singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QApplication
|
||||
```
|
||||
|
||||
The `Instance Started` signal
|
||||
------------------------
|
||||
|
||||
The SingleApplication class implements a `instanceStarted()` signal. You can
|
||||
bind to that signal to raise your application's window when a new instance had
|
||||
been started, for example.
|
||||
|
||||
```cpp
|
||||
// window is a QWindow instance
|
||||
QObject::connect(
|
||||
&app,
|
||||
&SingleApplication::instanceStarted,
|
||||
&window,
|
||||
&QWindow::raise
|
||||
);
|
||||
```
|
||||
|
||||
Using `SingleApplication::instance()` is a neat way to get the
|
||||
`SingleApplication` instance for binding to it's signals anywhere in your
|
||||
program.
|
||||
|
||||
__Note:__ On Windows the ability to bring the application windows to the
|
||||
foreground is restricted. See [Windows specific implementations](Windows.md)
|
||||
for a workaround and an example implementation.
|
||||
|
||||
|
||||
Secondary Instances
|
||||
-------------------
|
||||
|
||||
If you want to be able to launch additional Secondary Instances (not related to
|
||||
your Primary Instance) you have to enable that with the third parameter of the
|
||||
`SingleApplication` constructor. The default is `false` meaning no Secondary
|
||||
Instances. Here is an example of how you would start a Secondary Instance send
|
||||
a message with the command line arguments to the primary instance and then shut
|
||||
down.
|
||||
|
||||
```cpp
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
SingleApplication app( argc, argv, true );
|
||||
|
||||
if( app.isSecondary() ) {
|
||||
app.sendMessage( app.arguments().join(' ')).toUtf8() );
|
||||
app.exit( 0 );
|
||||
}
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
```
|
||||
|
||||
*__Note:__ A secondary instance won't cause the emission of the
|
||||
`instanceStarted()` signal by default. See `SingleApplication::Mode` for more
|
||||
details.*
|
||||
|
||||
You can check whether your instance is a primary or secondary with the following
|
||||
methods:
|
||||
|
||||
```cpp
|
||||
app.isPrimary();
|
||||
// or
|
||||
app.isSecondary();
|
||||
```
|
||||
|
||||
*__Note:__ If your Primary Instance is terminated a newly launched instance
|
||||
will replace the Primary one even if the Secondary flag has been set.*
|
||||
|
||||
API
|
||||
---
|
||||
|
||||
### Members
|
||||
|
||||
```cpp
|
||||
SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 100 )
|
||||
```
|
||||
|
||||
Depending on whether `allowSecondary` is set, this constructor may terminate
|
||||
your app if there is already a primary instance running. Additional `Options`
|
||||
can be specified to set whether the SingleApplication block should work
|
||||
user-wide or system-wide. Additionally the `Mode::SecondaryNotification` may be
|
||||
used to notify the primary instance whenever a secondary instance had been
|
||||
started (disabled by default). `timeout` specifies the maximum time in
|
||||
milliseconds to wait for blocking operations.
|
||||
|
||||
*__Note:__ `argc` and `argv` may be changed as Qt removes arguments that it
|
||||
recognizes.*
|
||||
|
||||
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
|
||||
and the secondary instance.*
|
||||
|
||||
*__Note:__ Operating system can restrict the shared memory blocks to the same
|
||||
user, in which case the User/System modes will have no effect and the block will
|
||||
be user wide.*
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
bool SingleApplication::sendMessage( QByteArray message, int timeout = 100 )
|
||||
```
|
||||
|
||||
Sends `message` to the Primary Instance. Uses `timeout` as a the maximum timeout
|
||||
in milliseconds for blocking functions
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
bool SingleApplication::isPrimary()
|
||||
```
|
||||
|
||||
Returns if the instance is the primary instance.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
bool SingleApplication::isSecondary()
|
||||
```
|
||||
Returns if the instance is a secondary instance.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
quint32 SingleApplication::instanceId()
|
||||
```
|
||||
|
||||
Returns a unique identifier for the current instance.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
qint64 SingleApplication::primaryPid()
|
||||
```
|
||||
|
||||
Returns the process ID (PID) of the primary instance.
|
||||
|
||||
### Signals
|
||||
|
||||
```cpp
|
||||
void SingleApplication::instanceStarted()
|
||||
```
|
||||
|
||||
Triggered whenever a new instance had been started, except for secondary
|
||||
instances if the `Mode::SecondaryNotification` flag is not specified.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
void SingleApplication::receivedMessage( quint32 instanceId, QByteArray message )
|
||||
```
|
||||
|
||||
Triggered whenever there is a message received from a secondary instance.
|
||||
|
||||
---
|
||||
|
||||
### Flags
|
||||
|
||||
```cpp
|
||||
enum SingleApplication::Mode
|
||||
```
|
||||
|
||||
* `Mode::User` - The SingleApplication block should apply user wide. This adds
|
||||
user specific data to the key used for the shared memory and server name.
|
||||
This is the default functionality.
|
||||
* `Mode::System` – The SingleApplication block applies system-wide.
|
||||
* `Mode::SecondaryNotification` – Whether to trigger `instanceStarted()` even
|
||||
whenever secondary instances are started.
|
||||
* `Mode::ExcludeAppPath` – Excludes the application path from the server name
|
||||
(and memory block) hash.
|
||||
* `Mode::ExcludeAppVersion` – Excludes the application version from the server
|
||||
name (and memory block) hash.
|
||||
|
||||
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
|
||||
and the secondary instance.*
|
||||
|
||||
*__Note:__ Operating system can restrict the shared memory blocks to the same
|
||||
user, in which case the User/System modes will have no effect and the block will
|
||||
be user wide.*
|
||||
|
||||
---
|
||||
|
||||
Versioning
|
||||
----------
|
||||
|
||||
Each major version introduces either very significant changes or is not
|
||||
backwards compatible with the previous version. Minor versions only add
|
||||
additional features, bug fixes or performance improvements and are backwards
|
||||
compatible with the previous release. See [`CHANGELOG.md`](CHANGELOG.md) for
|
||||
more details.
|
||||
|
||||
Implementation
|
||||
--------------
|
||||
|
||||
The library is implemented with a QSharedMemory block which is thread safe and
|
||||
guarantees a race condition will not occur. It also uses a QLocalSocket to
|
||||
notify the main process that a new instance had been spawned and thus invoke the
|
||||
`instanceStarted()` signal and for messaging the primary instance.
|
||||
|
||||
Additionally the library can recover from being forcefully killed on *nix
|
||||
systems and will reset the memory block given that there are no other
|
||||
instances running.
|
||||
|
||||
License
|
||||
-------
|
||||
This library and it's supporting documentation are released under
|
||||
`The MIT License (MIT)` with the exception of the Qt calculator examples which
|
||||
is distributed under the BSD license.
|
||||
@@ -1,46 +0,0 @@
|
||||
Windows Specific Implementations
|
||||
================================
|
||||
|
||||
Setting the foreground window
|
||||
-----------------------------
|
||||
|
||||
In the `instanceStarted()` example in the `README` we demonstrated how an
|
||||
application can bring it's primary instance window whenever a second copy
|
||||
of the application is started.
|
||||
|
||||
On Windows the ability to bring the application windows to the foreground is
|
||||
restricted, see [`AllowSetForegroundWindow()`][AllowSetForegroundWindow] for more
|
||||
details.
|
||||
|
||||
The background process (the primary instance) can bring its windows to the
|
||||
foreground if it is allowed by the current foreground process (the secondary
|
||||
instance). To bypass this `SingleApplication` must be initialized with the
|
||||
`allowSecondary` parameter set to `true` and the `options` parameter must
|
||||
include `Mode::SecondaryNotification`, See `SingleApplication::Mode` for more
|
||||
details.
|
||||
|
||||
Here is an example:
|
||||
|
||||
```cpp
|
||||
if( app.isSecondary() ) {
|
||||
// This API requires LIBS += User32.lib to be added to the project
|
||||
AllowSetForegroundWindow( DWORD( app.getPrimaryPid() ) );
|
||||
}
|
||||
|
||||
if( app.isPrimary() ) {
|
||||
QObject::connect(
|
||||
&app,
|
||||
&SingleApplication::instanceStarted,
|
||||
this,
|
||||
&App::instanceStarted
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
```cpp
|
||||
void App::instanceStarted() {
|
||||
QApplication::setActiveWindow( [window/widget to set to the foreground] );
|
||||
}
|
||||
```
|
||||
|
||||
[AllowSetForegroundWindow]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632668.aspx
|
||||
@@ -1,5 +0,0 @@
|
||||
# Single Application implementation
|
||||
include(../../singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QCoreApplication
|
||||
|
||||
SOURCES += main.cpp
|
||||
@@ -1,9 +0,0 @@
|
||||
#include <singleapplication.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Allow secondary instances
|
||||
SingleApplication app( argc, argv );
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtWidgets>
|
||||
|
||||
#include "button.h"
|
||||
|
||||
//! [0]
|
||||
Button::Button(const QString &text, QWidget *parent)
|
||||
: QToolButton(parent)
|
||||
{
|
||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
setText(text);
|
||||
}
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
QSize Button::sizeHint() const
|
||||
//! [1] //! [2]
|
||||
{
|
||||
QSize size = QToolButton::sizeHint();
|
||||
size.rheight() += 20;
|
||||
size.rwidth() = qMax(size.width(), size.height());
|
||||
return size;
|
||||
}
|
||||
//! [2]
|
||||
@@ -1,68 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef BUTTON_H
|
||||
#define BUTTON_H
|
||||
|
||||
#include <QToolButton>
|
||||
|
||||
//! [0]
|
||||
class Button : public QToolButton
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Button(const QString &text, QWidget *parent = 0);
|
||||
|
||||
QSize sizeHint() const Q_DECL_OVERRIDE;
|
||||
};
|
||||
//! [0]
|
||||
|
||||
#endif
|
||||
@@ -1,406 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtWidgets>
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#include "button.h"
|
||||
#include "calculator.h"
|
||||
|
||||
//! [0]
|
||||
Calculator::Calculator(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
sumInMemory = 0.0;
|
||||
sumSoFar = 0.0;
|
||||
factorSoFar = 0.0;
|
||||
waitingForOperand = true;
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
display = new QLineEdit("0");
|
||||
//! [1] //! [2]
|
||||
display->setReadOnly(true);
|
||||
display->setAlignment(Qt::AlignRight);
|
||||
display->setMaxLength(15);
|
||||
|
||||
QFont font = display->font();
|
||||
font.setPointSize(font.pointSize() + 8);
|
||||
display->setFont(font);
|
||||
//! [2]
|
||||
|
||||
//! [4]
|
||||
for (int i = 0; i < NumDigitButtons; ++i) {
|
||||
digitButtons[i] = createButton(QString::number(i), SLOT(digitClicked()));
|
||||
}
|
||||
|
||||
Button *pointButton = createButton(tr("."), SLOT(pointClicked()));
|
||||
Button *changeSignButton = createButton(tr("\302\261"), SLOT(changeSignClicked()));
|
||||
|
||||
Button *backspaceButton = createButton(tr("Backspace"), SLOT(backspaceClicked()));
|
||||
Button *clearButton = createButton(tr("Clear"), SLOT(clear()));
|
||||
Button *clearAllButton = createButton(tr("Clear All"), SLOT(clearAll()));
|
||||
|
||||
Button *clearMemoryButton = createButton(tr("MC"), SLOT(clearMemory()));
|
||||
Button *readMemoryButton = createButton(tr("MR"), SLOT(readMemory()));
|
||||
Button *setMemoryButton = createButton(tr("MS"), SLOT(setMemory()));
|
||||
Button *addToMemoryButton = createButton(tr("M+"), SLOT(addToMemory()));
|
||||
|
||||
Button *divisionButton = createButton(tr("\303\267"), SLOT(multiplicativeOperatorClicked()));
|
||||
Button *timesButton = createButton(tr("\303\227"), SLOT(multiplicativeOperatorClicked()));
|
||||
Button *minusButton = createButton(tr("-"), SLOT(additiveOperatorClicked()));
|
||||
Button *plusButton = createButton(tr("+"), SLOT(additiveOperatorClicked()));
|
||||
|
||||
Button *squareRootButton = createButton(tr("Sqrt"), SLOT(unaryOperatorClicked()));
|
||||
Button *powerButton = createButton(tr("x\302\262"), SLOT(unaryOperatorClicked()));
|
||||
Button *reciprocalButton = createButton(tr("1/x"), SLOT(unaryOperatorClicked()));
|
||||
Button *equalButton = createButton(tr("="), SLOT(equalClicked()));
|
||||
//! [4]
|
||||
|
||||
//! [5]
|
||||
QGridLayout *mainLayout = new QGridLayout;
|
||||
//! [5] //! [6]
|
||||
mainLayout->setSizeConstraint(QLayout::SetFixedSize);
|
||||
mainLayout->addWidget(display, 0, 0, 1, 6);
|
||||
mainLayout->addWidget(backspaceButton, 1, 0, 1, 2);
|
||||
mainLayout->addWidget(clearButton, 1, 2, 1, 2);
|
||||
mainLayout->addWidget(clearAllButton, 1, 4, 1, 2);
|
||||
|
||||
mainLayout->addWidget(clearMemoryButton, 2, 0);
|
||||
mainLayout->addWidget(readMemoryButton, 3, 0);
|
||||
mainLayout->addWidget(setMemoryButton, 4, 0);
|
||||
mainLayout->addWidget(addToMemoryButton, 5, 0);
|
||||
|
||||
for (int i = 1; i < NumDigitButtons; ++i) {
|
||||
int row = ((9 - i) / 3) + 2;
|
||||
int column = ((i - 1) % 3) + 1;
|
||||
mainLayout->addWidget(digitButtons[i], row, column);
|
||||
}
|
||||
|
||||
mainLayout->addWidget(digitButtons[0], 5, 1);
|
||||
mainLayout->addWidget(pointButton, 5, 2);
|
||||
mainLayout->addWidget(changeSignButton, 5, 3);
|
||||
|
||||
mainLayout->addWidget(divisionButton, 2, 4);
|
||||
mainLayout->addWidget(timesButton, 3, 4);
|
||||
mainLayout->addWidget(minusButton, 4, 4);
|
||||
mainLayout->addWidget(plusButton, 5, 4);
|
||||
|
||||
mainLayout->addWidget(squareRootButton, 2, 5);
|
||||
mainLayout->addWidget(powerButton, 3, 5);
|
||||
mainLayout->addWidget(reciprocalButton, 4, 5);
|
||||
mainLayout->addWidget(equalButton, 5, 5);
|
||||
setLayout(mainLayout);
|
||||
|
||||
setWindowTitle(tr("Calculator"));
|
||||
}
|
||||
//! [6]
|
||||
|
||||
//! [7]
|
||||
void Calculator::digitClicked()
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
int digitValue = clickedButton->text().toInt();
|
||||
if (display->text() == "0" && digitValue == 0.0)
|
||||
return;
|
||||
|
||||
if (waitingForOperand) {
|
||||
display->clear();
|
||||
waitingForOperand = false;
|
||||
}
|
||||
display->setText(display->text() + QString::number(digitValue));
|
||||
}
|
||||
//! [7]
|
||||
|
||||
//! [8]
|
||||
void Calculator::unaryOperatorClicked()
|
||||
//! [8] //! [9]
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
QString clickedOperator = clickedButton->text();
|
||||
double operand = display->text().toDouble();
|
||||
double result = 0.0;
|
||||
|
||||
if (clickedOperator == tr("Sqrt")) {
|
||||
if (operand < 0.0) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
result = std::sqrt(operand);
|
||||
} else if (clickedOperator == tr("x\302\262")) {
|
||||
result = std::pow(operand, 2.0);
|
||||
} else if (clickedOperator == tr("1/x")) {
|
||||
if (operand == 0.0) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
result = 1.0 / operand;
|
||||
}
|
||||
display->setText(QString::number(result));
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [9]
|
||||
|
||||
//! [10]
|
||||
void Calculator::additiveOperatorClicked()
|
||||
//! [10] //! [11]
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
QString clickedOperator = clickedButton->text();
|
||||
double operand = display->text().toDouble();
|
||||
|
||||
//! [11] //! [12]
|
||||
if (!pendingMultiplicativeOperator.isEmpty()) {
|
||||
//! [12] //! [13]
|
||||
if (!calculate(operand, pendingMultiplicativeOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
display->setText(QString::number(factorSoFar));
|
||||
operand = factorSoFar;
|
||||
factorSoFar = 0.0;
|
||||
pendingMultiplicativeOperator.clear();
|
||||
}
|
||||
|
||||
//! [13] //! [14]
|
||||
if (!pendingAdditiveOperator.isEmpty()) {
|
||||
//! [14] //! [15]
|
||||
if (!calculate(operand, pendingAdditiveOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
display->setText(QString::number(sumSoFar));
|
||||
} else {
|
||||
sumSoFar = operand;
|
||||
}
|
||||
|
||||
//! [15] //! [16]
|
||||
pendingAdditiveOperator = clickedOperator;
|
||||
//! [16] //! [17]
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [17]
|
||||
|
||||
//! [18]
|
||||
void Calculator::multiplicativeOperatorClicked()
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
QString clickedOperator = clickedButton->text();
|
||||
double operand = display->text().toDouble();
|
||||
|
||||
if (!pendingMultiplicativeOperator.isEmpty()) {
|
||||
if (!calculate(operand, pendingMultiplicativeOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
display->setText(QString::number(factorSoFar));
|
||||
} else {
|
||||
factorSoFar = operand;
|
||||
}
|
||||
|
||||
pendingMultiplicativeOperator = clickedOperator;
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [18]
|
||||
|
||||
//! [20]
|
||||
void Calculator::equalClicked()
|
||||
{
|
||||
double operand = display->text().toDouble();
|
||||
|
||||
if (!pendingMultiplicativeOperator.isEmpty()) {
|
||||
if (!calculate(operand, pendingMultiplicativeOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
operand = factorSoFar;
|
||||
factorSoFar = 0.0;
|
||||
pendingMultiplicativeOperator.clear();
|
||||
}
|
||||
if (!pendingAdditiveOperator.isEmpty()) {
|
||||
if (!calculate(operand, pendingAdditiveOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
pendingAdditiveOperator.clear();
|
||||
} else {
|
||||
sumSoFar = operand;
|
||||
}
|
||||
|
||||
display->setText(QString::number(sumSoFar));
|
||||
sumSoFar = 0.0;
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [20]
|
||||
|
||||
//! [22]
|
||||
void Calculator::pointClicked()
|
||||
{
|
||||
if (waitingForOperand)
|
||||
display->setText("0");
|
||||
if (!display->text().contains('.'))
|
||||
display->setText(display->text() + tr("."));
|
||||
waitingForOperand = false;
|
||||
}
|
||||
//! [22]
|
||||
|
||||
//! [24]
|
||||
void Calculator::changeSignClicked()
|
||||
{
|
||||
QString text = display->text();
|
||||
double value = text.toDouble();
|
||||
|
||||
if (value > 0.0) {
|
||||
text.prepend(tr("-"));
|
||||
} else if (value < 0.0) {
|
||||
text.remove(0, 1);
|
||||
}
|
||||
display->setText(text);
|
||||
}
|
||||
//! [24]
|
||||
|
||||
//! [26]
|
||||
void Calculator::backspaceClicked()
|
||||
{
|
||||
if (waitingForOperand)
|
||||
return;
|
||||
|
||||
QString text = display->text();
|
||||
text.chop(1);
|
||||
if (text.isEmpty()) {
|
||||
text = "0";
|
||||
waitingForOperand = true;
|
||||
}
|
||||
display->setText(text);
|
||||
}
|
||||
//! [26]
|
||||
|
||||
//! [28]
|
||||
void Calculator::clear()
|
||||
{
|
||||
if (waitingForOperand)
|
||||
return;
|
||||
|
||||
display->setText("0");
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [28]
|
||||
|
||||
//! [30]
|
||||
void Calculator::clearAll()
|
||||
{
|
||||
sumSoFar = 0.0;
|
||||
factorSoFar = 0.0;
|
||||
pendingAdditiveOperator.clear();
|
||||
pendingMultiplicativeOperator.clear();
|
||||
display->setText("0");
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [30]
|
||||
|
||||
//! [32]
|
||||
void Calculator::clearMemory()
|
||||
{
|
||||
sumInMemory = 0.0;
|
||||
}
|
||||
|
||||
void Calculator::readMemory()
|
||||
{
|
||||
display->setText(QString::number(sumInMemory));
|
||||
waitingForOperand = true;
|
||||
}
|
||||
|
||||
void Calculator::setMemory()
|
||||
{
|
||||
equalClicked();
|
||||
sumInMemory = display->text().toDouble();
|
||||
}
|
||||
|
||||
void Calculator::addToMemory()
|
||||
{
|
||||
equalClicked();
|
||||
sumInMemory += display->text().toDouble();
|
||||
}
|
||||
//! [32]
|
||||
//! [34]
|
||||
Button *Calculator::createButton(const QString &text, const char *member)
|
||||
{
|
||||
Button *button = new Button(text);
|
||||
connect(button, SIGNAL(clicked()), this, member);
|
||||
return button;
|
||||
}
|
||||
//! [34]
|
||||
|
||||
//! [36]
|
||||
void Calculator::abortOperation()
|
||||
{
|
||||
clearAll();
|
||||
display->setText(tr("####"));
|
||||
}
|
||||
//! [36]
|
||||
|
||||
//! [38]
|
||||
bool Calculator::calculate(double rightOperand, const QString &pendingOperator)
|
||||
{
|
||||
if (pendingOperator == tr("+")) {
|
||||
sumSoFar += rightOperand;
|
||||
} else if (pendingOperator == tr("-")) {
|
||||
sumSoFar -= rightOperand;
|
||||
} else if (pendingOperator == tr("\303\227")) {
|
||||
factorSoFar *= rightOperand;
|
||||
} else if (pendingOperator == tr("\303\267")) {
|
||||
if (rightOperand == 0.0)
|
||||
return false;
|
||||
factorSoFar /= rightOperand;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//! [38]
|
||||
@@ -1,117 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CALCULATOR_H
|
||||
#define CALCULATOR_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QLineEdit;
|
||||
QT_END_NAMESPACE
|
||||
class Button;
|
||||
|
||||
//! [0]
|
||||
class Calculator : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Calculator(QWidget *parent = 0);
|
||||
|
||||
private slots:
|
||||
void digitClicked();
|
||||
void unaryOperatorClicked();
|
||||
void additiveOperatorClicked();
|
||||
void multiplicativeOperatorClicked();
|
||||
void equalClicked();
|
||||
void pointClicked();
|
||||
void changeSignClicked();
|
||||
void backspaceClicked();
|
||||
void clear();
|
||||
void clearAll();
|
||||
void clearMemory();
|
||||
void readMemory();
|
||||
void setMemory();
|
||||
void addToMemory();
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
private:
|
||||
//! [1] //! [2]
|
||||
Button *createButton(const QString &text, const char *member);
|
||||
void abortOperation();
|
||||
bool calculate(double rightOperand, const QString &pendingOperator);
|
||||
//! [2]
|
||||
|
||||
//! [3]
|
||||
double sumInMemory;
|
||||
//! [3] //! [4]
|
||||
double sumSoFar;
|
||||
//! [4] //! [5]
|
||||
double factorSoFar;
|
||||
//! [5] //! [6]
|
||||
QString pendingAdditiveOperator;
|
||||
//! [6] //! [7]
|
||||
QString pendingMultiplicativeOperator;
|
||||
//! [7] //! [8]
|
||||
bool waitingForOperand;
|
||||
//! [8]
|
||||
|
||||
//! [9]
|
||||
QLineEdit *display;
|
||||
//! [9] //! [10]
|
||||
|
||||
enum { NumDigitButtons = 10 };
|
||||
Button *digitButtons[NumDigitButtons];
|
||||
};
|
||||
//! [10]
|
||||
|
||||
#endif
|
||||
@@ -1,11 +0,0 @@
|
||||
QT += widgets
|
||||
|
||||
HEADERS = button.h \
|
||||
calculator.h
|
||||
SOURCES = button.cpp \
|
||||
calculator.cpp \
|
||||
main.cpp
|
||||
|
||||
# Single Application implementation
|
||||
include(../../singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QApplication
|
||||
@@ -1,71 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
#include <singleapplication.h>
|
||||
|
||||
#include "calculator.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
SingleApplication app(argc, argv);
|
||||
|
||||
Calculator calc;
|
||||
|
||||
QObject::connect( &app, &SingleApplication::instanceStarted, [ &calc ]() {
|
||||
calc.raise();
|
||||
calc.activateWindow();
|
||||
});
|
||||
|
||||
calc.show();
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
#include <singleapplication.h>
|
||||
#include "messagereceiver.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Allow secondary instances
|
||||
SingleApplication app( argc, argv, true );
|
||||
|
||||
MessageReceiver msgReceiver;
|
||||
|
||||
// If this is a secondary instance
|
||||
if( app.isSecondary() ) {
|
||||
app.sendMessage( app.arguments().join(' ').toUtf8() );
|
||||
return 0;
|
||||
} else {
|
||||
QObject::connect(
|
||||
&app,
|
||||
&SingleApplication::receivedMessage,
|
||||
&msgReceiver,
|
||||
&MessageReceiver::receivedMessage
|
||||
);
|
||||
}
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
#include <QDebug>
|
||||
#include "messagereceiver.h"
|
||||
|
||||
MessageReceiver::MessageReceiver(QObject *parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void MessageReceiver::receivedMessage(int instanceId, QByteArray message)
|
||||
{
|
||||
qDebug() << "Received message from instance: " << instanceId;
|
||||
qDebug() << "Message Text: " << message;
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
#ifndef MESSAGERECEIVER_H
|
||||
#define MESSAGERECEIVER_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class MessageReceiver : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MessageReceiver(QObject *parent = 0);
|
||||
public slots:
|
||||
void receivedMessage( int instanceId, QByteArray message );
|
||||
};
|
||||
|
||||
#endif // MESSAGERECEIVER_H
|
||||
@@ -1,9 +0,0 @@
|
||||
# Single Application implementation
|
||||
include(../../singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QCoreApplication
|
||||
|
||||
SOURCES += main.cpp \
|
||||
messagereceiver.cpp
|
||||
|
||||
HEADERS += \
|
||||
messagereceiver.h
|
||||
@@ -1,174 +0,0 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2018
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#include <QtCore/QTime>
|
||||
#include <QtCore/QThread>
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QSharedMemory>
|
||||
|
||||
#include "singleapplication.h"
|
||||
#include "singleapplication_p.h"
|
||||
|
||||
/**
|
||||
* @brief Constructor. Checks and fires up LocalServer or closes the program
|
||||
* if another instance already exists
|
||||
* @param argc
|
||||
* @param argv
|
||||
* @param {bool} allowSecondaryInstances
|
||||
*/
|
||||
SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary, Options options, int timeout )
|
||||
: app_t( argc, argv ), d_ptr( new SingleApplicationPrivate( this ) )
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
|
||||
// Store the current mode of the program
|
||||
d->options = options;
|
||||
|
||||
// Generating an application ID used for identifying the shared memory
|
||||
// block and QLocalServer
|
||||
d->genBlockServerName();
|
||||
|
||||
#ifdef Q_OS_UNIX
|
||||
// By explicitly attaching it and then deleting it we make sure that the
|
||||
// memory is deleted even after the process has crashed on Unix.
|
||||
d->memory = new QSharedMemory( d->blockServerName );
|
||||
d->memory->attach();
|
||||
delete d->memory;
|
||||
#endif
|
||||
// Guarantee thread safe behaviour with a shared memory block.
|
||||
d->memory = new QSharedMemory( d->blockServerName );
|
||||
|
||||
// Create a shared memory block
|
||||
if( d->memory->create( sizeof( InstancesInfo ) ) ) {
|
||||
// Initialize the shared memory block
|
||||
d->memory->lock();
|
||||
d->initializeMemoryBlock();
|
||||
d->memory->unlock();
|
||||
} else {
|
||||
// Attempt to attach to the memory segment
|
||||
if( ! d->memory->attach() ) {
|
||||
qCritical() << "SingleApplication: Unable to attach to shared memory block.";
|
||||
qCritical() << d->memory->errorString();
|
||||
delete d;
|
||||
::exit( EXIT_FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>( d->memory->data() );
|
||||
QTime time;
|
||||
time.start();
|
||||
|
||||
// Make sure the shared memory block is initialised and in consistent state
|
||||
while( true ) {
|
||||
d->memory->lock();
|
||||
|
||||
if( d->blockChecksum() == inst->checksum ) break;
|
||||
|
||||
if( time.elapsed() > 5000 ) {
|
||||
qWarning() << "SingleApplication: Shared memory block has been in an inconsistent state from more than 5s. Assuming primary instance failure.";
|
||||
d->initializeMemoryBlock();
|
||||
}
|
||||
|
||||
d->memory->unlock();
|
||||
|
||||
// Random sleep here limits the probability of a collision between two racing apps
|
||||
qsrand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits<uint>::max() );
|
||||
QThread::sleep( 8 + static_cast <unsigned long>( static_cast <float>( qrand() ) / RAND_MAX * 10 ) );
|
||||
}
|
||||
|
||||
if( inst->primary == false) {
|
||||
d->startPrimary();
|
||||
d->memory->unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if another instance can be started
|
||||
if( allowSecondary ) {
|
||||
inst->secondary += 1;
|
||||
inst->checksum = d->blockChecksum();
|
||||
d->instanceNumber = inst->secondary;
|
||||
d->startSecondary();
|
||||
if( d->options & Mode::SecondaryNotification ) {
|
||||
d->connectToPrimary( timeout, SingleApplicationPrivate::SecondaryInstance );
|
||||
}
|
||||
d->memory->unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
d->memory->unlock();
|
||||
|
||||
d->connectToPrimary( timeout, SingleApplicationPrivate::NewInstance );
|
||||
|
||||
delete d;
|
||||
|
||||
::exit( EXIT_SUCCESS );
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Destructor
|
||||
*/
|
||||
SingleApplication::~SingleApplication()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
delete d;
|
||||
}
|
||||
|
||||
bool SingleApplication::isPrimary()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->server != nullptr;
|
||||
}
|
||||
|
||||
bool SingleApplication::isSecondary()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->server == nullptr;
|
||||
}
|
||||
|
||||
quint32 SingleApplication::instanceId()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->instanceNumber;
|
||||
}
|
||||
|
||||
qint64 SingleApplication::primaryPid()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->primaryPid();
|
||||
}
|
||||
|
||||
bool SingleApplication::sendMessage( QByteArray message, int timeout )
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
|
||||
// Nobody to connect to
|
||||
if( isPrimary() ) return false;
|
||||
|
||||
// Make sure the socket is connected
|
||||
d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect );
|
||||
|
||||
d->socket->write( message );
|
||||
bool dataWritten = d->socket->flush();
|
||||
d->socket->waitForBytesWritten( timeout );
|
||||
return dataWritten;
|
||||
}
|
||||
@@ -1,135 +0,0 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2018
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#ifndef SINGLE_APPLICATION_H
|
||||
#define SINGLE_APPLICATION_H
|
||||
|
||||
#include <QtCore/QtGlobal>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
|
||||
#ifndef QAPPLICATION_CLASS
|
||||
#define QAPPLICATION_CLASS QCoreApplication
|
||||
#endif
|
||||
|
||||
#include QT_STRINGIFY(QAPPLICATION_CLASS)
|
||||
|
||||
class SingleApplicationPrivate;
|
||||
|
||||
/**
|
||||
* @brief The SingleApplication class handles multipe instances of the same
|
||||
* Application
|
||||
* @see QCoreApplication
|
||||
*/
|
||||
class SingleApplication : public QAPPLICATION_CLASS
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
typedef QAPPLICATION_CLASS app_t;
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief Mode of operation of SingleApplication.
|
||||
* Whether the block should be user-wide or system-wide and whether the
|
||||
* primary instance should be notified when a secondary instance had been
|
||||
* started.
|
||||
* @note Operating system can restrict the shared memory blocks to the same
|
||||
* user, in which case the User/System modes will have no effect and the
|
||||
* block will be user wide.
|
||||
* @enum
|
||||
*/
|
||||
enum Mode {
|
||||
User = 1 << 0,
|
||||
System = 1 << 1,
|
||||
SecondaryNotification = 1 << 2,
|
||||
ExcludeAppVersion = 1 << 3,
|
||||
ExcludeAppPath = 1 << 4
|
||||
};
|
||||
Q_DECLARE_FLAGS(Options, Mode)
|
||||
|
||||
/**
|
||||
* @brief Intitializes a SingleApplication instance with argc command line
|
||||
* arguments in argv
|
||||
* @arg {int &} argc - Number of arguments in argv
|
||||
* @arg {const char *[]} argv - Supplied command line arguments
|
||||
* @arg {bool} allowSecondary - Whether to start the instance as secondary
|
||||
* if there is already a primary instance.
|
||||
* @arg {Mode} mode - Whether for the SingleApplication block to be applied
|
||||
* User wide or System wide.
|
||||
* @arg {int} timeout - Timeout to wait in miliseconds.
|
||||
* @note argc and argv may be changed as Qt removes arguments that it
|
||||
* recognizes
|
||||
* @note Mode::SecondaryNotification only works if set on both the primary
|
||||
* instance and the secondary instance.
|
||||
* @note The timeout is just a hint for the maximum time of blocking
|
||||
* operations. It does not guarantee that the SingleApplication
|
||||
* initialisation will be completed in given time, though is a good hint.
|
||||
* Usually 4*timeout would be the worst case (fail) scenario.
|
||||
* @see See the corresponding QAPPLICATION_CLASS constructor for reference
|
||||
*/
|
||||
explicit SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 1000 );
|
||||
~SingleApplication();
|
||||
|
||||
/**
|
||||
* @brief Returns if the instance is the primary instance
|
||||
* @returns {bool}
|
||||
*/
|
||||
bool isPrimary();
|
||||
|
||||
/**
|
||||
* @brief Returns if the instance is a secondary instance
|
||||
* @returns {bool}
|
||||
*/
|
||||
bool isSecondary();
|
||||
|
||||
/**
|
||||
* @brief Returns a unique identifier for the current instance
|
||||
* @returns {qint32}
|
||||
*/
|
||||
quint32 instanceId();
|
||||
|
||||
/**
|
||||
* @brief Returns the process ID (PID) of the primary instance
|
||||
* @returns {qint64}
|
||||
*/
|
||||
qint64 primaryPid();
|
||||
|
||||
/**
|
||||
* @brief Sends a message to the primary instance. Returns true on success.
|
||||
* @param {int} timeout - Timeout for connecting
|
||||
* @returns {bool}
|
||||
* @note sendMessage() will return false if invoked from the primary
|
||||
* instance.
|
||||
*/
|
||||
bool sendMessage( QByteArray message, int timeout = 100 );
|
||||
|
||||
Q_SIGNALS:
|
||||
void instanceStarted();
|
||||
void receivedMessage( quint32 instanceId, QByteArray message );
|
||||
|
||||
private:
|
||||
SingleApplicationPrivate *d_ptr;
|
||||
Q_DECLARE_PRIVATE(SingleApplication)
|
||||
};
|
||||
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(SingleApplication::Options)
|
||||
|
||||
#endif // SINGLE_APPLICATION_H
|
||||
@@ -1,19 +0,0 @@
|
||||
QT += core network
|
||||
CONFIG += c++11
|
||||
|
||||
HEADERS += $$PWD/singleapplication.h \
|
||||
$$PWD/singleapplication_p.h
|
||||
SOURCES += $$PWD/singleapplication.cpp \
|
||||
$$PWD/singleapplication_p.cpp
|
||||
|
||||
INCLUDEPATH += $$PWD
|
||||
|
||||
win32 {
|
||||
msvc:LIBS += Advapi32.lib
|
||||
gcc:LIBS += -ladvapi32
|
||||
}
|
||||
|
||||
DISTFILES += \
|
||||
$$PWD/README.md \
|
||||
$$PWD/CHANGELOG.md \
|
||||
$$PWD/Windows.md
|
||||
@@ -1,403 +0,0 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2018
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
//
|
||||
// W A R N I N G !!!
|
||||
// -----------------
|
||||
//
|
||||
// This file is not part of the SingleApplication API. It is used purely as an
|
||||
// implementation detail. This header file may change from version to
|
||||
// version without notice, or may even be removed.
|
||||
//
|
||||
|
||||
#include <cstdlib>
|
||||
#include <cstddef>
|
||||
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QProcess>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QSemaphore>
|
||||
#include <QtCore/QDataStream>
|
||||
#include <QtCore/QStandardPaths>
|
||||
#include <QtCore/QCryptographicHash>
|
||||
#include <QtNetwork/QLocalServer>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
|
||||
#include "singleapplication.h"
|
||||
#include "singleapplication_p.h"
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include <windows.h>
|
||||
#include <lmcons.h>
|
||||
#endif
|
||||
|
||||
SingleApplicationPrivate::SingleApplicationPrivate( SingleApplication *q_ptr )
|
||||
: q_ptr( q_ptr )
|
||||
{
|
||||
server = nullptr;
|
||||
socket = nullptr;
|
||||
}
|
||||
|
||||
SingleApplicationPrivate::~SingleApplicationPrivate()
|
||||
{
|
||||
if( socket != nullptr ) {
|
||||
socket->close();
|
||||
delete socket;
|
||||
}
|
||||
|
||||
memory->lock();
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>(memory->data());
|
||||
if( server != nullptr ) {
|
||||
server->close();
|
||||
delete server;
|
||||
inst->primary = false;
|
||||
inst->primaryPid = -1;
|
||||
inst->checksum = blockChecksum();
|
||||
}
|
||||
memory->unlock();
|
||||
|
||||
delete memory;
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::genBlockServerName()
|
||||
{
|
||||
QCryptographicHash appData( QCryptographicHash::Sha256 );
|
||||
appData.addData( "SingleApplication", 17 );
|
||||
appData.addData( SingleApplication::app_t::applicationName().toUtf8() );
|
||||
appData.addData( SingleApplication::app_t::organizationName().toUtf8() );
|
||||
appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() );
|
||||
|
||||
if( ! (options & SingleApplication::Mode::ExcludeAppVersion) ) {
|
||||
appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() );
|
||||
}
|
||||
|
||||
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ) {
|
||||
#ifdef Q_OS_WIN
|
||||
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
|
||||
#else
|
||||
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
|
||||
#endif
|
||||
}
|
||||
|
||||
// User level block requires a user specific data in the hash
|
||||
if( options & SingleApplication::Mode::User ) {
|
||||
#ifdef Q_OS_WIN
|
||||
wchar_t username [ UNLEN + 1 ];
|
||||
// Specifies size of the buffer on input
|
||||
DWORD usernameLength = UNLEN + 1;
|
||||
if( GetUserNameW( username, &usernameLength ) ) {
|
||||
appData.addData( QString::fromWCharArray(username).toUtf8() );
|
||||
} else {
|
||||
appData.addData( QStandardPaths::standardLocations( QStandardPaths::HomeLocation ).join("").toUtf8() );
|
||||
}
|
||||
#endif
|
||||
#ifdef Q_OS_UNIX
|
||||
QProcess process;
|
||||
process.start( "whoami" );
|
||||
if( process.waitForFinished( 100 ) &&
|
||||
process.exitCode() == QProcess::NormalExit) {
|
||||
appData.addData( process.readLine() );
|
||||
} else {
|
||||
appData.addData(
|
||||
QDir(
|
||||
QStandardPaths::standardLocations( QStandardPaths::HomeLocation ).first()
|
||||
).absolutePath().toUtf8()
|
||||
);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// Replace the backslash in RFC 2045 Base64 [a-zA-Z0-9+/=] to comply with
|
||||
// server naming requirements.
|
||||
blockServerName = appData.result().toBase64().replace("/", "_");
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::initializeMemoryBlock()
|
||||
{
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
|
||||
inst->primary = false;
|
||||
inst->secondary = 0;
|
||||
inst->primaryPid = -1;
|
||||
inst->checksum = blockChecksum();
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::startPrimary()
|
||||
{
|
||||
Q_Q(SingleApplication);
|
||||
|
||||
// Successful creation means that no main process exists
|
||||
// So we start a QLocalServer to listen for connections
|
||||
QLocalServer::removeServer( blockServerName );
|
||||
server = new QLocalServer();
|
||||
|
||||
// Restrict access to the socket according to the
|
||||
// SingleApplication::Mode::User flag on User level or no restrictions
|
||||
if( options & SingleApplication::Mode::User ) {
|
||||
server->setSocketOptions( QLocalServer::UserAccessOption );
|
||||
} else {
|
||||
server->setSocketOptions( QLocalServer::WorldAccessOption );
|
||||
}
|
||||
|
||||
server->listen( blockServerName );
|
||||
QObject::connect(
|
||||
server,
|
||||
&QLocalServer::newConnection,
|
||||
this,
|
||||
&SingleApplicationPrivate::slotConnectionEstablished
|
||||
);
|
||||
|
||||
// Reset the number of connections
|
||||
InstancesInfo* inst = static_cast <InstancesInfo*>( memory->data() );
|
||||
|
||||
inst->primary = true;
|
||||
inst->primaryPid = q->applicationPid();
|
||||
inst->checksum = blockChecksum();
|
||||
|
||||
instanceNumber = 0;
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::startSecondary()
|
||||
{
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType connectionType )
|
||||
{
|
||||
// Connect to the Local Server of the Primary Instance if not already
|
||||
// connected.
|
||||
if( socket == nullptr ) {
|
||||
socket = new QLocalSocket();
|
||||
}
|
||||
|
||||
// If already connected - we are done;
|
||||
if( socket->state() == QLocalSocket::ConnectedState )
|
||||
return;
|
||||
|
||||
// If not connect
|
||||
if( socket->state() == QLocalSocket::UnconnectedState ||
|
||||
socket->state() == QLocalSocket::ClosingState ) {
|
||||
socket->connectToServer( blockServerName );
|
||||
}
|
||||
|
||||
// Wait for being connected
|
||||
if( socket->state() == QLocalSocket::ConnectingState ) {
|
||||
socket->waitForConnected( msecs );
|
||||
}
|
||||
|
||||
// Initialisation message according to the SingleApplication protocol
|
||||
if( socket->state() == QLocalSocket::ConnectedState ) {
|
||||
// Notify the parent that a new instance had been started;
|
||||
QByteArray initMsg;
|
||||
QDataStream writeStream(&initMsg, QIODevice::WriteOnly);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
writeStream.setVersion(QDataStream::Qt_5_6);
|
||||
#endif
|
||||
|
||||
writeStream << blockServerName.toLatin1();
|
||||
writeStream << static_cast<quint8>(connectionType);
|
||||
writeStream << instanceNumber;
|
||||
quint16 checksum = qChecksum(initMsg.constData(), static_cast<quint32>(initMsg.length()));
|
||||
writeStream << checksum;
|
||||
|
||||
// The header indicates the message length that follows
|
||||
QByteArray header;
|
||||
QDataStream headerStream(&header, QIODevice::WriteOnly);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
headerStream.setVersion(QDataStream::Qt_5_6);
|
||||
#endif
|
||||
headerStream << static_cast <quint64>( initMsg.length() );
|
||||
|
||||
socket->write( header );
|
||||
socket->write( initMsg );
|
||||
socket->flush();
|
||||
socket->waitForBytesWritten( msecs );
|
||||
}
|
||||
}
|
||||
|
||||
quint16 SingleApplicationPrivate::blockChecksum()
|
||||
{
|
||||
return qChecksum(
|
||||
static_cast <const char *>( memory->data() ),
|
||||
offsetof( InstancesInfo, checksum )
|
||||
);
|
||||
}
|
||||
|
||||
qint64 SingleApplicationPrivate::primaryPid()
|
||||
{
|
||||
qint64 pid;
|
||||
|
||||
memory->lock();
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
|
||||
pid = inst->primaryPid;
|
||||
memory->unlock();
|
||||
|
||||
return pid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Executed when a connection has been made to the LocalServer
|
||||
*/
|
||||
void SingleApplicationPrivate::slotConnectionEstablished()
|
||||
{
|
||||
QLocalSocket *nextConnSocket = server->nextPendingConnection();
|
||||
connectionMap.insert(nextConnSocket, ConnectionInfo());
|
||||
|
||||
QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose,
|
||||
[nextConnSocket, this]() {
|
||||
auto &info = connectionMap[nextConnSocket];
|
||||
Q_EMIT this->slotClientConnectionClosed( nextConnSocket, info.instanceId );
|
||||
}
|
||||
);
|
||||
|
||||
QObject::connect(nextConnSocket, &QLocalSocket::disconnected,
|
||||
[nextConnSocket, this](){
|
||||
connectionMap.remove(nextConnSocket);
|
||||
nextConnSocket->deleteLater();
|
||||
}
|
||||
);
|
||||
|
||||
QObject::connect(nextConnSocket, &QLocalSocket::readyRead,
|
||||
[nextConnSocket, this]() {
|
||||
auto &info = connectionMap[nextConnSocket];
|
||||
switch(info.stage) {
|
||||
case StageHeader:
|
||||
readInitMessageHeader(nextConnSocket);
|
||||
break;
|
||||
case StageBody:
|
||||
readInitMessageBody(nextConnSocket);
|
||||
break;
|
||||
case StageConnected:
|
||||
Q_EMIT this->slotDataAvailable( nextConnSocket, info.instanceId );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock )
|
||||
{
|
||||
if (!connectionMap.contains( sock )) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
QDataStream headerStream( sock );
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
headerStream.setVersion( QDataStream::Qt_5_6 );
|
||||
#endif
|
||||
|
||||
// Read the header to know the message length
|
||||
quint64 msgLen = 0;
|
||||
headerStream >> msgLen;
|
||||
ConnectionInfo &info = connectionMap[sock];
|
||||
info.stage = StageBody;
|
||||
info.msgLen = msgLen;
|
||||
|
||||
if ( sock->bytesAvailable() >= (qint64) msgLen ) {
|
||||
readInitMessageBody( sock );
|
||||
}
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
|
||||
{
|
||||
Q_Q(SingleApplication);
|
||||
|
||||
if (!connectionMap.contains( sock )) {
|
||||
return;
|
||||
}
|
||||
|
||||
ConnectionInfo &info = connectionMap[sock];
|
||||
if( sock->bytesAvailable() < ( qint64 )info.msgLen ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Read the message body
|
||||
QByteArray msgBytes = sock->read(info.msgLen);
|
||||
QDataStream readStream(msgBytes);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
readStream.setVersion( QDataStream::Qt_5_6 );
|
||||
#endif
|
||||
|
||||
// server name
|
||||
QByteArray latin1Name;
|
||||
readStream >> latin1Name;
|
||||
|
||||
// connection type
|
||||
ConnectionType connectionType = InvalidConnection;
|
||||
quint8 connTypeVal = InvalidConnection;
|
||||
readStream >> connTypeVal;
|
||||
connectionType = static_cast <ConnectionType>( connTypeVal );
|
||||
|
||||
// instance id
|
||||
quint32 instanceId = 0;
|
||||
readStream >> instanceId;
|
||||
|
||||
// checksum
|
||||
quint16 msgChecksum = 0;
|
||||
readStream >> msgChecksum;
|
||||
|
||||
const quint16 actualChecksum = qChecksum( msgBytes.constData(), static_cast<quint32>( msgBytes.length() - sizeof( quint16 ) ) );
|
||||
|
||||
bool isValid = readStream.status() == QDataStream::Ok &&
|
||||
QLatin1String(latin1Name) == blockServerName &&
|
||||
msgChecksum == actualChecksum;
|
||||
|
||||
if( !isValid ) {
|
||||
sock->close();
|
||||
return;
|
||||
}
|
||||
|
||||
info.instanceId = instanceId;
|
||||
info.stage = StageConnected;
|
||||
|
||||
if( connectionType == NewInstance ||
|
||||
( connectionType == SecondaryInstance &&
|
||||
options & SingleApplication::Mode::SecondaryNotification ) )
|
||||
{
|
||||
Q_EMIT q->instanceStarted();
|
||||
}
|
||||
|
||||
if (sock->bytesAvailable() > 0) {
|
||||
//This line crash
|
||||
//Q_EMIT this->slotDataAvailable( sock, instanceId );
|
||||
}
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quint32 instanceId )
|
||||
{
|
||||
Q_Q(SingleApplication);
|
||||
Q_EMIT q->receivedMessage( instanceId, dataSocket->readAll() );
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::slotClientConnectionClosed( QLocalSocket *closedSocket, quint32 instanceId )
|
||||
{
|
||||
if( closedSocket->bytesAvailable() > 0 )
|
||||
Q_EMIT slotDataAvailable( closedSocket, instanceId );
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2016
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
//
|
||||
// W A R N I N G !!!
|
||||
// -----------------
|
||||
//
|
||||
// This file is not part of the SingleApplication API. It is used purely as an
|
||||
// implementation detail. This header file may change from version to
|
||||
// version without notice, or may even be removed.
|
||||
//
|
||||
|
||||
#ifndef SINGLEAPPLICATION_P_H
|
||||
#define SINGLEAPPLICATION_P_H
|
||||
|
||||
#include <QtCore/QSharedMemory>
|
||||
#include <QtNetwork/QLocalServer>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
#include "singleapplication.h"
|
||||
|
||||
struct InstancesInfo {
|
||||
bool primary;
|
||||
quint32 secondary;
|
||||
qint64 primaryPid;
|
||||
quint16 checksum;
|
||||
};
|
||||
|
||||
struct ConnectionInfo {
|
||||
explicit ConnectionInfo() :
|
||||
msgLen(0), instanceId(0), stage(0) {}
|
||||
qint64 msgLen;
|
||||
quint32 instanceId;
|
||||
quint8 stage;
|
||||
};
|
||||
|
||||
class SingleApplicationPrivate : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum ConnectionType : quint8 {
|
||||
InvalidConnection = 0,
|
||||
NewInstance = 1,
|
||||
SecondaryInstance = 2,
|
||||
Reconnect = 3
|
||||
};
|
||||
enum ConnectionStage : quint8 {
|
||||
StageHeader = 0,
|
||||
StageBody = 1,
|
||||
StageConnected = 2,
|
||||
};
|
||||
Q_DECLARE_PUBLIC(SingleApplication)
|
||||
|
||||
SingleApplicationPrivate( SingleApplication *q_ptr );
|
||||
~SingleApplicationPrivate();
|
||||
|
||||
void genBlockServerName();
|
||||
void initializeMemoryBlock();
|
||||
void startPrimary();
|
||||
void startSecondary();
|
||||
void connectToPrimary(int msecs, ConnectionType connectionType );
|
||||
quint16 blockChecksum();
|
||||
qint64 primaryPid();
|
||||
void readInitMessageHeader(QLocalSocket *socket);
|
||||
void readInitMessageBody(QLocalSocket *socket);
|
||||
|
||||
SingleApplication *q_ptr;
|
||||
QSharedMemory *memory;
|
||||
QLocalSocket *socket;
|
||||
QLocalServer *server;
|
||||
quint32 instanceNumber;
|
||||
QString blockServerName;
|
||||
SingleApplication::Options options;
|
||||
QMap<QLocalSocket*, ConnectionInfo> connectionMap;
|
||||
|
||||
public Q_SLOTS:
|
||||
void slotConnectionEstablished();
|
||||
void slotDataAvailable( QLocalSocket*, quint32 );
|
||||
void slotClientConnectionClosed( QLocalSocket*, quint32 );
|
||||
};
|
||||
|
||||
#endif // SINGLEAPPLICATION_P_H
|
||||
@@ -3,5 +3,4 @@ LinkElementCommand = 2
|
||||
ItemResizerCommand = 3
|
||||
ChangeShapeStyleCommand = 4
|
||||
QetShapeGeometryCommand = 5
|
||||
AlignmentTextsGroupCommand = 6
|
||||
QPropertyUndoCommand = 10 000
|
||||
|
||||
@@ -10,7 +10,6 @@ ConductorTextItem + 1006
|
||||
DiagramImageItem + 1007
|
||||
QetShapItem + 1008
|
||||
crossRefItem + 1009
|
||||
DynamiqueElementTextItem + 1010
|
||||
ElementPrimitiveDecorator + 2200
|
||||
|
||||
###ELEMENT EDITOR###
|
||||
@@ -22,7 +21,3 @@ part terminal + 1106
|
||||
part text + 1107
|
||||
part text field + 1108
|
||||
part rectangle + 1109
|
||||
part dynamic text field + 1110
|
||||
|
||||
###QetGraphicsHandlerItem###
|
||||
QetGraphicsHandlerItem = 1200
|
||||
|
||||
Binary file not shown.
@@ -1,24 +0,0 @@
|
||||
<definition width="70" version="0.3" hotspot_x="49" hotspot_y="15" height="30" type="element" ic="true" orientation="dyyy"
|
||||
link_type="previous_report">
|
||||
<uuid uuid="{F549BEFB-F0CF-44ED-A948-F6F796BFB421}"/><names>
|
||||
<name lang="ru">Предыдущая страница</name>
|
||||
<name lang="ar">الصفحة السابقة</name>
|
||||
<name lang="de">Vorherige Folie</name>
|
||||
<name lang="el">Προηγούμενη σελίδα</name>
|
||||
<name lang="en">Coming arrow</name>
|
||||
<name lang="it">Foglio precedente</name>
|
||||
<name lang="fr">Folio précédent</name>
|
||||
<name lang="pl">Wejście adresowe</name>
|
||||
<name lang="es">folio anterior</name>
|
||||
<name lang="cs">Předchozí list</name>
|
||||
<name lang="nl">Referentie Vorig</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<polygon x4="-1" antialias="true" style="line-style:normal;line-weight:normal;filling:black;color:black" closed="false" y1="-4" x1="-1" y2="4" x2="-1" y3="0" x3="9" y4="-4"/>
|
||||
<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="9" y2="0" x2="12"/>
|
||||
<input x="-44" y="0" size="9" rotate="true" text="/"/>
|
||||
<terminal x="13" y="0" nameHidden="0" number="" name="" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,24 +0,0 @@
|
||||
<definition width="40" version="0.3" hotspot_x="18" hotspot_y="15" height="30" type="element" ic="true" orientation="dyyy"
|
||||
link_type="next_report">
|
||||
<uuid uuid="{717352A1-F3C7-49C7-9A06-51620AB5CA00}"/><names>
|
||||
<name lang="ru">Следующая страница</name>
|
||||
<name lang="ar">الصفحة التالية</name>
|
||||
<name lang="de">Nächste Folie</name>
|
||||
<name lang="el">Επόμενη σελίδα</name>
|
||||
<name lang="en">Going arrow</name>
|
||||
<name lang="it">Foglio successivo</name>
|
||||
<name lang="fr">Folio suivant</name>
|
||||
<name lang="pl">Wyjście adresowe</name>
|
||||
<name lang="es">Folio siguiente</name>
|
||||
<name lang="cs">Další list</name>
|
||||
<name lang="nl">Referentie volgend</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<polygon x4="-9" antialias="true" style="line-style:normal;line-weight:normal;filling:black;color:black" closed="false" y1="-4" x1="-9" y2="4" x2="-9" y3="0" x3="2" y4="-4"/>
|
||||
<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="-9" y2="0" x2="-12"/>
|
||||
<input x="6" y="0" size="9" rotate="true" text="/"/>
|
||||
<terminal x="-13" y="0" nameHidden="0" number="" name="" orientation="w"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,16 +0,0 @@
|
||||
<qet-directory>
|
||||
<names>
|
||||
<name lang="ru">Точки разрыва</name>
|
||||
<name lang="ar">إحالات</name>
|
||||
<name lang="cs">Výstupy</name>
|
||||
<name lang="de">Folienverweise</name>
|
||||
<name lang="el">Αναφορές σελίδας</name>
|
||||
<name lang="en">Folio referencing</name>
|
||||
<name lang="fr">Reports de folio</name>
|
||||
<name lang="it">Riferimenti</name>
|
||||
<name lang="pl">Odsyłacze</name>
|
||||
<name lang="es">Referencias</name>
|
||||
<name lang="nl">Referenties</name>
|
||||
<name lang="da">Ark henvisninger</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
@@ -0,0 +1,24 @@
|
||||
<definition width="70" version="0.3" hotspot_x="49" hotspot_y="15" height="30" type="element" ic="true" orientation="dyyy"
|
||||
link_type="previous_report">
|
||||
<uuid uuid="{F549BEFB-F0CF-44ED-A948-F6F796BFB421}"/><names>
|
||||
<name lang="ru">Предыдущая страница</name>
|
||||
<name lang="ar">الصفحة السابقة</name>
|
||||
<name lang="de">Vorherige Folie</name>
|
||||
<name lang="el">Προηγούμενη σελίδα</name>
|
||||
<name lang="en">Previous folio</name>
|
||||
<name lang="it">Foglio precedente</name>
|
||||
<name lang="fr">Folio précédent</name>
|
||||
<name lang="pl">Wejście adresowe</name>
|
||||
<name lang="es">folio anterior</name>
|
||||
<name lang="cs">Předchozí list</name>
|
||||
<name lang="nl">Referentie Vorig</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<polygon x4="-1" antialias="true" style="line-style:normal;line-weight:normal;filling:black;color:black" closed="false" y1="-4" x1="-1" y2="4" x2="-1" y3="0" x3="9" y4="-4"/>
|
||||
<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="9" y2="0" x2="12"/>
|
||||
<input x="-44" y="0" size="9" rotate="true" text="/"/>
|
||||
<terminal x="13" y="0" nameHidden="0" number="" name="" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,24 @@
|
||||
<definition width="40" version="0.3" hotspot_x="18" hotspot_y="15" height="30" type="element" ic="true" orientation="dyyy"
|
||||
link_type="next_report">
|
||||
<uuid uuid="{717352A1-F3C7-49C7-9A06-51620AB5CA00}"/><names>
|
||||
<name lang="ru">Следующая страница</name>
|
||||
<name lang="ar">الصفحة التالية</name>
|
||||
<name lang="de">Nächste Folie</name>
|
||||
<name lang="el">Επόμενη σελίδα</name>
|
||||
<name lang="en">Next folio</name>
|
||||
<name lang="it">Foglio successivo</name>
|
||||
<name lang="fr">Folio suivant</name>
|
||||
<name lang="pl">Wyjście adresowe</name>
|
||||
<name lang="es">Folio siguiente</name>
|
||||
<name lang="cs">Další list</name>
|
||||
<name lang="nl">Referentie volgend</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<polygon x4="-9" antialias="true" style="line-style:normal;line-weight:normal;filling:black;color:black" closed="false" y1="-4" x1="-9" y2="4" x2="-9" y3="0" x3="2" y4="-4"/>
|
||||
<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="-9" y2="0" x2="-12"/>
|
||||
<input x="6" y="0" size="9" rotate="true" text="/"/>
|
||||
<terminal x="-13" y="0" nameHidden="0" number="" name="" orientation="w"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,15 @@
|
||||
<qet-directory>
|
||||
<names>
|
||||
<name lang="ru">Точки разрыва</name>
|
||||
<name lang="ar">إحالات</name>
|
||||
<name lang="cs">Výstupy</name>
|
||||
<name lang="de">Folienverweise</name>
|
||||
<name lang="el">Αναφορές σελίδας</name>
|
||||
<name lang="en">Sheet referencing</name>
|
||||
<name lang="fr">Reports de folio</name>
|
||||
<name lang="it">Riferimenti</name>
|
||||
<name lang="pl">Odsyłacze</name>
|
||||
<name lang="es">Referencias</name>
|
||||
<name lang="nl">Referenties</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
@@ -1,15 +1,13 @@
|
||||
<qet-directory>
|
||||
<names>
|
||||
<name lang="ru">Подвод питания, сеть</name>
|
||||
<name lang="en">Network sources</name>
|
||||
<name lang="en">Network supplies</name>
|
||||
<name lang="fr">Sources réseau</name>
|
||||
<name lang="it">Alimentazione da rete</name>
|
||||
<name lang="pl">Sieć elektroenergetyczna</name>
|
||||
<name lang="de">Netzquellen</name>
|
||||
<name lang="el">Παροχές δικτύου</name>
|
||||
<name lang="nl">Netvoedingen</name>
|
||||
<name lang="nl">Netwerk voedingen</name>
|
||||
<name lang="cs">Síťové zdroje</name>
|
||||
<name lang="es">Fuentes de red</name>
|
||||
<name lang="da">Netværkskilder</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -1,25 +1,20 @@
|
||||
<definition hotspot_x="11" hotspot_y="4" version="0.70" type="element" height="20" orientation="dyyy" link_type="terminal" width="30">
|
||||
<uuid uuid="{141e7e1e-4f7f-456d-9f04-52c32109b969}"/>
|
||||
<definition type="element" height="20" orientation="dyyy" version="0.5" link_type="simple" hotspot_y="4" width="30" hotspot_x="11">
|
||||
<uuid uuid="{8ef9d490-8db2-450a-ab89-22d2b35c01ed}"/>
|
||||
<names>
|
||||
<name lang="en">Combine</name>
|
||||
<name lang="fr">Jonction</name>
|
||||
<name lang="es">Unión</name>
|
||||
<name lang="it">Collegamento</name>
|
||||
<name lang="pl">Połączenie 1</name>
|
||||
<name lang="ar">وصلة</name>
|
||||
<name lang="en">Combine</name>
|
||||
<name lang="ru">Соединение</name>
|
||||
<name lang="pl">Połączenie 1</name>
|
||||
<name lang="fr">Jonction</name>
|
||||
<name lang="cs">Spoj</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<line end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" antialias="false" x1="7" length1="1.5" x2="1" y2="0" length2="1.5" end1="none"/>
|
||||
<dynamic_text text_from="UserText" y="8.5" uuid="{43af2b14-2822-4ba2-988b-bda2005f69fd}" x="2" frame="false" z="2" rotation="0" text_width="-1" font_size="1">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<line end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="6" antialias="false" x1="0" length1="1.5" x2="6" y2="0" length2="1.5" end1="none"/>
|
||||
<terminal y="0" x="-4" orientation="w"/>
|
||||
<terminal y="10" x="0" orientation="s"/>
|
||||
<terminal y="0" x="10" orientation="e"/>
|
||||
<line y2="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" x1="7" y1="0" end2="none" x2="1" antialias="false" end1="none" length2="1.5"/>
|
||||
<input x="2" y="13.5" size="1" tagg="label" rotate="true" text="_"/>
|
||||
<line y2="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" x1="0" y1="6" end2="none" x2="6" antialias="false" end1="none" length2="1.5"/>
|
||||
<terminal orientation="w" x="-4" y="0"/>
|
||||
<terminal orientation="s" x="0" y="10"/>
|
||||
<terminal orientation="e" x="10" y="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -1,22 +1,17 @@
|
||||
<definition hotspot_y="7" width="20" orientation="dyyy" type="element" height="20" version="0.70" hotspot_x="11" link_type="terminal">
|
||||
<uuid uuid="{2d505b61-db0f-4784-9b9c-189366058272}"/>
|
||||
<definition type="element" height="20" orientation="dyyy" version="0.5" link_type="simple" hotspot_y="7" width="20" hotspot_x="11">
|
||||
<uuid uuid="{2c6c492e-8d8e-402e-a449-0cf5a7462ced}"/>
|
||||
<names>
|
||||
<name lang="es">Esquina</name>
|
||||
<name lang="en">Corner</name>
|
||||
<name lang="cs">Roh</name>
|
||||
<name lang="fr">Coin</name>
|
||||
<name lang="ru">Угол</name>
|
||||
<name lang="pl">Narożnik</name>
|
||||
<name lang="ar">ركن</name>
|
||||
<name lang="it">Angolo</name>
|
||||
<name lang="ru">Угол</name>
|
||||
<name lang="fr">Coin</name>
|
||||
<name lang="pl">Narożnik</name>
|
||||
<name lang="cs">Roh</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<dynamic_text rotation="0" x="-0.5" y="-5.45" uuid="{9b8dd22d-096a-4989-b6f7-1de9e0339f53}" font_size="1" z="1" frame="false" text_from="UserText" text_width="-1">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<terminal x="0" y="4" orientation="s"/>
|
||||
<terminal x="-4" y="0" orientation="w"/>
|
||||
<input x="-0.5" y="-0.45" size="1" tagg="label" rotate="true" text="_"/>
|
||||
<terminal orientation="s" x="0" y="4"/>
|
||||
<terminal orientation="w" x="-4" y="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -1,25 +1,20 @@
|
||||
<definition height="20" link_type="terminal" hotspot_x="9" width="20" orientation="dyyy" hotspot_y="9" version="0.70" type="element">
|
||||
<uuid uuid="{8c0d3e9c-dc37-41d7-bfd5-fe4dbf8dc4fb}"/>
|
||||
<definition type="element" height="20" orientation="dyyy" version="0.5" link_type="simple" hotspot_y="9" width="20" hotspot_x="9">
|
||||
<uuid uuid="{eb8040c8-6998-4f43-818b-1d368825ffac}"/>
|
||||
<names>
|
||||
<name lang="ru">Пересечение</name>
|
||||
<name lang="cs">Kříž</name>
|
||||
<name lang="pl">Połączenie 2</name>
|
||||
<name lang="it">Croce</name>
|
||||
<name lang="es">Cruzar</name>
|
||||
<name lang="en">Cross</name>
|
||||
<name lang="ar">صليب</name>
|
||||
<name lang="it">Croce</name>
|
||||
<name lang="ru">Пересечение</name>
|
||||
<name lang="fr">Croix</name>
|
||||
<name lang="pl">Połączenie 2</name>
|
||||
<name lang="cs">Kříž</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<circle y="-1" style="line-style:normal;line-weight:normal;filling:black;color:black" x="-1" antialias="true" diameter="2"/>
|
||||
<dynamic_text uuid="{fc5c039b-1fca-40d9-a6ff-a9e1775de38b}" text_width="-1" frame="false" y="-9.45" font_size="1" x="-0.5" z="2" rotation="0" text_from="UserText">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<terminal y="0" orientation="e" x="4"/>
|
||||
<terminal y="4" orientation="s" x="0"/>
|
||||
<terminal y="-4" orientation="n" x="0"/>
|
||||
<terminal y="0" orientation="w" x="-4"/>
|
||||
<circle x="-1" y="-1" style="line-style:normal;line-weight:normal;filling:black;color:black" antialias="true" diameter="2"/>
|
||||
<input x="-0.5" y="-4.45" size="1" tagg="label" rotate="true" text="_"/>
|
||||
<terminal orientation="e" x="4" y="0"/>
|
||||
<terminal orientation="s" x="0" y="4"/>
|
||||
<terminal orientation="n" x="0" y="-4"/>
|
||||
<terminal orientation="w" x="-4" y="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -1,23 +1,18 @@
|
||||
<definition width="10" hotspot_y="14" hotspot_x="5" height="30" link_type="terminal" orientation="dyyy" version="0.70" type="element">
|
||||
<uuid uuid="{b5abb4c2-455d-45ff-95f2-328521f4e2e1}"/>
|
||||
<definition type="element" height="30" orientation="dyyy" version="0.5" link_type="simple" hotspot_y="14" width="10" hotspot_x="5">
|
||||
<uuid uuid="{cd8b3f5f-5eae-416c-9966-c7b5529b6e63}"/>
|
||||
<names>
|
||||
<name lang="en">Jump</name>
|
||||
<name lang="fr">Saut</name>
|
||||
<name lang="ar">قفز</name>
|
||||
<name lang="cs">Skok</name>
|
||||
<name lang="it">Salto</name>
|
||||
<name lang="pl">Brak połączenia</name>
|
||||
<name lang="ru">Перемычка</name>
|
||||
<name lang="es">Puente</name>
|
||||
<name lang="fr">Saut</name>
|
||||
<name lang="pl">Brak połączenia</name>
|
||||
<name lang="cs">Skok</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<arc x="-3" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" width="6" start="90" y="-3" height="6" angle="-180"/>
|
||||
<dynamic_text font_size="1" x="1.5" text_from="UserText" z="2" y="-11.45" rotation="0" uuid="{1a3e4d91-15cc-424b-99d0-25930d779fb6}" frame="false" text_width="-1">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<terminal x="0" y="-7" orientation="n"/>
|
||||
<terminal x="0" y="7" orientation="s"/>
|
||||
<arc height="6" start="90" angle="-180" x="-3" y="-3" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" width="6"/>
|
||||
<input x="1.5" y="-6.45" size="1" tagg="label" rotate="true" text="_"/>
|
||||
<terminal orientation="n" x="0" y="-7"/>
|
||||
<terminal orientation="s" x="0" y="7"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -5,11 +5,9 @@
|
||||
<name lang="en">Connections</name>
|
||||
<name lang="fr">Connections</name>
|
||||
<name lang="it">Collegamenti</name>
|
||||
<name lang="pl">Połączenia</name>
|
||||
<name lang="pl">Połączenie</name>
|
||||
<name lang="cs">Spojení</name>
|
||||
<name lang="el">Ενώσεις</name>
|
||||
<name lang="nl">Verbindingen</name>
|
||||
<name lang="es">Conexiones</name>
|
||||
<name lang="da">Forbindelser</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -1,25 +1,20 @@
|
||||
<definition type="element" height="20" width="30" orientation="dyyy" version="0.70" hotspot_y="4" link_type="terminal" hotspot_x="17">
|
||||
<uuid uuid="{709e6400-adc2-4faf-ba46-aa513d1dcaf1}"/>
|
||||
<definition type="element" height="20" orientation="dyyy" version="0.5" link_type="simple" hotspot_y="4" width="30" hotspot_x="17">
|
||||
<uuid uuid="{0f807068-d5a4-4628-85f4-0644e6d3129f}"/>
|
||||
<names>
|
||||
<name lang="fr">Epissure</name>
|
||||
<name lang="pl">Połączenie 3</name>
|
||||
<name lang="cs">Spojka</name>
|
||||
<name lang="en">Splice</name>
|
||||
<name lang="it">Spaziatura</name>
|
||||
<name lang="ru">Сращивание</name>
|
||||
<name lang="es">Empalme</name>
|
||||
<name lang="fr">Epissure</name>
|
||||
<name lang="pl">Połączenie 3</name>
|
||||
<name lang="cs">Spojka</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<dynamic_text text_width="-1" x="1.5" rotation="0" frame="false" uuid="{b653b162-d4c8-4660-a5ca-e6ca05a56de9}" font_size="1" z="1" text_from="ElementInfo" y="-1.45">
|
||||
<text></text>
|
||||
<info_name>label</info_name>
|
||||
</dynamic_text>
|
||||
<line x2="-6" antialias="false" x1="0" end2="none" y2="0" end1="none" length2="1.5" length1="1.5" y1="6" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line x2="-5" antialias="false" x1="1" end2="none" y2="0" end1="none" length2="1.5" length1="1.5" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<terminal x="0" orientation="s" y="10"/>
|
||||
<terminal x="-10" orientation="w" y="0"/>
|
||||
<terminal x="4" orientation="e" y="0"/>
|
||||
<input x="1.5" y="3.55" size="1" tagg="label" rotate="true" text="_"/>
|
||||
<line y2="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" x1="0" y1="6" end2="none" x2="-6" antialias="false" end1="none" length2="1.5"/>
|
||||
<line y2="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" x1="1" y1="0" end2="none" x2="-5" antialias="false" end1="none" length2="1.5"/>
|
||||
<terminal orientation="s" x="0" y="10"/>
|
||||
<terminal orientation="w" x="-10" y="0"/>
|
||||
<terminal orientation="e" x="4" y="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -1,25 +1,20 @@
|
||||
<definition hotspot_y="4" height="20" hotspot_x="17" type="element" width="30" link_type="terminal" orientation="dyyy" version="0.70">
|
||||
<uuid uuid="{9e88368e-1b20-4a56-8941-5d17a4cce2d4}"/>
|
||||
<definition type="element" height="20" orientation="dyyy" version="0.5" link_type="simple" hotspot_y="4" width="30" hotspot_x="17">
|
||||
<uuid uuid="{a1ced185-e98f-4cf1-8a62-3f8ea691bcb6}"/>
|
||||
<names>
|
||||
<name lang="cs">Levé spojení</name>
|
||||
<name lang="en">Thru left</name>
|
||||
<name lang="it">Collegamento sinistro</name>
|
||||
<name lang="ru">Справа налево</name>
|
||||
<name lang="fr">Liaison gauche</name>
|
||||
<name lang="en">Thru left</name>
|
||||
<name lang="ar">ربط يسار</name>
|
||||
<name lang="it">Collegamento sinistro</name>
|
||||
<name lang="pl">Połączenie 4</name>
|
||||
<name lang="es">A la izquierda</name>
|
||||
<name lang="cs">Levé spojení</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<dynamic_text font_size="1" rotation="0" uuid="{5ff9bef8-b6a8-4cf8-ba82-4dabe7b1820f}" text_width="-1" frame="false" text_from="UserText" z="1" x="1.5" y="-1.45">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<line x1="0" length1="1.5" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="6" y2="0" end1="none" antialias="false" x2="-6"/>
|
||||
<line x1="0" length1="1.5" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" y2="5" end1="none" antialias="false" x2="0"/>
|
||||
<terminal x="4" orientation="e" y="0"/>
|
||||
<terminal x="-10" orientation="w" y="0"/>
|
||||
<terminal x="0" orientation="s" y="10"/>
|
||||
<input x="1.5" y="3.55" size="1" tagg="label" rotate="true" text="_"/>
|
||||
<line y2="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" x1="0" y1="6" end2="none" x2="-6" antialias="false" end1="none" length2="1.5"/>
|
||||
<line y2="5" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" x1="0" y1="0" end2="none" x2="0" antialias="false" end1="none" length2="1.5"/>
|
||||
<terminal orientation="e" x="4" y="0"/>
|
||||
<terminal orientation="w" x="-10" y="0"/>
|
||||
<terminal orientation="s" x="0" y="10"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -1,26 +1,21 @@
|
||||
<definition link_type="terminal" width="30" hotspot_x="14" orientation="dyyy" height="20" version="0.70" hotspot_y="4" type="element">
|
||||
<uuid uuid="{6e40fff3-691c-4622-b9aa-4ff930a5b981}"/>
|
||||
<definition type="element" height="20" orientation="dyyy" version="0.5" link_type="simple" hotspot_y="4" width="30" hotspot_x="14">
|
||||
<uuid uuid="{5d72394b-8aa0-4368-bc88-0f738478ca45}"/>
|
||||
<names>
|
||||
<name lang="en">Thru right</name>
|
||||
<name lang="ru">Слева направо</name>
|
||||
<name lang="cs">Pravé spojení</name>
|
||||
<name lang="fr">Liaison droite</name>
|
||||
<name lang="it">Collegamento destro</name>
|
||||
<name lang="es">A la derecha</name>
|
||||
<name lang="ar">ربط يمين</name>
|
||||
<name lang="ru">Слева направо</name>
|
||||
<name lang="fr">Liaison droite</name>
|
||||
<name lang="pl">Połączenie 5</name>
|
||||
<name lang="cs">Pravé spojení</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<dynamic_text text_width="-1" y="-0.45" rotation="0" uuid="{ab829572-e7d6-4e5c-9c6e-a0852fea788e}" x="5.5" frame="false" text_from="UserText" font_size="1" z="1">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<line antialias="false" x1="0" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" end2="none" end1="none" y2="0" length2="1.5" x2="-6"/>
|
||||
<line antialias="false" x1="0" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" end2="none" end1="none" y2="5" length2="1.5" x2="0"/>
|
||||
<line antialias="false" x1="6" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" end2="none" end1="none" y2="6" length2="1.5" x2="0"/>
|
||||
<terminal orientation="s" y="10" x="0"/>
|
||||
<terminal orientation="w" y="0" x="-10"/>
|
||||
<terminal orientation="e" y="0" x="10"/>
|
||||
<input x="5.5" y="4.55" size="1" tagg="label" rotate="true" text="_"/>
|
||||
<line y2="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" x1="0" y1="0" end2="none" x2="-6" antialias="false" end1="none" length2="1.5"/>
|
||||
<line y2="5" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" x1="0" y1="0" end2="none" x2="0" antialias="false" end1="none" length2="1.5"/>
|
||||
<line y2="6" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" x1="6" y1="0" end2="none" x2="0" antialias="false" end1="none" length2="1.5"/>
|
||||
<terminal orientation="s" x="0" y="10"/>
|
||||
<terminal orientation="w" x="-10" y="0"/>
|
||||
<terminal orientation="e" x="10" y="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
<definition width="120" version="0.3" hotspot_x="71" hotspot_y="10" height="40" type="element" orientation="dyyy">
|
||||
<definition width="90" link_type="simple" version="0.5" hotspot_x="42" orientation="dyyy" height="20" hotspot_y="3" type="element">
|
||||
<uuid uuid="{5ba1917d-c353-41b2-aa70-caf65579b81e}"/>
|
||||
<names>
|
||||
<name lang="ar">كايبل طورين + تأريض</name>
|
||||
<name lang="de">Kabel 3G</name>
|
||||
<name lang="ru">Кабель 2 жилы + PE</name>
|
||||
<name lang="cs">Označení drátového propojení - 2 fáze + země</name>
|
||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||
<name lang="it">Cavo 2 fasi + terra</name>
|
||||
<name lang="fr">Cable 2 phases+terre</name>
|
||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||
<name lang="es">Cable 2 fases+tierra</name>
|
||||
<name lang="cs">Označení drátového propojení - 2 fáze + země</name>
|
||||
<name lang="ru">Кабель 2 жилы + PE</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<text x="12" y="9" size="4" text="2"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="26.95" y2="11.95" x2="30.95"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="8" y2="12" x2="12"/>
|
||||
<line antialias="true" length1="1.5" x2="30.95" end2="none" x1="26.95" end1="none" y2="11.95" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95"/>
|
||||
<line antialias="true" length1="1.5" x2="12" end2="none" x1="8" end1="none" y2="12" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8"/>
|
||||
<text x="30.5" y="8.55" size="4" text="GNYE"/>
|
||||
<input x="-68" y="17" size="3" rotate="true" text="210007
4G1,5 mm²
 4m"/>
|
||||
<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="-39.9373" y2="10" x2="37.932"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="-32" y2="12" x2="-28"/>
|
||||
<input x="-68" y="17" tagg="none" size="3" rotate="true" text="210007
4G1,5 mm²
 4m"/>
|
||||
<line antialias="false" length1="1.5" x2="37.932" end2="none" x1="-39.9373" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<line antialias="true" length1="1.5" x2="-28" end2="none" x1="-32" end1="none" y2="12" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8"/>
|
||||
<text x="-28" y="9" size="4" text="1"/>
|
||||
<input x="-61" y="1" size="5" rotate="true" text="+"/>
|
||||
<input x="-61" y="1" tagg="label" size="5" rotate="true" text="+"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -1,27 +1,26 @@
|
||||
<definition width="120" version="0.3" hotspot_x="70" hotspot_y="10" height="40" type="element" orientation="dyyy">
|
||||
<definition width="100" link_type="simple" version="0.5" hotspot_x="46" orientation="dyyy" height="20" hotspot_y="3" type="element">
|
||||
<uuid uuid="{d95f81ca-8802-48c0-830d-b214fb41af86}"/>
|
||||
<names>
|
||||
<name lang="ar">كايبل ثلاثي الطور + تأريض</name>
|
||||
<name lang="de">Kabel 4G</name>
|
||||
<name lang="ru">Кабель 3 жилы + PE</name>
|
||||
<name lang="cs">Označení drátového propojení - 3 fáze + země</name>
|
||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||
<name lang="it">Cavo 3 fasi + terra</name>
|
||||
<name lang="fr">Cable 3 phases+terre</name>
|
||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||
<name lang="es">Cable 3 fases+tierra</name>
|
||||
<name lang="cs">Označení drátového propojení - 3 fáze + země</name>
|
||||
<name lang="ru">Кабель 3 жилы + PE</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-12.05" y2="11.95" x2="-8.05"/>
|
||||
<line antialias="true" length1="1.5" x2="-8.05" end2="none" x1="-12.05" end1="none" y2="11.95" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95"/>
|
||||
<text x="-9" y="9" size="4" text="2"/>
|
||||
<text x="12" y="9" size="4" text="3"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="26.95" y2="11.95" x2="30.95"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="8" y2="12" x2="12"/>
|
||||
<line antialias="true" length1="1.5" x2="30.95" end2="none" x1="26.95" end1="none" y2="11.95" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95"/>
|
||||
<line antialias="true" length1="1.5" x2="12" end2="none" x1="8" end1="none" y2="12" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8"/>
|
||||
<text x="32" y="9" size="4" text="GNYE"/>
|
||||
<input x="-68" y="17" size="3" rotate="true" text="210007
4G1,5 mm²
 4m"/>
|
||||
<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="-39.9373" y2="10" x2="37.932"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="-32" y2="12" x2="-28"/>
|
||||
<input x="-68" y="17" tagg="none" size="3" rotate="true" text="210007
4G1,5 mm²
 4m"/>
|
||||
<line antialias="false" length1="1.5" x2="37.932" end2="none" x1="-39.9373" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<line antialias="true" length1="1.5" x2="-28" end2="none" x1="-32" end1="none" y2="12" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8"/>
|
||||
<text x="-28" y="9" size="4" text="1"/>
|
||||
<input x="-61" y="1" size="5" rotate="true" text="+"/>
|
||||
<input x="-61" y="1" tagg="label" size="5" rotate="true" text="+"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
<definition width="100" version="0.3" hotspot_x="60" hotspot_y="10" height="40" type="element" orientation="dyyy">
|
||||
<definition width="80" link_type="simple" version="0.5" hotspot_x="36" orientation="dyyy" height="20" hotspot_y="3" type="element">
|
||||
<uuid uuid="{d7b0edcd-eca1-432c-8ea7-698c613bca22}"/>
|
||||
<names>
|
||||
<name lang="ar">كايبل بطورين و تأريض</name>
|
||||
<name lang="de">Kabel 3G</name>
|
||||
<name lang="ru">Кабель 2 жилы + PE</name>
|
||||
<name lang="cs">Označení drátového propojení - 2 fáze + země</name>
|
||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||
<name lang="it">Cavo 2 fasi + terra</name>
|
||||
<name lang="fr">Cable 2 phases+terre</name>
|
||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||
<name lang="es">Cable 2 fases+tierra</name>
|
||||
<name lang="cs">Označení drátového propojení - 2 fáze + země</name>
|
||||
<name lang="ru">Кабель 2 жилы + PE</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="17.95" y2="11.95" x2="21.95"/>
|
||||
<line antialias="true" length1="1.5" x2="21.95" end2="none" x1="17.95" end1="none" y2="11.95" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95"/>
|
||||
<text x="2" y="9" size="4" text="2"/>
|
||||
<text x="23" y="9" size="4" text="GNYE"/>
|
||||
<input x="-58" y="17" size="3" rotate="true" text="210007
4G1,5 mm²
 4m"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-2.05" y2="11.95" x2="1.95"/>
|
||||
<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="-30.2509" y2="10" x2="27.2717"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="-22" y2="12" x2="-18"/>
|
||||
<input x="-58" y="17" tagg="none" size="3" rotate="true" text="210007
4G1,5 mm²
 4m"/>
|
||||
<line antialias="true" length1="1.5" x2="1.95" end2="none" x1="-2.05" end1="none" y2="11.95" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95"/>
|
||||
<line antialias="false" length1="1.5" x2="27.2717" end2="none" x1="-30.2509" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<line antialias="true" length1="1.5" x2="-18" end2="none" x1="-22" end1="none" y2="12" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8"/>
|
||||
<text x="-18" y="9" size="4" text="1"/>
|
||||
<input x="-51" y="1" size="5" rotate="true" text="+"/>
|
||||
<input x="-51" y="1" tagg="label" size="5" rotate="true" text="+"/>
|
||||
</description>
|
||||
</definition>
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<definition width="130" version="0.3" hotspot_x="88" hotspot_y="18" height="40" type="element" orientation="dyyy">
|
||||
<names>
|
||||
<name lang="ar">كايبل رباعي النواة</name>
|
||||
<name lang="It">Cavo ? 4G</name>
|
||||
<name lang="fr">Cable 4G</name>
|
||||
<name lang="pl">Przewód czterożyłowy</name>
|
||||
<name lang="es">Cable 4G</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-33.05" y2="11.95" x2="-29.05"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-13.05" y2="11.95" x2="-9.05"/>
|
||||
<text x="31" y="9" size="4" text="3"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="27" y2="12" x2="31"/>
|
||||
<text x="-10" y="9" size="4" text="1"/>
|
||||
<text x="11" y="9" size="4" text="2"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="7" y2="12" x2="11"/>
|
||||
<input x="-82" y="2.5" size="6" rotate="true" text="type?
4G_ mm²"/>
|
||||
<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="-31" y2="10" x2="29"/>
|
||||
<text x="-31" y="9" size="4" text="GNYE"/>
|
||||
<input x="-62" y="1" size="5" rotate="true" text=""/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,26 +0,0 @@
|
||||
<definition hotspot_y="3" orientation="dyyy" version="0.51" hotspot_x="47" link_type="simple" width="100" type="element" height="20">
|
||||
<uuid uuid="{9923c1a5-b49a-4243-923e-cde9d916ea2b}"/>
|
||||
<names>
|
||||
<name lang="fr">Cable 5G</name>
|
||||
<name lang="it">Cavo Type 5G</name>
|
||||
<name lang="es">Cable 5G</name>
|
||||
<name lang="pl">Przewód pięciożyłowy</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line end1="none" x1="-42.05" y1="7.95" x2="-38.05" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line end1="none" x1="-22.05" y1="7.95" x2="-18.05" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="2" size="4" y="9" x="22"/>
|
||||
<line end1="none" x1="18" y1="8" x2="22" length1="1.5" y2="12" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="BL" size="4" y="9" x="-19"/>
|
||||
<text text="1" size="4" y="9" x="2"/>
|
||||
<line end1="none" x1="37.95" y1="7.95" x2="41.95" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line end1="none" x1="-2" y1="8" x2="2" length1="1.5" y2="12" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="3" size="4" y="9" x="43"/>
|
||||
<input text="Type?
5G_ mm²" size="6" rotate="true" y="2" x="-85" tagg="label"/>
|
||||
<line end1="none" x1="-40" y1="10" x2="40" length1="1.5" y2="10" antialias="false" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="GNYE" size="4" y="9" x="-40"/>
|
||||
<input text="" size="5" rotate="true" y="1" x="-71" tagg="none"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,22 +0,0 @@
|
||||
<definition hotspot_y="3" orientation="dyyy" version="0.51" hotspot_x="29" link_type="simple" width="60" type="element" height="20">
|
||||
<uuid uuid="{5f981421-4c54-4cd5-929e-7f77dab94fef}"/>
|
||||
<names>
|
||||
<name lang="It">Cavo ? 3G</name>
|
||||
<name lang="fr">Cable 3G</name>
|
||||
<name lang="es">Cable 3G</name>
|
||||
<name lang="pl">Przewód trójżyłowy</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line end1="none" x1="-23.05" y1="7.95" x2="-19.05" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line end1="none" x1="-3.05" y1="7.95" x2="0.95" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="1" size="4" y="9" x="0"/>
|
||||
<text text="2" size="4" y="9" x="21"/>
|
||||
<line end1="none" x1="17" y1="8" x2="21" length1="1.5" y2="12" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input text="type?
3G_ mm²" size="6" rotate="true" y="2.5" x="-72" tagg="label"/>
|
||||
<line end1="none" x1="-21" y1="10" x2="20" length1="1.5" y2="10" antialias="false" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="GNYE" size="4" y="9" x="-21"/>
|
||||
<input text="" size="5" rotate="true" y="1" x="-52" tagg="none"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -6,7 +6,6 @@
|
||||
<name lang="pl">Oznaczenie przewodu trójżyłowego</name>
|
||||
<name lang="it">Cavo a 3 conduttori</name>
|
||||
<name lang="en">Cable 3 wires</name>
|
||||
<name lang="es">Cable 3 alambres</name>
|
||||
<name lang="fr">Cable 3 brins</name>
|
||||
<name lang="ru">Кабель 3 жилы</name>
|
||||
</names>
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
<name lang="it">Schermo</name>
|
||||
<name lang="ar">شاشة</name>
|
||||
<name lang="en">Screen</name>
|
||||
<name lang="es">Pantalla</name>
|
||||
<name lang="fr">Ecran</name>
|
||||
<name lang="ru">Экран</name>
|
||||
</names>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<name lang="pl">Połączenie przewodu</name>
|
||||
<name lang="it">Conduttore di un cavo</name>
|
||||
<name lang="en">Wire of cable</name>
|
||||
<name lang="es">Alambre del cable</name>
|
||||
<name lang="fr">Fil de cable</name>
|
||||
<name lang="ru">Жила кабеля</name>
|
||||
</names>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<name lang="pl">Oznaczenie przewodu</name>
|
||||
<name lang="it">Conduttura</name>
|
||||
<name lang="en">Wiring</name>
|
||||
<name lang="es">Alambrado</name>
|
||||
<name lang="fr">Filerie</name>
|
||||
</names>
|
||||
<informations></informations>
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<names>
|
||||
<name lang="ru">Кабели и провода</name>
|
||||
<name lang="en">Cables and wiring</name>
|
||||
<name lang="es">Cables y alambres</name>
|
||||
<name lang="fr">Câbles et filerie</name>
|
||||
<name lang="it">Cavi e collegamenti</name>
|
||||
<name lang="pl">Przewody i kable</name>
|
||||
@@ -10,6 +9,5 @@
|
||||
<name lang="el">Καλώδια και καλωδίωση</name>
|
||||
<name lang="nl">Kabels en draden</name>
|
||||
<name lang="cs">Kabely a drátové propojení</name>
|
||||
<name lang="da">Kabler og ledninger</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<name lang="pl">Oznaczenie pola przekroju przewodu jednożyłowego</name>
|
||||
<name lang="it">Sezione 1 conduttore</name>
|
||||
<name lang="fr">Section 1 conducteur</name>
|
||||
<name lang="es">Sección 1 conductor</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<name lang="pl">Oznaczenie pola przekroju przewodu dwużyłowego</name>
|
||||
<name lang="it">Sezione 2 conduttori</name>
|
||||
<name lang="fr">Section 2 conducteurs</name>
|
||||
<name lang="es">Sección 2 conductores</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<name lang="pl">Oznaczenie pola przekroju przewodu dwużyłowego</name>
|
||||
<name lang="it">Sezione 2 conduttori</name>
|
||||
<name lang="fr">Section 2 conducteurs</name>
|
||||
<name lang="es">Sección 2 conductores</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<name lang="pl">Oznaczenie pola przekroju przewodu trójżyłowego</name>
|
||||
<name lang="it">Sezione 3 conduttori</name>
|
||||
<name lang="fr">Section 3 conducteurs</name>
|
||||
<name lang="es">Sección 3 conductores</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
<definition height="80" hotspot_y="39" hotspot_x="17" version="0.5" orientation="dyyy" width="40" link_type="simple" type="element">
|
||||
<uuid uuid="{9d2d8902-b36a-4974-b46d-4de6741f6b9b}"/>
|
||||
<names>
|
||||
<name lang="en">Terminal strip label</name>
|
||||
<name lang="es">Etiqueta de clemas</name>
|
||||
<name lang="fr">Label de bornier</name>
|
||||
<name lang="de">Klemmleisten-BMK</name>
|
||||
<name lang="pl">Etykieta listwy zaciskowej</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input tagg="label" x="1" rotation="270" y="21" rotate="true" text="_" size="11"/>
|
||||
<rect height="71" x="-15" y="-35" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false" width="30"/>
|
||||
<line end1="none" length1="1.5" style="line-style:normal;line-weight:hight;filling:none;color:black" x2="20" antialias="false" y2="-30" x1="15" end2="none" length2="1.5" y1="-30"/>
|
||||
<line end1="none" length1="1.5" style="line-style:normal;line-weight:hight;filling:none;color:black" x2="20" antialias="false" y2="30" x1="15" end2="none" length2="1.5" y1="30"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,19 +0,0 @@
|
||||
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
||||
<uuid uuid="{2d155649-d0f5-419b-b94a-a13d3fcf38c7}"/>
|
||||
<names>
|
||||
<name lang="fr">Borne (continuité)</name>
|
||||
<name lang="de">Klemme (Durchgang)</name>
|
||||
<name lang="en">Terminal (feed-through)</name>
|
||||
<name lang="es">Clema (introducción atravesada)</name>
|
||||
<name lang="pl">Zacisk</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input tagg="none" x="0" rotation="270" y="14" rotate="true" text="" size="9"/>
|
||||
<rect height="80" x="-10" y="-40" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false" width="20"/>
|
||||
<rect height="24" x="-8" y="-12" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<circle x="-3" y="17" style="line-style:normal;line-weight:thin;filling:none;color:black" diameter="6" antialias="false"/>
|
||||
<terminal x="0" y="-40" orientation="n"/>
|
||||
<terminal x="0" y="40" orientation="s"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,22 +0,0 @@
|
||||
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
||||
<uuid uuid="{da19301b-f6e7-478f-a6dd-eb72e497883b}"/>
|
||||
<names>
|
||||
<name lang="fr">Borne (terre)</name>
|
||||
<name lang="de">Klemme (Erdung)</name>
|
||||
<name lang="en">Terminal (Grounding)</name>
|
||||
<name lang="es">Clema (Aterrizada)</name>
|
||||
<name lang="pl">Zacisk uziemiający</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input tagg="none" x="0" rotation="270" y="14" rotate="true" text="" size="9"/>
|
||||
<rect height="80" x="-10" y="-40" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false" width="20"/>
|
||||
<rect height="24" x="-8" y="-12" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<line end1="none" length1="1.5" style="line-style:normal;line-weight:thin;filling:none;color:black" x2="1" antialias="false" y2="25" x1="-1" end2="none" length2="1.5" y1="25"/>
|
||||
<line end1="none" length1="1.5" style="line-style:normal;line-weight:thin;filling:none;color:black" x2="3" antialias="false" y2="23" x1="-3" end2="none" length2="1.5" y1="23"/>
|
||||
<line end1="none" length1="1.5" style="line-style:normal;line-weight:thin;filling:none;color:black" x2="5" antialias="false" y2="21" x1="-5" end2="none" length2="1.5" y1="21"/>
|
||||
<line end1="none" length1="1.5" style="line-style:normal;line-weight:thin;filling:none;color:black" x2="0" antialias="false" y2="16" x1="0" end2="none" length2="1.5" y1="21"/>
|
||||
<terminal x="0" y="40" orientation="s"/>
|
||||
<terminal x="0" y="-40" orientation="n"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,16 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="110" height="20" type="element" hotspot_x="55" link_type="simple" hotspot_y="13">
|
||||
<uuid uuid="{17db296d-b50e-47ea-9125-aa9c1837b523}"/>
|
||||
<names>
|
||||
<name lang="fr">Interruption bornier</name>
|
||||
<name lang="de">Unterbrechung Klemmleiste</name>
|
||||
<name lang="en">Discontinuation terminal strip</name>
|
||||
<name lang="es">Clema de descontinuación</name>
|
||||
<name lang="it">Morsettiera d'interruzione</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<line length1="1.5" x2="-40" length2="1.5" y1="-10" y2="0" end1="none" end2="none" x1="-40" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="40" length2="1.5" y1="0" y2="-10" end1="none" end2="none" x1="40" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<polygon x4="-14" style="line-style:normal;line-weight:normal;filling:none;color:black" y4="4" y3="-4" x7="31" closed="false" y1="-2" x9="50" x1="-50" x2="-40" x8="42" y7="-4" y5="-2" x6="8" y6="3" y8="2" antialias="false" y9="-2" x5="-3" x3="-27" y2="1"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,32 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="50" height="110" type="element" hotspot_x="15" link_type="simple" hotspot_y="54">
|
||||
<uuid uuid="{387b403b-d81d-45ca-957d-e9014fe009a7}"/>
|
||||
<names>
|
||||
<name lang="fr">Borne double-étage (continuité)</name>
|
||||
<name lang="de">Klemme Doppelstock (Durchgang)</name>
|
||||
<name lang="en">Terminal double-level (feed-through)</name>
|
||||
<name lang="es">Clema de doble nivel (Introducción atravesada)</name>
|
||||
<name lang="it">Morsettiera a doppio livello (interconnesso)</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input y="14" text="" rotation="270" tagg="none" x="20" size="9" rotate="true"/>
|
||||
<circle y="27" x="17" diameter="6" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false"/>
|
||||
<rect y="-12" width="16" height="24" x="12" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false"/>
|
||||
<input y="14" text="" rotation="270" tagg="none" x="0" size="9" rotate="true"/>
|
||||
<rect y="-12" width="16" height="24" x="-8" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false"/>
|
||||
<circle y="17" x="-3" diameter="6" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="10" length2="1.5" y1="-40" y2="40" end1="none" end2="none" x1="10" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="10" length2="1.5" y1="-40" y2="-40" end1="none" end2="none" x1="-10" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="10" length2="1.5" y1="-40" y2="-50" end1="none" end2="none" x1="10" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="30" length2="1.5" y1="-50" y2="-50" end1="none" end2="none" x1="10" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="-10" length2="1.5" y1="-40" y2="40" end1="none" end2="none" x1="-10" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="10" length2="1.5" y1="40" y2="40" end1="none" end2="none" x1="-10" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="10" length2="1.5" y1="40" y2="50" end1="none" end2="none" x1="10" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="30" length2="1.5" y1="50" y2="50" end1="none" end2="none" x1="10" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="30" length2="1.5" y1="50" y2="-50" end1="none" end2="none" x1="30" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false"/>
|
||||
<terminal orientation="s" y="50" x="20"/>
|
||||
<terminal orientation="n" y="-40" x="0"/>
|
||||
<terminal orientation="n" y="-50" x="20"/>
|
||||
<terminal orientation="s" y="40" x="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,16 +0,0 @@
|
||||
<definition height="10" hotspot_y="5" hotspot_x="5" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
||||
<uuid uuid="{9a3ee0a0-5a0e-4f0c-93dd-396ddc3d7f11}"/>
|
||||
<names>
|
||||
<name lang="de">Einlegebrücke</name>
|
||||
<name lang="fr">Barette de pontage</name>
|
||||
<name lang="en">Insertion bridge</name>
|
||||
<name lang="es">Puente de inserción</name>
|
||||
<name lang="it">Barra di connessione</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<circle x="18" y="-2" style="line-style:normal;line-weight:normal;filling:black;color:black" diameter="4" antialias="false"/>
|
||||
<circle x="-2" y="-2" style="line-style:normal;line-weight:normal;filling:black;color:black" diameter="4" antialias="false"/>
|
||||
<rect height="2" x="0" y="-1" style="line-style:normal;line-weight:normal;filling:black;color:black" antialias="false" width="20"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,16 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="50" height="10" type="element" hotspot_x="5" link_type="simple" hotspot_y="5">
|
||||
<uuid uuid="{5075e5fb-c219-4643-89b8-8096d090ff3d}"/>
|
||||
<names>
|
||||
<name lang="en">Insertion bridge (double width)</name>
|
||||
<name lang="es">Puente de inserción (ancho doble)</name>
|
||||
<name lang="de">Einlegebrücke (doppelte Breite)</name>
|
||||
<name lang="fr">Barette de pontage (largeur double)</name>
|
||||
<name lang="it">Barra di connessione (larghezza doppia)</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<circle y="-2" x="38" diameter="4" style="line-style:normal;line-weight:normal;filling:black;color:black" antialias="false"/>
|
||||
<circle y="-2" x="-2" diameter="4" style="line-style:normal;line-weight:normal;filling:black;color:black" antialias="false"/>
|
||||
<rect y="-1" width="40" height="2" x="0" style="line-style:normal;line-weight:normal;filling:black;color:black" antialias="false"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,166 +0,0 @@
|
||||
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" orientation="dyyy" width="510" link_type="simple" type="element">
|
||||
<uuid uuid="{c17e98a3-738f-4c7a-ac89-91bb4c08fb45}"/>
|
||||
<names>
|
||||
<name lang="fr">Connecteur 25 fiches</name>
|
||||
<name lang="en">Connector 25 pins</name>
|
||||
<name lang="es">Conector de 25 pins</name>
|
||||
<name lang="de">Stecker 25-polig</name>
|
||||
<name lang="it">Connettore 25 poli</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="66" x1="50" x7="66" x2="54" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="70" x4="57" y4="5" x3="54" x5="63"/>
|
||||
<text x="264" rotation="270" y="-3" text="14" size="9"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="466" x1="450" x7="466" x2="454" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="470" x4="457" y4="5" x3="454" x5="463"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="306" x1="290" x7="306" x2="294" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="310" x4="297" y4="5" x3="294" x5="303"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="146" x1="130" x7="146" x2="134" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="150" x4="137" y4="5" x3="134" x5="143"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="106" x1="90" x7="106" x2="94" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="110" x4="97" y4="5" x3="94" x5="103"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="26" x1="10" x7="26" x2="14" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="30" x4="17" y4="5" x3="14" x5="23"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="186" x1="170" x7="186" x2="174" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="190" x4="177" y4="5" x3="174" x5="183"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="226" x1="210" x7="226" x2="214" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="230" x4="217" y4="5" x3="214" x5="223"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="86" x1="70" x7="86" x2="74" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="90" x4="77" y4="5" x3="74" x5="83"/>
|
||||
<text x="344" rotation="270" y="-3" text="18" size="9"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="46" x1="30" x7="46" x2="34" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="50" x4="37" y4="5" x3="34" x5="43"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="386" x1="370" x7="386" x2="374" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="390" x4="377" y4="5" x3="374" x5="383"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="266" x1="250" x7="266" x2="254" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="270" x4="257" y4="5" x3="254" x5="263"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="166" x1="150" x7="166" x2="154" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="170" x4="157" y4="5" x3="154" x5="163"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="426" x1="410" x7="426" x2="414" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="430" x4="417" y4="5" x3="414" x5="423"/>
|
||||
<text x="64" rotation="270" y="-6" text="4" size="9"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="246" x1="230" x7="246" x2="234" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="250" x4="237" y4="5" x3="234" x5="243"/>
|
||||
<text x="104" rotation="270" y="-6" text="6" size="9"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="126" x1="110" x7="126" x2="114" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="130" x4="117" y4="5" x3="114" x5="123"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="406" x1="390" x7="406" x2="394" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="410" x4="397" y4="5" x3="394" x5="403"/>
|
||||
<text x="24" rotation="270" y="-6" text="2" size="9"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="346" x1="330" x7="346" x2="334" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="350" x4="337" y4="5" x3="334" x5="343"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="206" x1="190" x7="206" x2="194" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="210" x4="197" y4="5" x3="194" x5="203"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="366" x1="350" x7="366" x2="354" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="370" x4="357" y4="5" x3="354" x5="363"/>
|
||||
<input tagg="none" x="0" rotation="270" y="2" rotate="true" text="" size="9"/>
|
||||
<text x="184" rotation="270" y="-3" text="10" size="9"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="326" x1="310" x7="326" x2="314" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="330" x4="317" y4="5" x3="314" x5="323"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="486" x1="470" x7="486" x2="474" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="490" x4="477" y4="5" x3="474" x5="483"/>
|
||||
<text x="424" rotation="270" y="-3" text="22" size="9"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="446" x1="430" x7="446" x2="434" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="450" x4="437" y4="5" x3="434" x5="443"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="286" x1="270" x7="286" x2="274" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="290" x4="277" y4="5" x3="274" x5="283"/>
|
||||
<text x="484" rotation="270" y="-4" text="PE" size="9"/>
|
||||
<rect height="24" x="12" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<text x="44" rotation="270" y="-6" text="3" size="9"/>
|
||||
<text x="144" rotation="270" y="-6" text="8" size="9"/>
|
||||
<rect height="24" x="472" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<text x="464" rotation="270" y="-3" text="24" size="9"/>
|
||||
<text x="384" rotation="270" y="-3" text="20" size="9"/>
|
||||
<text x="304" rotation="270" y="-3" text="16" size="9"/>
|
||||
<text x="224" rotation="270" y="-3" text="12" size="9"/>
|
||||
<text x="364" rotation="270" y="-3" text="19" size="9"/>
|
||||
<text x="444" rotation="270" y="-3" text="23" size="9"/>
|
||||
<text x="204" rotation="270" y="-3" text="11" size="9"/>
|
||||
<text x="284" rotation="270" y="-3" text="15" size="9"/>
|
||||
<rect height="24" x="-8" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<text x="124" rotation="270" y="-6" text="7" size="9"/>
|
||||
<rect height="24" x="52" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="22" x1="10" x7="22" x2="18" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="30" x4="19" y4="8" x3="18" x5="21"/>
|
||||
<text x="244" rotation="270" y="-3" text="13" size="9"/>
|
||||
<rect height="24" x="92" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<text x="164" rotation="270" y="-6" text="9" size="9"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="482" x1="470" x7="482" x2="478" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="490" x4="479" y4="8" x3="478" x5="481"/>
|
||||
<text x="404" rotation="270" y="-3" text="21" size="9"/>
|
||||
<text x="324" rotation="270" y="-3" text="17" size="9"/>
|
||||
<text x="84" rotation="270" y="-6" text="5" size="9"/>
|
||||
<rect height="24" x="32" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="62" x1="50" x7="62" x2="58" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="70" x4="59" y4="8" x3="58" x5="61"/>
|
||||
<rect height="24" x="332" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="132" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="172" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="2" x1="-10" x7="2" x2="-2" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="10" x4="-1" y4="8" x3="-2" x5="1"/>
|
||||
<rect height="24" x="72" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="42" x1="30" x7="42" x2="38" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="50" x4="39" y4="8" x3="38" x5="41"/>
|
||||
<rect height="24" x="212" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="102" x1="90" x7="102" x2="98" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="110" x4="99" y4="8" x3="98" x5="101"/>
|
||||
<rect height="24" x="372" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="312" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="152" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="112" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="142" x1="130" x7="142" x2="138" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="150" x4="139" y4="8" x3="138" x5="141"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="182" x1="170" x7="182" x2="178" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="190" x4="179" y4="8" x3="178" x5="181"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="342" x1="330" x7="342" x2="338" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="350" x4="339" y4="8" x3="338" x5="341"/>
|
||||
<rect height="24" x="412" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="252" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="82" x1="70" x7="82" x2="78" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="90" x4="79" y4="8" x3="78" x5="81"/>
|
||||
<rect height="24" x="192" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="122" x1="110" x7="122" x2="118" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="130" x4="119" y4="8" x3="118" x5="121"/>
|
||||
<rect height="24" x="352" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="452" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="292" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="382" x1="370" x7="382" x2="378" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="390" x4="379" y4="8" x3="378" x5="381"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="222" x1="210" x7="222" x2="218" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="230" x4="219" y4="8" x3="218" x5="221"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="162" x1="150" x7="162" x2="158" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="170" x4="159" y4="8" x3="158" x5="161"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="322" x1="310" x7="322" x2="318" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="330" x4="319" y4="8" x3="318" x5="321"/>
|
||||
<rect height="24" x="392" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="232" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="202" x1="190" x7="202" x2="198" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="210" x4="199" y4="8" x3="198" x5="201"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="362" x1="350" x7="362" x2="358" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="370" x4="359" y4="8" x3="358" x5="361"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="422" x1="410" x7="422" x2="418" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="430" x4="419" y4="8" x3="418" x5="421"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="262" x1="250" x7="262" x2="258" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="270" x4="259" y4="8" x3="258" x5="261"/>
|
||||
<rect height="24" x="432" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<rect height="24" x="272" y="-22" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" width="16"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="302" x1="290" x7="302" x2="298" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="310" x4="299" y4="8" x3="298" x5="301"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="462" x1="450" x7="462" x2="458" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="470" x4="459" y4="8" x3="458" x5="461"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="242" x1="230" x7="242" x2="238" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="250" x4="239" y4="8" x3="238" x5="241"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="402" x1="390" x7="402" x2="398" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="410" x4="399" y4="8" x3="398" x5="401"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="282" x1="270" x7="282" x2="278" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="290" x4="279" y4="8" x3="278" x5="281"/>
|
||||
<polygon y3="10" y2="22" antialias="false" y8="22" y6="10" closed="false" x6="442" x1="430" x7="442" x2="438" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="22" y7="22" y5="8" x8="450" x4="439" y4="8" x3="438" x5="441"/>
|
||||
<polygon y4="22" x4="490" style="line-style:normal;line-weight:hight;filling:none;color:black" x2="-10" x3="490" antialias="false" y2="40" closed="false" x1="-10" y1="22" y3="40"/>
|
||||
<polygon y4="18" x4="490" style="line-style:normal;line-weight:hight;filling:none;color:black" x2="-10" x3="490" antialias="false" y2="-40" closed="false" x1="-10" y1="18" y3="-40"/>
|
||||
<text x="4" rotation="270" y="-6" text="1" size="9"/>
|
||||
<polygon y3="10" y2="18" antialias="false" y8="18" y6="10" closed="false" x6="6" x1="-10" x7="6" x2="-6" style="line-style:normal;line-weight:hight;filling:none;color:black" y1="18" y7="18" y5="5" x8="10" x4="-3" y4="5" x3="-6" x5="3"/>
|
||||
<terminal x="180" y="-40" orientation="n"/>
|
||||
<terminal x="0" y="-40" orientation="n"/>
|
||||
<terminal x="460" y="-40" orientation="n"/>
|
||||
<terminal x="80" y="-40" orientation="n"/>
|
||||
<terminal x="240" y="-40" orientation="n"/>
|
||||
<terminal x="40" y="-40" orientation="n"/>
|
||||
<terminal x="400" y="-40" orientation="n"/>
|
||||
<terminal x="160" y="40" orientation="s"/>
|
||||
<terminal x="20" y="40" orientation="s"/>
|
||||
<terminal x="100" y="-40" orientation="n"/>
|
||||
<terminal x="20" y="-40" orientation="n"/>
|
||||
<terminal x="360" y="40" orientation="s"/>
|
||||
<terminal x="420" y="-40" orientation="n"/>
|
||||
<terminal x="40" y="40" orientation="s"/>
|
||||
<terminal x="340" y="-40" orientation="n"/>
|
||||
<terminal x="260" y="40" orientation="s"/>
|
||||
<terminal x="380" y="40" orientation="s"/>
|
||||
<terminal x="460" y="40" orientation="s"/>
|
||||
<terminal x="440" y="-40" orientation="n"/>
|
||||
<terminal x="380" y="-40" orientation="n"/>
|
||||
<terminal x="320" y="-40" orientation="n"/>
|
||||
<terminal x="280" y="40" orientation="s"/>
|
||||
<terminal x="440" y="40" orientation="s"/>
|
||||
<terminal x="140" y="40" orientation="s"/>
|
||||
<terminal x="280" y="-40" orientation="n"/>
|
||||
<terminal x="160" y="-40" orientation="n"/>
|
||||
<terminal x="420" y="40" orientation="s"/>
|
||||
<terminal x="100" y="40" orientation="s"/>
|
||||
<terminal x="200" y="-40" orientation="n"/>
|
||||
<terminal x="240" y="40" orientation="s"/>
|
||||
<terminal x="120" y="40" orientation="s"/>
|
||||
<terminal x="480" y="40" orientation="s"/>
|
||||
<terminal x="120" y="-40" orientation="n"/>
|
||||
<terminal x="300" y="40" orientation="s"/>
|
||||
<terminal x="260" y="-40" orientation="n"/>
|
||||
<terminal x="320" y="40" orientation="s"/>
|
||||
<terminal x="360" y="-40" orientation="n"/>
|
||||
<terminal x="200" y="40" orientation="s"/>
|
||||
<terminal x="340" y="40" orientation="s"/>
|
||||
<terminal x="300" y="-40" orientation="n"/>
|
||||
<terminal x="140" y="-40" orientation="n"/>
|
||||
<terminal x="400" y="40" orientation="s"/>
|
||||
<terminal x="220" y="40" orientation="s"/>
|
||||
<terminal x="180" y="40" orientation="s"/>
|
||||
<terminal x="220" y="-40" orientation="n"/>
|
||||
<terminal x="60" y="-40" orientation="n"/>
|
||||
<terminal x="60" y="40" orientation="s"/>
|
||||
<terminal x="0" y="40" orientation="s"/>
|
||||
<terminal x="480" y="-40" orientation="n"/>
|
||||
<terminal x="80" y="40" orientation="s"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,18 +0,0 @@
|
||||
<definition height="80" hotspot_y="67" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
||||
<uuid uuid="{116e1210-b7f9-4737-a94f-1034ecb45cc4}"/>
|
||||
<names>
|
||||
<name lang="fr">Appareil (connexion en bas)</name>
|
||||
<name lang="de">Gerät (Anschluss unten)</name>
|
||||
<name lang="en">Device (connection on bottom)</name>
|
||||
<name lang="es">Dispositivo (conexión por debajo)</name>
|
||||
<name lang="it">Dispositivo (connessione in basso)</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input tagg="none" x="0" rotation="270" y="2" rotate="true" text="_" size="6"/>
|
||||
<input tagg="none" x="0" rotation="270" y="-20" rotate="true" text="-" size="9"/>
|
||||
<rect height="60" x="-10" y="-60" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" width="20"/>
|
||||
<line end1="none" length1="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" x2="0" antialias="false" y2="4" x1="0" end2="none" length2="1.5" y1="0"/>
|
||||
<terminal x="0" y="4" orientation="s"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,18 +0,0 @@
|
||||
<definition height="80" hotspot_y="13" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
||||
<uuid uuid="{e396fc1b-28d7-4978-879a-9b666a2648d3}"/>
|
||||
<names>
|
||||
<name lang="fr">Appareil (connexion en bas)</name>
|
||||
<name lang="de">Gerät (Anschluss unten)</name>
|
||||
<name lang="en">Device (connection on top)</name>
|
||||
<name lang="es">Dispositivo (conexión por encima)</name>
|
||||
<name lang="it">Dispositivo (connessione in alto)</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input tagg="none" x="0" rotation="270" y="15" rotate="true" text="_" size="6"/>
|
||||
<input tagg="none" x="0" rotation="270" y="60" rotate="true" text="-" size="9"/>
|
||||
<rect height="60" x="-10" y="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" width="20"/>
|
||||
<line end1="none" length1="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" x2="0" antialias="false" y2="0" x1="0" end2="none" length2="1.5" y1="-4"/>
|
||||
<terminal x="0" y="-4" orientation="n"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,18 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
|
||||
<uuid uuid="{bf7c6c86-5f96-4644-9f0f-004abccc79ad}"/>
|
||||
<names>
|
||||
<name lang="fr">Appareil (connexion en bas) - début</name>
|
||||
<name lang="de">Gerät (Anschluss unten) - Anfang</name>
|
||||
<name lang="en">Device (connection on bottom) - beginning</name>
|
||||
<name lang="es">Dispositivo (conexión por debajo)- iniciando</name>
|
||||
<name lang="it">Dispositivo (connessione in basso) iniziale</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input y="2" text="_" rotation="270" tagg="none" x="0" size="6" rotate="true"/>
|
||||
<input y="-20" text="-" rotation="270" tagg="none" x="0" size="9" rotate="true"/>
|
||||
<line length1="1.5" x2="0" length2="1.5" y1="0" y2="4" end1="none" end2="none" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<polygon x2="-10" y4="-60" y1="0" y2="0" x3="-10" y3="-60" x1="10" style="line-style:normal;line-weight:normal;filling:none;color:black" x4="10" closed="false" antialias="false"/>
|
||||
<terminal orientation="s" y="4" x="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,19 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
|
||||
<uuid uuid="{57a6e367-5c77-4d2b-bb60-0ca0651bdd31}"/>
|
||||
<names>
|
||||
<name lang="fr">Appareil (connexion en bas) - milieu</name>
|
||||
<name lang="de">Gerät (Anschluss unten) - Mitte</name>
|
||||
<name lang="en">Device (connection on bottom) - middle</name>
|
||||
<name lang="es">Dispositivo (conexión por debajo) en medio</name>
|
||||
<name lang="it">Dispositivo (connessione in basso) centrale</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input y="2" text="_" rotation="270" tagg="none" x="0" size="6" rotate="true"/>
|
||||
<input y="-20" text="-" rotation="270" tagg="none" x="0" size="9" rotate="true"/>
|
||||
<line length1="1.5" x2="0" length2="1.5" y1="0" y2="4" end1="none" end2="none" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="10" length2="1.5" y1="-60" y2="-60" end1="none" end2="none" x1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="10" length2="1.5" y1="0" y2="0" end1="none" end2="none" x1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<terminal orientation="s" y="4" x="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,18 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
|
||||
<uuid uuid="{d5016921-dc3b-4078-b45d-1cfe04796e14}"/>
|
||||
<names>
|
||||
<name lang="fr">Appareil (connexion en bas) - fin</name>
|
||||
<name lang="de">Gerät (Anschluss unten) - Ende</name>
|
||||
<name lang="en">Device (connection on bottom) - end</name>
|
||||
<name lang="es">Dispositivo (conexión por debajo) final</name>
|
||||
<name lang="it">Dispositivo (connessione in basso) finale</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input y="2" text="_" rotation="270" tagg="none" x="0" size="6" rotate="true"/>
|
||||
<input y="-20" text="-" rotation="270" tagg="none" x="0" size="9" rotate="true"/>
|
||||
<line length1="1.5" x2="0" length2="1.5" y1="0" y2="4" end1="none" end2="none" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<polygon x2="10" y4="0" y1="-60" y2="-60" x3="10" y3="0" x1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" x4="-10" closed="false" antialias="false"/>
|
||||
<terminal orientation="s" y="4" x="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,18 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
|
||||
<uuid uuid="{dfdbecfd-e99b-4f8f-ae0d-038e657bae8d}"/>
|
||||
<names>
|
||||
<name lang="fr">Appareil (connexion en haut)</name>
|
||||
<name lang="de">Gerät (Anschluss oben)</name>
|
||||
<name lang="en">Device (connection on top)</name>
|
||||
<name lang="es">Dispositivo (conexión por encima)</name>
|
||||
<name lang="it">Dispositivo (connessione in alto)</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input y="15" text="_" rotation="270" tagg="none" x="0" size="6" rotate="true"/>
|
||||
<input y="60" text="-" rotation="270" tagg="none" x="0" size="9" rotate="true"/>
|
||||
<rect y="0" width="20" height="60" x="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="0" length2="1.5" y1="-4" y2="0" end1="none" end2="none" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<terminal orientation="n" y="-4" x="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,18 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
|
||||
<uuid uuid="{6a07de91-ed73-49b3-b01b-0b49a450697a}"/>
|
||||
<names>
|
||||
<name lang="fr">Appareil (connexion en haut) - début</name>
|
||||
<name lang="de">Gerät (Anschluss oben) - Anfang</name>
|
||||
<name lang="en">Device (connection on top) - beginning</name>
|
||||
<name lang="es">Dispositivo (conexión por encima) iniciando</name>
|
||||
<name lang="it">Dispositivo (connessione in alto) iniziale</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input y="15" text="_" rotation="270" tagg="none" x="0" size="6" rotate="true"/>
|
||||
<input y="60" text="-" rotation="270" tagg="none" x="0" size="9" rotate="true"/>
|
||||
<line length1="1.5" x2="0" length2="1.5" y1="-4" y2="0" end1="none" end2="none" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<polygon x2="-10" y4="60" y1="0" y2="0" x3="-10" y3="60" x1="10" style="line-style:normal;line-weight:normal;filling:none;color:black" x4="10" closed="false" antialias="false"/>
|
||||
<terminal orientation="n" y="-4" x="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,19 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
|
||||
<uuid uuid="{b153ee35-af29-4798-9252-577a6ed2737a}"/>
|
||||
<names>
|
||||
<name lang="fr">Appareil (connexion en haut) - milieu</name>
|
||||
<name lang="de">Gerät (Anschluss oben) - Mitte</name>
|
||||
<name lang="en">Device (connection on top) - middle</name>
|
||||
<name lang="es">Dispositivo (conexión por encima) en medio</name>
|
||||
<name lang="it">Dispositivo (connessione in alto) medio</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input y="15" text="_" rotation="270" tagg="none" x="0" size="6" rotate="true"/>
|
||||
<input y="60" text="-" rotation="270" tagg="none" x="0" size="9" rotate="true"/>
|
||||
<line length1="1.5" x2="0" length2="1.5" y1="-4" y2="0" end1="none" end2="none" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="10" length2="1.5" y1="0" y2="0" end1="none" end2="none" x1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<line length1="1.5" x2="10" length2="1.5" y1="60" y2="60" end1="none" end2="none" x1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<terminal orientation="n" y="-4" x="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,18 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
|
||||
<uuid uuid="{4aea9d8c-0dc6-4be7-b988-7ee87ae439fc}"/>
|
||||
<names>
|
||||
<name lang="fr">Appareil (connexion en haut) - fin</name>
|
||||
<name lang="de">Gerät (Anschluss oben) - Ende</name>
|
||||
<name lang="en">Device (connection on top) - end</name>
|
||||
<name lang="es">Dispositivo (conexión por encima) final</name>
|
||||
<name lang="it">Dispositivo (connessione in alto) finale</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input y="15" text="_" rotation="270" tagg="none" x="0" size="6" rotate="true"/>
|
||||
<input y="60" text="-" rotation="270" tagg="none" x="0" size="9" rotate="true"/>
|
||||
<line length1="1.5" x2="0" length2="1.5" y1="-4" y2="0" end1="none" end2="none" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false"/>
|
||||
<polygon x2="10" y4="60" y1="0" y2="0" x3="10" y3="60" x1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" x4="-10" closed="false" antialias="false"/>
|
||||
<terminal orientation="n" y="-4" x="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,19 +0,0 @@
|
||||
<definition height="70" hotspot_y="34" hotspot_x="4" version="0.5" orientation="dyyy" width="10" link_type="simple" type="element">
|
||||
<uuid uuid="{2ac227dc-33a0-49f5-b8a0-b834d9386b60}"/>
|
||||
<names>
|
||||
<name lang="de">Kabel Bezeichnungsschild</name>
|
||||
<name lang="fr">Cable etiquette</name>
|
||||
<name lang="en">Cable tag</name>
|
||||
<name lang="es">Etiqueta de cable</name>
|
||||
<name lang="it">Etichetta del cavo</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<input tagg="none" x="20" rotation="270" y="30" rotate="true" text="?m" size="6"/>
|
||||
<input tagg="label" x="-9" rotation="270" y="30" rotate="true" text="-W" size="11"/>
|
||||
<line end1="none" length1="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" x2="0" antialias="false" y2="30" x1="0" end2="none" length2="1.5" y1="-30"/>
|
||||
<input tagg="none" x="9" rotation="270" y="30" rotate="true" text="Cable type" size="6"/>
|
||||
<terminal x="0" y="30" orientation="s"/>
|
||||
<terminal x="0" y="-30" orientation="n"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,15 +0,0 @@
|
||||
<definition height="20" hotspot_y="12" hotspot_x="4" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
||||
<uuid uuid="{ce9e32d1-edd6-4bf2-a6f4-a519b878d80d}"/>
|
||||
<names>
|
||||
<name lang="de">Kabel Ader nach oben</name>
|
||||
<name lang="en">Cable wire towards top</name>
|
||||
<name lang="es">alambre del cable hacia arriba</name>
|
||||
<name lang="fr">Cable brin vers le haut</name>
|
||||
<name lang="it">Conduttore del cavo verso l'alto</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<polygon y4="-5" x4="20" style="line-style:normal;line-weight:normal;filling:none;color:black" x2="20" x3="20" antialias="false" y2="0" closed="false" x5="20" x1="0" y1="0" y5="-5" y3="-5"/>
|
||||
<terminal x="20" y="-5" orientation="n"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,15 +0,0 @@
|
||||
<definition height="20" hotspot_y="6" hotspot_x="4" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
||||
<uuid uuid="{2935f975-67f8-4e41-ad18-7fbb24e67465}"/>
|
||||
<names>
|
||||
<name lang="de">Kabel Ader nach unten</name>
|
||||
<name lang="en">Cable wire towards bottom</name>
|
||||
<name lang="es">Alambre del cable hacia abajo</name>
|
||||
<name lang="fr">Cable brin vers le bas</name>
|
||||
<name lang="it">Conduttore del cavo verso il basso</name>
|
||||
</names>
|
||||
<informations/>
|
||||
<description>
|
||||
<polygon y4="5" x4="20" style="line-style:normal;line-weight:normal;filling:none;color:black" x2="20" x3="20" antialias="false" y2="0" closed="false" x5="20" x1="0" y1="0" y5="5" y3="5"/>
|
||||
<terminal x="20" y="5" orientation="s"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,16 +0,0 @@
|
||||
<definition orientation="dyyy" version="0.51" width="130" height="20" type="element" hotspot_x="15" link_type="simple" hotspot_y="12">
|
||||
<uuid uuid="{079ef7df-a292-4e16-a6a2-dd813f7f1e41}"/>
|
||||
<names>
|
||||
<name lang="de">Verdrahtungsdefinition</name>
|
||||
<name lang="en">Wire definition</name>
|
||||
<name lang="es">Definición del alambre</name>
|
||||
<name lang="fr">Définition de filerie</name>
|
||||
<name lang="it">Definizione del conduttore</name>
|
||||
</names>
|
||||
<informations>EN 60617: 06-14-03</informations>
|
||||
<description>
|
||||
<input y="-5" text="DBU 0,75mm²" tagg="none" x="-2" size="6" rotate="true"/>
|
||||
<line length1="1.5" x2="2" length2="1.5" y1="-2" y2="2" end1="none" end2="none" x1="-2" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false"/>
|
||||
<rect y="-10" width="120" height="15" x="-10" style="line-style:normal;line-weight:none;filling:none;color:black" antialias="false"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,11 +0,0 @@
|
||||
<qet-directory>
|
||||
<names>
|
||||
<name lang="fr">Plans de borniers</name>
|
||||
<name lang="de">Klemmenanschlusspläne</name>
|
||||
<name lang="en">Terminal strips diagram</name>
|
||||
<name lang="es">Clemas o tira de terminales</name>
|
||||
<name lang="it">Schema delle morsettiere</name>
|
||||
<name lang="pl">Schemat listw zaciskowych</name>
|
||||
<name lang="da">Klemmerækker</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
@@ -1,29 +0,0 @@
|
||||
<definition width="30" hotspot_y="14" height="30" hotspot_x="11" version="0.51" orientation="dyyy" link_type="terminal" type="element">
|
||||
<uuid uuid="{679c3cc2-61ad-4769-a835-2afc94bc536d}"/>
|
||||
<names>
|
||||
<name lang="ar">طرف توصيل</name>
|
||||
<name lang="pl">Zacisk</name>
|
||||
<name lang="de">Klemme</name>
|
||||
<name lang="pt">Terminal de combinação</name>
|
||||
<name lang="es">Terminal de unión</name>
|
||||
<name lang="ru">Клеммное соединение</name>
|
||||
<name lang="fr">Borne continuité</name>
|
||||
<name lang="nl">klem doorgang</name>
|
||||
<name lang="en">Terminal block</name>
|
||||
<name lang="it">Terminale di unione</name>
|
||||
<name lang="cs">Spojovací svorka</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line x1="0" length2="1.5" x2="0" y2="3" y1="10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" end1="none" length1="1.5" end2="none"/>
|
||||
<line x1="0" length2="1.5" x2="0" y2="-3" y1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" end1="none" length1="1.5" end2="none"/>
|
||||
<circle diameter="5" x="-2.5" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" y="-2.5"/>
|
||||
<line x1="10" length2="1.5" x2="3" y2="0" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" end1="none" length1="1.5" end2="none"/>
|
||||
<input rotate="true" x="-1" text="_" y="-9" tagg="label" size="6"/>
|
||||
<line x1="-4" length2="1.5" x2="4" y2="-3" y1="3" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" end1="none" length1="1.5" end2="none"/>
|
||||
<terminal x="0" y="-10" orientation="n" tagg="none"/>
|
||||
<terminal x="0" y="10" orientation="s" tagg="none"/>
|
||||
<terminal x="10" y="0" orientation="e" tagg="none"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,27 +0,0 @@
|
||||
<definition width="20" hotspot_y="14" height="20" hotspot_x="14" version="0.51" orientation="dyyy" link_type="terminal" type="element">
|
||||
<uuid uuid="{2ed786aa-0583-4058-aad6-af7eb76fad47}"/>
|
||||
<names>
|
||||
<name lang="ar">طرف توصيل</name>
|
||||
<name lang="pl">Zacisk</name>
|
||||
<name lang="de">Klemme</name>
|
||||
<name lang="pt">Terminal de combinação</name>
|
||||
<name lang="es">Terminal de unión</name>
|
||||
<name lang="ru">Клеммное соединение</name>
|
||||
<name lang="fr">Borne continuité</name>
|
||||
<name lang="nl">klem doorgang</name>
|
||||
<name lang="en">Terminal block</name>
|
||||
<name lang="it">Terminale di unione</name>
|
||||
<name lang="cs">Spojovací svorka</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line x1="0" length2="1.5" x2="0" y2="-3" y1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" end1="none" length1="1.5" end2="none"/>
|
||||
<circle diameter="5" x="-2.5" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" y="-2.5"/>
|
||||
<line x1="-3" length2="1.5" x2="-10" y2="0" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" end1="none" length1="1.5" end2="none"/>
|
||||
<input rotate="true" x="-1" text="_" y="-8" tagg="label" size="6"/>
|
||||
<line x1="-3" length2="1.5" x2="3" y2="-3" y1="3" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" end1="none" length1="1.5" end2="none"/>
|
||||
<terminal x="0" y="-10" orientation="n" tagg="none"/>
|
||||
<terminal x="-10" y="0" orientation="w" tagg="none"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,24 @@
|
||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="80" hotspot_y="35" type="element">
|
||||
<uuid uuid="{96eb8e93-2001-4385-85cc-2d7dcc662024}"/>
|
||||
<names>
|
||||
<name lang="es">Terminal</name>
|
||||
<name lang="nl">Klem</name>
|
||||
<name lang="de">Klemme</name>
|
||||
<name lang="cs">Svorka svorkoviště</name>
|
||||
<name lang="pl">Zacisk</name>
|
||||
<name lang="it">Morsetto</name>
|
||||
<name lang="ar">طرف</name>
|
||||
<name lang="en">Terminal</name>
|
||||
<name lang="fr">Borne de bornier</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-14" y="-42" tagg="label" size="6" rotate="true" text="(0000)"/>
|
||||
<line antialias="false" length1="1.5" x2="0" end2="none" x1="-3" end1="none" y2="40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="37"/>
|
||||
<input x="-10" y="-18" tagg="none" size="9" rotate="true" text="00"/>
|
||||
<line antialias="false" length1="1.5" x2="3" end2="none" x1="0" end1="none" y2="37" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="40"/>
|
||||
<line antialias="false" length1="1.5" x2="0" end2="none" x1="0" end1="none" y2="40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
|
||||
<rect x="-10" width="20" antialias="false" y="-30" height="60" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,26 @@
|
||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="80" hotspot_y="35" type="element">
|
||||
<uuid uuid="{952acd69-b847-48da-b80e-b1e75d525d83}"/>
|
||||
<names>
|
||||
<name lang="es">Terminal fusible</name>
|
||||
<name lang="nl">Klem met smeltzekering</name>
|
||||
<name lang="de">Klemme mit Sicherung</name>
|
||||
<name lang="cs">Svorka tavného svorkoviště</name>
|
||||
<name lang="pl">Zacisk bezpiecznikowy</name>
|
||||
<name lang="it">Morsetto con fusibile</name>
|
||||
<name lang="ar">طرف مصهر</name>
|
||||
<name lang="en">Terminal fuse</name>
|
||||
<name lang="fr">Borne de bornier avec fusible</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<rect x="-3" width="6" antialias="false" y="-5" height="25" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line antialias="false" length1="1.5" x2="0" end2="none" x1="0" end1="none" y2="24" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<rect x="-10" width="20" antialias="false" y="-30" height="60" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="-14" y="-42" tagg="label" size="6" rotate="true" text="(0000)"/>
|
||||
<line antialias="false" length1="1.5" x2="0" end2="none" x1="-3" end1="none" y2="40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="37"/>
|
||||
<input x="-10" y="-18" tagg="none" size="9" rotate="true" text="00"/>
|
||||
<line antialias="false" length1="1.5" x2="3" end2="none" x1="0" end1="none" y2="37" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="40"/>
|
||||
<line antialias="false" length1="1.5" x2="0" end2="none" x1="0" end1="none" y2="40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,27 +0,0 @@
|
||||
<definition width="20" hotspot_y="14" height="30" hotspot_x="10" version="0.51" orientation="dyyy" link_type="terminal" type="element">
|
||||
<uuid uuid="{4ad69f05-1008-4159-80b2-12cdd7baf6bb}"/>
|
||||
<names>
|
||||
<name lang="ar">طرف توصيل</name>
|
||||
<name lang="pl">Zacisk</name>
|
||||
<name lang="de">Klemme</name>
|
||||
<name lang="pt">Terminal de combinação</name>
|
||||
<name lang="es">Terminal de unión</name>
|
||||
<name lang="ru">Клеммное соединение</name>
|
||||
<name lang="fr">Borne continuité</name>
|
||||
<name lang="nl">klem doorgang</name>
|
||||
<name lang="en">Terminal block</name>
|
||||
<name lang="it">Terminale di unione</name>
|
||||
<name lang="cs">Spojovací svorka</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-1" text="_" y="-8.5" tagg="label" size="6"/>
|
||||
<line x1="0" length2="1.5" x2="0" y2="3" y1="10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" end1="none" length1="1.5" end2="none"/>
|
||||
<line x1="0" length2="1.5" x2="0" y2="-3" y1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" end1="none" length1="1.5" end2="none"/>
|
||||
<circle diameter="5" x="-2.5" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" y="-2.5"/>
|
||||
<line x1="-5" length2="1.5" x2="5" y2="-3" y1="3" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" end1="none" length1="1.5" end2="none"/>
|
||||
<terminal x="0" y="10" orientation="s" tagg="none"/>
|
||||
<terminal x="0" y="-10" orientation="n" tagg="none"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -1,4 +1,4 @@
|
||||
<definition width="10" version="0.4" hotspot_x="4" hotspot_y="15" height="20" link_type="terminal" type="element" ic="true" orientation="dyyy">
|
||||
<definition width="10" version="0.4" hotspot_x="4" hotspot_y="15" height="20" link_type="simple" type="element" ic="true" orientation="dyyy">
|
||||
<uuid uuid="{A4B7D0BD-2695-47D9-BF64-2DAD82C51772}"/><names>
|
||||
<name lang="ar">طرف نهائي</name>
|
||||
<name lang="de">Endklemme</name>
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
<definition width="20" hotspot_y="14" height="20" hotspot_x="10" version="0.51" orientation="dyyy" link_type="terminal" type="element">
|
||||
<uuid uuid="{ff1573e9-b618-45a8-93af-58562f69c9bb}"/>
|
||||
<names>
|
||||
<name lang="ar">طرف نهائي</name>
|
||||
<name lang="pl">Zacisk</name>
|
||||
<name lang="de">Endklemme</name>
|
||||
<name lang="pt">Terminal de fim</name>
|
||||
<name lang="es">Punto de unión</name>
|
||||
<name lang="ru">Клеммник</name>
|
||||
<name lang="fr">Borne finale</name>
|
||||
<name lang="nl">Klem eind</name>
|
||||
<name lang="en">Terminal block</name>
|
||||
<name lang="it">Terminale di fine</name>
|
||||
<name lang="cs">Koncová svorka</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-1" text="_" y="-8.5" tagg="label" size="6"/>
|
||||
<line x1="0" length2="1.5" x2="0" y2="-3" y1="-10" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" end1="none" length1="1.5" end2="none"/>
|
||||
<circle diameter="5" x="-2.5" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" y="-2.5"/>
|
||||
<line x1="-4" length2="1.5" x2="4" y2="-2" y1="2" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" end1="none" length1="1.5" end2="none"/>
|
||||
<terminal x="0" y="-10" orientation="n" tagg="none"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,239 @@
|
||||
<definition width="110" link_type="simple" version="0.5" hotspot_x="54" orientation="dyyy" height="210" hotspot_y="149" type="element">
|
||||
<uuid uuid="{bd88f531-e446-425d-9a8e-31bd4aab9839}"/>
|
||||
<names>
|
||||
<name lang="es">Terminal multiple DIP 20 bornes</name>
|
||||
<name lang="nl">Klemmenlijst</name>
|
||||
<name lang="de">Klemmleiste</name>
|
||||
<name lang="cs">Svorkoviště</name>
|
||||
<name lang="pl">Listwa zaciskowa</name>
|
||||
<name lang="it">Morsettiera Verticale</name>
|
||||
<name lang="ar">طرف توصيل</name>
|
||||
<name lang="en">Terminal</name>
|
||||
<name lang="fr">Bornier</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-12" y="-166.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-130" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-130"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-125" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-133"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-133" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-133" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-133"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-50"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-90" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-90"/>
|
||||
<input x="30" y="-131.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="-129.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-130" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-130"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-110" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-110"/>
|
||||
<input x="-40" y="-131.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="35" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="27"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-45" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-53"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-105" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-113"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-85" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-93"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-125" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-125"/>
|
||||
<rect x="-11" width="34" antialias="false" y="27" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-53" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-113" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-93" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="-9" y="-138.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-53" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-53"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="27" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="27"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-93" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-93"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-113" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-113"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-140" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-140"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<input x="30" y="-111.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="-91.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="-51.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-40" y="-141.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="-89.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="-109.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="28.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="30.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="-141.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="-49.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-110" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-110"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-90" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-90"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-70" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-70"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-135" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-143"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-50"/>
|
||||
<input x="-40" y="-111.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-143" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-105" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-105"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
|
||||
<input x="-40" y="-91.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-143" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-143"/>
|
||||
<input x="-40" y="28.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-40" y="-51.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="-118.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-65" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-73"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-85" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-85"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-140" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-140"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-25" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-33"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-120" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-120"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="55" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="47"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-135" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-135"/>
|
||||
<input x="-40" y="-121.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-73" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-13"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="35" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="35"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-45" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-45"/>
|
||||
<input x="30" y="-121.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="-98.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-73" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-73"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-115" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-123"/>
|
||||
<rect x="-11" width="34" antialias="false" y="47" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-33" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-13" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-100" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-100"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-123" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="30" y="-71.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="-58.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="21.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-123" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-123"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-13" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-13"/>
|
||||
<input x="-40" y="-101.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-120" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-120"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="47" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="47"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-33" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-33"/>
|
||||
<input x="-9" y="-69.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-115" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-115"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-60" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-60"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="20"/>
|
||||
<input x="30" y="-101.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="48.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="-31.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-70" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-70"/>
|
||||
<input x="30" y="-11.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-95" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-103"/>
|
||||
<input x="-40" y="-61.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-40" y="-71.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-40" y="18.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="-9.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-103" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="-9" y="50.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-65" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-65"/>
|
||||
<input x="-9" y="-29.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="-61.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="18.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-103" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-103"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
|
||||
<input x="-9" y="-78.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-100" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-100"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-80" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-80"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-55" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-63"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-95" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-95"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="25" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="17"/>
|
||||
<input x="-40" y="-31.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-40" y="-81.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-40" y="48.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<rect x="-11" width="34" antialias="false" y="17" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-63" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="30" y="-81.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-75" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-83"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-25" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-25"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="55" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="55"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-83" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="-40" y="-11.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-63" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-63"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="17" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="17"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-83" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-83"/>
|
||||
<input x="-9" y="-38.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="41.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-80" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-80"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-75" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-75"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="15" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-5"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-60" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-60"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="20"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-40"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="40"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-55" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-55"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="25" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="25"/>
|
||||
<input x="-40" y="-41.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-40" y="38.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<rect x="-11" width="34" antialias="false" y="7" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="30" y="-41.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="38.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="-9" y="-18.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="7" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="45" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="37"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-35" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-43"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="-20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-43" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="-11" width="34" antialias="false" y="37" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="30" y="8.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="37" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="37"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-43" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-43"/>
|
||||
<input x="-40" y="-21.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-40"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="40"/>
|
||||
<input x="-9" y="10.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-35" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-35"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="45" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="45"/>
|
||||
<input x="30" y="-21.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="-15" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-23"/>
|
||||
<input x="-40" y="8.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-23" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="15" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="15"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-23" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-23"/>
|
||||
<input x="-9" y="1.667" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="-20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20"/>
|
||||
<line antialias="false" length1="1.5" x2="-21" end2="none" x1="-19" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-15" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-15"/>
|
||||
<input x="-40" y="-1.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<input x="30" y="-1.333" tagg="none" size="4" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="-18" end2="none" x1="-18" end1="none" y2="5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-3"/>
|
||||
<rect x="-11" width="34" antialias="false" y="-3" height="8" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="-3" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-3"/>
|
||||
<line antialias="false" length1="1.5" x2="24" end2="none" x1="26" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<line antialias="false" length1="1.5" x2="22" end2="none" x1="-18" end1="none" y2="5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="5"/>
|
||||
<terminal x="50" y="50" orientation="e"/>
|
||||
<terminal x="-50" y="20" orientation="w"/>
|
||||
<terminal x="50" y="20" orientation="e"/>
|
||||
<terminal x="-50" y="-100" orientation="w"/>
|
||||
<terminal x="50" y="-130" orientation="e"/>
|
||||
<terminal x="50" y="-90" orientation="e"/>
|
||||
<terminal x="-50" y="-110" orientation="w"/>
|
||||
<terminal x="-50" y="-70" orientation="w"/>
|
||||
<terminal x="50" y="-100" orientation="e"/>
|
||||
<terminal x="-50" y="-10" orientation="w"/>
|
||||
<terminal x="-50" y="-130" orientation="w"/>
|
||||
<terminal x="-50" y="-60" orientation="w"/>
|
||||
<terminal x="-50" y="-80" orientation="w"/>
|
||||
<terminal x="-50" y="-40" orientation="w"/>
|
||||
<terminal x="-50" y="-120" orientation="w"/>
|
||||
<terminal x="50" y="-70" orientation="e"/>
|
||||
<terminal x="50" y="-20" orientation="e"/>
|
||||
<terminal x="50" y="-120" orientation="e"/>
|
||||
<terminal x="50" y="-60" orientation="e"/>
|
||||
<terminal x="-50" y="-50" orientation="w"/>
|
||||
<terminal x="50" y="-110" orientation="e"/>
|
||||
<terminal x="-50" y="-20" orientation="w"/>
|
||||
<terminal x="-50" y="10" orientation="w"/>
|
||||
<terminal x="-50" y="-90" orientation="w"/>
|
||||
<terminal x="-50" y="-30" orientation="w"/>
|
||||
<terminal x="50" y="-40" orientation="e"/>
|
||||
<terminal x="50" y="0" orientation="e"/>
|
||||
<terminal x="50" y="-30" orientation="e"/>
|
||||
<terminal x="50" y="10" orientation="e"/>
|
||||
<terminal x="50" y="-50" orientation="e"/>
|
||||
<terminal x="50" y="-10" orientation="e"/>
|
||||
<terminal x="-50" y="-140" orientation="w"/>
|
||||
<terminal x="50" y="-140" orientation="e"/>
|
||||
<terminal x="50" y="-80" orientation="e"/>
|
||||
<terminal x="-50" y="0" orientation="w"/>
|
||||
<terminal x="50" y="30" orientation="e"/>
|
||||
<terminal x="-50" y="50" orientation="w"/>
|
||||
<terminal x="-50" y="30" orientation="w"/>
|
||||
<terminal x="-50" y="40" orientation="w"/>
|
||||
<terminal x="50" y="40" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,42 @@
|
||||
<definition width="130" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="60" hotspot_y="34" type="element">
|
||||
<uuid uuid="{49729087-e683-425b-89e6-f41fe90f4f81}"/>
|
||||
<names>
|
||||
<name lang="es">Blok de terminales</name>
|
||||
<name lang="nl">Klemmenblok</name>
|
||||
<name lang="de">Klemmleiste mit 6x Klemmen</name>
|
||||
<name lang="cs">Svorkový blok</name>
|
||||
<name lang="pl">Listwa zaciskowa</name>
|
||||
<name lang="it">Morsettira orizzontale</name>
|
||||
<name lang="ar">كتلة نهائيات</name>
|
||||
<name lang="en">Terminal block 6x terminals</name>
|
||||
<name lang="fr">Bornier 6x bornes</name>
|
||||
</names>
|
||||
<informations>EN 60617: 03-02-03</informations>
|
||||
<description>
|
||||
<rect x="90" width="20" antialias="false" y="-30" height="50" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="-7" y="0.55" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<rect x="70" width="20" antialias="false" y="-30" height="50" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="-10" width="20" antialias="false" y="-30" height="50" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="92" y="-19" tagg="none" size="8" rotate="true" text="6"/>
|
||||
<input x="72" y="-19" tagg="none" size="8" rotate="true" text="5"/>
|
||||
<rect x="50" width="20" antialias="false" y="-30" height="50" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="30" width="20" antialias="false" y="-30" height="50" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<rect x="10" width="20" antialias="false" y="-30" height="50" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="52" y="-19" tagg="none" size="8" rotate="true" text="4"/>
|
||||
<input x="32" y="-19" tagg="none" size="8" rotate="true" text="3"/>
|
||||
<input x="12" y="-19" tagg="none" size="8" rotate="true" text="2"/>
|
||||
<input x="-8" y="-19" tagg="none" size="8" rotate="true" text="1"/>
|
||||
<terminal x="0" y="-30" orientation="n"/>
|
||||
<terminal x="0" y="20" orientation="s"/>
|
||||
<terminal x="20" y="-30" orientation="n"/>
|
||||
<terminal x="20" y="20" orientation="s"/>
|
||||
<terminal x="40" y="-30" orientation="n"/>
|
||||
<terminal x="60" y="20" orientation="s"/>
|
||||
<terminal x="80" y="-30" orientation="n"/>
|
||||
<terminal x="80" y="20" orientation="s"/>
|
||||
<terminal x="100" y="-30" orientation="n"/>
|
||||
<terminal x="100" y="20" orientation="s"/>
|
||||
<terminal x="40" y="20" orientation="s"/>
|
||||
<terminal x="60" y="-30" orientation="n"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -12,6 +12,5 @@
|
||||
<name lang="es">Terminales</name>
|
||||
<name lang="el">Ακροδέκτες και σειρές ακροδεκτών</name>
|
||||
<name lang="nl">Klemmenlijst</name>
|
||||
<name lang="da">Klemmer og klemmerækker</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<name lang="it">Sezionatore</name>
|
||||
<name lang="fr">Sectionneur</name>
|
||||
<name lang="pl">Odłącznik bezpiecznikowy</name>
|
||||
<name lang="es">Interruptor de desconexión</name>
|
||||
<name lang="es">Switch de desconexión</name>
|
||||
<name lang="cs">Rozpojovací spínač</name>
|
||||
<name lang="nl">Scheidingschakelaar met smeltzekering</name>
|
||||
</names>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<definition width="290" version="0.4" hotspot_x="21" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
|
||||
<uuid uuid="{4703BDD4-D90B-4E3F-AF60-679EB66DD5E4}"/><names>
|
||||
<name lang="en">Terminal 12G1</name>
|
||||
<name lang="es">Clema 12G1</name>
|
||||
<name lang="fr">Bornier cable 12G1</name>
|
||||
<name lang="it">Morsettiera Cavo 12
|
||||
G1</name>
|
||||
@@ -1,7 +1,6 @@
|
||||
<definition width="430" version="0.4" hotspot_x="19" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
|
||||
<uuid uuid="{A8C79B55-90AC-4F98-81C2-3A20BDBC7B5E}"/><names>
|
||||
<name lang="en">Terminal_19G1</name>
|
||||
<name lang="es">Clema 19G1</name>
|
||||
<name lang="fr">Bornier cable 19G1</name>
|
||||
<name lang="it">Morsettiera Cavo 19G1</name>
|
||||
<name lang="pl">Listwa zaciskowa 19G</name>
|
||||
@@ -1,7 +1,6 @@
|
||||
<definition width="100" version="0.4" hotspot_x="24" hotspot_y="29" height="520" link_type="simple" type="element" orientation="dyyy">
|
||||
<uuid uuid="{DF43B4E0-C908-420E-B61B-B0C0E12EF629}"/><names>
|
||||
<name lang="en">Terminal_3G1</name>
|
||||
<name lang="es">Clema 3G1</name>
|
||||
<name lang="fr">Bornier cable 3G1</name>
|
||||
<name lang="pl">Listwa zaciskowa 3G</name>
|
||||
<name lang="it">Morsettiera Cavo 3G1</name>
|
||||
@@ -1,7 +1,6 @@
|
||||
<definition width="120" version="0.4" hotspot_x="24" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
|
||||
<uuid uuid="{DE548E2C-13F5-4269-BA5A-B16C2909B3C5}"/><names>
|
||||
<name lang="en">Terminal_4G1</name>
|
||||
<name lang="es">Clema 4G1</name>
|
||||
<name lang="fr">Bornier cable 4G1</name>
|
||||
<name lang="pl">Listwa zaciskowa 4G</name>
|
||||
<name lang="it">Morsettiera Cavo 4G1</name>
|
||||
@@ -1,7 +1,6 @@
|
||||
<definition width="140" version="0.4" hotspot_x="20" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
|
||||
<uuid uuid="{BF950FAB-A8D9-40E4-B239-0C3413B2BFD4}"/><names>
|
||||
<name lang="en">Terminal_5G1</name>
|
||||
<name lang="es">Clema 5G1</name>
|
||||
<name lang="fr">Bornier cable 5G1</name>
|
||||
<name lang="it">Morsettiera Cavo 5G1</name>
|
||||
<name lang="pl">Listwa zaciskowa 5G</name>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user