Compare commits

..

526 Commits

Author SHA1 Message Date
Laurent Trinques
2f004c271f Update displayed version to release candidate 2020-12-01 15:45:48 +01:00
gleissonjoaquim3
bafe7a39db Fixed spelling error on Translation PT_BR 2020-12-01 07:44:47 +01:00
gleissonjoaquim3
0b1e012a32 Updated translation PT_BR 2020-12-01 07:44:47 +01:00
Claveau Joshua
e0a03e7353 Remove duplicated elements 2020-11-29 12:49:04 +01:00
Claveau Joshua
68215d099c Remove duplicated elements 2020-11-29 12:37:56 +01:00
Claveau Joshua
3b472591b6 Remove duplicated elements 2020-11-29 11:59:20 +01:00
Claveau Joshua
d3cb7ef08c Remove duplicated elements 2020-11-29 11:51:16 +01:00
Claveau Joshua
049848737b Remove duplicated elements 2020-11-29 11:44:02 +01:00
Claveau Joshua
d3348e25be Remove duplicated elements 2020-11-29 11:06:06 +01:00
Claveau Joshua
764cdfea53 Remove duplicated elements 2020-11-29 11:00:04 +01:00
Claveau Joshua
b149e3e6ca Remove duplicated element 2020-11-29 10:55:36 +01:00
Claveau Joshua
7313cdfa9e Remove duplicated elements (hager)
All elements are duplicated and standardised
2020-11-29 10:47:58 +01:00
Claveau Joshua
fd92c1ce92 Remove duplicated elements. 2020-11-28 17:20:33 +01:00
Ole Carlsen
0ac96eecfc Danish update color scheme 2020-11-22 14:29:20 +01:00
Lars Biskupek
d02b88488a German translation updated
Two new strings in qet_de.ts translated.
qet_de.qm generated.
2020-11-22 13:39:49 +01:00
Ole Carlsen
87956d8d42 Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2020-11-22 12:22:52 +01:00
Ole Carlsen
ab1027eb5d Danish translation 2020-11-22 12:20:58 +01:00
Claveau Joshua
aa858ba32d project database : minor 2020-11-22 12:16:17 +01:00
Claveau Joshua
a303a38d0d ProjectDatabase improvement
Use transaction / commit when several elements was changed instead of
update one by one each element.
2020-11-22 11:31:43 +01:00
artgg7300
51bae7cdf1 translated hungarian files 2020-11-22 07:58:18 +01:00
dlee99
05dad2c8d8 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2020-11-21 20:08:57 +01:00
Laurent Trinques
b457b98b22 Update *TS file 2020-11-21 11:35:08 +01:00
Claveau Joshua
8fec6dabef Dynamic element text item new feature
Add feature keep visual rotation.
When parent is rotated, the text rotation is changed to keep the same
visual rotation.
2020-11-20 20:52:19 +01:00
plc-user
f7e12e5e87 modified / added german translations and added some Elements 2020-11-20 14:56:00 +01:00
plc-user
689799ea24 modified / added german translations and added some Elements 2020-11-20 14:56:00 +01:00
Claveau Joshua
380de0b4c3 Search and replace widget : minor improvement
Fix 1 : when widget is reloaded the categories is not checked, but the
child items is. Now  all category is checked when reloaded.
Fix 2 : the folio number displayed in the widget is wrong (start at 0
instead of 1)
2020-11-17 22:25:01 +01:00
plc-user
3633123d17 changed/added some translations in qet_directory - files and elements 2020-11-17 21:43:10 +01:00
Lars Biskupek
66d45cc835 German language files updated
Translation of new items added
2020-11-17 21:41:31 +01:00
dlee99
56710ef25c modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2020-11-17 21:19:15 +01:00
aitolos
77479dc949 Greek lang update 2020-11-17 17:43:34 +02:00
artgg7300
529c6a721a updated hungarian files 2020-11-17 05:32:27 +01:00
Laurent Trinques
fd3d2dfb90 Update *TS files 2020-11-16 21:59:28 +01:00
Lars Biskupek
d1aba1118b Update of language files DE, EN, IT
Update of german language file and some minor changes on the english language file.
Update of italian language to solve issue #0000193 on Bugtracker, issued by rpaolo538.
2020-11-16 10:10:27 +01:00
Simon De Backer
c4fe1fe3da Merge branch 'master' of ssh://debacker@git.tuxfamily.org/gitroot/qet/qet.git 2020-11-15 20:47:09 +01:00
Simon De Backer
c167015b22 Add Todo for qet_tb_generator 2020-11-15 20:46:37 +01:00
plc-user
48e597663e adjusting/correcting some item-numbers and adding some elements 2020-11-15 20:15:28 +01:00
plc-user
bd26e4bb9c adjusting/correcting some item-numbers and adding some elements 2020-11-15 20:15:28 +01:00
Simon De Backer
f7a445c0a7 Add Todo for DXF to GET-2020 2020-11-15 18:29:19 +01:00
Claveau Joshua
bb32c30004 Search and replace widget improvement
Add a popup menu to select the elements, conductors and texts of the
current selected diagram in the tree widget.
2020-11-15 17:19:42 +01:00
Claveau Joshua
79fa9c8ec5 improve qetinformation file 2020-11-15 12:19:37 +01:00
Claveau Joshua
a73d50d7d0 Fix wrong text 2020-11-15 11:49:24 +01:00
Claveau Joshua
af7d1df5ab Replace function by another one.
Replace function QETApp::elementInfoKeys() and
QETApp::elementInfoToVar(const QString &info) by function provided by
QETInformation.
2020-11-14 19:09:40 +01:00
Simon De Backer
c87fe8df2f Merge branch 'dev_submodule'
this sets the stage for submodules
submodules are not used at this time
2020-11-13 18:59:36 +01:00
Simon De Backer
f613f7fcdc Mod git pull
this works for git pull since Git 2.15
2020-11-13 18:51:30 +01:00
Laurent Trinques
20911f215b Update de translations, thanks Lars 2020-11-13 08:30:27 +01:00
Laurent Trinques
b557aa0e98 Add and refresh Wago WAGO_Kontakttechnik directory, thanks Plc-user 2020-11-12 19:06:22 +01:00
Laurent Trinques
6b89349240 Minor: move lt4301tadac.elmt to pro-face directory 2020-11-12 13:29:04 +01:00
Laurent Trinques
6b54e45e3a Add Pro face element, thanks Fury 2020-11-12 09:33:13 +01:00
Laurent Trinques
fec3c70739 Add new Legrand Optimum & Netatmo element, thanks Arnaud 2020-11-11 10:12:14 +01:00
Ole Carlsen
a028724773 Danish update 2020-11-09 20:51:43 +01:00
Claveau Joshua
49b2e4ad0a Replace function by another one
Replace QETApp::diagramInfoKeys() by QETInformation::diagramInfoKeys()
and QETApp::diagramTranslatedInfoKey(str) by
QETInformation::translatedInfoKey(str)
2020-11-08 20:23:16 +01:00
Claveau Joshua
81efc5181b Minor replace function by another one
Replace QETApp::conductorInfoKeys() and
QETApp::conductorTranslatedInfoKey(const QString &key) by
QETInformation::conductorInfoKeys() and
QETInformation::translatedInfoKey
2020-11-08 19:44:21 +01:00
Claveau Joshua
6f60156e00 Change function QETApp::elementTranslatedInfoKey
Use the function QETInformation::translatedInfoKey(const QString &info)
instead of QETApp::elementTranslatedInfoKey(const QString &info).

The final goal is to remove all information from the QETApp and use
instea QETInformation who is dedicated to this
2020-11-08 19:16:02 +01:00
Claveau Joshua
7882c5734a Minor : fix little regression about folio report and displayed information 2020-11-08 19:05:11 +01:00
Simon De Backer
0bfbc37bc9 Add git submodule instruction 2020-11-07 22:38:28 +01:00
Simon De Backer
e3b98001f3 Fix indentation restored 2020-11-07 22:19:54 +01:00
Simon De Backer
d1c969b723 Purge old comment 2020-11-07 22:18:53 +01:00
Simon De Backer
acf9c17969 Add packaging script's
info of packaging_script Debian, Ubuntu, Windows
https://qelectrotech.org/wiki_new/doc/packaging_debian#packaging_script_debian_ubuntu_windows

Laurent,
can you check the scripts if they work now,
I'll then change them to scripts that can handle git Submodules
2020-11-07 18:38:35 +01:00
artgg7300
862dbede24 updated hungarian files 2020-11-07 09:56:33 +01:00
dlee99
be3421f8c9 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2020-11-06 20:08:46 +01:00
Laurent Trinques
4ad4e75132 Update TS files and update it translation, thanks Marco 2020-11-06 08:01:14 +01:00
pavelfric
d2c4bf4ec7 Updated Czech translation. 2020-11-02 22:05:38 +01:00
pavelfric
a97ee8ddba Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2020-11-02 22:04:40 +01:00
Claveau Joshua
ca0dcc9b7b Fix crash 2020-11-02 19:31:52 +01:00
Claveau Joshua
62333506f1 Improve update of the project database 2020-11-02 19:13:56 +01:00
Ole Carlsen
98de247a4d Minor danish translation update 2020-11-02 18:47:53 +01:00
Claveau Joshua
a0efad18ab Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet into master 2020-11-01 21:28:06 +01:00
Claveau Joshua
b514c39883 Improve update of the project database 2020-11-01 21:27:40 +01:00
Simon De Backer
859bf7f645 Mod clazy checks range-loop
you're using C++11 range-loops with non-const Qt containers
(potential detach).

adding missing &
2020-11-01 19:10:30 +01:00
Simon De Backer
1b10fe3b7f Mod container-anti-pattern
Finds when temporary containers are being created needlessly.
These cases are usually easy to fix by using iterators,
avoiding memory allocations.

And mod to return on first true

can we test if the Elements collection reload faster or not?
2020-11-01 18:44:14 +01:00
Simon De Backer
41c7cde8ca Mod overlapping comparisons
warning: overlapping comparisons always evaluate to true

valid for a project made before 0.7
probably it will be better to delete the code completely.
2020-11-01 18:11:55 +01:00
Simon De Backer
69adb10bcc Add clang-format file (WIP) 2020-11-01 16:57:19 +01:00
pavelfric
239a7daf7f Updated Czech translation. 2020-11-01 15:20:39 +01:00
pavelfric
f73f71c0aa Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2020-11-01 15:16:13 +01:00
Laurent Trinques
23764c0e11 Update be-nl translations, thanks Ronny 2020-11-01 11:40:17 +01:00
Laurent Trinques
beec556a55 Update qet_en.qm 2020-11-01 07:10:46 +01:00
M. Buijs
3a0da97878 Update qet_en.ts
The first letter of the word needs to be in upper case to align with the rest of the menu.
2020-11-01 07:09:11 +01:00
pavelfric
2afac1e56d Updated Czech translation. 2020-10-31 22:20:13 +01:00
Claveau Joshua
72271cfc69 Improve format of save date
3 formats : local, eu (dd mm yyyy) and us (yyyy mm dd)
2020-10-31 14:22:06 +01:00
Simon De Backer
24c930d727 Mod raw Pointer to QScopedPointer
Clang-Tidy and Clazy said
"drag" leaks memory
2020-10-30 21:07:12 +01:00
Simon De Backer
87845ef0ee Add failed to load message of languages on log file
compiler complained about non return value of
bool QTranslator::load
2020-10-29 20:41:24 +01:00
Ole Carlsen
8c51725c71 Danish translation update 2020-10-29 17:19:29 +01:00
Laurent Trinques
dbf4315deb Update de translation, thanks Lars 2020-10-29 02:10:05 +01:00
Laurent Trinques
099dc614bd Update en qm 2020-10-28 10:57:12 +01:00
M. Buijs
96450ce19f Update qet_en.ts
Small language updates
2020-10-27 23:56:20 +01:00
dlee99
1d606c574b modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2020-10-27 21:46:54 +01:00
Claveau Joshua
8ba982f6cc improve code readability 2020-10-27 21:05:29 +01:00
Claveau Joshua
329ceb4594 Bug fix : directory of embedded element collection is not translated
Bug introduced at commit 995066916b
2020-10-27 20:49:16 +01:00
Laurent Trinques
50de125787 Update en translations 2020-10-27 12:07:44 +01:00
M. Buijs
2839a4009c Update qet_en.ts
Added missing translation
2020-10-27 12:07:01 +01:00
Simon De Backer
6bfb2b95d2 QT6: QStringref replaced to QStringView in QT6
as a result this additional instruction is required
2020-10-26 23:01:45 +01:00
sdeffaux
0dba97ef6a Add symbols and fix bux 193 2020-10-26 21:23:33 +01:00
Simon De Backer
c5c3dfb07b Mod Maximum Size of configureQET widget 2020-10-25 12:24:43 +01:00
sdeffaux
1c91a6300a Add symbols 2020-10-24 20:31:45 +02:00
Claveau Joshua
b1eb59f3ea Improve previous comit 2020-10-22 21:07:41 +02:00
Laurent Trinques
cb29a4d383 Fix date on summary pages 2020-10-22 18:28:52 +02:00
artgg7300
077c4f578a translated hungarian files 2020-10-21 18:24:05 +02:00
aitolos
752f31513c Update Greek Lang 2020-10-19 18:29:29 +03:00
aitolos
756fc845a5 Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2020-10-19 18:14:08 +03:00
aitolos
9d89719c21 Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2020-10-19 18:12:26 +03:00
aitolos
785c5884e8 Update Greek Lang 2020-10-19 18:11:32 +03:00
Laurent Trinques
87425d70ce Update * TS files 2020-10-19 14:21:02 +02:00
Laurent Trinques
9c267d673d Fix %{saveddate} titleblock variable and
add new %{saveddate-eu} variable dd-MM-yyyy date format
2020-10-19 14:09:26 +02:00
Claveau Joshua
69f775aa0f Minor fix : can't move diagram to top from element panel widget 2020-10-18 11:50:04 +02:00
Ole Carlsen
2619d96998 Danish translation updated 2020-10-18 11:03:34 +02:00
Claveau Joshua
74ee2fd82c minor 2020-10-18 10:49:45 +02:00
Claveau Joshua
ec0b92ec1d Fix : Filling color is not apply to polyline. 2020-10-18 10:45:05 +02:00
artgg7300
a65675b53e translated hungarian files 2020-10-15 20:17:03 +02:00
Laurent Trinques
c39ef0a999 Update en fr translation 2020-10-15 18:54:08 +02:00
dlee99
ff84a71d97 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2020-10-14 23:15:59 +02:00
Laurent Trinques
434c3dfbfb Update TS files 2020-10-14 21:00:33 +02:00
Laurent Trinques
096f8f58e1 Updatre de translation, thanks Lars 2020-10-14 20:58:35 +02:00
Simon De Backer
364012848c Fix code style 2020-10-13 17:44:08 +02:00
Simon De Backer
106b17cf2f QT6: QMutex::RecursionMode are obsolete
The default is QMutex::NonRecursive.
https://doc-snapshots.qt.io/qt6-dev/qmutex-obsolete.html
2020-10-13 17:43:26 +02:00
Claveau Joshua
d3da5a98a5 Minor : disable button for QPageSetupDialog on windows 2020-10-12 21:20:40 +02:00
Claveau Joshua
9b0e659300 Remove unused class 2020-10-12 21:02:48 +02:00
pavelfric
30f8989e3d Updated Czech translation 2020-10-11 21:56:53 +02:00
Claveau Joshua
e878082b79 Fix bug 203
https://qelectrotech.org/bugtracker/view.php?id=203
Take advantage of this bugfix, to recode the widget with Qt designer.
2020-10-10 16:58:02 +02:00
Claveau Joshua
419585f97e Add new QAction : export to pdf 2020-10-10 14:37:23 +02:00
Claveau Joshua
44e945489a project print window : minor gui improvement 2020-10-10 12:12:50 +02:00
Claveau Joshua
b45c6b453e Minor fix : QetGraphicsTableItem keep his size when model is reseted or when open from xml. 2020-10-10 11:18:21 +02:00
Claveau Joshua
5d47ecd8f6 Fix : can't open print dialog on windows 2020-10-09 19:25:41 +02:00
Remi Collet
639ccb25e2 use pkgconfig for sqlite3 2020-10-09 08:37:27 +02:00
Simon De Backer
746c5a81e3 Merge branch 'master' of ssh://debacker@git.tuxfamily.org/gitroot/qet/qet.git into master 2020-10-08 16:17:15 +02:00
Simon De Backer
4e44b4bcd4 QT6: Fix : dragging view don't work 2020-10-08 16:16:59 +02:00
dlee99
04125dcc55 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2020-10-06 23:32:40 +02:00
artgg7300
d6f08696bc translated hungarian files 2020-10-06 06:19:03 +02:00
Claveau Joshua
9193e1c39b Fix : dragging view don't work 2020-10-04 16:03:09 +02:00
David Varley
941aaf7087 Fix build for Qt < 5.10 2020-10-04 20:51:07 +11:00
Simon De Backer
f5d2fc3916 Merge branch 'QT6' into master
initial release to Qt6

TODO:
 -remove KCoreAddons
 -remove KWidgetsAddons

* QT6: (24 commits)
  QT6: No Qt::AA_EnableHighDpiScaling in QT6
  QT6: TeDo mod QList for DeleteQGraphicsItemCommand
  QT6: Todo Fix QtConcurrent (remove KCoreAddons?)
  QT6: Todo QVariant::setValue
  QT6: std::min needs further tweaking
  QPrinting class needs further tweaking
  QT6: QStyleOptionGraphicsItem
  Add QActionGroup
  QT6: QStyleOptionGraphicsItem
  QT6: QLibraryInfo
  Totest QRegularExpression ok?
  QT6: QStyleOptionGraphicsItem
  QT6: QMouseEvent
  QT6: QDropEvent
  QT6: Fix deprecated QRegExp
  QT6: hooks added
  QT6: Mod unused function put in comments
  Add missing include QActionGroup
  QT6: set C++17
  QT6: diagramitemweight set val to Font::Weight
  ...
2020-10-03 16:18:03 +02:00
Simon De Backer
9f3c173b9f QT6: No Qt::AA_EnableHighDpiScaling in QT6 2020-10-03 16:08:55 +02:00
Simon De Backer
9a915c2ad0 QT6: TeDo mod QList for DeleteQGraphicsItemCommand 2020-10-03 16:07:55 +02:00
Simon De Backer
694cbfb1b7 QT6: Todo Fix QtConcurrent (remove KCoreAddons?) 2020-10-03 16:04:54 +02:00
Simon De Backer
f69e3a3fa7 QT6: Todo QVariant::setValue 2020-10-03 16:02:35 +02:00
Simon De Backer
8a5ba90d01 QT6: std::min needs further tweaking 2020-10-03 16:00:24 +02:00
Simon De Backer
32605e1377 QPrinting class needs further tweaking 2020-10-03 15:58:09 +02:00
Simon De Backer
0ab1b322d6 QT6: QStyleOptionGraphicsItem 2020-10-03 15:56:11 +02:00
Simon De Backer
a7920ea5fc Add QActionGroup 2020-10-03 15:54:38 +02:00
Simon De Backer
937a6d740b QT6: QStyleOptionGraphicsItem 2020-10-03 15:54:02 +02:00
Simon De Backer
a0b95ee944 QT6: QLibraryInfo 2020-10-03 15:51:53 +02:00
Simon De Backer
ad0df66ab1 Totest QRegularExpression ok? 2020-10-03 15:51:09 +02:00
Simon De Backer
c1e93fc442 QT6: QStyleOptionGraphicsItem 2020-10-03 15:48:40 +02:00
Simon De Backer
2e2a652343 QT6: QMouseEvent 2020-10-03 15:45:43 +02:00
Simon De Backer
074e2c8b2d QT6: QDropEvent 2020-10-03 15:42:58 +02:00
Simon De Backer
9034d8d791 QT6: Fix deprecated QRegExp 2020-10-03 15:40:32 +02:00
Simon De Backer
0b5091b606 QT6: hooks added 2020-10-03 12:04:35 +02:00
Simon De Backer
b339dc2812 QT6: Mod unused function put in comments 2020-10-03 12:03:44 +02:00
Simon De Backer
ce11610d1d Add missing include QActionGroup 2020-10-03 11:57:55 +02:00
Simon De Backer
10cc3cdbb7 QT6: set C++17 2020-10-03 11:57:55 +02:00
Simon De Backer
184560cc5d QT6: diagramitemweight set val to Font::Weight 2020-10-03 11:57:55 +02:00
Simon De Backer
0e10b4adfa QT6: QTextStream::setCodec use QTextStream::setEncoding 2020-10-03 11:57:54 +02:00
Simon De Backer
caac531de1 QT6: Mod QLibraryInfo::location use QLibraryInfo::path 2020-10-03 11:57:54 +02:00
Simon De Backer
bc0cb6b1b3 QT6: Mod Qt::MidButton Use Qt::MiddleButton 2020-10-03 11:57:54 +02:00
Simon De Backer
4f929ef3c9 QT6: Use the QByteArrayView overload. 2020-10-03 11:57:54 +02:00
Laurent Trinques
3b71cb7dfe Revert "macOS : disable project database export"
This reverts commit fbe1c05c7d.
2020-10-03 07:06:05 +02:00
Laurent Trinques
fbe1c05c7d macOS : disable project database export 2020-10-03 06:39:33 +02:00
Claveau Joshua
6437bf212a Add macro to disable/enable project database export 2020-10-02 20:09:03 +02:00
Claveau Joshua
aa9266ab64 Minor : use Diagram::showMe() method instead of emit several signal to do the same thing 2020-10-02 19:41:17 +02:00
Claveau Joshua
8507040aa2 Improve how element editor is opened to edit an element in a diagram.
Before this commit :
ElementPropertiesWidget emit a signal of Diagram to edit an element, and
the signal goes up from Diagram -> DiagramView -> ProjectView ->
QetDiagramEditor and QetDiagramEditor call a static function.
Now :
ElementPropertiesWidget call the static function itself and that all.
All unnecessary signals are removed.
2020-10-02 19:28:52 +02:00
Claveau Joshua
e263264752 Minor : revamp code about shortcut for edit conductor color 2020-10-02 18:57:11 +02:00
Claveau Joshua
7038e6f796 Clean diagram view code 2020-10-02 18:38:24 +02:00
Claveau Joshua
e0201a8027 Remove old Backward compatibility: prior to version 0.3 2020-10-02 17:39:07 +02:00
Ole Carlsen
cbdbdd0ec6 Updated Danish translation 2020-10-02 16:37:17 +02:00
Claveau Joshua
9dda3e5997 Fix fail to build on windows 2020-10-01 19:29:09 +02:00
Laurent Trinques
94e29ef749 Fix installation-paths 2020-10-01 08:10:50 +02:00
Claveau Joshua
add11e7c7a Print preview dialog : Add selection by date.
Add two news option for select diagrams to print :
select "from the date :" and select "at the date".
2020-09-30 21:29:17 +02:00
Laurent Trinques
930bb70f99 Update *TS files 2020-09-30 13:14:13 +02:00
Laurent Trinques
78ecc53b89 Minor 2020-09-30 13:09:56 +02:00
Laurent Trinques
6eec588eb9 Fix typo 2020-09-30 13:04:45 +02:00
Laurent Trinques
1e0ca043e7 Fix typo in comments 2020-09-30 12:58:14 +02:00
Laurent Trinques
191eabd0a2 Flatak build: Fix the installation paths 2020-09-30 06:07:03 +02:00
Claveau Joshua
18f536d801 Revamp the print preview window 2020-09-29 22:54:09 +02:00
Ole Carlsen
7f698bd826 Danish translation updated 2020-09-28 20:33:39 +02:00
Maximilian Federle
0907830d67 snap: Fix whitespace in snapcraft.yaml 2020-09-27 12:44:08 +02:00
Laurent Trinques
35fb45c280 Flatpak refresh 0001-build-Fix-the-installation-paths.patch 2020-09-26 22:54:51 +02:00
Laurent Trinques
ea5ba0ecc8 DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 for Snap package
see :
https://snapcraft.io/qelectrotech/builds/1126332
2020-09-26 22:19:40 +02:00
Simon De Backer
f77255c762 Add position mouse cursor in DiagramView 2020-09-25 22:06:11 +02:00
Simon De Backer
546433cac2 WIP: Add Kabel to qet 2020-09-24 22:39:48 +02:00
Simon De Backer
30b8205f82 Mod some qWarning add QObject::tr 2020-09-24 22:39:11 +02:00
Simon De Backer
3b9ba6a261 WIP: Add Kabel to qet 2020-09-24 18:53:00 +02:00
Simon De Backer
36dbe65457 Add TODO compile var + Fix doxygen issue
You can make your code warn on compile time for the TODO's
In order to do so, uncomment the following line. in pro file
DEFINES += TODO_LIST
2020-09-24 17:01:33 +02:00
Laurent Trinques
65ba816859 Try to fix Snap package with sqite3 new depend 2020-09-24 12:19:30 +02:00
Simon De Backer
bfd487effe Fix QRegularExpression pattern 2020-09-23 23:11:33 +02:00
Simon De Backer
d9f38f8a5d Fix QRegularExpression
-add isValid
-add debug
2020-09-23 22:50:41 +02:00
Simon De Backer
2fe53ba6e8 Fix QRegularExpression
-add isValid
-add debug
2020-09-23 22:19:13 +02:00
Simon De Backer
b5ae1237e3 Fix QRegularExpression
-add isValid
-add debug
2020-09-23 21:36:48 +02:00
Simon De Backer
e0c8dd9585 Fix Revert deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users
This function was introduced in Qt 5

see https://qelectrotech.org/forum/viewtopic.php?pid=13406#p13406
2020-09-23 19:03:13 +02:00
artgg7300
86f7f98031 Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2020-09-23 17:53:01 +02:00
artgg7300
c829a9eb2d updated hungarian files 2020-09-23 17:39:39 +02:00
Laurent Trinques
1cf48f62e9 Fix commit "Change the way how the database is exported to file" :
produce a fail to build on OSX
2020-09-23 11:25:46 +02:00
David Varley
6a47fcddc9 Merge branch 'dxf' 2020-09-23 07:50:42 +10:00
Simon De Backer
77321f6b70 Revert "Fix deprecated QRegExp"
This reverts commit 0a46b83dca.
see https://qelectrotech.org/forum/viewtopic.php?pid=13378#p13378
2020-09-22 21:12:10 +02:00
David Varley
45137987ab DXF - remove a couple of debug messages 2020-09-22 19:47:02 +10:00
David Varley
2d6bef71ae DXF - Add some color 2020-09-22 19:41:47 +10:00
David Varley
bcc5846662 DXF - Cleaning up scaling 2020-09-22 12:16:32 +10:00
Simon De Backer
2a69e540d6 Fix Qt 6 definition of macro ‘Q_DECLARE_MOVABLE_CONTAINER’
adding #include <QHash>

+ code fail to compile if it uses deprecated APIs.
=> see .pro file
2020-09-21 21:19:50 +02:00
Simon De Backer
c958d54d01 Fix Qt 6 deprecated QDockWidget::AllDockWidgetFeatures
(Deprecated) The dock widget can be closed, moved, and floated.
Since new features might be added in future releases,
the look and behavior of dock widgets might change if you use this flag.
Please specify individual flags instead.
2020-09-21 21:16:05 +02:00
Simon De Backer
a917399950 Fix Qt 6 deprecated QComboBox::AdjustToMinimumContentsLength
Use
- QComboBox::AdjustToContents
- QComboBox::AdjustToContentsOnFirstShow
instead.
2020-09-21 20:42:40 +02:00
Simon De Backer
f671a63366 Fix Qt 6 deprecated QVBoxLayout::setMargin
Use QVBoxLayout::setContentsMargins instead.
2020-09-21 20:37:10 +02:00
Simon De Backer
c7ffae7918 Fix Qt 6 deprecated Qt::SystemLocaleShortDate
The format options
Qt::SystemLocaleDate, Qt::SystemLocaleShortDate
and Qt::SystemLocaleLongDate
shall be removed in Qt 6.
	Their use should be replaced with
QLocale::system().toString(date, QLocale::ShortFormat)
or
QLocale::system().toString(date, QLocale::LongFormat).
2020-09-21 20:23:20 +02:00
Laurent Trinques
f21cdb4040 Update de translation, thanks Lars 2020-09-21 07:11:42 +02:00
Claveau Joshua
89f9f47174 Remove unused code 2020-09-20 11:40:18 +02:00
Simon De Backer
24d4885093 Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:13:18 +02:00
Simon De Backer
b7c8ae88e2 Fix code style 2020-09-19 01:13:13 +02:00
Simon De Backer
176dcd376b Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:13:09 +02:00
Simon De Backer
813014ec33 Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:13:01 +02:00
Simon De Backer
4c54335301 Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:12:54 +02:00
Simon De Backer
3eca82baad Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:12:46 +02:00
Simon De Backer
93055c6a96 Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:12:38 +02:00
Simon De Backer
7fb4033ece Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:12:29 +02:00
Simon De Backer
0b3238aac0 Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:12:20 +02:00
Simon De Backer
859f6dd06d Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:12:13 +02:00
Simon De Backer
432e80cecb Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:12:05 +02:00
Simon De Backer
46e96f0a67 Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:11:54 +02:00
Simon De Backer
0ee8f4187b Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:11:46 +02:00
Simon De Backer
402d2fbf4a Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:11:37 +02:00
Simon De Backer
271fd096e2 Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:11:28 +02:00
Simon De Backer
c5be1a98ba Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:11:17 +02:00
Simon De Backer
0a46b83dca Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:11:08 +02:00
Simon De Backer
c7f138a0e3 Fix deprecated QRegExp
Use QRegularExpression instead.

https://doc.qt.io/qt-5/qregularexpression.html#notes-for-qregexp-users

This function was introduced in Qt 5
2020-09-19 01:10:54 +02:00
Claveau Joshua
215ddbd878 Minor : minimize code 2020-09-18 11:48:11 +02:00
David Varley
4d7ece07ab DXF - Simplifying, WIP 2020-09-17 21:45:14 +10:00
Claveau Joshua
139241e773 Change the way how the database is exported to file
The export of internal database to file is now do by sqlite3 native
function instead of a dirty home made function.
For the moment, the export to file function is unavailable on macOSX (we
need some help to add sqlite3 lib on macOSX)
2020-09-16 21:28:47 +02:00
David Varley
07df62e362 DXF - Fix single shape rectangle scaling 2020-09-14 12:29:36 +10:00
David Varley
a68386c028 Merge branch 'cborn' of https://github.com/C-Born-Software/qelectrotech-source-mirror into cborn 2020-09-14 11:45:52 +10:00
Claveau Joshua
8e82dee8f0 Minor 2020-09-13 15:39:20 +02:00
Claveau Joshua
529027a350 Fix bug N°201: Line changes in the drawing area are not reflexted in the information area 2020-09-13 15:11:45 +02:00
Claveau Joshua
726b300999 Fix bug N°202 : Wrong bounding rect for primitive arc.
https://qelectrotech.org/bugtracker/view.php?id=202
2020-09-11 19:11:14 +02:00
Simon De Backer
989cd93a14 Remove old orientation for element Attribute in XML 2020-09-11 06:56:01 +02:00
David Varley
6b1d51bab8 DXF - Add Polylines, use for conductors and rectangles 2020-09-11 11:22:08 +10:00
David Varley
046d7c6b59 DXF - Add terminals to plot (optional) 2020-09-10 18:35:22 +10:00
David Varley
cd7f7eccec Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2020-09-10 00:18:39 +10:00
David Varley
45fb97f410 Start cborn branch - disable annoying startup warning 2020-09-10 00:16:03 +10:00
David Varley
d5d8181332 DXF - fine tune text item locations 2020-09-10 00:12:45 +10:00
Simon De Backer
0310cd2610 Revert "Add user warning on startup"
This reverts commit 87c957a062.
2020-09-08 17:53:37 +02:00
David Varley
713d467fe4 Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2020-09-08 22:10:31 +10:00
David Varley
cc8d0da0ac DXF - Fix conductor number positioning, add junction dots 2020-09-08 21:44:58 +10:00
dlee99
c0ced6dc56 Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet into master 2020-09-07 23:02:22 +02:00
dlee99
288c89daa7 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2020-09-07 23:00:49 +02:00
Simon De Backer
dce83f480c Add name to Terminal
now it is possible to enter the terminal name
2020-09-07 22:35:49 +02:00
Simon De Backer
5d92393ee7 Wrap code for better readability 2020-09-07 22:03:40 +02:00
Simon De Backer
8ee38fab9e Fix Coding convention
Please download and use
https://qelectrotech.org/wiki_new/_media/doc/qtcreator-qet-style.xml
when you write code in Qt
2020-09-07 21:41:45 +02:00
David Varley
babf3d2cf2 Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2020-09-07 22:14:07 +10:00
Laurent Trinques
82c8fb2d01 Update en fr translation 2020-09-07 10:51:56 +02:00
David Varley
68b4705630 Tidy up som comments 2020-09-07 16:27:59 +10:00
David Varley
d062175da7 Add tables to dxf export 2020-09-07 16:16:33 +10:00
Laurent Trinques
561209bc94 Update *TS files 2020-09-06 23:54:59 +02:00
Simon De Backer
87808df6c3 Moved message to QString 2020-09-05 20:09:08 +02:00
Simon De Backer
87c957a062 Add user warning on startup
notify the user of the use of dev software

ToDo: the text still needs to be adjusted
2020-09-05 00:27:24 +02:00
Simon De Backer
610a44c7cd Removed some Q_UNUSED 2020-09-04 23:19:59 +02:00
Simon De Backer
1bc2536c06 Add documentation 2020-09-04 21:13:10 +02:00
Simon De Backer
1528e1ebe2 Add build git commit sha in log file 2020-09-04 21:10:43 +02:00
David Varley
f8611c1b6e DXF Border Numbering - fix offset 2020-09-04 22:41:59 +10:00
David Varley
71d7f8bbe6 Fix some DXF issues 2020-09-04 16:06:06 +10:00
Ole Carlsen
ec464282f3 Updated Danish translation 2020-09-02 08:48:56 +02:00
Simon De Backer
81da7c6713 Fix dubbel // on log file dir 2020-08-31 22:26:03 +02:00
Simon De Backer
a4654dc6c2 remove old orientation for element Attribute in XML and code 2020-08-31 21:36:03 +02:00
Simon De Backer
504a061e71 Add loading time of collections inf to log 2020-08-31 21:22:26 +02:00
Simon De Backer
51c4b16836 Add log file's viewer in AboutQETDialog for user 2020-08-31 21:21:17 +02:00
Claveau Joshua
4a8e07b227 Fix csv export 2020-08-31 20:29:50 +02:00
sdeffaux
db4e8e3f5e add symbols 2020-08-30 19:00:31 +02:00
Laurent Trinques
6274f65455 AboutQETDialog : add Authors 2020-08-29 23:45:25 +02:00
Simon De Backer
00eb139f73 This property is obsolete. 2020-08-29 19:34:45 +02:00
Simon De Backer
62d370c99a Wrap code for better readability 2020-08-29 19:21:51 +02:00
Simon De Backer
cb0c0f8778 Fix Margin voor windows OS 2020-08-29 19:20:44 +02:00
Simon De Backer
f4550ab3b4 Wrap code for better readability 2020-08-28 18:32:24 +02:00
Simon De Backer
d8cbcf3b54 Restore add_new_diagram_button 2020-08-27 17:06:47 +02:00
Simon De Backer
63ad341b33 Fix add header file 2020-08-27 16:31:39 +02:00
Laurent Trinques
bd62f8768e ProjectView add arrows key for quickly navigate in projects
disable momentary "add diagram" button
2020-08-27 14:24:02 +02:00
Laurent Trinques
d9fde9a3e4 Doxyfile restore QCH 2020-08-26 11:01:58 +02:00
Laurent Trinques
f4c5087dc0 Restore opening of projects on the first folio 2020-08-26 02:38:25 +02:00
Laurent Trinques
0959330adf CSV export : Add "conductor_color & conductor_section" to
projectDataBase
2020-08-26 02:12:00 +02:00
Simon De Backer
4763eb92ec Update Doxyfile
bron See
https://qelectrotech.org/forum/viewtopic.php?pid=12901#p12901

run
doxygen Doxyfile
in project dir or met Qt
2020-08-25 21:12:47 +02:00
Simon De Backer
9e4af439ef Wrap code for better readability 2020-08-25 20:52:49 +02:00
Simon De Backer
dfadcb5523 Small change to TRANSLATIONS 2020-08-24 22:22:56 +02:00
Simon De Backer
995066916b Decreases the number of declaring variables
for improve readability
2020-08-24 22:10:58 +02:00
Simon De Backer
debca09d5c Translate documentation + Fix indentation 2020-08-24 22:02:22 +02:00
Simon De Backer
9dad8a5d01 Fix Bug Fill the combo box "element information" was not called
a typo it happens :)
See commit
216374d27c
2020-08-23 17:47:53 +02:00
artgg7300
347de4bcd3 updated hungarian files 2020-08-23 16:17:41 +02:00
Claveau Joshua
7960697b9e Remove unused class 2020-08-21 14:39:35 +02:00
Claveau Joshua
0e6b385be2 Write backup improvement.
Remove the waitForFinished function to truly use the multi-threading.
2020-08-21 00:25:20 +02:00
Simon De Backer
4b4732a0a8 Fix doxygen issue 2020-08-20 22:35:25 +02:00
Simon De Backer
331918d143 Wrap code for better readability 2020-08-20 21:58:23 +02:00
Simon De Backer
0c00d83b27 Fix some doxygen issues 2020-08-20 21:57:35 +02:00
Laurent Trinques
8626ca5d1b Minor fix 2020-08-20 19:45:20 +02:00
Laurent Trinques
e05754da29 Machine_info : improve code 2020-08-20 19:34:07 +02:00
Laurent Trinques
b4f733a5e5 Machine_info : add Windows RAM Available 2020-08-20 18:09:37 +02:00
Simon De Backer
9352905335 Remove some code not in a class or in a function (Q_OS_WIN) 2020-08-20 17:50:29 +02:00
Simon De Backer
88686b3cbf Wrap code for better readability 2020-08-20 17:45:24 +02:00
Simon De Backer
d1c91a7fc2 Fix some doxygen issues 2020-08-20 17:44:59 +02:00
Laurent Trinques
f24f04084c Machine_info : add Windows RAM informations 2020-08-20 06:05:55 +02:00
Simon De Backer
e3093bd06c Fix doxygen issue, Mod to and from Settings
what does this code do?
2020-08-19 21:29:18 +02:00
Simon De Backer
cdb2e7b523 Wrap code for better readability 2020-08-19 21:27:14 +02:00
Simon De Backer
666f20856e Fix some doxygen issues 2020-08-19 21:26:36 +02:00
Simon De Backer
f5725531c2 Fix some doxygen issues 2020-08-19 17:31:02 +02:00
Simon De Backer
5dd57cf003 Wrap code for better readability 2020-08-19 17:30:18 +02:00
Simon De Backer
566747eb2b Improve code style, Wrap code for better readability 2020-08-18 21:29:12 +02:00
Simon De Backer
8e956df8d8 Fix some doxygen issues 2020-08-18 21:28:52 +02:00
Simon De Backer
ef15013715 Add QElectroTech Version in log file 2020-08-18 21:24:22 +02:00
sdeffaux
20896de561 Update hag_cds765f.elmt 2020-08-18 20:47:57 +02:00
sdeffaux
8cdcb59da2 add symbols 2020-08-18 20:47:57 +02:00
sdeffaux
35f206bc7e Add symbols Hager et Legrand 2020-08-18 20:47:57 +02:00
Simon De Backer
99abc165d6 Wrap code for better readability 2020-08-18 20:08:32 +02:00
Simon De Backer
790cdc5229 Fix some doxygen issues (~100) 2020-08-18 20:07:55 +02:00
Simon De Backer
b5f212418c Improve code style, Wrap code for better readability 2020-08-17 21:24:46 +02:00
Simon De Backer
b28ca0361d Fix some doxygen issues 2020-08-17 21:24:20 +02:00
Simon De Backer
2482a0bd4c Fix log files in wrong dir
when arguments are used,
the log file change from dir,
result 2 log files,
and 1 log file is not deleted by
void delete_old_log_files(int days)
2020-08-17 19:12:52 +02:00
Claveau Joshua
319188e010 Export to csv improvement
Export to csv doesn't use is own datase, but the project database
instead.
2020-08-17 16:42:07 +02:00
Laurent Trinques
bc0fecea6c Merge branch 'C-Born-Software-dxf' into master 2020-08-17 10:23:29 +02:00
David Varley
a4c829fbcd Merge branch 'master' into dxf 2020-08-17 16:02:06 +10:00
David Varley
73dd1e8299 Merge branch 'master' of https://github.com/qelectrotech/qelectrotech-source-mirror 2020-08-17 15:53:19 +10:00
David Varley
430ec27f36 Fix dxf export of autosize text cells in titleblock 2020-08-17 15:38:24 +10:00
David Varley
0cb98b2ee1 Adjust alignment of titleblock text in DXF export 2020-08-17 09:13:19 +10:00
Simon De Backer
41cef49453 Improve code style, Wrap code for better readability 2020-08-16 14:26:40 +02:00
Simon De Backer
c4bf492616 Improve code style 2020-08-16 14:26:04 +02:00
Simon De Backer
bc176da88d Improve code style, Wrap code for better readability 2020-08-16 14:25:48 +02:00
Simon De Backer
e55d336dc1 Improve code style 2020-08-16 14:25:31 +02:00
Simon De Backer
6c806d151d Improve code style 2020-08-16 14:25:14 +02:00
Simon De Backer
5e3e3aa4bd Improve code style, Wrap code for better readability, Mod doc 2020-08-16 14:24:51 +02:00
Simon De Backer
3b3ce2cb7c Improve code style, Wrap code for better readability 2020-08-16 14:24:12 +02:00
Simon De Backer
928b56f2bf Improve code style, Wrap code for better readability 2020-08-16 14:23:59 +02:00
Simon De Backer
8144e9b21b Wrap code for better readability 2020-08-16 14:23:42 +02:00
Simon De Backer
8a484ef901 Improve code style 2020-08-16 14:23:25 +02:00
Simon De Backer
574609abf5 Improve code style 2020-08-16 14:22:54 +02:00
Simon De Backer
76d16ab600 Improve code style, Wrap code for better readability 2020-08-16 14:22:36 +02:00
Simon De Backer
60a5a83320 Improve code style, Wrap code for better readability 2020-08-16 14:22:21 +02:00
Simon De Backer
e9fcd385d5 Improve code style, Wrap code for better readability 2020-08-16 14:22:12 +02:00
Simon De Backer
4ed33109f4 Improve code style, Wrap code for better readability 2020-08-16 14:21:55 +02:00
Simon De Backer
a83ee76f39 Fix Copyright indentation 2020-08-16 14:19:38 +02:00
Simon De Backer
3783a6a543 Fix warning 'setParts' is not marked 'override' 2020-08-16 14:07:46 +02:00
Laurent Trinques
070cc2e4ac Typo 2020-08-16 12:34:49 +02:00
Yuki Atoh
012d969d92 Fix Japanese 2020-08-16 12:23:41 +02:00
Yuki Atoh
e22c618152 Add Japanese translations for IEC 60617 2020-08-16 12:23:41 +02:00
Yuki Atoh
93929399b6 Add Japanese translations of qet_directory 2020-08-16 12:23:41 +02:00
David Varley
ea9a230844 Fix dxf export for border 2020-08-16 12:22:36 +02:00
Simon De Backer
d4ee161c07 Mod doc set style de same 2020-08-16 11:19:36 +02:00
Simon De Backer
90417ae509 Fix Copyright indentation 2020-08-16 09:40:14 +02:00
David Varley
2b396960d9 Merge branch 'master' of https://github.com/qelectrotech/qelectrotech-source-mirror 2020-08-16 15:57:55 +10:00
David Varley
ddc2afa427 Fix dxf export for border 2020-08-16 15:39:20 +10:00
Simon De Backer
5832e365e9 Fix log file Dir 2020-08-15 21:40:07 +02:00
Laurent Trinques
dff825810c Update *TS files 2020-08-15 18:35:27 +02:00
Laurent Trinques
12ddd3256e Update translations_stat.pl script 2020-08-15 15:10:06 +02:00
Laurent Trinques
7aaf0c0e58 Fix typo 2020-08-15 15:03:47 +02:00
David Varley
ceb2868b02 Fix dxf export for copied conductors 2020-08-15 14:15:57 +02:00
David Varley
02afb6c003 Fix dxf export for copied conductors 2020-08-15 22:00:14 +10:00
Laurent Trinques
6916736708 Merge branch 'yukia10-l10n_jp' into master 2020-08-15 13:52:01 +02:00
Yuki Atoh
4c51448c45 Merge branch 'l10n_jp' of https://github.com/yukia10/qelectrotech-source-mirror into l10n_jp 2020-08-15 18:42:16 +09:00
Yuki Atoh
770161ac57 Initial Japanese translation 2020-08-15 18:39:41 +09:00
sdeffaux
fa8917875b Add symbols 2020-08-15 08:37:06 +02:00
Yuki Atoh
295e285067 Initial Japanese translation 2020-08-15 14:17:29 +09:00
Simon De Backer
574f5b94b0 Update Copyright date 2020-08-14 22:48:44 +02:00
Simon De Backer
70d024fe79 Update Copyright date 2020-08-14 22:00:42 +02:00
Simon De Backer
de8ccc543d Fix no line number in debug 2020-08-14 18:35:53 +02:00
Simon De Backer
274108d509 Mod debuger to 7 days logs in .qet dir
the user can now read the log files
and/or send them to us for further investigation
2020-08-14 18:31:38 +02:00
Simon De Backer
d556206998 Fix to RAM Total info 2020-08-14 17:03:58 +02:00
Simon De Backer
84a2a25fa8 Mod get Screen info
get cpu info should not collect screen info
2020-08-14 17:03:08 +02:00
Laurent Trinques
6f82ac1df1 Mod Machine_info
Forgot QProcess::close()
2020-08-14 12:57:15 +02:00
Laurent Trinques
7616d11e9d Mod Machine_info
Improve GPU RAM
2020-08-14 12:55:04 +02:00
Laurent Trinques
9486deb3de Mod Machine_info
Add macOS RAM available
2020-08-14 12:51:50 +02:00
damianCaceres
e09bfa18b9 ElementEditor: partdynamictextfield.cpp code style fixes indentation 2020-08-14 01:37:41 +02:00
damianCaceres
fc4625fc0f ElementEditor: partdynamictextfield.cpp code style 2020-08-14 01:37:41 +02:00
damianCaceres
943aa469c6 ElementEditor: partdynamictextfield.h code style 2020-08-14 01:37:41 +02:00
damianCaceres
ba1242d5bb ElementEditor: parttext.cpp code style 2020-08-14 01:37:41 +02:00
damianCaceres
9bc6f7fa94 ElementEditor: parttext.h code style 2020-08-14 01:37:41 +02:00
damianCaceres
3b4237f21f ElementEditor: partterminal.cpp code style 2020-08-14 01:37:41 +02:00
damianCaceres
ac5ec020a6 ElementEditor: partterminal.h code style 2020-08-14 01:37:41 +02:00
damianCaceres
0bae33e3f5 ElementEditor: ~TerminalEditor() suppress extra semicolon 2020-08-14 01:37:41 +02:00
Simon De Backer
e5b7aacea6 Add LibraryInfo to debuger 2020-08-14 00:36:59 +02:00
Simon De Backer
5ca7ff177b Merge branch 'master'
# Conflicts:
#	sources/machine_info.cpp
2020-08-13 22:56:40 +02:00
Simon De Backer
d5b7414b36 Mod Machine_info
add send_info_to_debug
Mod get data PC
send to debuger on startup
2020-08-13 22:50:58 +02:00
Laurent Trinques
34259a4749 Typo 2020-08-13 21:32:51 +02:00
Laurent Trinques
4d61166864 Restore Simmon previous commit 2020-08-13 21:31:33 +02:00
Laurent Trinques
d46d6709f3 Machine info :
remove braces
2020-08-13 21:13:12 +02:00
Simon De Backer
da4e31dfcb Fix warning Wdeprecated
warning:
‘void QProcess::start(const QString&, QIODevice::OpenMode)’ is deprecated
"Use QProcess::start(const QString &program,
                     const QStringList &arguments,
                     OpenMode mode = ReadWrite) instead"
2020-08-13 20:37:07 +02:00
Simon De Backer
21b7aa059a rap code for better readability 2020-08-13 17:58:56 +02:00
Laurent Trinques
43a531fd2d Typo 2020-08-13 17:18:28 +02:00
Laurent Trinques
c0d51ef445 Machine info :
Add Windows GPU RAM informations
2020-08-13 17:10:42 +02:00
Laurent Trinques
f0b475bd77 Machine info :
add Windows CPU & GPU informations
2020-08-13 17:05:46 +02:00
sdeffaux
984d9bc5de Update symbols 2020-08-13 09:22:02 +02:00
Simon De Backer
288737af0d Add Debugging Techniques 2020-08-12 23:54:09 +02:00
Simon De Backer
b0df6d3101 Remove code minium QT_VERSION 5.9 2020-08-12 23:53:52 +02:00
Simon De Backer
11a90d2f69 Remove code minium QT_VERSION 5.9 2020-08-12 22:04:46 +02:00
Simon De Backer
69ff437368 Mod doc, Improve code style 2020-08-12 21:59:00 +02:00
Simon De Backer
87db0e2020 Wrap code for better readability 2020-08-12 19:33:29 +02:00
Claveau Joshua
044c5310f5 minor 2020-08-12 15:48:37 +02:00
Claveau Joshua
86766a9090 Element editor : a copied/pasted terminal part have a new uuid. 2020-08-12 15:45:48 +02:00
Simon De Backer
1805ef300e Add compiler message @TODO 2020-08-10 21:16:52 +02:00
Simon De Backer
e4033dd93c Wrap code for better readability + Mod doc 2020-08-10 21:13:31 +02:00
Simon De Backer
53d89ce4f7 Add documentation 2020-08-10 21:08:52 +02:00
Simon De Backer
7834d6fb84 Mod doc, Improve code style 2020-08-08 23:58:17 +02:00
Laurent Trinques
d9ec9bf274 Update Changelog 2020-08-08 15:53:01 +02:00
Laurent Trinques
66eaf52002 Update Changelog 2020-08-08 15:35:51 +02:00
Laurent Trinques
2e3e65df5a Update Changelog : WIP : you can add what i forgot 2020-08-08 15:08:23 +02:00
Laurent Trinques
b8daec441f Fix bug 199:
ElementEditor parText changes in the drawing area are not reflexted in
the information area
2020-08-07 15:32:24 +02:00
Simon De Backer
06dc1570fc Test writeToFile on a other Thread
to improve this for windows performance
2020-08-06 22:19:44 +02:00
Laurent Trinques
0ce001ea6e Fix bug 198
Text input loose the focus after each single letter
2020-08-06 13:20:33 +02:00
damianCaceres
fa719cf8ff ElementEditor: qetelementeditor fixes wrong braces introduced in previous commit 2020-08-06 11:08:08 +02:00
damianCaceres
0507336622 ElementEditor: qtelementeditor.cpp improve code style 2020-08-06 11:08:08 +02:00
damianCaceres
3d1e30b24e ElementEditor: qtelementeditor.h indentation 2020-08-06 11:08:08 +02:00
damianCaceres
b3a74a8315 ElementEditor: texteditor.cpp surround arrows and more braces 2020-08-06 11:08:08 +02:00
damianCaceres
216374d27c ElementEditor: dynamictextfieldeditor.cpp improve code style 2020-08-06 11:08:08 +02:00
damianCaceres
ce523b71e2 ElementEditor: dynamictextfieldeditor.h improve code style 2020-08-06 11:08:08 +02:00
damianCaceres
bb84bb2098 ElementEditor: texteditor.cpp improve code style 2020-08-06 11:08:08 +02:00
damianCaceres
23c43e72b5 ElementEditor: texteditor.h improve code style 2020-08-06 11:08:08 +02:00
damianCaceres
b53c083d0a ElementEditor: terminaleditor.cpp indentation, alignment and braces 2020-08-04 21:16:58 +02:00
damianCaceres
45edc34269 ElementEditor: terminaleditor.h indentation and alignment 2020-08-04 21:16:58 +02:00
damianCaceres
f8240558a0 ElementEditor: in PolygonEditor::setPart remove redundant calls to StyleEditor::setPart 2020-08-04 11:18:20 +02:00
damianCaceres
dd70637408 ElementEditor: in RectangleEditor::setPart remove redundant calls to StyleEditor::setPart 2020-08-04 11:18:20 +02:00
damianCaceres
45d1b489c4 ElementEditor: in ArcEditor::setPart remove redundant calls to StyleEditor::setPart 2020-08-04 11:18:20 +02:00
damianCaceres
72918a31db ElementEditor: in EllipseEditor::setPart remove redundant calls to StyleEditor::setPart 2020-08-04 11:18:20 +02:00
damianCaceres
9d772b4091 ElementEditor: in LineEditor::setPart remove redundant calls to StyleEditor::setPart 2020-08-04 11:18:20 +02:00
damianCaceres
dd257c48d9 ElementEditor: always clear m_cep_list in StyleEditor::setPart bugfix 0197 2020-08-03 16:07:31 +02:00
Claveau Joshua
78992ee762 Fix backup file on windows
For unknown reason KautoSaveFile don't write the file on Windows if file
is open in another part of the code.
No error is returned and use the method :
qint64 QIODevice::write(const QByteArray &byteArray) return the good
number of bytes written but the real file stay empty.
Probably the problem don't come from KautoSaveFile but QFileDevice or
QIODevice on windows.

The fix consist to open the file just before write on it and close it
just after.
2020-08-02 22:24:46 +02:00
Simon De Backer
7a04788d54 Mod code to drop 2 inden
- if (isReadOnly()) return;
- if (dc.items(DiagramContent::All).isEmpty())
2020-08-02 20:52:52 +02:00
Simon De Backer
fa1abbd38d Wrap code for better readability + Mod doc 2020-08-02 20:29:20 +02:00
Simon De Backer
effc86e72c Translate documentation + Fix indentation 2020-08-02 20:29:06 +02:00
Simon De Backer
d4d364cfde Fix wrap code for better readability 2020-08-02 19:36:12 +02:00
Claveau Joshua
1fc893157d Minor fix
Fix : During the opening of a project, if the project contain a
nomenclature, the dialog used to inform user that the table is too small
is displayed
2020-08-02 18:20:30 +02:00
Simon De Backer
494a5f1df2 Mod Coding conventions + Wrap code
Wrap code for better readability
2020-08-02 17:38:21 +02:00
Simon De Backer
900b7e22aa Mod CONTRIBUTING.md
add info Interactive Staging
2020-08-02 16:27:23 +02:00
Simon De Backer
4751934d68 New Signal Slot Syntax 2020-08-02 15:23:38 +02:00
Simon De Backer
510aa74266 Wrap code for better readability + Mod doc 2020-08-02 15:14:16 +02:00
Simon De Backer
e938673872 Add documentation 2020-08-02 15:09:21 +02:00
Simon De Backer
2a53f09a37 Translate documentation + Fix indentation 2020-08-02 12:09:08 +02:00
Laurent Trinques
6bece6fa84 Update Ru translation, thanks Aleksander 2020-07-29 21:31:55 +02:00
Simon De Backer
1372d1c8ba Wrap code for better readability + Mod doc 2020-07-28 20:57:02 +02:00
Simon De Backer
70e54bc9b2 Translate documentation + Fix indentation 2020-07-28 20:56:41 +02:00
sdeffaux
e6eeef5cf5 update symbols 2020-07-27 21:33:58 +02:00
dlee99
96acd6ff95 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2020-07-26 23:22:49 +02:00
Laurent Trinques
9cdc023f31 Pugixml XML parser
Update to upstream master
2020-07-26 16:14:31 +02:00
pavelfric
a2eb92803a Updated Czech translation 2020-07-26 13:13:23 +02:00
Simon De Backer
655e608268 Doxygen using dashes to create lists of items. 2020-07-26 11:55:51 +02:00
Simon De Backer
c401e93125 Wrap code for better readability + Mod doc 2020-07-26 11:36:27 +02:00
Simon De Backer
4d57e7fbfb Mod get elementInfo from elementInfoKeys 2020-07-26 11:16:12 +02:00
Simon De Backer
0c62bf2b3b Translate documentation + Fix indentation
- Mod doc set style de same
- Fix indentation code
2020-07-26 10:33:15 +02:00
Simon De Backer
1f78196fa6 Fix widget size 2020-07-25 22:00:19 +02:00
Simon De Backer
49cca54adc Wrap code for better readability 2020-07-24 22:44:32 +02:00
Simon De Backer
c0df06c2ee Mod doc set style de same 2020-07-24 22:44:10 +02:00
Simon De Backer
d087a8be66 Moved compilation_info to class Machine_info
This is preparation for making a dev log file
2020-07-23 21:57:30 +02:00
Simon De Backer
55beaa9be9 Mod ScrollArea on demand
QScrollArea is not asked if the screen is big enough.
2020-07-23 17:24:10 +02:00
Simon De Backer
c5eb5af47d Fix name to clarify value is int 2020-07-23 17:05:48 +02:00
Simon De Backer
90e283902e This adds ScrollArea to config dialog
Not everything is visible with low resolution screens.
https://qelectrotech.org/bugtracker/view.php?id=195
2020-07-23 16:55:42 +02:00
Simon De Backer
7420eeb60d Mod name to clarify value is int 2020-07-23 16:49:31 +02:00
Simon De Backer
698db4e5c0 Add Copyright to machine_info class 2020-07-22 21:16:38 +02:00
Simon De Backer
6b95c6bf6f Add QScrollArea to configdialog and resize to max_screen 2020-07-22 21:03:54 +02:00
Claveau Joshua
2b754cffb4 AddTableDialog : fix minor bug 2020-07-21 22:56:31 +02:00
Simon De Backer
03425bcb5b Add gui resize depending on screen size
Init of request
https://qelectrotech.org/bugtracker/view.php?id=195
This is a start will have to be adjusted further.
2020-07-21 20:29:05 +02:00
Laurent Trinques
3a08e60856 aboutqetdialog.cpp minor 2020-07-21 16:01:28 +02:00
Laurent Trinques
e03e36fb2c AboutQETDialog add Linux RAM Total and MemAvailable 2020-07-21 15:58:35 +02:00
Laurent Trinques
8f5e759528 AboutQETDialog add Linux RAM 2020-07-21 14:45:41 +02:00
Laurent Trinques
bddf10588f AboutQETDialog add macOS cpuinfo 'model name' 2020-07-21 14:12:06 +02:00
Laurent Trinques
a33ae2bb13 AboutQETDialog add Linux gpu info 'model name' 2020-07-21 13:44:45 +02:00
Laurent Trinques
bd93e62341 AboutQETDialog add Linux cpuinfo 'model name' 2020-07-21 13:05:08 +02:00
Simon De Backer
119e12b1cf Add Screen info user 2020-07-20 22:41:27 +02:00
Claveau Joshua
f242e1bccc graphics table properties editor : minor
Add label to inform users that the number of row is less than the number
of information to display.
2020-07-20 20:29:13 +02:00
Claveau Joshua
709280e3c1 QetGraphicsTableItem : add dialog to inform user
When user edit the query of an existing table/s if the content to
display is bigger than the content who can be displayed by the table/s a
dialog is opened for inform user of the current situation.
2020-07-20 19:38:52 +02:00
Simon De Backer
3b14946421 Add compiler message @TODO + Mod doc set style de same 2020-07-19 22:19:21 +02:00
Simon De Backer
280e4605e8 Mod doc set style de same 2020-07-19 22:08:41 +02:00
Simon De Backer
fe4552200b Add compiler message @TODO 2020-07-19 22:06:42 +02:00
Simon De Backer
d3b237d06c Mod documentation + wrap code for better readability 2020-07-19 20:28:56 +02:00
Simon De Backer
26fd1a497c Add ignore lines to .gitignore
if doxygen Doxyfile is run all file's of folder doc are added
Qt user file should not see either
2020-07-19 20:24:37 +02:00
Simon De Backer
bbd3085b8d Fix indentation code + Mod doc 2020-07-19 20:06:22 +02:00
Simon De Backer
1251d7d9b0 Fix indentation code + Mod doc 2020-07-19 20:05:58 +02:00
Simon De Backer
2229a1938d Add documentation 2020-07-19 20:05:13 +02:00
Simon De Backer
ffcdccb469 Mod doc set style de same 2020-07-19 18:40:41 +02:00
Simon De Backer
5df6d7f403 Wrap code for better readability 2020-07-19 18:40:41 +02:00
Simon De Backer
4cd69a2450 Mod doc set style de same 2020-07-19 18:40:41 +02:00
Simon De Backer
102629b86f Mod doc set style de same + wrap code for better readability 2020-07-19 18:40:41 +02:00
Simon De Backer
7ddae811a5 Fix Wdeprecated-declarations QProcess::startDetached
QProcess::startDetached(const QString&)’ is deprecated
Use
QProcess::startDetached(const QString &program,
			const QStringList &arguments)
instead
2020-07-19 18:30:28 +02:00
Simon De Backer
cecacfc769 Fix compiler warining non-virtual destructor
ref:
https://stackoverflow.com/questions/38407723/how-to-delete-an-object-of-derived-class-that-has-no-dstructor
2020-07-19 15:48:46 +02:00
Simon De Backer
8c9b30acd6 Mod doc + Update Copyright date
And wrap code for better readability
2020-07-16 22:06:56 +02:00
Simon De Backer
6aa6d055ec Add translation for directory 2020-07-16 22:01:04 +02:00
Simon De Backer
495d9a5f51 Add documentation + wrap code for better readability 2020-07-16 22:00:33 +02:00
Simon De Backer
70ef559874 Improve portability of Doxyfile
note run "doxygen Doxyfile" in qet dir
2020-07-16 16:56:30 +02:00
sdeffaux
80c54b3edb Add new Symbols 2020-07-16 15:51:47 +02:00
Laurent Trinques
68116f4664 Fix indentation code 2020-07-15 23:00:21 +02:00
Simon De Backer
b9ce532db7 Mod doc for better readability doxygen
1. this can be an example howto
add english and french documentation without sacrificing code readability
	2. Fix indentation code
2020-07-15 22:37:29 +02:00
Laurent Trinques
a28e7289b9 Doxyfile update add QCH file for
doxygen-generated docs using qhelpgenerator and then import them into Qt Creator.
2020-07-15 22:25:29 +02:00
Claveau Joshua
ac49ecce7d Fix wrong position of slave xref after open a saved project 2020-07-15 20:48:52 +02:00
Laurent Trinques
7ed71a6312 Fix indentation code 2020-07-15 20:35:23 +02:00
Laurent Trinques
350e7e5233 Fix indentation code 2020-07-15 20:21:59 +02:00
Laurent Trinques
68e78a0de9 Fix indentation code 2020-07-15 20:20:07 +02:00
Laurent Trinques
6313319f80 Fix-indentation-code 2020-07-15 19:57:37 +02:00
Laurent Trinques
a718cfa16d Fix indentation code 2020-07-15 19:48:28 +02:00
Simon De Backer
d7e1d326a2 Wrap code for better readability + Mod doc 2020-07-15 18:34:42 +02:00
Simon De Backer
2cdfce18ec Mod doc to set style de same + Fix indentation code 2020-07-15 18:31:04 +02:00
Simon De Backer
251dfdf37a add documentation 2020-07-15 18:29:04 +02:00
Laurent Trinques
0c381eae28 Fix Remove old summary feature 2020-07-15 17:43:20 +02:00
Laurent Trinques
f8ca26f6e3 Mod doc 2020-07-15 15:32:19 +02:00
Laurent Trinques
b866323e90 Minor QETDiagramEditor::setUpMenu reorder action 2020-07-15 15:28:47 +02:00
Laurent Trinques
53663e20e1 Remove old summary feature 2020-07-15 15:06:46 +02:00
Simon De Backer
430bcae946 Wrap code for better readability 2020-07-14 22:29:23 +02:00
Simon De Backer
41b0434c20 Fix indentation 2020-07-14 22:29:06 +02:00
Simon De Backer
01d97246ce Mod doc set style de same 2020-07-14 22:28:58 +02:00
Simon De Backer
06dbb468ce Mod the doc moved info to the class 2020-07-14 22:28:49 +02:00
Claveau Joshua
132f3ad1b4 Remove old summary feature 2020-07-14 20:00:28 +02:00
sdeffaux
d44bb87d0b add symbols 2020-07-14 18:04:28 +02:00
Laurent Trinques
4d83a1b53e Add new symbols 2020-07-14 17:26:17 +02:00
Laurent Trinques
edf65c83e1 Add new example 2020-07-14 15:07:52 +02:00
sdeffaux
f2c3bd5d26 add symbols 2020-07-13 18:33:03 +02:00
Simon De Backer
c0e248bcd0 fix white space 2020-07-13 06:51:55 +02:00
Simon De Backer
c167468f29 add documentation ExportPropertiesWidget functions 2020-07-13 06:51:46 +02:00
Simon De Backer
09207eec92 add documentation ConductorNumExport function 2020-07-13 06:51:36 +02:00
Simon De Backer
169c440de1 add documentation & removed Q_UNUSED for used value's 2020-07-13 06:51:26 +02:00
Simon De Backer
f9c705f30a add documentation GenericPanel functions 2020-07-13 06:51:17 +02:00
Claveau Joshua
b9a34ce2fd Fix projectdbmodel 2020-07-12 12:33:42 +02:00
artgg7300
28ea80d458 translated hungarian files 2020-07-12 11:19:13 +02:00
sdeffaux
14431db1b2 Translate symbols 2020-07-11 12:56:10 +02:00
Claveau Joshua
83b72c4aac Fix wrong date format for nomenclature table. 2020-07-08 20:56:20 +02:00
Claveau Joshua
31ce923580 fix crash 2020-07-07 22:11:39 +02:00
Claveau Joshua
dae4329699 Update project database class
Add method :
addDiagram and removeDiagram
2020-07-06 21:52:14 +02:00
Ole Carlsen
ff19b3d4d7 Danish update 2020-07-06 18:29:58 +02:00
dlee99
8f921854a3 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2020-07-05 19:45:41 +02:00
Ole Carlsen
bc56820864 Danish translation updated 2020-07-05 16:12:40 +02:00
Laurent Trinques
6c2c5635a6 Update *TS files 2020-07-05 15:28:27 +02:00
Laurent Trinques
2ee11c3f1b Minor :
Rename variable for translation
2020-07-05 15:23:42 +02:00
Laurent Trinques
fb75bf0a73 Add new variables for report folio and can be added in a composite text
{conductor_color}
{conductor_section}
2020-07-05 14:01:38 +02:00
Claveau Joshua
beaa2ccdc8 Fix bug with folio report formula 2020-07-04 20:49:13 +02:00
Claveau Joshua
8ac8ff5384 Replace minus (-) by underscore (_) 2020-07-04 20:43:40 +02:00
Simon De Backer
59ba3d24af init of contribute file
this is now mainly referring to the wiki.
2020-07-04 07:55:40 +02:00
Ole Carlsen
1f9e5e130a Danish translation 2020-07-02 20:24:37 +02:00
Laurent Trinques
82b6c8e815 Update * TS files 2020-07-02 16:42:00 +02:00
Laurent Trinques
6d05038f71 minor 2020-07-02 15:20:27 +02:00
Laurent Trinques
4b117bb4d5 generalWidget : add Kindinformations 2020-07-02 14:45:28 +02:00
Laurent Trinques
7ace0e38ed generalWidget : add link type information 2020-07-02 14:34:53 +02:00
Claveau Joshua
c86f9ccc3a Improve ProjectDataBase use 2020-07-01 18:31:19 +02:00
8162 changed files with 168810 additions and 131221 deletions

67
.clang-format Normal file
View File

@@ -0,0 +1,67 @@
---
BasedOnStyle: LLVM
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveMacros: 'true'
AlignConsecutiveAssignments: 'true'
AlignConsecutiveDeclarations: 'true'
AlignEscapedNewlines: Right
AlignOperands: 'true'
AlignTrailingComments: 'true'
AllowAllArgumentsOnNextLine: 'false'
AllowAllConstructorInitializersOnNextLine: 'true'
AllowAllParametersOfDeclarationOnNextLine: 'true'
AllowShortBlocksOnASingleLine: 'true'
AllowShortCaseLabelsOnASingleLine: 'true'
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Always
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: 'true'
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: 'true'
AlwaysBreakTemplateDeclarations: 'Yes'
BinPackArguments: 'false'
BinPackParameters: 'false'
BreakAfterJavaFieldAnnotations: 'true'
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Allman
BreakBeforeTernaryOperators: 'false'
BreakConstructorInitializers: AfterColon
BreakInheritanceList: AfterColon
BreakStringLiterals: 'true'
ColumnLimit: '80'
CompactNamespaces: 'false'
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
Cpp11BracedListStyle: 'true'
FixNamespaceComments: 'true'
IncludeBlocks: Regroup
IndentCaseLabels: 'false'
IndentPPDirectives: AfterHash
IndentWidth: '4'
JavaScriptWrapImports: 'true'
Language: Cpp
MaxEmptyLinesToKeep: '1'
NamespaceIndentation: All
PointerAlignment: Left
ReflowComments: 'true'
SortIncludes: 'true'
SortUsingDeclarations: 'true'
SpaceAfterCStyleCast: 'true'
SpaceAfterLogicalNot: 'true'
SpaceAfterTemplateKeyword: 'true'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeCpp11BracedList: 'true'
SpaceBeforeCtorInitializerColon: 'true'
SpaceBeforeInheritanceColon: 'true'
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: 'true'
SpaceInEmptyParentheses: 'false'
SpacesInAngles: 'false'
SpacesInCStyleCastParentheses: 'false'
SpacesInContainerLiterals: 'false'
SpacesInParentheses: 'false'
SpacesInSquareBrackets: 'false'
Standard: Cpp11
TabWidth: '4'
UseTab: Always
...

5
.gitignore vendored
View File

@@ -1,2 +1,7 @@
*.snap
.flatpak-builder
# Qt build output
*.user
# doxygen Doxyfile output
doc/
QElectroTech.tag

121
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,121 @@
# How to contribute
I'm really glad you're reading this,
because we need volunteer developers to help
this project come to fruition.
Here are some important resources:
* [Qet code style](https://qelectrotech.org/wiki_new/doc/qt_creator#on_ajoute_le_style_de_code_qet)
* [git Documentation](https://git-scm.com/doc)
## Testing
## Submitting changes
Always write a clear log message for your commits.
One-line messages are fine for small changes,
but bigger changes should look like this:
$ git commit -m "A brief summary of the commit
>
> A paragraph describing what changed and its impact."
* It is always appropriate to keep the commits small.
* For major changes it is recommended to use branches.
### Interactive Staging
https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging
issue: you have modified a class but you want to write it in 2 commits
´git add -p´ or ´git add -i´
/qet> git add -i
staged unstaged path
1: unchanged +1/-1 sources/diagram.cpp
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 5
staged unstaged path
1: unchanged +1/-1 sources/diagram.cpp
Patch update>> 1
staged unstaged path
* 1: unchanged +1/-1 sources/diagram.cpp
Patch update>>
diff --git a/sources/diagram.cpp b/sources/diagram.cpp
index bffca653f..9bd2280f7 100644
--- a/sources/diagram.cpp
+++ b/sources/diagram.cpp
@@ -103,9 +103,9 @@ Diagram::Diagram(QETProject *project) :
connect(&border_and_titleblock,
&BorderTitleBlock::titleBlockFolioChanged,
this, &Diagram::updateLabels);
- connect(this, &Diagram::diagramActivated,
+ foo(do_a);
- adjust(diagramActivated);
+ bar(do_c);
adjustSceneRect();
}
(1/1) Stage this hunk [y,n,q,a,d,s,e,?]? s
Split into 2 hunks.
@@ -103,5 +103,5 @@
connect(&border_and_titleblock,
&BorderTitleBlock::titleBlockFolioChanged,
this, &Diagram::updateLabels);
- connect(this, &Diagram::diagramActivated,
+ foo(do_a);
(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? y
@@ -107,5 +107,5 @@
this, &Diagram::loadElmtFolioSeq);
- adjust(diagramActivated);
+ bar(do_c);
adjustSceneRect();
}
(2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,?]? n
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>What now>7
Bye.
git commit -m "Mod Signal Slot to funsion"
## Coding conventions
Start reading our code and you'll get the hang of it.
We optimize for readability:
* We use tabs to indent, and interpret tabs as taking up to 8 spaces.
see https://qelectrotech.org/wiki_new/doc/qt_creator#on_ajoute_le_style_de_code_qet
* We try to keep to at most 80 characters per line.
* Try to make your code understandable.
You may put comments in, but comments invariably tend to stale out when
the code they were describing changes.
Often splitting a function into two
makes the intention of the code much clearer.
Thanks,
QElectroTech

152
ChangeLog
View File

@@ -1,19 +1,96 @@
====== ChangeLog from 0.7 to 0.8 ======
* Element editor :
* with Ctrl key you can moving by keyboard primitives selected by 0.1 point instead by 1 points, added the same feature for moving the selected aera.
* Improve polygon widget editor on elements editor.
* Moving the main QET repository SVN trunk to GIT.
* Add a mirror of the main QET repository, which is synced to hosted at tuxfamily.org to Github.
* Doxyfile update add QCH file for doxygen-generated docs using qhelpgenerator and then import them into Qt Creator.
* Improve portability of Doxyfile (Simon).
* Fix deprecated warnings (Simon).
* Wrap code for better readability (Simon, Damian).
* Elements collection :
Improve collection 7378 elements in 1092 categories
Thanks Sebastien, Dinozzo, Simon, Rafał, Arnaud, Bisku, Fernando, Riesermauf, Alexis, david, Plc-user, Christophe, Michele, Galexis, Jevgenijs, Gabor,
Benoit Michel, Franck, Ludovic, Cyrille, ossau2mation, Mitzot, Edgar, Nuri, Friskolon, Baboune41, Wiktor, shateks, Dik, Shateks, Marcin
* Diagram editor :
* User can choose now folio list emplacement in project by select position number in settings :
1 for the first position
2 for the second position
etc
0 for always at the end of project
Because index folio is 0 and not 1 we apply -1 in formula to not complicate your life..
* The export of the nomenclature to csv file has been completely rewritten :
It is now possible to choose which information to export as well as the order in which it should be displayed.
An option allows filtering by type of element: all, terminal block, button / switch.
Another option allows to display or not the column headers in the csv file.
With these options, it is possible to create a nomenclature, an order list, but also for printing labels: list of terminals and list of buttons / switches.
It is possible to save / load a configuration easily.
Finally, the work being done by an SQLite database, a text field allows the user to create his own SQL query.
* Add Conductors numbering to csv file.
* Add new summary table.
* add BOM creation dialog :
nomenclature is now integrated into the project (accompanied by several parameters in order to be customizable).
Tables can have a name.
Tables an be added to any folio.
Font margin and alignment (right center left) separately adjustable for headers and table cells.
Position size and number of lines is adjustable.
Possibility of linking several tables together, especially when the entire nomenclature cannot be contained in a folio.
Automatic adjustment of the size of the table in relation to the folio.
Option to apply the geometry of an array to all the array linked to it, so that everything is homogeneous.
Save / load table configuration and content to make creation faster.
Option to automatically adjust the table to the folio.
Option to automatically add new tables in new folios if the nomenclature cannot be contained in 1 to N folios / tables.
* Table content:
Fully customizable, you display what you want or want (info to display in the desired order, filter on type of element, filter on content of the info "contains, not contains, not empty etc ..." ).
The content being generated from a sqlite database, you can write your own request.
* Loading of element collections is now faster (thanks to the pugixml parser)
* The loading of collections of elements no longer freezes QElectroTech.
* The appearance and disappearance of the search / replace menu is animated.
* Fix wrong position of slave xref after open a saved project
* Add font color of the conductors (Simon).
* Add section and color properties for wires.
* config dialog :
* Add QScrollArea to configdialog and resize to max_screen (Simon).
* Add gui resize depending on screen size (Simon).
* Add Screen info user (Simon).
* Mod ScrollArea on demand (Simon).
* Element editor:
* Polygon editing widget, when you click on a point in the list, the corresponding point changes color in order to better visualize what you are doing.
On this same list, a right click opens a contextual menu allowing to delete the selected point or inserted a point after the selected one.
When holding the ctrl + directional arrow key, the selected parts move by 0.1 instead of 1 point.
* with Ctrl key you can moving by keyboard primitives selected by 0.1 point instead by 1 points, added the same feature for moving the selected aera.
* Added 140 web standard colors In Element editor (Arnaud).
* Add multiedit feature (martin).
* Add terminals uuid for next features (martin).
* Windows :
* Fix bad fonts rendering if Qt version >= 5.13.1.
See : https://bugreports.qt.io/browse/QTBUG-83161
* Fix backup file on windows
For unknown reason KautoSaveFile don't write the file on Windows if file
is open in another part of the code.
No error is returned and use the method :
qint64 QIODevice::write(const QByteArray &byteArray) return the good
number of bytes written but the real file stay empty.
Probably the problem don't come from KautoSaveFile but QFileDevice or
QIODevice on windows.
The fix consist to open the file just before write on it and close it
just after.
* writeToFile on a other Thread to improve this for windows performance (Simon).
* macOS :
@@ -22,46 +99,31 @@ Because index folio is 0 and not 1 we apply -1 in formula to not complicate your
(removed by Qt upstream) https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=commitdiff;h=ea47d152b35158ba07a55d009f57df0e4c2a048f;hp=08cc9b9991ae9ab51bed5b857b6257401401ff6f
* Add Snap packages :
* thanks Max for help.
https://snapcraft.io/qelectrotech
See: https://qelectrotech.org/forum/viewtopic.php?id=1426
* Use kde-neon extension
The kde-neon extension reduces our boilerplate in snapcraft.yaml
and reduces the snap size considerably, as we do not need to ship
any library that is already included in the kde-frameworks-5-core18
snap itself.
* For the Flatpak package : remove the file name extension added
This limits qelectrotech builds to the architectures supported
by kde-frameworks-5-core18, i.e. only amd64.
https://git.tuxfamily.org/qet/qet.git/log/?qt=grep&q=snap
* Add Flatpak packages :
* thanks Mathieu for help.
See: https://github.com/qelectrotech/qelectrotech-source-mirror/pull/18
* remove the file name extension added
automatically to the saved files even if the user sets an unknown file
extension for the program.
https://git.tuxfamily.org/qet/qet.git/log/?qt=grep&q=flatpak

2860
Doxyfile

File diff suppressed because it is too large Load Diff

View File

@@ -175,3 +175,15 @@ 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.
[ja]
QElectroTech と一緒に提供される要素コレクションは現状のまま提供され、
あなたの目的や作業に適合することを保証するものではありません。
回路図での要素の利用、変更、統合は、回路図の最終的なライセンスに関わらず
無条件で許可されます。
回路図とは別に QElectroTech コレクションの全部または一部を
変更の有無に関わらず再配布する場合は CC-BY ライセンスを尊重しなければなりません:
この作品は Creative Commons Attribution 3.0 の下でライセンスされます。
ライセンスのコピーを見るには http://creativecommons.org/licenses/by/3.0/ にアクセスするか、
「Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.」に
手紙を送ってください。

11
INSTALL
View File

@@ -140,3 +140,14 @@ $ qmake (qmake-qt5 for Debian baserede systemer)
$ make
# umask 0022
# make install
[ja]
必要条件 :
libQt5 (パッケージ libqt5* を参照)
cupsys-bsd 印刷用
コンパイルの方法 :
$ qmake (Debian ベースのシステムでは qmake-qt5)
$ make
# umask 0022
# make install

4
README
View File

@@ -50,3 +50,7 @@ QET gebruikt XML voor de elementen en schema's en omvat een schematische 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.
[ja]
QElectroTech は電気回路図を作成する Qt5 アプリケーションです。
QET は要素と回路図に XML 形式を利用し、回路図エディタ、要素エディタ、表題欄エディタを含みます。

View File

@@ -27,163 +27,169 @@
#include <QtCore/QSharedMemory>
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) // ### Qt 6: remove
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 5.10 or later")
#endif
#include <QRandomGenerator>
#endif
#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
*/
@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 ) )
: app_t( argc, argv ), d_ptr( new SingleApplicationPrivate( this ) )
{
Q_D(SingleApplication);
Q_D(SingleApplication);
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
// On Android and iOS since the library is not supported fallback to
// standard QApplication behaviour by simply returning at this point.
qWarning() << "SingleApplication is not supported on Android and iOS systems.";
return;
// On Android and iOS since the library is not supported fallback to
// standard QApplication behaviour by simply returning at this point.
qWarning() << "SingleApplication is not supported on Android and iOS systems.";
return;
#endif
// Store the current mode of the program
d->options = options;
// 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();
// 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;
// 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 );
// 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 );
}
}
// 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() );
QElapsedTimer time;
time.start();
InstancesInfo* inst = static_cast<InstancesInfo*>( d->memory->data() );
QElapsedTimer time;
time.start();
// Make sure the shared memory block is initialised and in consistent state
while( true ) {
d->memory->lock();
// Make sure the shared memory block is initialised and in consistent state
while( true ) {
d->memory->lock();
if( d->blockChecksum() == inst->checksum ) break;
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();
}
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();
d->memory->unlock();
// Random sleep here limits the probability of a collision between two racing apps
// Random sleep here limits the probability of a collision between two racing apps
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) // ### Qt 6: remove
qsrand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits<uint>::max() );
QThread::sleep( 8 + static_cast <unsigned long>( static_cast <float>( qrand() ) / RAND_MAX * 10 ) );
qsrand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits<uint>::max() );
QThread::sleep( 8 + static_cast <unsigned long>( static_cast <float>( qrand() ) / RAND_MAX * 10 ) );
#else
quint32 value = QRandomGenerator::global()->generate();
QThread::sleep( 8 + static_cast <unsigned long>( static_cast <float>( value ) / RAND_MAX * 10 ) );
#if TODO_LIST
#pragma message("@TODO remove code for QT 5.10 or later")
#endif
}
quint32 value = QRandomGenerator::global()->generate();
QThread::sleep( 8 + static_cast <unsigned long>( static_cast <float>( value ) / RAND_MAX * 10 ) );
#endif
}
if( inst->primary == false) {
d->startPrimary();
d->memory->unlock();
return;
}
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;
}
// 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->memory->unlock();
d->connectToPrimary( timeout, SingleApplicationPrivate::NewInstance );
d->connectToPrimary( timeout, SingleApplicationPrivate::NewInstance );
delete d;
delete d;
::exit( EXIT_SUCCESS );
::exit( EXIT_SUCCESS );
}
/**
* @brief Destructor
*/
@brief Destructor
*/
SingleApplication::~SingleApplication()
{
Q_D(SingleApplication);
delete d;
Q_D(SingleApplication);
delete d;
}
bool SingleApplication::isPrimary()
{
Q_D(SingleApplication);
return d->server != nullptr;
Q_D(SingleApplication);
return d->server != nullptr;
}
bool SingleApplication::isSecondary()
{
Q_D(SingleApplication);
return d->server == nullptr;
Q_D(SingleApplication);
return d->server == nullptr;
}
quint32 SingleApplication::instanceId()
{
Q_D(SingleApplication);
return d->instanceNumber;
Q_D(SingleApplication);
return d->instanceNumber;
}
qint64 SingleApplication::primaryPid()
{
Q_D(SingleApplication);
return d->primaryPid();
Q_D(SingleApplication);
return d->primaryPid();
}
bool SingleApplication::sendMessage( QByteArray message, int timeout )
{
Q_D(SingleApplication);
Q_D(SingleApplication);
// Nobody to connect to
if( isPrimary() ) return false;
// Nobody to connect to
if( isPrimary() ) return false;
// Make sure the socket is connected
d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect );
// Make sure the socket is connected
d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect );
d->socket->write( message );
bool dataWritten = d->socket->waitForBytesWritten( timeout );
d->socket->flush();
return dataWritten;
d->socket->write( message );
bool dataWritten = d->socket->waitForBytesWritten( timeout );
d->socket->flush();
return dataWritten;
}

View File

@@ -36,99 +36,99 @@
class SingleApplicationPrivate;
/**
* @brief The SingleApplication class handles multiple instances of the same
* Application
* @see QCoreApplication
*/
@brief The SingleApplication class handles multiple 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 milliseconds.
* @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_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 milliseconds.
@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)

View File

@@ -1,5 +1,5 @@
QT += core network
CONFIG += c++11
CONFIG += c++17
HEADERS += $$PWD/singleapplication.h \
$$PWD/singleapplication_p.h

View File

@@ -43,139 +43,139 @@
#include "singleapplication_p.h"
#ifdef Q_OS_UNIX
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#endif
#ifdef Q_OS_WIN
#include <windows.h>
#include <lmcons.h>
#include <windows.h>
#include <lmcons.h>
#endif
SingleApplicationPrivate::SingleApplicationPrivate( SingleApplication *q_ptr )
: q_ptr( q_ptr )
: q_ptr( q_ptr )
{
server = nullptr;
socket = nullptr;
memory = nullptr;
instanceNumber = -1;
server = nullptr;
socket = nullptr;
memory = nullptr;
instanceNumber = -1;
}
SingleApplicationPrivate::~SingleApplicationPrivate()
{
if( socket != nullptr ) {
socket->close();
delete socket;
}
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();
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;
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() );
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::ExcludeAppVersion) ) {
appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() );
}
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ) {
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ) {
#ifdef Q_OS_WIN
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
#else
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
#endif
}
}
// User level block requires a user specific data in the hash
if( options & SingleApplication::Mode::User ) {
// 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( qgetenv("USERNAME") );
}
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( qgetenv("USERNAME") );
}
#endif
#ifdef Q_OS_UNIX
QByteArray username;
uid_t uid = geteuid();
struct passwd *pw = getpwuid(uid);
if( pw ) {
username = pw->pw_name;
}
if( username.isEmpty() ) {
username = qgetenv("USER");
}
appData.addData(username);
QByteArray username;
uid_t uid = geteuid();
struct passwd *pw = getpwuid(uid);
if( pw ) {
username = pw->pw_name;
}
if( username.isEmpty() ) {
username = qgetenv("USER");
}
appData.addData(username);
#endif
}
}
// Replace the backslash in RFC 2045 Base64 [a-zA-Z0-9+/=] to comply with
// server naming requirements.
blockServerName = appData.result().toBase64().replace("/", "_");
// 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();
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);
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();
// 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 );
}
// 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
);
server->listen( blockServerName );
QObject::connect(
server,
&QLocalServer::newConnection,
this,
&SingleApplicationPrivate::slotConnectionEstablished
);
// Reset the number of connections
InstancesInfo* inst = static_cast <InstancesInfo*>( memory->data() );
// Reset the number of connections
InstancesInfo* inst = static_cast <InstancesInfo*>( memory->data() );
inst->primary = true;
inst->primaryPid = q->applicationPid();
inst->checksum = blockChecksum();
inst->primary = true;
inst->primaryPid = q->applicationPid();
inst->checksum = blockChecksum();
instanceNumber = 0;
instanceNumber = 0;
}
void SingleApplicationPrivate::startSecondary()
@@ -184,222 +184,261 @@ 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();
}
// 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 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 );
}
// 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 );
}
// 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);
// 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);
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;
writeStream << blockServerName.toLatin1();
writeStream << static_cast<quint8>(connectionType);
writeStream << instanceNumber;
// The header indicates the message length that follows
QByteArray header;
QDataStream headerStream(&header, QIODevice::WriteOnly);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
quint16 checksum =
qChecksum(
initMsg.constData(),
static_cast<quint32>(initMsg.length()));
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
quint16 checksum =
qChecksum(
QByteArrayView(
initMsg.constData(),
static_cast<quint32>(initMsg.length())));
#endif
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);
headerStream.setVersion(QDataStream::Qt_5_6);
#endif
headerStream << static_cast <quint64>( initMsg.length() );
headerStream << static_cast <quint64>( initMsg.length() );
socket->write( header );
socket->write( initMsg );
socket->flush();
socket->waitForBytesWritten( msecs );
}
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 )
);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
return qChecksum(
static_cast <const char *>( memory->data() ),
offsetof( InstancesInfo, checksum )
);
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
return qChecksum(
QByteArrayView(
static_cast <const char *>( memory->data() ),
offsetof( InstancesInfo, checksum )));
#endif
}
qint64 SingleApplicationPrivate::primaryPid()
{
qint64 pid;
qint64 pid;
memory->lock();
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
pid = inst->primaryPid;
memory->unlock();
memory->lock();
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
pid = inst->primaryPid;
memory->unlock();
return pid;
return pid;
}
/**
* @brief Executed when a connection has been made to the LocalServer
*/
@brief Executed when a connection has been made to the LocalServer
*/
void SingleApplicationPrivate::slotConnectionEstablished()
{
QLocalSocket *nextConnSocket = server->nextPendingConnection();
connectionMap.insert(nextConnSocket, ConnectionInfo());
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::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::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;
};
}
);
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 (!connectionMap.contains( sock )) {
return;
}
if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ) {
return;
}
if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ) {
return;
}
QDataStream headerStream( sock );
QDataStream headerStream( sock );
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
headerStream.setVersion( QDataStream::Qt_5_6 );
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;
// 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 );
}
if ( sock->bytesAvailable() >= (qint64) msgLen ) {
readInitMessageBody( sock );
}
}
void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
{
Q_Q(SingleApplication);
Q_Q(SingleApplication);
if (!connectionMap.contains( sock )) {
return;
}
if (!connectionMap.contains( sock )) {
return;
}
ConnectionInfo &info = connectionMap[sock];
if( sock->bytesAvailable() < ( qint64 )info.msgLen ) {
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);
// 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 );
readStream.setVersion( QDataStream::Qt_5_6 );
#endif
// server name
QByteArray latin1Name;
readStream >> latin1Name;
// server name
QByteArray latin1Name;
readStream >> latin1Name;
// connection type
ConnectionType connectionType = InvalidConnection;
quint8 connTypeVal = InvalidConnection;
readStream >> connTypeVal;
connectionType = static_cast <ConnectionType>( connTypeVal );
// connection type
ConnectionType connectionType = InvalidConnection;
quint8 connTypeVal = InvalidConnection;
readStream >> connTypeVal;
connectionType = static_cast <ConnectionType>( connTypeVal );
// instance id
quint32 instanceId = 0;
readStream >> instanceId;
// instance id
quint32 instanceId = 0;
readStream >> instanceId;
// checksum
quint16 msgChecksum = 0;
readStream >> msgChecksum;
// checksum
quint16 msgChecksum = 0;
readStream >> msgChecksum;
const quint16 actualChecksum = qChecksum( msgBytes.constData(), static_cast<quint32>( msgBytes.length() - sizeof( quint16 ) ) );
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
const quint16 actualChecksum =
qChecksum(
msgBytes.constData(),
static_cast<quint32>( msgBytes.length() - sizeof( quint16 ) ) );
#else
#if TODO_LIST
#pragma message("@TODO remove code for QT 6 or later")
#endif
const quint16 actualChecksum =
qChecksum(
QByteArrayView(
msgBytes.constData(),
static_cast<quint32>(msgBytes.length() - sizeof(quint16))));
#endif
bool isValid = readStream.status() == QDataStream::Ok &&
QLatin1String(latin1Name) == blockServerName &&
msgChecksum == actualChecksum;
bool isValid = readStream.status() == QDataStream::Ok &&
QLatin1String(latin1Name) == blockServerName &&
msgChecksum == actualChecksum;
if( !isValid ) {
sock->close();
return;
}
if( !isValid ) {
sock->close();
return;
}
info.instanceId = instanceId;
info.stage = StageConnected;
info.instanceId = instanceId;
info.stage = StageConnected;
if( connectionType == NewInstance ||
( connectionType == SecondaryInstance &&
options & SingleApplication::Mode::SecondaryNotification ) )
{
Q_EMIT q->instanceStarted();
}
if( connectionType == NewInstance ||
( connectionType == SecondaryInstance &&
options & SingleApplication::Mode::SecondaryNotification ) )
{
Q_EMIT q->instanceStarted();
}
if (sock->bytesAvailable() > 0) {
Q_EMIT this->slotDataAvailable( sock, instanceId );
}
if (sock->bytesAvailable() > 0) {
Q_EMIT this->slotDataAvailable( sock, instanceId );
}
}
void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quint32 instanceId )
{
Q_Q(SingleApplication);
Q_EMIT q->receivedMessage( instanceId, dataSocket->readAll() );
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 );
if( closedSocket->bytesAvailable() > 0 )
Q_EMIT slotDataAvailable( closedSocket, instanceId );
}

View File

@@ -38,62 +38,62 @@
#include "singleapplication.h"
struct InstancesInfo {
bool primary;
quint32 secondary;
qint64 primaryPid;
quint16 checksum;
bool primary;
quint32 secondary;
qint64 primaryPid;
quint16 checksum;
};
struct ConnectionInfo {
explicit ConnectionInfo() :
msgLen(0), instanceId(0), stage(0) {}
qint64 msgLen;
quint32 instanceId;
quint8 stage;
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 );
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

View File

@@ -1,6 +1,6 @@
From 579ee22f1d2bef560ec90d324a0e476b81faf495 Mon Sep 17 00:00:00 2001
From: Mathieu Bridon <mathieu@hashbang.fr>
Date: Tue, 7 Jan 2020 14:39:08 +0100
From 2a390b5188fe070295090b1bd37273d12963b371 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
---
@@ -8,37 +8,37 @@ Subject: [PATCH] build: Fix the installation paths
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/qelectrotech.pro b/qelectrotech.pro
index 07e51fb..2a86b91 100644
index 2901a30d5..1019a9870 100644
--- a/qelectrotech.pro
+++ b/qelectrotech.pro
@@ -5,20 +5,20 @@
# Chemins utilises pour la compilation et l'installation de QET
unix {
# Chemins UNIX
- COMPIL_PREFIX = '/usr/local/'
- INSTALL_PREFIX = '/usr/local/'
+ COMPIL_PREFIX = '/app/'
+ INSTALL_PREFIX = '/app/'
QET_BINARY_PATH = 'bin/'
QET_COMMON_COLLECTION_PATH = 'share/qelectrotech/elements/'
QET_COMMON_TBT_PATH = 'share/qelectrotech/titleblocks/'
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/'
- QET_MAN_PATH = 'man/'
+ QET_MAN_PATH = 'share/man/'
QET_APPDATA_PATH = 'share/appdata'
# Chemins UNIX
- COMPIL_PREFIX = '/usr/local/'
- INSTALL_PREFIX = '/usr/local/'
+ COMPIL_PREFIX = '/app/'
+ INSTALL_PREFIX = '/app/'
QET_BINARY_PATH = 'bin/'
QET_COMMON_COLLECTION_PATH = 'share/qelectrotech/elements/'
QET_COMMON_TBT_PATH = 'share/qelectrotech/titleblocks/'
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/'
- QET_MAN_PATH = 'man/'
+ QET_MAN_PATH = 'share/man/'
QET_APPDATA_PATH = 'share/appdata'
}
win32 {
--
2.24.1
2.28.0

View File

@@ -36,3 +36,6 @@ Elementen collectie voor QElectroTech.
[da]
Symbol samling for QElectroTech.
[ja]
QElectroTech の要素コレクション。

View File

@@ -91,8 +91,10 @@ parts:
after: [kde-sdk-setup]
plugin: nil
source: .
stage-packages: [ git, sqlite3 ]
build-packages:
- git
- libsqlite3-dev
override-pull: |
snapcraftctl pull
snap_version=$(git describe --dirty)

View File

@@ -1,4 +1,4 @@
<definition width="40" version="0.3" hotspot_x="18" hotspot_y="15" height="30" type="element" ic="true" orientation="dyyy"
<definition width="40" version="0.3" hotspot_x="18" hotspot_y="15" height="30" type="element" ic="true"
link_type="next_report">
<uuid uuid="{717352A1-F3C7-49C7-9A06-51620AB5CA00}"/><names>
<name lang="ru">Следующая страница</name>

View File

@@ -12,5 +12,6 @@
<name lang="es">Referencias</name>
<name lang="nl">Referenties</name>
<name lang="da">Ark henvisninger</name>
<name lang="ja">フォリオ参照</name>
</names>
</qet-directory>

View File

@@ -1,4 +1,4 @@
<definition type="element" orientation="dyyy" height="80" hotspot_y="40" version="0.70" width="50" hotspot_x="23" link_type="simple">
<definition type="element" height="80" hotspot_y="40" version="0.70" width="50" hotspot_x="23" link_type="simple">
<uuid uuid="{65b9e889-c2eb-4d85-aa9e-c1dff55678f5}"/>
<names>
<name lang="en">Three-pole source + PEN</name>

View File

@@ -1,4 +1,4 @@
<definition type="element" orientation="dyyy" height="100" hotspot_y="40" version="0.70" width="40" hotspot_x="20" link_type="simple">
<definition type="element" height="100" hotspot_y="40" version="0.70" width="40" hotspot_x="20" link_type="simple">
<uuid uuid="{b4b70d3d-8784-4323-b17b-d8ff3677cdc1}"/>
<names>
<name lang="en">Three-pole source + PEN</name>

View File

@@ -1,4 +1,4 @@
<definition height="50" width="30" link_type="terminal" hotspot_x="16" version="0.80" orientation="dyyy" type="element" hotspot_y="29">
<definition height="50" width="30" link_type="terminal" hotspot_x="16" version="0.80" type="element" hotspot_y="29">
<uuid uuid="{a98ac40d-9055-4b9b-88ab-cffe6b08ed37}"/>
<names>
<name lang="ro">Masă</name>

View File

@@ -1,4 +1,4 @@
<definition width="20" link_type="simple" version="0.5" hotspot_x="9" orientation="dyyy" height="30" hotspot_y="20" type="element">
<definition width="20" link_type="simple" version="0.5" hotspot_x="9" height="30" hotspot_y="20" type="element">
<uuid uuid="{5983fe6f-de69-4368-a387-a6ce3b9c2951}"/>
<names>
<name lang="pt">Massa</name>

View File

@@ -11,5 +11,6 @@
<name lang="cs">Síťové zdroje</name>
<name lang="es">Fuentes de red</name>
<name lang="da">Netværkskilder</name>
<name lang="ja">電源網</name>
</names>
</qet-directory>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="60" hotspot_y="30" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="60" hotspot_y="30" type="element">
<uuid uuid="{35f2834a-308b-4e79-bc2a-1c00486b24e7}"/>
<names>
<name lang="es">Fuente unipolo + PE +N</name>

View File

@@ -1,4 +1,4 @@
<definition width="40" link_type="simple" version="0.5" hotspot_x="22" orientation="dyyy" height="40" hotspot_y="20" type="element">
<definition width="40" link_type="simple" version="0.5" hotspot_x="22" height="40" hotspot_y="20" type="element">
<uuid uuid="{fd042050-e73b-4f95-b4c1-834aa403b07a}"/>
<names>
<name lang="es">Fuente unipolo + PEN</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="40" hotspot_y="20" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="40" hotspot_y="20" type="element">
<uuid uuid="{457a0c01-871c-40fd-83d7-14033333fb95}"/>
<names>
<name lang="pt">Fonte unipolar + neutro</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="60" hotspot_y="30" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="60" hotspot_y="30" type="element">
<uuid uuid="{03b9e482-cb45-4bee-8030-96b93624fc60}"/>
<names>
<name lang="pt">Fonte tripolar</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="100" hotspot_y="50" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="100" hotspot_y="50" type="element">
<uuid uuid="{0e017749-6c0f-44c0-8726-6804be8bbee7}"/>
<names>
<name lang="es">Fuente tripolar + PE +N</name>

View File

@@ -1,4 +1,4 @@
<definition width="40" link_type="simple" version="0.5" hotspot_x="23" orientation="dyyy" height="80" hotspot_y="41" type="element">
<definition width="40" link_type="simple" version="0.5" hotspot_x="23" height="80" hotspot_y="41" type="element">
<uuid uuid="{c0913e95-3b3c-4dc2-a74d-bc73ded78c32}"/>
<names>
<name lang="es">Fuente tripolar + PEN</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="80" hotspot_y="40" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="80" hotspot_y="40" type="element">
<uuid uuid="{8bfb1790-0735-47d5-88a2-8b4d91aba2f1}"/>
<names>
<name lang="pt">Fonte tripolar + neutro</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="20" hotspot_y="10" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="20" hotspot_y="10" type="element">
<uuid uuid="{b5ad2e41-804d-4745-99be-e8951cffdf98}"/>
<names>
<name lang="pt">Fonte de neutro</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="20" hotspot_y="10" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="20" hotspot_y="10" type="element">
<uuid uuid="{7693c5e0-762b-4309-8d97-cb74619f9efd}"/>
<names>
<name lang="pt">Fonte de fase</name>

View File

@@ -1,4 +1,4 @@
<definition width="70" link_type="simple" version="0.5" hotspot_x="34" orientation="dyyy" height="100" hotspot_y="40" type="element">
<definition width="70" link_type="simple" version="0.5" hotspot_x="34" height="100" hotspot_y="40" type="element">
<uuid uuid="{4b9794cf-e7c0-4f59-aa0a-bb1fce4dfe48}"/>
<names>
<name lang="es">Punto de distribución TN-C > TN-S</name>

View File

@@ -1,4 +1,4 @@
<definition height="30" width="20" link_type="terminal" hotspot_x="10" version="0.80" orientation="dyyy" type="element" hotspot_y="19">
<definition height="30" width="20" link_type="terminal" hotspot_x="10" version="0.80" type="element" hotspot_y="19">
<uuid uuid="{e4e753a8-9fde-4e8e-9256-0cf99d67e3de}"/>
<names>
<name lang="pt">Terra</name>

View File

@@ -0,0 +1,15 @@
<definition width="20" height="20" hotspot_y="9" type="element" link_type="simple" hotspot_x="9" version="0.60">
<uuid uuid="{079913f8-18b5-4524-84bd-aadf75dfefbf}"/>
<names>
<name lang="cs">Bod</name>
</names>
<informations></informations>
<description>
<circle diameter="4" style="line-style:normal;line-weight:normal;filling:black;color:black" antialias="false" y="-2" x="-2"/>
<input rotate="true" text=" " tagg="label" size="9" y="-3" x="-11"/>
<terminal orientation="e" y="0" x="2"/>
<terminal orientation="w" y="0" x="-2"/>
<terminal orientation="s" y="2" x="0"/>
<terminal orientation="n" y="-2" x="0"/>
</description>
</definition>

View File

@@ -1,4 +1,4 @@
<definition hotspot_x="11" hotspot_y="4" version="0.70" type="element" height="20" orientation="dyyy" link_type="terminal" width="30">
<definition hotspot_x="11" hotspot_y="4" version="0.70" type="element" height="20" link_type="terminal" width="30">
<uuid uuid="{141e7e1e-4f7f-456d-9f04-52c32109b969}"/>
<names>
<name lang="en">Combine</name>

View File

@@ -1,4 +1,4 @@
<definition hotspot_y="7" width="20" orientation="dyyy" type="element" height="20" version="0.70" hotspot_x="11" link_type="terminal">
<definition hotspot_y="7" width="20" type="element" height="20" version="0.70" hotspot_x="11" link_type="terminal">
<uuid uuid="{2d505b61-db0f-4784-9b9c-189366058272}"/>
<names>
<name lang="es">Esquina</name>

View File

@@ -1,4 +1,4 @@
<definition height="20" link_type="terminal" hotspot_x="9" width="20" orientation="dyyy" hotspot_y="9" version="0.70" type="element">
<definition height="20" link_type="terminal" hotspot_x="9" width="20" hotspot_y="9" version="0.70" type="element">
<uuid uuid="{8c0d3e9c-dc37-41d7-bfd5-fe4dbf8dc4fb}"/>
<names>
<name lang="ru">Пересечение</name>

View File

@@ -1,4 +1,4 @@
<definition width="10" hotspot_y="14" hotspot_x="5" height="30" link_type="terminal" orientation="dyyy" version="0.70" type="element">
<definition width="10" hotspot_y="14" hotspot_x="5" height="30" link_type="terminal" version="0.70" type="element">
<uuid uuid="{b5abb4c2-455d-45ff-95f2-328521f4e2e1}"/>
<names>
<name lang="en">Jump</name>

View File

@@ -0,0 +1,19 @@
<definition version="0.70" height="30" type="element" width="30" hotspot_x="14" link_type="simple" hotspot_y="12">
<uuid uuid="{3015326e-2599-495e-8ef0-c12ff5313dd0}"/>
<names>
<name lang="cs">Všestranný spoj</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<polygon x6="6" x2="-5" x8="6" y5="5" y2="0" closed="false" x10="0" x3="0" x7="10" y7="0" y4="10" y11="-5" antialias="false" x9="0" x11="0" style="line-style:normal;line-weight:normal;filling:none;color:black" x5="0" y9="5" y10="-5" y1="0" y6="0" x4="0" x1="-10" y8="0" y3="5"/>
<dynamic_text font="Sans Serif,9,-1,5,50,0,0,0,0,0" frame="false" x="-13" text_from="ElementInfo" y="-12" z="2" rotation="0" Valignment="AlignTop" text_width="-1" uuid="{14c0b70c-c028-49ef-bf72-3c3c9cd64669}" Halignment="AlignLeft">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<terminal x="0" y="-5" orientation="n"/>
<terminal x="0" y="10" orientation="s"/>
<terminal x="-10" y="0" orientation="w"/>
<terminal x="10" y="0" orientation="e"/>
</description>
</definition>

View File

@@ -0,0 +1,17 @@
<definition type="element" hotspot_x="35" version="0.80" width="70" height="80" hotspot_y="46" link_type="simple">
<uuid uuid="{e5a46987-e259-4ca4-9e40-eedc3652f738}"/>
<names>
<name lang="cs">Pokus</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<rect width="60" x="-30" style="line-style:normal;line-weight:normal;filling:none;color:black" height="65" rx="0" y="-35" antialias="false" ry="0"/>
<dynamic_text z="3" font="Sans Serif,9,-1,5,0,0,0,0,0,0,normal" Valignment="AlignTop" uuid="{cec75afa-b854-41b8-aed8-6edba82c76ff}" text_from="ElementInfo" x="-45" text_width="-1" y="-20" frame="false" rotation="0" Halignment="AlignLeft">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<terminal orientation="n" x="20" y="-40"/>
<terminal orientation="n" x="-20" y="-40"/>
</description>
</definition>

View File

@@ -11,5 +11,6 @@
<name lang="nl">Verbindingen</name>
<name lang="es">Conexiones</name>
<name lang="da">Forbindelser</name>
<name lang="ja">接続</name>
</names>
</qet-directory>

View File

@@ -1,4 +1,4 @@
<definition type="element" height="20" width="30" orientation="dyyy" version="0.70" hotspot_y="4" link_type="terminal" hotspot_x="17">
<definition type="element" height="20" width="30" version="0.70" hotspot_y="4" link_type="terminal" hotspot_x="17">
<uuid uuid="{709e6400-adc2-4faf-ba46-aa513d1dcaf1}"/>
<names>
<name lang="fr">Epissure</name>

View File

@@ -1,4 +1,4 @@
<definition hotspot_y="4" height="20" hotspot_x="17" type="element" width="30" link_type="terminal" orientation="dyyy" version="0.70">
<definition hotspot_y="4" height="20" hotspot_x="17" type="element" width="30" link_type="terminal" version="0.70">
<uuid uuid="{9e88368e-1b20-4a56-8941-5d17a4cce2d4}"/>
<names>
<name lang="cs">Levé spojení</name>

View File

@@ -1,4 +1,4 @@
<definition link_type="terminal" width="30" hotspot_x="14" orientation="dyyy" height="20" version="0.70" hotspot_y="4" type="element">
<definition link_type="terminal" width="30" hotspot_x="14" height="20" version="0.70" hotspot_y="4" type="element">
<uuid uuid="{6e40fff3-691c-4622-b9aa-4ff930a5b981}"/>
<names>
<name lang="en">Thru right</name>

View File

@@ -1,4 +1,4 @@
<definition width="120" version="0.3" hotspot_x="71" hotspot_y="10" height="40" type="element" orientation="dyyy">
<definition width="120" version="0.3" hotspot_x="71" hotspot_y="10" height="40" type="element">
<names>
<name lang="ar">كايبل طورين + تأريض</name>
<name lang="de">Kabel 3G</name>

View File

@@ -1,4 +1,4 @@
<definition width="120" version="0.3" hotspot_x="70" hotspot_y="10" height="40" type="element" orientation="dyyy">
<definition width="120" version="0.3" hotspot_x="70" hotspot_y="10" height="40" type="element">
<names>
<name lang="ar">كايبل ثلاثي الطور + تأريض</name>
<name lang="de">Kabel 4G</name>

View File

@@ -1,4 +1,4 @@
<definition width="100" version="0.3" hotspot_x="60" hotspot_y="10" height="40" type="element" orientation="dyyy">
<definition width="100" version="0.3" hotspot_x="60" hotspot_y="10" height="40" type="element">
<names>
<name lang="ar">كايبل بطورين و تأريض</name>
<name lang="de">Kabel 3G</name>

View File

@@ -1,4 +1,4 @@
<definition width="130" version="0.3" hotspot_x="88" hotspot_y="18" height="40" type="element" orientation="dyyy">
<definition width="130" version="0.3" hotspot_x="88" hotspot_y="18" height="40" type="element">
<names>
<name lang="ar">كايبل رباعي النواة</name>
<name lang="It">Cavo ? 4G</name>

View File

@@ -1,4 +1,4 @@
<definition hotspot_y="3" orientation="dyyy" version="0.51" hotspot_x="47" link_type="simple" width="100" type="element" height="20">
<definition hotspot_y="3" 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>

View File

@@ -1,4 +1,4 @@
<definition hotspot_y="3" orientation="dyyy" version="0.51" hotspot_x="29" link_type="simple" width="60" type="element" height="20">
<definition hotspot_y="3" 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>

View File

@@ -1,4 +1,4 @@
<definition width="70" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="20" hotspot_y="9" type="element">
<definition width="70" link_type="simple" version="0.5" hotspot_x="15" height="20" hotspot_y="9" type="element">
<uuid uuid="{4b9a04b1-0d35-4d54-b5cb-b573ed3a9b0d}"/>
<names>
<name lang="de">Kabel 3x</name>

View File

@@ -1,4 +1,4 @@
<definition width="60" link_type="simple" version="0.5" hotspot_x="21" orientation="dyyy" height="10" hotspot_y="-6" type="element">
<definition width="60" link_type="simple" version="0.5" hotspot_x="21" height="10" hotspot_y="-6" type="element">
<uuid uuid="{822e6fc1-0104-4d3a-ba3c-995c24c79cf2}"/>
<names>
<name lang="nl">Scherm</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="20" hotspot_y="9" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="20" hotspot_y="9" type="element">
<uuid uuid="{6ac285f9-6492-40cb-be58-9ba565ea1921}"/>
<names>
<name lang="de">Kabelader</name>

View File

@@ -1,4 +1,4 @@
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" orientation="dyyy" height="20" hotspot_y="9" type="element">
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" height="20" hotspot_y="9" type="element">
<uuid uuid="{374ed6b3-7329-4cad-ac8c-200b17508460}"/>
<names>
<name lang="de">Verdrahtung</name>

View File

@@ -1,4 +1,4 @@
<definition width="70" hotspot_x="35" hotspot_y="5" orientation="dyyy" version="0.80" type="element" height="10" link_type="simple">
<definition width="70" hotspot_x="35" hotspot_y="5" version="0.80" type="element" height="10" link_type="simple">
<uuid uuid="{3cfdc90d-f114-4ecd-9ab2-37786c279287}"/>
<names>
<name lang="de">Kabel 3G</name>

View File

@@ -1,4 +1,4 @@
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="36" hotspot_y="5" orientation="dyyy" width="90">
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="36" hotspot_y="5" width="90">
<uuid uuid="{e02f4582-b5dd-4f81-ba71-e3d5521b4152}"/>
<names>
<name lang="ru">Кабель 3 жилы + PE</name>

View File

@@ -1,4 +1,4 @@
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="73" hotspot_y="5" orientation="dyyy" width="150">
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="73" hotspot_y="5" width="150">
<uuid uuid="{d1007c67-032b-4925-8560-aac9e547d6ae}"/>
<names>
<name lang="ru">Кабель 6 жилы + PE</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="14" orientation="dyyy" height="20" hotspot_y="4" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="14" height="20" hotspot_y="4" type="element">
<uuid uuid="{a0e9e33a-ee38-4c08-8f40-c307da8d822b}"/>
<names>
<name lang="el">Διατομή αγωγού</name>

View File

@@ -11,5 +11,6 @@
<name lang="nl">Kabels en draden</name>
<name lang="cs">Kabely a drátové propojení</name>
<name lang="da">Kabler og ledninger</name>
<name lang="ja">ケーブルと配線</name>
</names>
</qet-directory>

View File

@@ -1,4 +1,4 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="10" hotspot_y="5" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="10" hotspot_y="5" type="element">
<uuid uuid="{b96a76a6-a798-497b-a044-dd933756d175}"/>
<names>
<name lang="de">Verdrahtungsdefinition 1 Leiter</name>

View File

@@ -1,4 +1,4 @@
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" orientation="dyyy" height="10" hotspot_y="5" type="element">
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" height="10" hotspot_y="5" type="element">
<uuid uuid="{448ac784-f459-4f8f-bd3f-d911802b3369}"/>
<names>
<name lang="de">Verdrahtungsdefinition 2 Leiter</name>

View File

@@ -1,4 +1,4 @@
<definition width="40" link_type="simple" version="0.5" hotspot_x="14" orientation="dyyy" height="10" hotspot_y="5" type="element">
<definition width="40" link_type="simple" version="0.5" hotspot_x="14" height="10" hotspot_y="5" type="element">
<uuid uuid="{c94d9e16-e3bb-4117-b037-466a15edcb14}"/>
<names>
<name lang="de">Verdrahtungsdefinition 2 Leiter</name>

View File

@@ -1,4 +1,4 @@
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" orientation="dyyy" height="10" hotspot_y="5" type="element">
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" height="10" hotspot_y="5" type="element">
<uuid uuid="{9d939952-9c2b-4b12-898f-262abc91e845}"/>
<names>
<name lang="de">Verdrahtungsdefinition 3 Leiter</name>

View File

@@ -1,4 +1,4 @@
<definition height="80" hotspot_y="39" hotspot_x="17" version="0.5" orientation="dyyy" width="40" link_type="simple" type="element">
<definition height="80" hotspot_y="39" hotspot_x="17" version="0.5" width="40" link_type="simple" type="element">
<uuid uuid="{9d2d8902-b36a-4974-b46d-4de6741f6b9b}"/>
<names>
<name lang="en">Terminal strip label</name>

View File

@@ -1,4 +1,4 @@
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" width="30" link_type="simple" type="element">
<uuid uuid="{2d155649-d0f5-419b-b94a-a13d3fcf38c7}"/>
<names>
<name lang="fr">Borne (continuité)</name>

View File

@@ -1,4 +1,4 @@
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" width="30" link_type="simple" type="element">
<uuid uuid="{da19301b-f6e7-478f-a6dd-eb72e497883b}"/>
<names>
<name lang="fr">Borne (terre)</name>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="110" height="20" type="element" hotspot_x="55" link_type="simple" hotspot_y="13">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="50" height="110" type="element" hotspot_x="15" link_type="simple" hotspot_y="54">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition height="10" hotspot_y="5" hotspot_x="5" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
<definition height="10" hotspot_y="5" hotspot_x="5" version="0.5" width="30" link_type="simple" type="element">
<uuid uuid="{9a3ee0a0-5a0e-4f0c-93dd-396ddc3d7f11}"/>
<names>
<name lang="de">Einlegebrücke</name>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="50" height="10" type="element" hotspot_x="5" link_type="simple" hotspot_y="5">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" orientation="dyyy" width="510" link_type="simple" type="element">
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" width="510" link_type="simple" type="element">
<uuid uuid="{c17e98a3-738f-4c7a-ac89-91bb4c08fb45}"/>
<names>
<name lang="fr">Connecteur 25 fiches</name>

View File

@@ -1,4 +1,4 @@
<definition height="80" hotspot_y="67" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
<definition height="80" hotspot_y="67" hotspot_x="15" version="0.5" width="30" link_type="simple" type="element">
<uuid uuid="{116e1210-b7f9-4737-a94f-1034ecb45cc4}"/>
<names>
<name lang="fr">Appareil (connexion en bas)</name>

View File

@@ -1,4 +1,4 @@
<definition height="80" hotspot_y="13" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
<definition height="80" hotspot_y="13" hotspot_x="15" version="0.5" width="30" link_type="simple" type="element">
<uuid uuid="{e396fc1b-28d7-4978-879a-9b666a2648d3}"/>
<names>
<name lang="fr">Appareil (connexion en bas)</name>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition height="70" hotspot_y="34" hotspot_x="4" version="0.5" orientation="dyyy" width="10" link_type="simple" type="element">
<definition height="70" hotspot_y="34" hotspot_x="4" version="0.5" width="10" link_type="simple" type="element">
<uuid uuid="{2ac227dc-33a0-49f5-b8a0-b834d9386b60}"/>
<names>
<name lang="de">Kabel Bezeichnungsschild</name>

View File

@@ -1,4 +1,4 @@
<definition height="20" hotspot_y="12" hotspot_x="4" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
<definition height="20" hotspot_y="12" hotspot_x="4" version="0.5" width="30" link_type="simple" type="element">
<uuid uuid="{ce9e32d1-edd6-4bf2-a6f4-a519b878d80d}"/>
<names>
<name lang="de">Kabel Ader nach oben</name>

View File

@@ -1,4 +1,4 @@
<definition height="20" hotspot_y="6" hotspot_x="4" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
<definition height="20" hotspot_y="6" hotspot_x="4" version="0.5" width="30" link_type="simple" type="element">
<uuid uuid="{2935f975-67f8-4e41-ad18-7fbb24e67465}"/>
<names>
<name lang="de">Kabel Ader nach unten</name>

View File

@@ -1,4 +1,4 @@
<definition orientation="dyyy" version="0.51" width="130" height="20" type="element" hotspot_x="15" link_type="simple" hotspot_y="12">
<definition 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>

View File

@@ -1,4 +1,4 @@
<definition version="0.80" link_type="simple" hotspot_y="13" type="element" height="250" hotspot_x="15" width="30" orientation="dyyy">
<definition version="0.80" link_type="simple" hotspot_y="13" type="element" height="250" hotspot_x="15" width="30">
<uuid uuid="{bb4c314c-2020-4c8a-b465-632eb562e1f7}"/>
<names>
<name lang="fr">Cable</name>

View File

@@ -1,4 +1,4 @@
<definition width="50" link_type="simple" version="0.5" hotspot_x="20" orientation="dyyy" height="30" hotspot_y="4" type="element">
<definition width="50" link_type="simple" version="0.5" hotspot_x="20" height="30" hotspot_y="4" type="element">
<uuid uuid="{5953974b-d91b-4358-b6e6-7ab44e9c46ca}"/>
<names>
<name lang="es">Distribuidor</name>

View File

@@ -1,4 +1,4 @@
<definition width="290" version="0.4" hotspot_x="21" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
<definition width="290" version="0.4" hotspot_x="21" hotspot_y="32" height="520" link_type="simple" type="element">
<uuid uuid="{4703BDD4-D90B-4E3F-AF60-679EB66DD5E4}"/><names>
<name lang="en">Terminal 12G1</name>
<name lang="es">Clema 12G1</name>

View File

@@ -1,4 +1,4 @@
<definition width="430" version="0.4" hotspot_x="19" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
<definition width="430" version="0.4" hotspot_x="19" hotspot_y="32" height="520" link_type="simple" type="element">
<uuid uuid="{A8C79B55-90AC-4F98-81C2-3A20BDBC7B5E}"/><names>
<name lang="en">Terminal_19G1</name>
<name lang="es">Clema 19G1</name>

View File

@@ -1,4 +1,4 @@
<definition width="100" version="0.4" hotspot_x="24" hotspot_y="29" height="520" link_type="simple" type="element" orientation="dyyy">
<definition width="100" version="0.4" hotspot_x="24" hotspot_y="29" height="520" link_type="simple" type="element">
<uuid uuid="{DF43B4E0-C908-420E-B61B-B0C0E12EF629}"/><names>
<name lang="en">Terminal_3G1</name>
<name lang="es">Clema 3G1</name>

View File

@@ -1,4 +1,4 @@
<definition width="120" version="0.4" hotspot_x="24" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
<definition width="120" version="0.4" hotspot_x="24" hotspot_y="32" height="520" link_type="simple" type="element">
<uuid uuid="{DE548E2C-13F5-4269-BA5A-B16C2909B3C5}"/><names>
<name lang="en">Terminal_4G1</name>
<name lang="es">Clema 4G1</name>

View File

@@ -1,4 +1,4 @@
<definition width="140" version="0.4" hotspot_x="20" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
<definition width="140" version="0.4" hotspot_x="20" hotspot_y="32" height="520" link_type="simple" type="element">
<uuid uuid="{BF950FAB-A8D9-40E4-B239-0C3413B2BFD4}"/><names>
<name lang="en">Terminal_5G1</name>
<name lang="es">Clema 5G1</name>

View File

@@ -1,4 +1,4 @@
<definition width="180" version="0.4" hotspot_x="18" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
<definition width="180" version="0.4" hotspot_x="18" hotspot_y="32" height="520" link_type="simple" type="element">
<uuid uuid="{DC3C9BE3-B4C2-431A-85CA-40244D09AA67}"/><names>
<name lang="en">Terminal_7G1</name>
<name lang="es">Clema 7G1</name>

View File

@@ -1,4 +1,4 @@
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" orientation="dyyy" height="60" hotspot_y="29" type="element">
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" height="60" hotspot_y="29" type="element">
<uuid uuid="{e1463f74-cad0-4ef6-a1f4-beedd55b7d41}"/>
<names>
<name lang="el">Μπάρα γείωσης</name>

View File

@@ -1,4 +1,4 @@
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" orientation="dyyy" height="80" hotspot_y="39" type="element">
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" height="80" hotspot_y="39" type="element">
<uuid uuid="{7ae24759-36ff-414f-bf1f-3a9861e75f73}"/>
<names>
<name lang="es">Barra de interconexión TN</name>

View File

@@ -1,4 +1,4 @@
<definition width="10" version="0.3" hotspot_x="5" hotspot_y="0" height="40" type="element" orientation="dyyy">
<definition width="10" version="0.3" hotspot_x="5" hotspot_y="0" height="40" type="element">
<uuid uuid="{7499D25C-957E-43F1-8AFE-7E5D0EAE1C89}"/><names>
<name lang="ar">شريط ربط, مُغلق</name>
<name lang="de">Trennklemme, Lasche geschlossen</name>

View File

@@ -1,4 +1,4 @@
<definition width="20" version="0.4" hotspot_x="5" hotspot_y="15" height="30" link_type="terminal" type="element" ic="true" orientation="dyyy">
<definition width="20" version="0.4" hotspot_x="5" hotspot_y="15" height="30" link_type="terminal" type="element" ic="true">
<uuid uuid="{E45A9DD3-1458-47FC-A4DB-287174EB65FD}"/><names>
<name lang="ar">طرف توصيل</name>
<name lang="de">Klemme</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" hotspot_y="14" height="30" hotspot_x="11" version="0.51" orientation="dyyy" link_type="terminal" type="element">
<definition width="30" hotspot_y="14" height="30" hotspot_x="11" version="0.51" link_type="terminal" type="element">
<uuid uuid="{679c3cc2-61ad-4769-a835-2afc94bc536d}"/>
<names>
<name lang="ar">طرف توصيل</name>

View File

@@ -1,4 +1,4 @@
<definition width="20" version="0.4" hotspot_x="15" hotspot_y="15" height="20" link_type="terminal" type="element" ic="true" orientation="dyyy">
<definition width="20" version="0.4" hotspot_x="15" hotspot_y="15" height="20" link_type="terminal" type="element" ic="true">
<uuid uuid="{70DF1247-B36D-4B2B-B44E-64EDFF85C45B}"/><names>
<name lang="ar">طرف توصيل</name>
<name lang="de">Klemme</name>

View File

@@ -1,4 +1,4 @@
<definition width="20" hotspot_y="14" height="20" hotspot_x="14" version="0.51" orientation="dyyy" link_type="terminal" type="element">
<definition width="20" hotspot_y="14" height="20" hotspot_x="14" version="0.51" link_type="terminal" type="element">
<uuid uuid="{2ed786aa-0583-4058-aad6-af7eb76fad47}"/>
<names>
<name lang="ar">طرف توصيل</name>

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