Compare commits

...

205 Commits

Author SHA1 Message Date
dlee99
d7e1813ff3 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2022-08-13 16:44:36 +02:00
joshua
d6e8a1c133 Element editor : improve deletion speed 2022-08-13 13:06:46 +02:00
joshua
eee1c7fff7 Element editor : Improve responsiveness when several shapes are selected. 2022-08-13 12:40:59 +02:00
David Varley
af5d5e0aa3 Allow for open polygons (ie polylines) when saving as dxf 2022-08-13 11:57:29 +10:00
Laurent Trinques
e9931511de Update EATOn elements, thanks dmsque 2022-08-09 02:32:23 +02:00
Laurent Trinques
acf1e713fc Fix position of label XREF in 'Other' option for slave device contact
type
2022-08-08 10:39:04 +02:00
Laurent Trinques
21524ee528 Add symbol and improve 'Other' option for slave device contact type. 2022-08-06 18:42:05 +02:00
Laurent Trinques
f0919d5fa6 Minor fix in ABB element directory 2022-08-04 09:14:35 +02:00
Laurent Trinques
695e4d95aa Refresh en translation 2022-08-04 09:05:32 +02:00
joshua
02769fe881 Improve opening time of dxf 2022-08-03 13:54:39 +02:00
joshua
e57ba72d7c Fix crash 2022-08-03 12:37:32 +02:00
Ole Carlsen
1b3599e673 Danish translation updated 2022-08-01 20:28:58 +02:00
Laurent Trinques
d0d6b299e4 update polish translation, thanks Paweł 2022-07-31 14:54:17 +02:00
Laurent Trinques
56b7458951 Workaround to fix launch dxf2elmt binary from QET element editor menu on macOS 2022-07-27 18:04:48 +02:00
joshua
74a187e659 Minor 2022-07-27 14:52:50 +02:00
joshua
8b62318588 Return an empty QByteArray if something goes wrong with dxf2elmt 2022-07-27 14:52:00 +02:00
joshua
31466a65ba Fix fail to build from sources
Fix ftbfs for :
ubuntu 18.04 bionic beaver
ubuntu 20.04 focal fossa
debian 11 bullseye
2022-07-27 14:15:32 +02:00
Laurent Trinques
a7160ba9b7 Fix dxf2Elmt Binary name on macOS 2022-07-26 20:18:54 +02:00
Laurent Trinques
cacbce6cec Update *TS file and FR & EN translation 2022-07-26 18:19:27 +02:00
joshua
6fd5209364 Merge branch 'dxf2elmt'
* dxf2elmt:
  Element editor : improve code
  Element editor : improve code
  Import dxf is managed by undo command
  Add import dxf feature
2022-07-26 17:04:22 +02:00
joshua
57695bbbea Element editor : improve code
Better use of signal partsAdded and partsRemoved
2022-07-26 17:03:18 +02:00
joshua
5a497cd6b5 Element editor : improve code
Better use of signal partsAdded and partsRemoved
2022-07-26 16:17:47 +02:00
joshua
cae7cbdbd8 Import dxf is managed by undo command 2022-07-24 20:58:00 +02:00
Laurent Trinques
b65ff83805 Update en translation 2022-07-24 18:17:26 +02:00
Laurent Trinques
c1f2b345e4 Update Fr translation 2022-07-24 16:50:50 +02:00
Peter Kessen
f9600f5dbb Fix german translations 2022-07-24 10:51:12 +02:00
joshua
6e81451b46 Add import dxf feature
Use dxf2elmt to import dxf.
See https://github.com/antonioaja/dxf2elmt
2022-07-23 21:54:23 +02:00
Laurent Trinques
2a7848e1ca Update *TS files 2022-07-21 19:17:09 +02:00
Lars Biskupek
c22abdd2f8 Update of German language files 2022-07-18 18:35:22 +02:00
Laurent Trinques
9e2d4abd01 Add Nidec Leroy-Somer Digitax HD M750 servo drive, thanks Matteo 2022-07-16 16:44:14 +02:00
Laurent Trinques
acd151c9ca Improve last commit 2022-07-16 13:36:05 +02:00
Laurent Trinques
ab724377c0 Fixed a bug with many slaves of type Other, whose XREFs overlap in list
mode
2022-07-16 12:58:35 +02:00
Laurent Trinques
4c5d27e9af Minor 2022-07-08 21:34:10 +02:00
Laurent Trinques
8af850df44 Add the architecture of the CPU that Qt was compiled for in widget aboutqetdialog and in the logs 2022-07-08 20:50:45 +02:00
Pino Toscano
8a1f509b62 flatpak: refresh 0001-build-Fix-the-installation-paths.patch
Needed after the recent build system changes to MIME-related paths.
2022-07-05 18:16:51 +02:00
Pino Toscano
cf479bc113 Drop old mimelnk MIME types
Those desktop MIME types were needed only with KDE up to 3.x, as it
used to have its own desktop-based MIME type system. KDE 3 is EOL for
many years now, and there are already XDG MIME types.
2022-07-05 18:16:51 +02:00
Pino Toscano
08e206deeb Drop XML files autogenerated from qelectrotech.xml
These files are the bare XML definitions, and they are automatically
generated by update-mime-database (part of shared-mime-info) on update
(e.g. by distro hooks) or manually. Keeping them in the sources, and
installing them, is definitely not correct, as qelectrotech.xml is
their canonical definition.

Hence, drop them from the sources, together with references to them.
2022-07-05 18:16:51 +02:00
joshua
ba1e8381f2 Merge branch 'terminal_strip'
* terminal_strip:
  Improve execution time of some actions.
  Minor : fix little gui defect
  Improve opening time of terminal strip editor window
  Display conductor number
2022-07-04 21:45:18 +02:00
Laurent Trinques
d082c9c9a6 Minor refresh element abe7-h16210-11.elmt 2022-07-04 10:24:07 +02:00
Laurent Trinques
84631b238c Add new symbol Telefast 2022-07-02 18:42:15 +02:00
artgg7300
aa50224b00 add new element AB 1734-ep24dc 2022-07-01 06:42:46 +02:00
Laurent Trinques
d44486f468 Add new eaton_moeller easy elements, thanks dmsque 2022-06-28 18:21:57 +02:00
joshua
2a307a74da Improve execution time of some actions.
Improve the execution time when we add, change or remove
several terminals to/from terminal strip.
2022-06-23 21:36:24 +02:00
Tadeáš Pilař
1a2fea84ff Add 'Other' option for slave device contact type
This option alows for displaying XRef without contact drawing.
This is useful for spliting one physical part into multiple
logical elements when the slave element is not a switch.
2022-06-23 05:41:33 +02:00
Laurent Trinques
f603b229db Add new ABB drives, thanks dmsque 2022-06-23 05:34:08 +02:00
joshua
fa753449ad Minor : fix little gui defect
At opening of terminal strip editor window, click on free terminal
in the tree dock don't show up the free terminal table.
2022-06-22 18:56:22 +02:00
joshua
fe19b270f9 Improve opening time of terminal strip editor window
Need serious refactoring of codes who use the method
Element::actualLabel() and also actualLabel itself.
This part of code is crappy.
2022-06-22 17:34:05 +02:00
Laurent Trinques
5c96c6d773 Add new Delta As_series elements, thanks dmsque 2022-06-18 04:05:19 +02:00
Maximilian Federle
637d0bf6de publish edge snap: Adapt to snapcraft 7 2022-06-15 16:32:43 +02:00
Laurent Trinques
d917c697b0 Add new symbols 2022-06-15 14:28:40 +02:00
Laurent Trinques
1be21782fd Add new symbols 2022-06-15 14:18:48 +02:00
joshua
2e15372aab Display conductor number 2022-06-14 19:30:45 +02:00
plc-user
5c6b9f1829 changed more elements to "thumbnails" 2022-06-14 14:13:15 +02:00
plc-user
9c55378f49 added some parts of series 2003 2022-06-14 14:13:15 +02:00
plc-user
e367436358 Bugfix for "Weidmüller"-Part 2022-06-14 14:13:15 +02:00
joshua
c9ebdace04 Update some code.
Update some part of class LinkSingleElementWidget with more modern
c++ and recent change of Qet.
2022-06-13 21:06:00 +02:00
joshua
3e6e38e566 Continue revamp of elementprovider 2022-06-13 20:46:22 +02:00
joshua
c83d4e5aea Refactoring.
Refactor elementProvider class  : Use the ElementData::Types instead of
deprecated Element::kind
2022-06-13 20:27:06 +02:00
Laurent Trinques
0e9d09c62e Minor revamp last commit: Add Shelly elments... 2022-06-12 10:35:10 +02:00
Laurent Trinques
fe66caf5ac Add Shelly elments, thanks TheKilroy with add these on
qelectrotech-element-contrib
2022-06-10 12:21:50 +02:00
plc-user
c58d61594b added some parts from manufacturer "Weidmüller" 2022-06-06 13:49:03 +02:00
plc-user
3cd3535c18 changed Front-Views to "thumbnails" and added some parts "2003" 2022-06-06 13:49:03 +02:00
joshua
97ecd26749 Use QLatin1String and QStringLiteral for better performance
In class ElementData.
2022-06-01 22:45:59 +02:00
joshua
2e70d2e599 Nomenclature now use properly the element type 'thumbnail'
Use function provided by ElementData to check element type and
master type instead of use plain text (code is more strong)
2022-06-01 22:29:12 +02:00
joshua
3dd0986c4f Fix some warning and write more modern c++ 2022-05-25 23:40:08 +02:00
joshua
899caeabe9 Fix wrong behavior when edit the element information
In the diagram editor, when we edit the element information in the side
panel, each time we tip something in the text field the cursor always go
to the end if the "label" information is empty.
2022-05-25 23:16:13 +02:00
joshua
a2b73ea2bc Definitely fix the rotation problem :)
Only use space for every rotation
2022-05-25 21:47:31 +02:00
Laurent Trinques
bf32219154 Fix previous workaround
Now the shortcut for the rotate action is key_space and use key_R to
rotate terminal on the fly before placing it in the drawing.
2022-05-25 17:39:49 +02:00
Laurent Trinques
6a669f1399 Fix previous workaround
Because strange behaviour with Qt::key_space if used for keyPressEvent
and also in shortcut.
Now the shortcut for the rotate action is ctrl + R and key_space to
rotate terminal on the fly before placing it in the drawing.
2022-05-25 13:47:22 +02:00
joshua
4ab1ed7fc9 Fix previous workaround
The rotate action shortcut was 'space' before this commit and so the
keyPressEvent with space key was never propagated because always grabbed
by the rotate action.
Now the shortcut for the rotate action is ctrl + space.
Note that even if rotate exist in element editor, this doesn't work well
because the rotation is not well managed by the save/load from elmt
file.
2022-05-22 21:05:54 +02:00
Laurent Trinques
89d03e5503 Element editor : Workaround for Qt::Key_Space event not working
Use of ALT key as a replacement to rotate terminal on the fly before
placing it in the drawing.
Fix bug #262
https://qelectrotech.org/bugtracker/view.php?id=262
2022-05-21 23:28:44 +02:00
Laurent Trinques
9a6e1d2a61 Editor commands: change the rotation with the space key on the keyboard
from 90° to 15° for more precision for part lines, polygons, texts, arcs
and circles.
2022-05-20 10:18:37 +02:00
Laurent Trinques
fad6983cf1 Element::Thumbnail fix for BOM pages 2022-05-16 09:30:32 +02:00
Laurent Trinques
daeec311b2 Element::Thumbnail WIP 2022-05-16 08:59:25 +02:00
Laurent Trinques
db8c76c184 Element::Thumbnail WIP 2022-05-15 14:29:01 +02:00
Laurent Trinques
2ec7e6aa45 In 99_assembly_plan directory change link_type="simple" by link_type="thumbnail" 2022-05-15 06:28:20 +02:00
joshua
021aea1d8b Add the new element type : thumbnail
This type must be used for element who goal is to display a
thumbnail/front view of an element, notably used for cabinet contents
view and placement.
2022-05-13 20:02:29 +02:00
Laurent Trinques
1f4dfdba3f Add QPrinter::HighResolution 2022-05-05 13:37:24 +02:00
joshua
f0694f0daf Merge branch 'terminal_strip'
* terminal_strip:
  Remove terminal strip widget
  Several terminals can be removed or moved from strip in one shot
2022-05-04 18:48:46 +02:00
joshua
baf412614c Remove terminal strip widget
Since this commit, the terminals can't be moved from the tree widget,
instead we need to use the "move in" widget to move one or several
selected terminals in the table view.
2022-05-04 18:38:45 +02:00
Laurent Trinques
e1865fec62 Update Ewon elements, thanks Vbxler 2022-04-28 13:31:31 +02:00
Laurent Trinques
1e255af3be Update SingleApplication and pugixml to latest upstream release 2022-04-27 13:52:41 +02:00
Laurent Trinques
1c99cb5c2d Add Qt::AA_UseHighDpiPixmaps 2022-04-27 09:14:13 +02:00
Laurent Trinques
4ca21a3bff Add new ewon elements, thanks Vbxler 2022-04-26 13:26:07 +02:00
Laurent Trinques
189d92f2a9 Minor 2022-04-26 08:15:20 +02:00
Laurent Trinques
34a7e0f3fe Minor : machineinfo change RAM informations MB to GB 2022-04-26 07:54:41 +02:00
joshua
17290ae3b3 Try to fix fail to build for old Qt version 2022-04-25 18:24:43 +02:00
Laurent Trinques
8b65d240db Add new example found on www 2022-04-23 13:37:36 +02:00
joshua
bce6a43427 Several terminals can be removed or moved from strip in one shot 2022-04-10 13:52:45 +02:00
joshua
1c52cd71a9 Merge branch 'terminal_strip'
* terminal_strip:
  Minor fix : wrong variable name
2022-04-09 16:35:02 +02:00
joshua
898edb6c12 Minor fix : wrong variable name 2022-04-09 16:34:30 +02:00
joshua
de3fa988b1 Fix some clazy warning 2022-04-09 13:07:47 +02:00
joshua
b42aec7bdf Minor
Block database signal when a project is currently being deleted.
Among other things, this avoid the multiple show of the dialog "table
limitation".
2022-04-09 12:46:07 +02:00
joshua
ea46a92f3f Merge branch 'terminal_strip'
* terminal_strip:
  Several real terminal can be added to terminal strip in one shot
  Minor : avoid unnecessary multiple function call
  The free terminal properties can be edited by batch.
  Change made inside the free terminal table can be applied
  Hide/show apply/reset buttons according to current displayed widget
  Edited data of terminal strip can be applied
  Change terminal strip editor class
  Add free terminal editor widget
  Add toolbar and buttons
  Start to move terminal strip editor from QDialog to QMainWindow
  Add table widget and item model for free terminal
  Revamp code
  Improve undo command when add/move/remove terminal in/from/to terminal strip
  Revamp code.
  Revamp code, make it more simple
  Remove the real terminal uuid, and use instead the uuid of the terminal element itself
  RealTerminal is created by the TerminalElement itself
  Change relationship betwen classes RealTerminal PhysicalTerminald and TerminalElement
  QTreeWidget "terminal explorer" : improve item text
  minor : remove unused code
2022-04-09 11:54:58 +02:00
joshua
6197d0215a Several real terminal can be added to terminal strip in one shot
User can select several real terminals in the free terminal editor
and add it with one operation on a terminal strip.
2022-04-08 20:48:32 +02:00
Laurent Trinques
6fd342e265 Fix typo 2022-04-07 17:01:23 +02:00
Laurent Trinques
395d968ab5 Minor 2022-04-07 16:48:37 +02:00
Laurent Trinques
e41b7f7d6c Machine_info add disk and partition informations 2022-04-07 16:33:20 +02:00
Laurent Trinques
fabf0109ff Remove element surpresseur_mono_hyd.elmt 2022-04-02 19:58:29 +02:00
Laurent Trinques
cabfdc0a54 Add reworked pneumatic symbols, thanks Vbxler 2022-04-02 19:52:17 +02:00
joshua
6f4122f65c Fix a funny bug
When we create a summary table and uncheck the option "adjust the size
of the table to the folio" an infinity of new diagram are added to the
project.
2022-04-01 20:41:07 +02:00
joshua
ce21a812c0 Fix bug 244
I was thinking that the commit 5a51f6bace
fix the bug 244, but not they only fix this bug :
https://qelectrotech.org/forum/viewtopic.php?pid=16022#p16022

This commit really fix the bug 244
2022-04-01 20:04:17 +02:00
joshua
5a51f6bace Fix crash
See bug N°244
https://qelectrotech.org/bugtracker/view.php?id=244
2022-03-31 19:05:45 +02:00
joshua
a38d97896d Minor : avoid unnecessary multiple function call
TerminalStripTreeDockWidget::on_m_tree_view_currentItemChanged
call setCurrentStrip only when current strip changed, and not every time
when user click in another item on the tree view.
2022-03-30 20:30:57 +02:00
joshua
c4b0c1435c The free terminal properties can be edited by batch. 2022-03-25 19:49:31 +01:00
joshua
a4445c411d Change made inside the free terminal table can be applied 2022-03-25 19:25:46 +01:00
joshua
e92bd36f9b Hide/show apply/reset buttons according to current displayed widget 2022-03-25 19:00:09 +01:00
Laurent Trinques
61ff8884e0 Minor 2022-03-24 06:25:28 +01:00
Laurent Trinques
b8af2e9d1d Minor : add informations in aboutqetdialog widget 2022-03-24 06:13:03 +01:00
joshua
8084fa8f29 Edited data of terminal strip can be applied 2022-03-23 21:18:22 +01:00
plc-user
1066e55262 rework and new elements (Hager) 2022-03-21 05:19:01 +01:00
joshua
edfb23be23 Change terminal strip editor class
Change parent class from QDialog to QWidget.
Terminal strip editor is now embedded in TerminalStripEditorWindow.
2022-03-20 18:25:25 +01:00
plc-user
516a1a7826 more cleanup, rework and new elements 2022-03-19 15:18:29 +01:00
plc-user
be1d87c5d4 cleanup, rework and new elements 2022-03-17 08:38:38 +01:00
joshua
b48ba939de Add free terminal editor widget 2022-03-16 22:44:08 +01:00
joshua
b1ad16d482 Add toolbar and buttons
Add 'add terminal strip' button.
Add 'remove terminal strip' button
Add 'reload' button
2022-03-16 18:58:36 +01:00
joshua
ceb54fbc6a Start to move terminal strip editor from QDialog to QMainWindow 2022-03-14 17:56:18 +01:00
plc-user
e42bcb5ec9 bugfix, rework and new elements 2022-03-12 22:01:25 +01:00
joshua
9cbc3a2265 Add table widget and item model for free terminal
WIP, the change made in the table widget can't be applied.
2022-03-12 19:07:49 +01:00
plc-user
e93990a6e4 rework of some Elements and some new Terminals 2022-02-26 15:50:07 +01:00
Laurent Trinques
bb1a0767a3 Change & by undferscore in qet_labels.xml 2022-02-24 13:33:06 +01:00
Laurent Trinques
0b7afe4781 Flatpak & AppImage : restore Sqlite3 for database export 2022-02-21 13:45:55 +01:00
plc-user
9a3de1f780 rework of some Elements an some new ones 2022-02-21 13:36:09 +01:00
joshua
0ff099fb52 Revamp code
Change the way to know who is the physical terminal of a real terminal
when we got only the real terminal.
2022-02-20 13:13:29 +01:00
joshua
05a2e4b37b Improve undo command when add/move/remove terminal in/from/to terminal strip 2022-02-19 12:34:38 +01:00
Laurent Trinques
830a70ac94 Add Linux pc.gpu.RAM informations,
but need glxinfo dependency
2022-02-17 19:01:56 +01:00
Laurent Trinques
e63a8c8482 Minor 2022-02-16 13:57:04 +01:00
Laurent Trinques
855162bb03 Improve QElapsedTimer in seconds to compute time used for reload element collection 2022-02-16 12:34:04 +01:00
Ole Carlsen
d2c15cf57b Update Danish translation 2022-02-14 19:37:51 +01:00
artgg7300
02ce65b3a9 little mod on element 2022-02-14 05:20:11 +01:00
pavelfric
0bf1f89c13 Updated Czech translations of elements. 2022-02-13 11:28:37 +01:00
joshua
74c3ab1b82 Fix can't resize QetGraphicsTableItem
User can't grab the handler item.
2022-02-10 19:13:59 +01:00
joshua
062ae6e9eb Fix intensive call of updateUi when move a QetGraphicsTableItem 2022-02-10 19:11:06 +01:00
joshua
dcc5a4dd0b Revamp code.
Remove a QVector member variable and use instead a function who
return the same vector, but created on the fly
2022-02-09 19:15:45 +01:00
joshua
ba638f52e5 Revamp code, make it more simple 2022-02-09 18:57:27 +01:00
joshua
ffd904749e Remove the real terminal uuid, and use instead the uuid of the terminal element itself 2022-02-09 18:13:35 +01:00
joshua
c037d3ea0a RealTerminal is created by the TerminalElement itself 2022-02-09 18:08:20 +01:00
artgg7300
087c8980f0 little modif on element 2022-02-09 06:07:42 +01:00
joshua
70f50ff362 Change relationship betwen classes RealTerminal PhysicalTerminald and TerminalElement 2022-02-08 19:24:16 +01:00
artgg7300
904e805935 add new elements and remove a old 2022-02-08 06:27:36 +01:00
artgg7300
04d478882e add new element Dahlander motor 2022-02-06 17:34:01 +01:00
joshua
35cd790c8f Fix crash 2022-02-06 16:36:00 +01:00
joshua
1a26133a78 Add a QElapsedTimer to compute time used for reload element collection 2022-02-06 15:50:25 +01:00
joshua
a028b774bf QTreeWidget "terminal explorer" : improve item text
In the QTreeWidget "terminal explorer", when the physical terminal is
composed by several real terminal, the text of the QTreeWidgetItem
display the label of each real terminal.
2022-02-06 15:05:24 +01:00
Laurent Trinques
72b7bc210f Minor 2022-02-06 14:03:49 +01:00
Laurent Trinques
5fe2efca1a Minor 2022-02-05 15:36:44 +01:00
Laurent Trinques
3ce09775ac Minor 2022-02-05 13:12:11 +01:00
joshua
3a53c2d53b minor : remove unused code 2022-02-05 12:02:59 +01:00
joshua
7ba27ec9d9 Fix very weird bug
see
https://linuxfr.org/forums/programmation-c/posts/erreur-de-compilation-aucun-fichier-ou-dossier-de-ce-type
2022-02-05 11:40:47 +01:00
Laurent Trinques
d74dcdea6c Minor 2022-02-04 16:16:34 +01:00
joshua
9cb86a7e54 Fix fail to build for older version of Qt 2022-02-01 11:29:06 +01:00
joshua
826991e6d6 Improve how real terminals are grouped 2022-02-01 11:13:23 +01:00
joshua
53157afd12 Minor : rebuild terminal vector everywhere is needed 2022-02-01 10:30:42 +01:00
joshua
a165a3cb28 When undo an ungroup terminal command, the terminal keep the same level. 2022-02-01 09:53:06 +01:00
joshua
1d20018a26 Merge branch 'terminal_strip'
* terminal_strip:
  Terminal strip bridge are now save in .qet file
Minor : don't push an undo command when change bridge color by the
same color
2022-01-31 18:17:27 +01:00
joshua
c02238cab8 Terminal strip bridge are now save in .qet file 2022-01-31 18:11:21 +01:00
joshua
35a40f1aba Fix fail to build from sources for some Qt version 2022-01-31 17:25:10 +01:00
Laurent Trinques
6e55a630b4 Rename Folder names containing the '&' character cause the PHP file _exist() function to fail. 2022-01-30 11:24:11 +01:00
Laurent Trinques
9a17c8f72c Rename Folder names containing the '&' character cause the PHP file _exist() function to fail. 2022-01-30 11:21:59 +01:00
Laurent Trinques
04c17ac5ac Rename Folder names containing the '&' character cause the PHP file _exist() function to fail. 2022-01-30 10:50:21 +01:00
Laurent Trinques
686bd8dff1 Rename Folder names containing the '&' character cause the PHP file _exist() function to fail. 2022-01-30 10:36:18 +01:00
joshua
bd635b8e43 Minor : don't push an undo command when change bridge color by the same color 2022-01-28 18:37:40 +01:00
joshua
0bd0476cb1 Merge branch 'terminal_strip'
* terminal_strip:
  Fix fail to build from sources
  Minor improvement about undo/redo for bridge creation
  Minor Fix : undo command for unbridge strip don't work
  Minor : add undo text
2022-01-28 18:09:20 +01:00
joshua
d562ca8a39 Fix fail to build from sources 2022-01-28 18:08:16 +01:00
joshua
a31bd6eb0d Minor improvement about undo/redo for bridge creation
When a new bridge is created, an undo command is created for that.
When undo the action and redo it, all terminals are bridged to a new
bridge instead of the first one, who continue to exist but is now
empty and 'lost' because he will never be reused.
In addition of that, if a more recent undo command (we call it undo2)
use this bridge,
there is a unknown behavior, because the status of the bridge is not the
same as when the undo2  was created.
2022-01-27 20:00:46 +01:00
joshua
d114b097bf Minor Fix : undo command for unbridge strip don't work 2022-01-27 19:45:33 +01:00
joshua
993eb58d46 Minor : add undo text 2022-01-27 19:07:49 +01:00
joshua
7aa048740b Merge branch 'terminal_strip'
* terminal_strip:
  TerminalStripBridge color can be edited.
  Use QSharedPointer instead of QWeakPointer + remove unused include
  Change struct TerminalStripBridge to class
  Revamp terminalStrip feature code
  Revamp PhysicalTerminal class
  Revamp RealTerminal class...... again
  Improve bridge edition
  Improve code readability
  Fix copy constructo warning
  Make code less spaghetti
  Draw bridge pixmap in the tableview (wip)
  REmove unused method : levelCellCount
  Remove isXrefCell method...
  Add terminal bridge feature
2022-01-27 19:02:43 +01:00
Maximilian Federle
306f4c7b54 projectview: Only append .qet if not snap or flatpak 2022-01-27 12:02:08 +01:00
Laurent Trinques
4334c8ec8c Add new symbols, thanks Vbxler 2022-01-26 11:47:16 +01:00
dlee99
7aabdd1781 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2022-01-21 21:55:02 +01:00
artgg7300
bb48c4607a translated hungarian files 2022-01-20 10:49:33 +01:00
dlee99
0600b85e8a modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2022-01-19 22:30:42 +01:00
Maximilian Federle
688d9fe4c1 projectview: Re-enable appending qet suffix if not running as flatpak
It was removed in b121dad for all platforms.
Only disable appending the suffix for the flatpak platform
by testing for the FLATPAK_ID environment variable.
2022-01-19 20:29:34 +01:00
joshua
683095173e TerminalStripBridge color can be edited. 2022-01-18 11:24:07 +01:00
dlee99
0d70ed53a9 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2022-01-15 21:45:46 +01:00
joshua
7d33b48b3a Merge branch 'master' into terminal_strip
* master:
  BugFix : default element collection path is wrong
  snap: Remove framework snap prompt
  Update translation and add cn chinese ts files
  Danish translation updated
  Danish translation
  Danish translation
  Add new thumbnail element
  Flatpak add --share=network
Flatpak : add --socket=cups see :
https://github.com/flathub/org.libreoffice.LibreOffice/issues/90
  Graphics item handler is bigger when overred
  Add toolbar widget for edit size of handler in diagram editor.
  Fix Multiple translation in elements
  Fix Multiple translation in elements
  Fix segfault.
  new Analog-In - Module
  cleanup and upgraded elements
  modified:   lang/qet_nl.qm 	modified:   lang/qet_nl.ts
  Add Russian translation, thanks "А.Разживин"
  little modification in hungarian language
  Fixed typo
2022-01-14 19:47:28 +01:00
joshua
d7e2ef283a BugFix : default element collection path is wrong 2022-01-14 19:04:53 +01:00
Maximilian Federle
782eaff4d2 snap: Remove framework snap prompt
Now that https://github.com/snapcore/snapcraft/pull/3596 has been
released in snapcraft 6.0.1, drop the prompt that tells users to
disconnect the old framework snap.

Also drop --enable-experimental-extensions from CI  because kde-neon
has been declared stable for core20.
2022-01-14 18:12:45 +01:00
Laurent Trinques
9bd2ea22f3 Update translation and add cn chinese ts files 2022-01-11 10:03:22 +01:00
Ole Carlsen
ee4ce5db4e Danish translation updated 2022-01-09 18:45:25 +01:00
Ole Carlsen
b90d06aa5c Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2022-01-09 16:29:35 +01:00
Ole Carlsen
ba47a11282 Danish translation 2022-01-09 16:28:30 +01:00
Ole Carlsen
4041073c96 Danish translation 2022-01-09 16:24:53 +01:00
joshua
8830204c0c Add new thumbnail element 2022-01-07 16:41:04 +01:00
Laurent Trinques
d932f8ea01 Flatpak add --share=network 2022-01-05 11:16:22 +01:00
Laurent Trinques
8cfa852077 Flatpak : add --socket=cups see :
https://github.com/flathub/org.libreoffice.LibreOffice/issues/90
2022-01-05 07:24:56 +01:00
joshua
1a75eb19d0 Graphics item handler is bigger when overred 2022-01-04 18:41:46 +01:00
joshua
ae9faa2192 Add toolbar widget for edit size of handler in diagram editor.
Add a combo box in the tool bar of diagram editor
to quickly change the size of the graphics handler item.

The sarto commit :D

NOTE
only available for diagram editor, element editor will
come later.
2022-01-03 21:01:25 +01:00
Laurent Trinques
e087270b6d Fix Multiple translation in elements 2021-12-31 13:29:17 +01:00
Laurent Trinques
b8263b03bc Fix Multiple translation in elements 2021-12-31 13:23:03 +01:00
joshua
09694ddec9 Use QSharedPointer instead of QWeakPointer + remove unused include 2021-12-26 18:48:11 +01:00
joshua
1572fafabe Change struct TerminalStripBridge to class
And move it in a new file
2021-12-26 18:43:17 +01:00
joshua
5709f469fc Revamp terminalStrip feature code
Move RealTerminal class in a new file
Move PhysicalTerminal class in a new file.
Remove the use of QWeakPointer and use instead QSharedPointer
in a big part of the revamp.
2021-12-26 17:26:00 +01:00
joshua
2ea9f8a2c6 Revamp PhysicalTerminal class 2021-12-23 22:17:37 +01:00
joshua
a2e5989f3b Revamp RealTerminal class...... again
I don't know what I want, I'm crazy :D.
Next commit will also revamp PhysicalTerminal
and TerminalStripBridge class, code will be more clear and
easy to understand.
2021-12-23 18:37:17 +01:00
joshua
02b385e0b7 Improve bridge edition 2021-12-22 19:21:54 +01:00
joshua
e2454faa36 Improve code readability 2021-12-19 21:05:48 +01:00
joshua
57e80e7b5e Fix copy constructo warning 2021-12-19 20:03:26 +01:00
joshua
6505330b5f Make code less spaghetti
Not finished yet.
2021-12-19 14:55:02 +01:00
joshua
cd914c8726 Merge branch 'master' into terminal_strip
* master: (21 commits)
  Minor: remove spaces in filenames
  minor: remove capital letters
  Add new symbols Fibaro, thanks Bertus
  Update Hungarian translation, thanks Gubányi
  modified:   lang/qet_nl.qm 	modified:   lang/qet_nl.ts
  Add preprocessor to check Qt version
  Update *TS files
  Add possibility to user to choose hdpi round policy
  Minor improvement for function QETApp::customElementsDir() and QETApp::commonElementsDir()
  Add new GCE symbol
  Flatpak: update qet_tb_generator to version 1.3.1
  Add new symbol nodemcu_v3, thanks Bertus
  Add new symbols
  ci: Build edge snaps on GitHub & release to store
  snap: Port to core20
  Flatpak update qet_tb_generator to 1.3.0 version
  Fix typo in URL
  SNAP change Github source to https://github.com/raulroda/qet_tb_generator-plugin
  modified:   lang/qet_nl.qm 	modified:   lang/qet_nl.ts
  upgraded elements and renamed company
  ...
2021-12-11 21:27:34 +01:00
joshua
beee4a06c8 Draw bridge pixmap in the tableview (wip) 2021-12-11 21:25:40 +01:00
joshua
291e163ee2 REmove unused method : levelCellCount 2021-12-02 18:55:56 +01:00
joshua
6e68e6047a Remove isXrefCell method...
and use instead columnTypeForIndex method
2021-12-02 18:54:45 +01:00
joshua
ce8bd7fae3 Add terminal bridge feature 2021-12-01 21:27:04 +01:00
4653 changed files with 165814 additions and 88184 deletions

View File

@@ -12,10 +12,9 @@ jobs:
- uses: actions/checkout@v2
- uses: snapcore/action-build@v1
id: build
with:
snapcraft-args: --enable-experimental-extensions
- uses: snapcore/action-publish@v1
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }}
with:
store_login: ${{ secrets.STORE_LOGIN }}
snap: ${{ steps.build.outputs.snap }}
release: edge

View File

@@ -147,14 +147,6 @@ install(DIRECTORY examples DESTINATION share/qelectrotech)
install(DIRECTORY titleblocks DESTINATION share/qelectrotech)
install(FILES LICENSE ELEMENTS.LICENSE CREDIT README ChangeLog DESTINATION share/doc/qelectrotech)
install(FILES misc/qelectrotech.desktop DESTINATION share/applications)
install(FILES misc/x-qet-element.xml
misc/x-qet-project.xml
misc/x-qet-titleblock.xml
DESTINATION share/mime/application)
install(FILES misc/x-qet-element.desktop
misc/x-qet-project.desktop
misc/x-qet-titleblock.desktop
DESTINATION share/mimelnk/application)
install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages)
install(FILES misc/qelectrotech.appdata.xml DESTINATION ${QET_APPDATA_PATH})
install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH})

View File

@@ -3,6 +3,31 @@ Changelog
If by accident I have forgotten to credit someone in the CHANGELOG, email me and I will fix it.
__3.3.4__
---------
* Fix compilation under Qt 6.2+ and stricter Qt compile settings. - _Christoph Cullmann_
__3.3.3__
---------
* Support for Qt 6.3+ - Fixed deprecated `QCryptographicHash::addData()` that will only support `QByteArrayView` going further. - _Moody Liu_
__3.3.2__
---------
* Fixed crash caused by sending a `writeAck` on a removed connection. - _Nicolas Werner_
__3.3.1__
---------
* Added support for _AppImage_ dynamic executable paths. - _Michael Klein_
__3.3.0__
---------
* Fixed message fragmentation issue causing crashes and incorrectly / inconsistently received messages. - _Nils Jeisecke_
__3.2.0__
---------

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.7.0)
cmake_minimum_required(VERSION 3.12.0)
project(SingleApplication LANGUAGES CXX)
@@ -38,3 +38,13 @@ endif()
target_compile_definitions(${PROJECT_NAME} PUBLIC QAPPLICATION_CLASS=${QAPPLICATION_CLASS})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_definitions(${PROJECT_NAME} PRIVATE
QT_NO_CAST_TO_ASCII
QT_NO_CAST_FROM_ASCII
QT_NO_URL_CAST_FROM_STRING
QT_NO_CAST_FROM_BYTEARRAY
QT_USE_QSTRINGBUILDER
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
QT_NO_KEYWORDS
QT_NO_FOREACH
)

View File

@@ -35,7 +35,7 @@ To include the library files I would recommend that you add it as a git
submodule to your project. Here is how:
```bash
git submodule add git@github.com:itay-grudev/SingleApplication.git singleapplication
git submodule add https://github.com/itay-grudev/SingleApplication.git singleapplication
```
**Qmake:**
@@ -182,7 +182,8 @@ 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
in milliseconds for blocking functions. Returns `true` if the message has been sent
successfully. If the message can't be sent or the function timeouts - returns `false`.
---

View File

@@ -2,7 +2,6 @@
int main(int argc, char *argv[])
{
// Allow secondary instances
SingleApplication app( argc, argv );
qWarning() << "Started a new instance";

View File

@@ -248,10 +248,7 @@ bool SingleApplication::sendMessage( const QByteArray &message, int timeout )
if( ! d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect ) )
return false;
d->socket->write( message );
bool dataWritten = d->socket->waitForBytesWritten( timeout );
d->socket->flush();
return dataWritten;
return d->writeConfirmedMessage( timeout, message );
}
/**

View File

@@ -131,21 +131,34 @@ QString SingleApplicationPrivate::getUsername()
void SingleApplicationPrivate::genBlockServerName()
{
QCryptographicHash appData( QCryptographicHash::Sha256 );
#if QT_VERSION < QT_VERSION_CHECK(6, 3, 0)
appData.addData( "SingleApplication", 17 );
#else
appData.addData( QByteArrayView{"SingleApplication"} );
#endif
appData.addData( SingleApplication::app_t::applicationName().toUtf8() );
appData.addData( SingleApplication::app_t::organizationName().toUtf8() );
appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() );
if ( ! appDataList.isEmpty() )
appData.addData( appDataList.join( "" ).toUtf8() );
appData.addData( appDataList.join(QString()).toUtf8() );
if( ! (options & SingleApplication::Mode::ExcludeAppVersion) ){
appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() );
}
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ){
#ifdef Q_OS_WIN
#if defined(Q_OS_WIN)
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
#elif defined(Q_OS_LINUX)
// If the application is running as an AppImage then the APPIMAGE env var should be used
// instead of applicationPath() as each instance is launched with its own executable path
const QByteArray appImagePath = qgetenv( "APPIMAGE" );
if( appImagePath.isEmpty() ){ // Not running as AppImage: use path to executable file
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
} else { // Running as AppImage: Use absolute path to AppImage file
appData.addData( appImagePath );
};
#else
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
#endif
@@ -158,7 +171,7 @@ void SingleApplicationPrivate::genBlockServerName()
// Replace the backslash in RFC 2045 Base64 [a-zA-Z0-9+/=] to comply with
// server naming requirements.
blockServerName = appData.result().toBase64().replace("/", "_");
blockServerName = QString::fromUtf8(appData.result().toBase64().replace("/", "_"));
}
void SingleApplicationPrivate::initializeMemoryBlock() const
@@ -257,26 +270,52 @@ bool SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType conne
writeStream << static_cast<quint8>(connectionType);
writeStream << instanceNumber;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
quint16 checksum = qChecksum(QByteArray(initMsg, static_cast<quint32>(initMsg.length())));
quint16 checksum = qChecksum(QByteArray(initMsg.constData(), static_cast<quint32>(initMsg.length())));
#else
quint16 checksum = qChecksum(initMsg.constData(), static_cast<quint32>(initMsg.length()));
#endif
writeStream << checksum;
// The header indicates the message length that follows
return writeConfirmedMessage( static_cast<int>(msecs - time.elapsed()), initMsg );
}
void SingleApplicationPrivate::writeAck( QLocalSocket *sock ) {
sock->putChar('\n');
}
bool SingleApplicationPrivate::writeConfirmedMessage (int msecs, const QByteArray &msg)
{
QElapsedTimer time;
time.start();
// Frame 1: 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() );
headerStream << static_cast <quint64>( msg.length() );
socket->write( header );
socket->write( initMsg );
bool result = socket->waitForBytesWritten( static_cast<int>(msecs - time.elapsed()) );
if( ! writeConfirmedFrame( static_cast<int>(msecs - time.elapsed()), header ))
return false;
// Frame 2: The message
return writeConfirmedFrame( static_cast<int>(msecs - time.elapsed()), msg );
}
bool SingleApplicationPrivate::writeConfirmedFrame( int msecs, const QByteArray &msg )
{
socket->write( msg );
socket->flush();
return result;
bool result = socket->waitForReadyRead( msecs ); // await ack byte
if (result) {
socket->read( 1 );
return true;
}
return false;
}
quint16 SingleApplicationPrivate::blockChecksum() const
@@ -321,33 +360,36 @@ void SingleApplicationPrivate::slotConnectionEstablished()
QLocalSocket *nextConnSocket = server->nextPendingConnection();
connectionMap.insert(nextConnSocket, ConnectionInfo());
QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose,
QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose, this,
[nextConnSocket, this](){
auto &info = connectionMap[nextConnSocket];
Q_EMIT this->slotClientConnectionClosed( nextConnSocket, info.instanceId );
this->slotClientConnectionClosed( nextConnSocket, info.instanceId );
}
);
QObject::connect(nextConnSocket, &QLocalSocket::disconnected, nextConnSocket, &QLocalSocket::deleteLater);
QObject::connect(nextConnSocket, &QLocalSocket::destroyed,
QObject::connect(nextConnSocket, &QLocalSocket::destroyed, this,
[nextConnSocket, this](){
connectionMap.remove(nextConnSocket);
}
);
QObject::connect(nextConnSocket, &QLocalSocket::readyRead,
QObject::connect(nextConnSocket, &QLocalSocket::readyRead, this,
[nextConnSocket, this](){
auto &info = connectionMap[nextConnSocket];
switch(info.stage){
case StageHeader:
readInitMessageHeader(nextConnSocket);
case StageInitHeader:
readMessageHeader( nextConnSocket, StageInitBody );
break;
case StageBody:
case StageInitBody:
readInitMessageBody(nextConnSocket);
break;
case StageConnected:
Q_EMIT this->slotDataAvailable( nextConnSocket, info.instanceId );
case StageConnectedHeader:
readMessageHeader( nextConnSocket, StageConnectedBody );
break;
case StageConnectedBody:
this->slotDataAvailable( nextConnSocket, info.instanceId );
break;
default:
break;
@@ -356,7 +398,7 @@ void SingleApplicationPrivate::slotConnectionEstablished()
);
}
void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock )
void SingleApplicationPrivate::readMessageHeader( QLocalSocket *sock, SingleApplicationPrivate::ConnectionStage nextStage )
{
if (!connectionMap.contains( sock )){
return;
@@ -376,29 +418,35 @@ void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock )
quint64 msgLen = 0;
headerStream >> msgLen;
ConnectionInfo &info = connectionMap[sock];
info.stage = StageBody;
info.stage = nextStage;
info.msgLen = msgLen;
if ( sock->bytesAvailable() >= (qint64) msgLen ){
readInitMessageBody( sock );
writeAck( sock );
}
bool SingleApplicationPrivate::isFrameComplete( QLocalSocket *sock )
{
if (!connectionMap.contains( sock )){
return false;
}
ConnectionInfo &info = connectionMap[sock];
if( sock->bytesAvailable() < ( qint64 )info.msgLen ){
return false;
}
return true;
}
void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
{
Q_Q(SingleApplication);
if (!connectionMap.contains( sock )){
if( !isFrameComplete( sock ) )
return;
}
ConnectionInfo &info = connectionMap[sock];
if( sock->bytesAvailable() < ( qint64 )info.msgLen ){
return;
}
// Read the message body
QByteArray msgBytes = sock->read(info.msgLen);
QByteArray msgBytes = sock->readAll();
QDataStream readStream(msgBytes);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
@@ -424,7 +472,7 @@ void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
readStream >> msgChecksum;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
const quint16 actualChecksum = qChecksum(QByteArray(msgBytes, static_cast<quint32>(msgBytes.length() - sizeof(quint16))));
const quint16 actualChecksum = qChecksum(QByteArray(msgBytes.constData(), static_cast<quint32>(msgBytes.length() - sizeof(quint16))));
#else
const quint16 actualChecksum = qChecksum(msgBytes.constData(), static_cast<quint32>(msgBytes.length() - sizeof(quint16)));
#endif
@@ -438,8 +486,9 @@ void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
return;
}
ConnectionInfo &info = connectionMap[sock];
info.instanceId = instanceId;
info.stage = StageConnected;
info.stage = StageConnectedHeader;
if( connectionType == NewInstance ||
( connectionType == SecondaryInstance &&
@@ -448,21 +497,30 @@ void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
Q_EMIT q->instanceStarted();
}
if (sock->bytesAvailable() > 0){
Q_EMIT this->slotDataAvailable( sock, instanceId );
}
writeAck( sock );
}
void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quint32 instanceId )
{
Q_Q(SingleApplication);
Q_EMIT q->receivedMessage( instanceId, dataSocket->readAll() );
if ( !isFrameComplete( dataSocket ) )
return;
const QByteArray message = dataSocket->readAll();
writeAck( dataSocket );
ConnectionInfo &info = connectionMap[dataSocket];
info.stage = StageConnectedHeader;
Q_EMIT q->receivedMessage( instanceId, message);
}
void SingleApplicationPrivate::slotClientConnectionClosed( QLocalSocket *closedSocket, quint32 instanceId )
{
if( closedSocket->bytesAvailable() > 0 )
Q_EMIT slotDataAvailable( closedSocket, instanceId );
slotDataAvailable( closedSocket, instanceId );
}
void SingleApplicationPrivate::randomSleep()
@@ -471,7 +529,7 @@ void SingleApplicationPrivate::randomSleep()
QThread::msleep( QRandomGenerator::global()->bounded( 8u, 18u ));
#else
qsrand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits<uint>::max() );
QThread::msleep( 8 + static_cast <unsigned long>( static_cast <float>( qrand() ) / RAND_MAX * 10 ));
QThread::msleep( qrand() % 11 + 8);
#endif
}

View File

@@ -61,9 +61,10 @@ public:
Reconnect = 3
};
enum ConnectionStage : quint8 {
StageHeader = 0,
StageBody = 1,
StageConnected = 2,
StageInitHeader = 0,
StageInitBody = 1,
StageConnectedHeader = 2,
StageConnectedBody = 3,
};
Q_DECLARE_PUBLIC(SingleApplication)
@@ -79,8 +80,12 @@ public:
quint16 blockChecksum() const;
qint64 primaryPid() const;
QString primaryUser() const;
void readInitMessageHeader(QLocalSocket *socket);
bool isFrameComplete(QLocalSocket *sock);
void readMessageHeader(QLocalSocket *socket, ConnectionStage nextStage);
void readInitMessageBody(QLocalSocket *socket);
void writeAck(QLocalSocket *sock);
bool writeConfirmedFrame(int msecs, const QByteArray &msg);
bool writeConfirmedMessage(int msecs, const QByteArray &msg);
static void randomSleep();
void addAppData(const QString &data);
QStringList appData() const;

View File

@@ -13,6 +13,8 @@
"--socket=fallback-x11",
"--device=dri",
"--share=ipc",
"--share=network",
"--socket=cups",
"--filesystem=host"
],
"modules": [

View File

@@ -1,17 +1,17 @@
From 2a390b5188fe070295090b1bd37273d12963b371 Mon Sep 17 00:00:00 2001
From 14f0685ddcf3a7d64bb85a3e9a9ac97c369bb508 Mon Sep 17 00:00:00 2001
From: Laurent Trinques <scorpio@qelectrotech.org>
Date: Sat, 26 Sep 2020 22:52:52 +0200
Subject: [PATCH] build: Fix the installation paths
---
qelectrotech.pro | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
qelectrotech.pro | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/qelectrotech.pro b/qelectrotech.pro
index 2901a30d5..1019a9870 100644
index 7baddbb08..5dcda04b6 100644
--- a/qelectrotech.pro
+++ b/qelectrotech.pro
@@ -5,20 +5,20 @@
@@ -5,18 +5,18 @@
# Chemins utilises pour la compilation et l'installation de QET
unix {
# Chemins UNIX
@@ -25,12 +25,8 @@ index 2901a30d5..1019a9870 100644
QET_LANG_PATH = 'share/qelectrotech/lang/'
QET_EXAMPLES_PATH = 'share/qelectrotech/examples/'
- QET_LICENSE_PATH = 'doc/qelectrotech/'
- QET_MIME_XML_PATH = '../share/mime/application/'
- QET_MIME_DESKTOP_PATH = '../share/mimelnk/application/'
- QET_MIME_PACKAGE_PATH = '../share/mime/packages/'
+ QET_LICENSE_PATH = 'share/doc/qelectrotech/'
+ QET_MIME_XML_PATH = 'share/mime/application/'
+ QET_MIME_DESKTOP_PATH = 'share/mimelnk/application/'
+ QET_MIME_PACKAGE_PATH = 'share/mime/packages/'
QET_DESKTOP_PATH = 'share/applications/'
QET_ICONS_PATH = 'share/icons/hicolor/'
@@ -40,5 +36,5 @@ index 2901a30d5..1019a9870 100644
}
win32 {
--
2.28.0
2.35.1

View File

@@ -1,17 +1,5 @@
#!/bin/sh
# check if _only_ the correct framework snap is connected
framework_name=$(grep "name:" $SNAP/kf5/meta/snap.yaml | cut -d" " -f2)
if [ "$framework_name" != "kde-frameworks-5-qt-5-15-3-core20" ]; then
downloads_dir=$(xdg-user-dir DOWNLOAD)
test ! -d "$downloads_dir" && mkdir -p "$downloads_dir"
instructions_file="snap.qelectrotech.update-instructions.html"
target="$downloads_dir/$instructions_file"
cp "$SNAP/update-instructions/$instructions_file" "$target"
xdg-open "$target"
exit 1
fi
# migrate .qet directory from SNAP_USER_DATA to SNAP_USER_COMMON
from="$SNAP_USER_DATA/.qet"
to="$SNAP_USER_COMMON/.qet"

File diff suppressed because one or more lines are too long

View File

@@ -56,12 +56,6 @@ parts:
organize:
'*': bin/
update-instructions:
plugin: dump
source: build-aux/snap/local/update-instructions
organize:
'*': update-instructions/
qet-tb-generator:
plugin: python
source: https://github.com/raulroda/qet_tb_generator-plugin.git
@@ -82,7 +76,7 @@ parts:
- rsync
override-build: |
rsync -a --ignore-existing /snap/kde-frameworks-5-qt-5-15-3-core20-sdk/current/ /
dxf-to-qet:
after: [kde-sdk-setup]
plugin: nil
@@ -101,16 +95,14 @@ parts:
build-packages:
- git
- libsqlite3-dev
override-pull: |
snapcraftctl pull
override-build: |
displayed_version=$(grep "displayedVersion" sources/qet.h | tr -d "\";" | cut -d" " -f5)
snap_version="${displayed_version}~$(git rev-parse --short=8 HEAD)"
snap_version="${displayed_version}-g$(git rev-parse --short=8 HEAD)"
modified_displayed_version="${snap_version}.snap"
sed -i -E "s|const QString displayedVersion =.*|const QString displayedVersion =\"$modified_displayed_version\";|" sources/qet.h
snapcraftctl set-version "$snap_version"
override-build: |
qmake "$SNAPCRAFT_PART_SRC/qelectrotech.pro"
make -j$(nproc)
make -j${SNAPCRAFT_PARALLEL_BUILD_COUNT}
make install INSTALL_ROOT="$SNAPCRAFT_PART_INSTALL"
override-stage: |
snapcraftctl stage

View File

@@ -47,8 +47,6 @@ endif()
endif()
message("QET_LICENSE_PATH " ${QET_LICENSE_PATH})
message("QET_MIME_XML_PATH " ${QET_MIME_XML_PATH})
message("QET_MIME_DESKTOP_PATH " ${QET_MIME_DESKTOP_PATH})
message("QET_MIME_PACKAGE_PATH " ${QET_MIME_PACKAGE_PATH})
message("QET_DESKTOP_PATH " ${QET_DESKTOP_PATH})
message("QET_ICONS_PATH " ${QET_ICONS_PATH})

View File

@@ -28,8 +28,6 @@ if(UNIX AND NOT APPLE)
set(QET_LANG_PATH "share/qelectrotech/lang/")
set(QET_EXAMPLES_PATH "share/qelectrotech/examples/")
set(QET_LICENSE_PATH "doc/qelectrotech/")
set(QET_MIME_XML_PATH "../share/mime/application/")
set(QET_MIME_DESKTOP_PATH "../share/mimelnk/application/")
set(QET_MIME_PACKAGE_PATH "../share/mime/packages/")
set(QET_DESKTOP_PATH "share/applications/")
set(QET_ICONS_PATH "share/icons/hicolor/")
@@ -47,8 +45,6 @@ if(APPLE)
set(QET_LANG_PATH "../Resources/lang/")
set(QET_EXAMPLES_PATH "share/qelectrotech/examples/")
set(QET_LICENSE_PATH "doc/qelectrotech/")
set(QET_MIME_XML_PATH "../share/mime/application/")
set(QET_MIME_DESKTOP_PATH "../share/mimelnk/application/")
set(QET_DESKTOP_PATH "share/applications/")
set(QET_ICONS_PATH "share/icons/hicolor/")
set(QET_MAN_PATH "man/")

View File

@@ -0,0 +1,223 @@
<definition type="element" width="550" hotspot_y="65" height="70" link_type="simple" version="0.90" hotspot_x="265">
<uuid uuid="{c99de07b-0296-4e75-8a90-3b5c533510e8}"/>
<names>
<name lang="en">24 pin connector female+male</name>
<name lang="hu">24 tűs csatlakozó anya+apa</name>
</names>
<elementInformations>
<elementInformation show="1" name="manufacturer">Weidmüller</elementInformation>
<elementInformation show="1" name="supplier"></elementInformation>
<elementInformation show="1" name="manufacturer_reference">HDC HE 24 MS 25-48</elementInformation>
<elementInformation show="1" name="quantity"></elementInformation>
<elementInformation show="1" name="description"></elementInformation>
<elementInformation show="1" name="label"></elementInformation>
<elementInformation show="1" name="comment"></elementInformation>
<elementInformation show="1" name="plant"></elementInformation>
<elementInformation show="1" name="designation"></elementInformation>
<elementInformation show="1" name="machine_manufacturer_reference"></elementInformation>
<elementInformation show="1" name="unity"></elementInformation>
</elementInformations>
<informations></informations>
<description>
<dynamic_text frame="false" z="1" text_from="ElementInfo" rotation="0" keep_visual_rotation="false" uuid="{c28b53eb-1e17-4e90-b9af-ff86d19d1a56}" Valignment="AlignTop" Halignment="AlignLeft" y="-90" text_width="-1" x="-270" font="Sans Serif,8,-1,5,50,0,0,0,0,0">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-240" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-240" length1="1.5"/>
<text rotation="0" color="#000000" text="12" y="-40" x="1" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="20" y="-40" x="161" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="4" y="-40" x="-159" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="8" y="-40" x="-79" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="3" y="-40" x="-179" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="2" y="-40" x="-199" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-20" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-20" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-160" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-160" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-200" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-200" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="0" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="0" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="0" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="0" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-80" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-80" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-240" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-240" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="260" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="260" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="160" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="160" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-120" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-120" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-40" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-40" length1="1.5"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-3"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-40" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-40" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-161"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-201"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="260" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="260" length1="1.5"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-243"/>
<text rotation="0" color="#000000" text="18" y="-40" x="121" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="240" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="240" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-241"/>
<text rotation="0" color="#000000" text="10" y="-40" x="-39" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="7" y="-40" x="-99" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="257"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-41"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-60" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-60" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-180" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-180" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="240" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="240" length1="1.5"/>
<text rotation="0" color="#000000" text="19" y="-40" x="141" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="6" y="-40" x="-119" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-121"/>
<text rotation="0" color="#000000" text="11" y="-40" x="-19" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="5" y="-40" x="-139" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-1"/>
<text rotation="0" color="#000000" text="24" y="-40" x="241" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-81"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="259"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="40" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="40" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-181"/>
<text rotation="0" color="#000000" text="16" y="-40" x="81" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-80" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-80" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="220" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="220" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-100" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-100" length1="1.5"/>
<line y1="-37" y2="-32" length2="1.5" antialias="false" x2="270" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="270" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-20" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-20" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-100" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-100" length1="1.5"/>
<text rotation="0" color="#000000" text="15" y="-40" x="61" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="23" y="-40" x="221" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-21"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-23"/>
<text rotation="0" color="#000000" text="22" y="-40" x="201" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="14" y="-40" x="41" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<line y1="-32" y2="-32" length2="1.5" antialias="false" x2="274" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="266" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="80" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="80" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-101"/>
<line y1="-30" y2="-30" length2="1.5" antialias="false" x2="272" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="268" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="79"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-140" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-140" length1="1.5"/>
<text rotation="0" color="#000000" text="21" y="-40" x="181" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-60" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-60" length1="1.5"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-43"/>
<text rotation="0" color="#000000" text="13" y="-40" x="21" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<text rotation="0" color="#000000" text="9" y="-40" x="-59" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-61"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-63"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-141"/>
<line y1="-28" y2="-28" length2="1.5" antialias="false" x2="271" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="269" length1="1.5"/>
<text rotation="0" color="#000000" text="17" y="-40" x="101" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="237"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-83"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="120" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="120" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="200" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="200" length1="1.5"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-103"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="200" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="200" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="39"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="60" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="60" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="180" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="180" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="119"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="-220" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-220" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-120" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-120" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="199"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-140" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-140" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="160" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="160" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-160" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-160" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="59"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-180" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-180" length1="1.5"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="159"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="239"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-200" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-200" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="140" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="140" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="-220" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-220" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="220" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="220" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="140" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="140" length1="1.5"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="217"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="139"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="219"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="100" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="100" length1="1.5"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="180" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="180" length1="1.5"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-123"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="197"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-143"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-163"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="99"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="179"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-183"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="177"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-203"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="-223"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="157"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="-221"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="137"/>
<line y1="-25" y2="-14" length2="1.5" antialias="false" x2="20" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="20" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="120" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="120" length1="1.5"/>
<text rotation="0" color="#000000" text="1" y="-40" x="-219" font="Sans Serif,7,-1,5,50,0,0,0,0,0"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="100" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="100" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="80" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="80" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="60" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="60" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="40" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="40" length1="1.5"/>
<line y1="-36" y2="-45" length2="1.5" antialias="false" x2="20" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="20" length1="1.5"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="117"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="97"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="77"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="57"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="37"/>
<arc antialias="true" width="6" height="6" start="-180" angle="-180" style="line-style:normal;line-weight:normal;filling:none;color:black" y="-35" x="17"/>
<rect rx="0" antialias="false" width="2" height="7" style="line-style:normal;line-weight:normal;filling:black;color:black" y="-32" ry="0" x="19"/>
<line y1="-37" y2="-32" length2="1.5" antialias="false" x2="-250" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-250" length1="1.5"/>
<line y1="-32" y2="-32" length2="1.5" antialias="false" x2="-246" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-254" length1="1.5"/>
<line y1="-30" y2="-30" length2="1.5" antialias="false" x2="-248" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-252" length1="1.5"/>
<line y1="-28" y2="-28" length2="1.5" antialias="false" x2="-249" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-251" length1="1.5"/>
<line y1="-60" y2="-60" length2="1.5" antialias="false" x2="270" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-250" length1="1.5"/>
<line y1="-60" y2="-50" length2="1.5" antialias="false" x2="280" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="270" length1="1.5"/>
<line y1="-50" y2="-10" length2="1.5" antialias="false" x2="280" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="280" length1="1.5"/>
<line y1="-10" y2="0" length2="1.5" antialias="false" x2="270" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="280" length1="1.5"/>
<line y1="0" y2="0" length2="1.5" antialias="false" x2="-250" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="270" length1="1.5"/>
<line y1="0" y2="-10" length2="1.5" antialias="false" x2="-260" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-250" length1="1.5"/>
<line y1="-10" y2="-50" length2="1.5" antialias="false" x2="-260" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-260" length1="1.5"/>
<line y1="-50" y2="-60" length2="1.5" antialias="false" x2="-250" end2="none" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-260" length1="1.5"/>
<terminal name="" type="Generic" uuid="{2fd7e019-01c1-4cf6-9c8c-e8adca3ce496}" orientation="s" y="-14" x="240"/>
<terminal name="" type="Generic" uuid="{6a39b490-3888-4356-91cc-0a6574a30788}" orientation="n" y="-45" x="-140"/>
<terminal name="" type="Generic" uuid="{30fe38ae-876f-478a-83d5-22342403d1bb}" orientation="n" y="-45" x="120"/>
<terminal name="" type="Generic" uuid="{6d000d02-1a83-4d64-816c-40b834beef4f}" orientation="s" y="-14" x="120"/>
<terminal name="" type="Generic" uuid="{7e0e49fe-4d0a-4560-9f78-a0e160283578}" orientation="s" y="-14" x="-200"/>
<terminal name="" type="Generic" uuid="{26db0fbd-62c0-4de4-97ac-5b0bf685cef4}" orientation="s" y="-14" x="-180"/>
<terminal name="" type="Generic" uuid="{9e7a5014-3d0f-4f58-880a-9517e77f17ee}" orientation="s" y="-14" x="-160"/>
<terminal name="" type="Generic" uuid="{98fdfeec-a022-4d30-bfb1-915a2bb00351}" orientation="s" y="-14" x="-80"/>
<terminal name="" type="Generic" uuid="{ed4b19f3-15b5-432c-a9c8-bee918a2429b}" orientation="s" y="-14" x="-60"/>
<terminal name="" type="Generic" uuid="{f3c3c49c-4170-46ff-a474-fd1fea020156}" orientation="n" y="-45" x="-100"/>
<terminal name="" type="Generic" uuid="{da25c11c-260c-4fb8-9a9b-ae8d11c96e6d}" orientation="n" y="-45" x="-240"/>
<terminal name="" type="Generic" uuid="{bcfc8484-a82a-4585-a428-a9ffc2a676d7}" orientation="n" y="-45" x="-160"/>
<terminal name="" type="Generic" uuid="{ab25a69a-5c8c-469e-9da7-b79e3ebeb4ba}" orientation="n" y="-45" x="-220"/>
<terminal name="" type="Generic" uuid="{ef7db529-e31c-4f39-b831-8c578fb43462}" orientation="s" y="-14" x="20"/>
<terminal name="" type="Generic" uuid="{a21c8338-b99c-44a6-9b42-e71b936344ea}" orientation="s" y="-14" x="200"/>
<terminal name="" type="Generic" uuid="{aacb7245-00e4-4588-8960-4c3aaea6085b}" orientation="n" y="-45" x="60"/>
<terminal name="" type="Generic" uuid="{b6143a32-a9c1-40aa-8e94-c64e0d217a8f}" orientation="s" y="-14" x="-40"/>
<terminal name="" type="Generic" uuid="{7ee9a07f-0bf2-42f4-bf51-cabae0875328}" orientation="n" y="-45" x="100"/>
<terminal name="" type="Generic" uuid="{b03f6f6e-658a-49fa-84bd-03243a44ff18}" orientation="s" y="-14" x="60"/>
<terminal name="" type="Generic" uuid="{a88754c9-bf2c-4e3d-aa45-95113c37c426}" orientation="s" y="-14" x="-140"/>
<terminal name="" type="Generic" uuid="{efb0a56a-20ec-49ab-a470-dec34ed12027}" orientation="n" y="-45" x="260"/>
<terminal name="" type="Generic" uuid="{8ad57bf7-4125-4268-9817-e0d84a3e80c7}" orientation="s" y="-14" x="100"/>
<terminal name="" type="Generic" uuid="{66764cb9-b07b-4d38-bea0-4caefd955b61}" orientation="n" y="-45" x="-120"/>
<terminal name="" type="Generic" uuid="{bfaa681e-3fc9-4806-8b32-36af6ae51932}" orientation="s" y="-14" x="180"/>
<terminal name="" type="Generic" uuid="{4607cb5a-db47-40aa-9cfe-e22de405bf88}" orientation="s" y="-14" x="-20"/>
<terminal name="" type="Generic" uuid="{951d1e08-5f4d-4034-aecb-b6b8033d0dcf}" orientation="n" y="-45" x="-40"/>
<terminal name="" type="Generic" uuid="{f28988c9-363c-4486-a22f-a5365a15da8a}" orientation="n" y="-45" x="-180"/>
<terminal name="" type="Generic" uuid="{31805e67-1014-4ed3-83d0-6e15db99bbb7}" orientation="s" y="-14" x="-220"/>
<terminal name="" type="Generic" uuid="{bdb67495-8137-4c88-9986-671070320ce6}" orientation="n" y="-45" x="0"/>
<terminal name="" type="Generic" uuid="{434fcf9a-7e51-481d-a6c7-9269d6d99b29}" orientation="s" y="-14" x="-100"/>
<terminal name="" type="Generic" uuid="{7fede45b-d5cf-468a-9cca-52aff95a1c78}" orientation="s" y="-14" x="80"/>
<terminal name="" type="Generic" uuid="{c7897fc8-739e-4c72-b524-a8d7ba6f2b6b}" orientation="n" y="-45" x="-60"/>
<terminal name="" type="Generic" uuid="{bef0d722-d69f-4489-b8f1-2afb03de1784}" orientation="s" y="-14" x="220"/>
<terminal name="" type="Generic" uuid="{9ae10c41-be73-4e99-9423-568ff93475fd}" orientation="n" y="-45" x="-200"/>
<terminal name="" type="Generic" uuid="{8a60a879-ccf3-4c21-a0ab-3a2ae2d01dbe}" orientation="n" y="-45" x="200"/>
<terminal name="" type="Generic" uuid="{24426091-f2ec-4154-aba3-6bdaec485c4f}" orientation="n" y="-45" x="20"/>
<terminal name="" type="Generic" uuid="{ba1e41da-e37c-4f54-8237-618421d1e344}" orientation="s" y="-14" x="0"/>
<terminal name="" type="Generic" uuid="{b28694f6-eac6-4eb9-9c3c-ed0cc49328e6}" orientation="n" y="-45" x="40"/>
<terminal name="" type="Generic" uuid="{2481d2c4-d913-4d55-a48a-20eef116dc46}" orientation="s" y="-14" x="-120"/>
<terminal name="" type="Generic" uuid="{1e6a6de8-1126-4ec0-a8dc-833a14913da6}" orientation="n" y="-45" x="-20"/>
<terminal name="" type="Generic" uuid="{24d3c3fe-8549-4e16-b8b3-dc2fa1675be6}" orientation="n" y="-45" x="80"/>
<terminal name="" type="Generic" uuid="{5dbff03f-b71c-4f41-81e4-5093fafce82f}" orientation="s" y="-14" x="160"/>
<terminal name="" type="Generic" uuid="{da4a5bbe-5aa7-4493-99b6-e87b73d6b858}" orientation="n" y="-45" x="-80"/>
<terminal name="" type="Generic" uuid="{071a2b7e-4a5a-465a-b040-0e3579f36665}" orientation="s" y="-14" x="260"/>
<terminal name="" type="Generic" uuid="{fe47517f-462b-4a9a-a2c3-ae756dbfefe8}" orientation="n" y="-45" x="140"/>
<terminal name="" type="Generic" uuid="{1f24bdb1-cc99-4d89-8d89-8e104aaf498e}" orientation="n" y="-45" x="220"/>
<terminal name="" type="Generic" uuid="{2738bb7b-c6be-4aa4-81c9-31e4e457cf31}" orientation="s" y="-14" x="-240"/>
<terminal name="" type="Generic" uuid="{4d909e53-50b1-4b45-b8c3-262038f6c247}" orientation="n" y="-45" x="160"/>
<terminal name="" type="Generic" uuid="{0e87f452-86a3-45ef-a66b-8ed92e08899d}" orientation="n" y="-45" x="180"/>
<terminal name="" type="Generic" uuid="{1c6e1ab1-d98f-4322-bc2b-def58fefbea7}" orientation="s" y="-14" x="40"/>
<terminal name="" type="Generic" uuid="{1f0b7ff5-9f52-4517-b749-018b5bfa59dd}" orientation="n" y="-45" x="240"/>
<terminal name="" type="Generic" uuid="{8adac905-77b9-471f-8822-4ac63d3f6cf6}" orientation="s" y="-14" x="140"/>
</description>
</definition>

Some files were not shown because too many files have changed in this diff Show More