Compare commits

..

1 Commits

Author SHA1 Message Date
Simon De Backer
9ca60407aa Fix Wdeprecated-declarations QProcess::startDetached
QProcess::startDetached(const QString&)’ is deprecated
Use
QProcess::startDetached(const QString &program,
			const QStringList &arguments)
instead
2020-07-19 15:18:58 +02:00
8188 changed files with 91900 additions and 118620 deletions

5
.gitignore vendored
View File

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

View File

@@ -1,121 +1,27 @@
# How to contribute
I'm really glad you're reading this,
because we need volunteer developers to help
this project come to fruition.
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)
* [wiki](https://qelectrotech.org/wiki_new/doc/qt_creator#on_ajoute_le_style_de_code_qet)Qet code style
## 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:
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:
Start reading our code and you'll get the hang of it. We optimize for readability:
* We indent using tab, see https://qelectrotech.org/wiki_new/doc/qt_creator#on_ajoute_le_style_de_code_qet
* 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,96 +1,19 @@
====== ChangeLog from 0.7 to 0.8 ======
* 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
* 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.
* Diagram editor :
* 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.
* 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..
* 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 :
@@ -99,31 +22,46 @@ just after.
(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.
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
* For the Flatpak package : 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

2846
Doxyfile

File diff suppressed because it is too large Load Diff

View File

@@ -175,15 +175,3 @@ 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,14 +140,3 @@ $ 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,7 +50,3 @@ 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,40 +27,37 @@
#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 ) )
{
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;
#endif
// Store the current mode of the program
d->options = options;
// Generating an application ID used for identifying the shared memory
// block and QLocalServer
d->genBlockServerName();
#ifdef Q_OS_UNIX
// By explicitly attaching it and then deleting it we make sure that the
// memory is deleted even after the process has crashed on Unix.
@@ -70,7 +67,7 @@ SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSeconda
#endif
// Guarantee thread safe behaviour with a shared memory block.
d->memory = new QSharedMemory( d->blockServerName );
// Create a shared memory block
if( d->memory->create( sizeof( InstancesInfo ) ) ) {
// Initialize the shared memory block
@@ -86,43 +83,40 @@ SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSeconda
::exit( EXIT_FAILURE );
}
}
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();
if( d->blockChecksum() == inst->checksum ) break;
if( time.elapsed() > 5000 ) {
qWarning() << "SingleApplication: Shared memory block has been in an inconsistent state from more than 5s. Assuming primary instance failure.";
d->initializeMemoryBlock();
}
d->memory->unlock();
// Random sleep here limits the probability of a collision between two racing apps
#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 ) );
#else
#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;
}
// Check if another instance can be started
if( allowSecondary ) {
inst->secondary += 1;
@@ -135,19 +129,19 @@ SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSeconda
d->memory->unlock();
return;
}
d->memory->unlock();
d->connectToPrimary( timeout, SingleApplicationPrivate::NewInstance );
delete d;
::exit( EXIT_SUCCESS );
}
/**
@brief Destructor
*/
* @brief Destructor
*/
SingleApplication::~SingleApplication()
{
Q_D(SingleApplication);
@@ -181,13 +175,13 @@ qint64 SingleApplication::primaryPid()
bool SingleApplication::sendMessage( QByteArray message, int timeout )
{
Q_D(SingleApplication);
// Nobody to connect to
if( isPrimary() ) return false;
// Make sure the socket is connected
d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect );
d->socket->write( message );
bool dataWritten = d->socket->waitForBytesWritten( timeout );
d->socket->flush();

View File

@@ -36,10 +36,10 @@
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
@@ -48,15 +48,15 @@ class SingleApplication : public QAPPLICATION_CLASS
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
*/
* @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,
@@ -67,59 +67,59 @@ class SingleApplication : public QAPPLICATION_CLASS
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
*/
* @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}
*/
* @brief Returns if the instance is the primary instance
* @returns {bool}
*/
bool isPrimary();
/**
@brief Returns if the instance is a secondary instance
@returns {bool}
*/
* @brief Returns if the instance is a secondary instance
* @returns {bool}
*/
bool isSecondary();
/**
@brief Returns a unique identifier for the current instance
@returns {qint32}
*/
* @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}
*/
* @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.
*/
* @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:

View File

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

View File

@@ -43,9 +43,9 @@
#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
@@ -68,7 +68,7 @@ SingleApplicationPrivate::~SingleApplicationPrivate()
socket->close();
delete socket;
}
memory->lock();
InstancesInfo* inst = static_cast<InstancesInfo*>(memory->data());
if( server != nullptr ) {
@@ -79,7 +79,7 @@ SingleApplicationPrivate::~SingleApplicationPrivate()
inst->checksum = blockChecksum();
}
memory->unlock();
delete memory;
}
@@ -90,11 +90,11 @@ void SingleApplicationPrivate::genBlockServerName()
appData.addData( SingleApplication::app_t::applicationName().toUtf8() );
appData.addData( SingleApplication::app_t::organizationName().toUtf8() );
appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() );
if( ! (options & SingleApplication::Mode::ExcludeAppVersion) ) {
appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() );
}
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ) {
#ifdef Q_OS_WIN
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
@@ -102,7 +102,7 @@ void SingleApplicationPrivate::genBlockServerName()
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
#endif
}
// User level block requires a user specific data in the hash
if( options & SingleApplication::Mode::User ) {
#ifdef Q_OS_WIN
@@ -128,7 +128,7 @@ void SingleApplicationPrivate::genBlockServerName()
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("/", "_");
@@ -146,12 +146,12 @@ void SingleApplicationPrivate::initializeMemoryBlock()
void SingleApplicationPrivate::startPrimary()
{
Q_Q(SingleApplication);
// Successful creation means that no main process exists
// So we start a QLocalServer to listen for connections
QLocalServer::removeServer( blockServerName );
server = new QLocalServer();
// Restrict access to the socket according to the
// SingleApplication::Mode::User flag on User level or no restrictions
if( options & SingleApplication::Mode::User ) {
@@ -159,7 +159,7 @@ void SingleApplicationPrivate::startPrimary()
} else {
server->setSocketOptions( QLocalServer::WorldAccessOption );
}
server->listen( blockServerName );
QObject::connect(
server,
@@ -167,14 +167,14 @@ void SingleApplicationPrivate::startPrimary()
this,
&SingleApplicationPrivate::slotConnectionEstablished
);
// Reset the number of connections
InstancesInfo* inst = static_cast <InstancesInfo*>( memory->data() );
inst->primary = true;
inst->primaryPid = q->applicationPid();
inst->checksum = blockChecksum();
instanceNumber = 0;
}
@@ -189,62 +189,47 @@ void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType conne
if( socket == nullptr ) {
socket = new QLocalSocket();
}
// If already connected - we are done;
if( socket->state() == QLocalSocket::ConnectedState )
return;
// If not connect
if( socket->state() == QLocalSocket::UnconnectedState ||
socket->state() == QLocalSocket::ClosingState ) {
socket->connectToServer( blockServerName );
}
// Wait for being connected
if( socket->state() == QLocalSocket::ConnectingState ) {
socket->waitForConnected( msecs );
}
// Initialisation message according to the SingleApplication protocol
if( socket->state() == QLocalSocket::ConnectedState ) {
// Notify the parent that a new instance had been started;
QByteArray initMsg;
QDataStream writeStream(&initMsg, QIODevice::WriteOnly);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
writeStream.setVersion(QDataStream::Qt_5_6);
#endif
writeStream << blockServerName.toLatin1();
writeStream << static_cast<quint8>(connectionType);
writeStream << instanceNumber;
#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
quint16 checksum = qChecksum(initMsg.constData(), static_cast<quint32>(initMsg.length()));
writeStream << checksum;
// The header indicates the message length that follows
QByteArray header;
QDataStream headerStream(&header, QIODevice::WriteOnly);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
headerStream.setVersion(QDataStream::Qt_5_6);
#endif
headerStream << static_cast <quint64>( initMsg.length() );
socket->write( header );
socket->write( initMsg );
socket->flush();
@@ -254,57 +239,46 @@ void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType conne
quint16 SingleApplicationPrivate::blockChecksum()
{
#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;
memory->lock();
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
pid = inst->primaryPid;
memory->unlock();
return pid;
}
/**
@brief Executed when a connection has been made to the LocalServer
*/
* @brief Executed when a connection has been made to the LocalServer
*/
void SingleApplicationPrivate::slotConnectionEstablished()
{
QLocalSocket *nextConnSocket = server->nextPendingConnection();
connectionMap.insert(nextConnSocket, ConnectionInfo());
QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose,
[nextConnSocket, this]() {
auto &info = connectionMap[nextConnSocket];
Q_EMIT this->slotClientConnectionClosed( nextConnSocket, info.instanceId );
}
);
QObject::connect(nextConnSocket, &QLocalSocket::disconnected,
[nextConnSocket, this](){
connectionMap.remove(nextConnSocket);
nextConnSocket->deleteLater();
}
);
QObject::connect(nextConnSocket, &QLocalSocket::readyRead,
[nextConnSocket, this]() {
auto &info = connectionMap[nextConnSocket];
@@ -330,24 +304,24 @@ void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock )
if (!connectionMap.contains( sock )) {
return;
}
if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ) {
return;
}
QDataStream headerStream( sock );
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
headerStream.setVersion( QDataStream::Qt_5_6 );
#endif
// Read the header to know the message length
quint64 msgLen = 0;
headerStream >> msgLen;
ConnectionInfo &info = connectionMap[sock];
info.stage = StageBody;
info.msgLen = msgLen;
if ( sock->bytesAvailable() >= (qint64) msgLen ) {
readInitMessageBody( sock );
}
@@ -356,76 +330,63 @@ void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock )
void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
{
Q_Q(SingleApplication);
if (!connectionMap.contains( sock )) {
return;
}
ConnectionInfo &info = connectionMap[sock];
if( sock->bytesAvailable() < ( qint64 )info.msgLen ) {
return;
}
// Read the message body
QByteArray msgBytes = sock->read(info.msgLen);
QDataStream readStream(msgBytes);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
readStream.setVersion( QDataStream::Qt_5_6 );
#endif
// server name
QByteArray latin1Name;
readStream >> latin1Name;
// connection type
ConnectionType connectionType = InvalidConnection;
quint8 connTypeVal = InvalidConnection;
readStream >> connTypeVal;
connectionType = static_cast <ConnectionType>( connTypeVal );
// instance id
quint32 instanceId = 0;
readStream >> instanceId;
// checksum
quint16 msgChecksum = 0;
readStream >> msgChecksum;
#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
const quint16 actualChecksum = qChecksum( msgBytes.constData(), static_cast<quint32>( msgBytes.length() - sizeof( quint16 ) ) );
bool isValid = readStream.status() == QDataStream::Ok &&
QLatin1String(latin1Name) == blockServerName &&
msgChecksum == actualChecksum;
if( !isValid ) {
sock->close();
return;
}
info.instanceId = instanceId;
info.stage = StageConnected;
if( connectionType == NewInstance ||
( connectionType == SecondaryInstance &&
options & SingleApplication::Mode::SecondaryNotification ) )
{
Q_EMIT q->instanceStarted();
}
if (sock->bytesAvailable() > 0) {
Q_EMIT this->slotDataAvailable( sock, instanceId );
}

View File

@@ -1,6 +1,6 @@
From 2a390b5188fe070295090b1bd37273d12963b371 Mon Sep 17 00:00:00 2001
From: Laurent Trinques <scorpio@qelectrotech.org>
Date: Sat, 26 Sep 2020 22:52:52 +0200
From 579ee22f1d2bef560ec90d324a0e476b81faf495 Mon Sep 17 00:00:00 2001
From: Mathieu Bridon <mathieu@hashbang.fr>
Date: Tue, 7 Jan 2020 14:39:08 +0100
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 2901a30d5..1019a9870 100644
index 07e51fb..2a86b91 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.28.0
2.24.1

View File

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

View File

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

View File

@@ -12,6 +12,5 @@
<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" height="80" hotspot_y="40" version="0.70" width="50" hotspot_x="23" link_type="simple">
<definition type="element" orientation="dyyy" 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" height="100" hotspot_y="40" version="0.70" width="40" hotspot_x="20" link_type="simple">
<definition type="element" orientation="dyyy" 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" type="element" hotspot_y="29">
<definition height="50" width="30" link_type="terminal" hotspot_x="16" version="0.80" orientation="dyyy" 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" height="30" hotspot_y="20" type="element">
<definition width="20" link_type="simple" version="0.5" hotspot_x="9" orientation="dyyy" height="30" hotspot_y="20" type="element">
<uuid uuid="{5983fe6f-de69-4368-a387-a6ce3b9c2951}"/>
<names>
<name lang="pt">Massa</name>

View File

@@ -11,6 +11,5 @@
<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" height="60" hotspot_y="30" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="40" hotspot_y="20" type="element">
<definition width="40" link_type="simple" version="0.5" hotspot_x="22" orientation="dyyy" 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" height="40" hotspot_y="20" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="60" hotspot_y="30" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="100" hotspot_y="50" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="80" hotspot_y="41" type="element">
<definition width="40" link_type="simple" version="0.5" hotspot_x="23" orientation="dyyy" 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" height="80" hotspot_y="40" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="20" hotspot_y="10" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="20" hotspot_y="10" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="100" hotspot_y="40" type="element">
<definition width="70" link_type="simple" version="0.5" hotspot_x="34" orientation="dyyy" 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" type="element" hotspot_y="19">
<definition height="30" width="20" link_type="terminal" hotspot_x="10" version="0.80" orientation="dyyy" type="element" hotspot_y="19">
<uuid uuid="{e4e753a8-9fde-4e8e-9256-0cf99d67e3de}"/>
<names>
<name lang="pt">Terra</name>

View File

@@ -1,4 +1,4 @@
<definition width="20" height="20" hotspot_y="9" type="element" link_type="simple" hotspot_x="9" version="0.60">
<definition width="20" height="20" hotspot_y="9" type="element" orientation="dyyy" link_type="simple" hotspot_x="9" version="0.60">
<uuid uuid="{079913f8-18b5-4524-84bd-aadf75dfefbf}"/>
<names>
<name lang="cs">Bod</name>

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
<definition height="20" link_type="terminal" hotspot_x="9" width="20" hotspot_y="9" version="0.70" type="element">
<definition height="20" link_type="terminal" hotspot_x="9" width="20" orientation="dyyy" hotspot_y="9" version="0.70" type="element">
<uuid uuid="{8c0d3e9c-dc37-41d7-bfd5-fe4dbf8dc4fb}"/>
<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" version="0.70" type="element">
<definition width="10" hotspot_y="14" hotspot_x="5" height="30" link_type="terminal" orientation="dyyy" version="0.70" type="element">
<uuid uuid="{b5abb4c2-455d-45ff-95f2-328521f4e2e1}"/>
<names>
<name lang="en">Jump</name>

View File

@@ -1,4 +1,4 @@
<definition version="0.70" height="30" type="element" width="30" hotspot_x="14" link_type="simple" hotspot_y="12">
<definition version="0.70" height="30" type="element" width="30" hotspot_x="14" link_type="simple" hotspot_y="12" orientation="dyyy">
<uuid uuid="{3015326e-2599-495e-8ef0-c12ff5313dd0}"/>
<names>
<name lang="cs">Všestranný spoj</name>

View File

@@ -1,4 +1,4 @@
<definition type="element" hotspot_x="35" version="0.80" width="70" height="80" hotspot_y="46" link_type="simple">
<definition type="element" hotspot_x="35" orientation="dyyy" 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>

View File

@@ -11,6 +11,5 @@
<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" version="0.70" hotspot_y="4" link_type="terminal" hotspot_x="17">
<definition type="element" height="20" width="30" orientation="dyyy" version="0.70" hotspot_y="4" link_type="terminal" hotspot_x="17">
<uuid uuid="{709e6400-adc2-4faf-ba46-aa513d1dcaf1}"/>
<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" version="0.70">
<definition hotspot_y="4" height="20" hotspot_x="17" type="element" width="30" link_type="terminal" orientation="dyyy" version="0.70">
<uuid uuid="{9e88368e-1b20-4a56-8941-5d17a4cce2d4}"/>
<names>
<name lang="cs">Levé spojení</name>

View File

@@ -1,4 +1,4 @@
<definition link_type="terminal" width="30" hotspot_x="14" height="20" version="0.70" hotspot_y="4" type="element">
<definition link_type="terminal" width="30" hotspot_x="14" orientation="dyyy" height="20" version="0.70" hotspot_y="4" type="element">
<uuid uuid="{6e40fff3-691c-4622-b9aa-4ff930a5b981}"/>
<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">
<definition width="120" version="0.3" hotspot_x="71" hotspot_y="10" height="40" type="element" orientation="dyyy">
<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">
<definition width="120" version="0.3" hotspot_x="70" hotspot_y="10" height="40" type="element" orientation="dyyy">
<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">
<definition width="100" version="0.3" hotspot_x="60" hotspot_y="10" height="40" type="element" orientation="dyyy">
<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">
<definition width="130" version="0.3" hotspot_x="88" hotspot_y="18" height="40" type="element" orientation="dyyy">
<names>
<name lang="ar">كايبل رباعي النواة</name>
<name lang="It">Cavo ? 4G</name>

View File

@@ -1,4 +1,4 @@
<definition hotspot_y="3" version="0.51" hotspot_x="47" link_type="simple" width="100" type="element" height="20">
<definition hotspot_y="3" orientation="dyyy" version="0.51" hotspot_x="47" link_type="simple" width="100" type="element" height="20">
<uuid uuid="{9923c1a5-b49a-4243-923e-cde9d916ea2b}"/>
<names>
<name lang="fr">Cable 5G</name>

View File

@@ -1,4 +1,4 @@
<definition hotspot_y="3" version="0.51" hotspot_x="29" link_type="simple" width="60" type="element" height="20">
<definition hotspot_y="3" orientation="dyyy" version="0.51" hotspot_x="29" link_type="simple" width="60" type="element" height="20">
<uuid uuid="{5f981421-4c54-4cd5-929e-7f77dab94fef}"/>
<names>
<name lang="It">Cavo ? 3G</name>

View File

@@ -1,4 +1,4 @@
<definition width="70" link_type="simple" version="0.5" hotspot_x="15" height="20" hotspot_y="9" type="element">
<definition width="70" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="10" hotspot_y="-6" type="element">
<definition width="60" link_type="simple" version="0.5" hotspot_x="21" orientation="dyyy" 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" height="20" hotspot_y="9" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="20" hotspot_y="9" type="element">
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" orientation="dyyy" 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" version="0.80" type="element" height="10" link_type="simple">
<definition width="70" hotspot_x="35" hotspot_y="5" orientation="dyyy" 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" width="90">
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="36" hotspot_y="5" orientation="dyyy" 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" width="150">
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="73" hotspot_y="5" orientation="dyyy" 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" height="20" hotspot_y="4" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="14" orientation="dyyy" height="20" hotspot_y="4" type="element">
<uuid uuid="{a0e9e33a-ee38-4c08-8f40-c307da8d822b}"/>
<names>
<name lang="el">Διατομή αγωγού</name>

View File

@@ -11,6 +11,5 @@
<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" height="10" hotspot_y="5" type="element">
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" 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" height="10" hotspot_y="5" type="element">
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" orientation="dyyy" 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" height="10" hotspot_y="5" type="element">
<definition width="40" link_type="simple" version="0.5" hotspot_x="14" orientation="dyyy" 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" height="10" hotspot_y="5" type="element">
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" orientation="dyyy" 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" width="40" link_type="simple" type="element">
<definition height="80" hotspot_y="39" hotspot_x="17" version="0.5" orientation="dyyy" width="40" link_type="simple" type="element">
<uuid uuid="{9d2d8902-b36a-4974-b46d-4de6741f6b9b}"/>
<names>
<name lang="en">Terminal strip label</name>

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="110" height="20" type="element" hotspot_x="55" link_type="simple" hotspot_y="13">
<definition orientation="dyyy" version="0.51" width="110" height="20" type="element" hotspot_x="55" link_type="simple" hotspot_y="13">
<uuid uuid="{17db296d-b50e-47ea-9125-aa9c1837b523}"/>
<names>
<name lang="fr">Interruption bornier</name>

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="50" height="110" type="element" hotspot_x="15" link_type="simple" hotspot_y="54">
<definition orientation="dyyy" version="0.51" width="50" height="110" type="element" hotspot_x="15" link_type="simple" hotspot_y="54">
<uuid uuid="{387b403b-d81d-45ca-957d-e9014fe009a7}"/>
<names>
<name lang="fr">Borne double-étage (continuité)</name>

View File

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

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="50" height="10" type="element" hotspot_x="5" link_type="simple" hotspot_y="5">
<definition orientation="dyyy" version="0.51" width="50" height="10" type="element" hotspot_x="5" link_type="simple" hotspot_y="5">
<uuid uuid="{5075e5fb-c219-4643-89b8-8096d090ff3d}"/>
<names>
<name lang="en">Insertion bridge (double width)</name>

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
<uuid uuid="{bf7c6c86-5f96-4644-9f0f-004abccc79ad}"/>
<names>
<name lang="fr">Appareil (connexion en bas) - début</name>

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
<uuid uuid="{57a6e367-5c77-4d2b-bb60-0ca0651bdd31}"/>
<names>
<name lang="fr">Appareil (connexion en bas) - milieu</name>

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="67">
<uuid uuid="{d5016921-dc3b-4078-b45d-1cfe04796e14}"/>
<names>
<name lang="fr">Appareil (connexion en bas) - fin</name>

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<uuid uuid="{dfdbecfd-e99b-4f8f-ae0d-038e657bae8d}"/>
<names>
<name lang="fr">Appareil (connexion en haut)</name>

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<uuid uuid="{6a07de91-ed73-49b3-b01b-0b49a450697a}"/>
<names>
<name lang="fr">Appareil (connexion en haut) - début</name>

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<uuid uuid="{b153ee35-af29-4798-9252-577a6ed2737a}"/>
<names>
<name lang="fr">Appareil (connexion en haut) - milieu</name>

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<definition orientation="dyyy" version="0.51" width="30" height="80" type="element" hotspot_x="15" link_type="simple" hotspot_y="13">
<uuid uuid="{4aea9d8c-0dc6-4be7-b988-7ee87ae439fc}"/>
<names>
<name lang="fr">Appareil (connexion en haut) - fin</name>

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
<definition version="0.51" width="130" height="20" type="element" hotspot_x="15" link_type="simple" hotspot_y="12">
<definition orientation="dyyy" version="0.51" width="130" height="20" type="element" hotspot_x="15" link_type="simple" hotspot_y="12">
<uuid uuid="{079ef7df-a292-4e16-a6a2-dd813f7f1e41}"/>
<names>
<name lang="de">Verdrahtungsdefinition</name>

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">
<definition version="0.80" link_type="simple" hotspot_y="13" type="element" height="250" hotspot_x="15" width="30" orientation="dyyy">
<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" height="30" hotspot_y="4" type="element">
<definition width="50" link_type="simple" version="0.5" hotspot_x="20" orientation="dyyy" 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">
<definition width="290" version="0.4" hotspot_x="21" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
<uuid uuid="{4703BDD4-D90B-4E3F-AF60-679EB66DD5E4}"/><names>
<name lang="en">Terminal 12G1</name>
<name lang="es">Clema 12G1</name>

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

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

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

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

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">
<definition width="180" version="0.4" hotspot_x="18" hotspot_y="32" height="520" link_type="simple" type="element" orientation="dyyy">
<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" height="60" hotspot_y="29" type="element">
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" orientation="dyyy" 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" height="80" hotspot_y="39" type="element">
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" orientation="dyyy" 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">
<definition width="10" version="0.3" hotspot_x="5" hotspot_y="0" height="40" type="element" orientation="dyyy">
<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">
<definition width="20" version="0.4" hotspot_x="5" hotspot_y="15" height="30" link_type="terminal" type="element" ic="true" orientation="dyyy">
<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" link_type="terminal" type="element">
<definition width="30" hotspot_y="14" height="30" hotspot_x="11" version="0.51" orientation="dyyy" link_type="terminal" type="element">
<uuid uuid="{679c3cc2-61ad-4769-a835-2afc94bc536d}"/>
<names>
<name lang="ar">طرف توصيل</name>

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">
<definition width="20" version="0.4" hotspot_x="15" hotspot_y="15" height="20" link_type="terminal" type="element" ic="true" orientation="dyyy">
<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" link_type="terminal" type="element">
<definition width="20" hotspot_y="14" height="20" hotspot_x="14" version="0.51" orientation="dyyy" link_type="terminal" type="element">
<uuid uuid="{2ed786aa-0583-4058-aad6-af7eb76fad47}"/>
<names>
<name lang="ar">طرف توصيل</name>

View File

@@ -1,4 +1,4 @@
<definition width="30" version="0.4" hotspot_x="15" hotspot_y="15" height="30" link_type="terminal" type="element" ic="true">
<definition width="30" version="0.4" hotspot_x="15" hotspot_y="15" height="30" link_type="terminal" type="element" ic="true" orientation="dyyy">
<uuid uuid="{8047131B-B73F-4FFD-95B5-21A2974006C1}"/><names>
<name lang="ar">طرف توصيل</name>
<name lang="de">Klemme</name>

View File

@@ -1,4 +1,4 @@
<definition width="10" version="0.4" hotspot_x="4" hotspot_y="15" height="30" link_type="terminal" type="element" ic="true">
<definition width="10" version="0.4" hotspot_x="4" hotspot_y="15" height="30" link_type="terminal" type="element" ic="true" orientation="dyyy">
<uuid uuid="{2A9F30BF-E099-47DA-9D11-13983B8F7AA6}"/><names>
<name lang="ar">طرف توصيل</name>
<name lang="de">Klemme</name>

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