mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Compare commits
36 Commits
terminal_s
...
test_merge
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
32a90493bd | ||
|
|
eb5494c360 | ||
|
|
c0d9bf9548 | ||
|
|
f79b1a52bb | ||
|
|
3509a1c7a5 | ||
|
|
0dfe0c1613 | ||
|
|
497673d83b | ||
|
|
f18e6bd50f | ||
|
|
9b8c0101be | ||
|
|
0cc6558281 | ||
|
|
52f886e34b | ||
|
|
a1cf3711a1 | ||
|
|
b958848194 | ||
|
|
2d21391a09 | ||
|
|
beeeb252b4 | ||
|
|
6d2a88e85f | ||
|
|
8ef8a71680 | ||
|
|
8829974852 | ||
|
|
871a2642f4 | ||
|
|
9153588c94 | ||
|
|
f3368f159d | ||
|
|
9521a8aa0b | ||
|
|
c8691b243b | ||
|
|
9684d753ec | ||
|
|
15ca6096ca | ||
|
|
a92683f3fa | ||
|
|
9e54137224 | ||
|
|
91a56799a7 | ||
|
|
10e767c3e0 | ||
|
|
27a63bbf2b | ||
|
|
adc28d32b9 | ||
|
|
48cce42cfe | ||
|
|
6080a7b9c9 | ||
|
|
c5f1705745 | ||
|
|
a10709157d | ||
|
|
385d0ffd69 |
@@ -1,67 +0,0 @@
|
||||
---
|
||||
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
|
||||
|
||||
...
|
||||
22
.github/workflows/publish-edge-snap.yml
vendored
22
.github/workflows/publish-edge-snap.yml
vendored
@@ -1,22 +0,0 @@
|
||||
name: Publish Edge Snap
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
publish_amd64:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Checkout submodules
|
||||
run: git submodule update --init --recursive
|
||||
- uses: snapcore/action-build@v1
|
||||
id: build
|
||||
- uses: snapcore/action-publish@v1
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }}
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
release: stable
|
||||
10
.gitmodules
vendored
10
.gitmodules
vendored
@@ -1,10 +0,0 @@
|
||||
[submodule "pugixml"]
|
||||
path = pugixml
|
||||
url = https://github.com/zeux/pugixml.git
|
||||
[submodule "SingleApplication"]
|
||||
path = SingleApplication
|
||||
url = https://github.com/itay-grudev/SingleApplication.git
|
||||
[submodule "elements"]
|
||||
path = elements
|
||||
url = https://github.com/qelectrotech/qelectrotech-elements.git
|
||||
|
||||
154
CMakeLists.txt
154
CMakeLists.txt
@@ -1,154 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
include(cmake/hoto_update_cmake_message.cmake)
|
||||
|
||||
cmake_minimum_required(VERSION 3.14...3.19 FATAL_ERROR)
|
||||
|
||||
project(qelectrotech
|
||||
VERSION 0.9.0
|
||||
DESCRIPTION "QET is a CAD/CAE editor focusing on schematics drawing features."
|
||||
HOMEPAGE_URL "https://qelectrotech.org/"
|
||||
LANGUAGES CXX)
|
||||
|
||||
include(cmake/copyright_message.cmake)
|
||||
|
||||
set(QET_DIR ${PROJECT_SOURCE_DIR})
|
||||
|
||||
# Add sub directories
|
||||
option(PACKAGE_TESTS "Build the tests" ON)
|
||||
if(PACKAGE_TESTS)
|
||||
message("Add sub directory tests")
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
include(cmake/paths_compilation_installation.cmake)
|
||||
include(cmake/start_options.cmake)
|
||||
include(cmake/developer_options.cmake)
|
||||
include(cmake/git_update_submodules.cmake)
|
||||
include(cmake/git_last_commit_sha.cmake)
|
||||
include(cmake/fetch_kdeaddons.cmake)
|
||||
include(cmake/fetch_singleapplication.cmake)
|
||||
include(cmake/fetch_pugixml.cmake)
|
||||
include(cmake/qet_compilation_vars.cmake)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
SET(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(
|
||||
QT
|
||||
NAMES
|
||||
Qt6
|
||||
Qt5
|
||||
COMPONENTS
|
||||
${QET_COMPONENTS}
|
||||
REQUIRED
|
||||
)
|
||||
|
||||
find_package(
|
||||
Qt${QT_VERSION_MAJOR}
|
||||
COMPONENTS
|
||||
${QET_COMPONENTS}
|
||||
REQUIRED)
|
||||
|
||||
set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui)
|
||||
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
|
||||
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${QET_DIR}/lang")
|
||||
qt5_add_translation(QM_FILES ${TS_FILES})
|
||||
|
||||
# als laatse
|
||||
include(cmake/define_definitions.cmake)
|
||||
|
||||
add_executable(
|
||||
${PROJECT_NAME}
|
||||
${QET_RES_FILES}
|
||||
${QET_SRC_FILES}
|
||||
${QM_FILES}
|
||||
${QET_DIR}/qelectrotech.qrc
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
PUBLIC
|
||||
PRIVATE
|
||||
pugixml::pugixml
|
||||
SingleApplication::SingleApplication
|
||||
${KF5_PRIVATE_LIBRARIES}
|
||||
${QET_PRIVATE_LIBRARIES}
|
||||
)
|
||||
|
||||
target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${QET_DIR}/sources/titleblock
|
||||
${QET_DIR}/sources/ui
|
||||
${QET_DIR}/sources/qetgraphicsitem
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui
|
||||
${QET_DIR}/sources/richtext
|
||||
${QET_DIR}/sources/factory
|
||||
${QET_DIR}/sources/properties
|
||||
${QET_DIR}/sources/dvevent
|
||||
${QET_DIR}/sources/editor
|
||||
${QET_DIR}/sources/editor/esevent
|
||||
${QET_DIR}/sources/editor/graphicspart
|
||||
${QET_DIR}/sources/editor/ui
|
||||
${QET_DIR}/sources/editor/UndoCommand
|
||||
${QET_DIR}/sources/undocommand
|
||||
${QET_DIR}/sources/diagramevent
|
||||
${QET_DIR}/sources/ElementsCollection
|
||||
${QET_DIR}/sources/ElementsCollection/ui
|
||||
${QET_DIR}/sources/autoNum
|
||||
${QET_DIR}/sources/autoNum/ui
|
||||
${QET_DIR}/sources/ui/configpage
|
||||
${QET_DIR}/sources/SearchAndReplace
|
||||
${QET_DIR}/sources/SearchAndReplace/ui
|
||||
${QET_DIR}/sources/NameList
|
||||
${QET_DIR}/sources/NameList/ui
|
||||
${QET_DIR}/sources/utils
|
||||
${QET_DIR}/pugixml/src
|
||||
${QET_DIR}/sources/dataBase
|
||||
${QET_DIR}/sources/dataBase/ui
|
||||
${QET_DIR}/sources/factory/ui
|
||||
${QET_DIR}/sources/print
|
||||
)
|
||||
|
||||
install(TARGETS ${PROJECT_NAME})
|
||||
if (NOT MINGW)
|
||||
|
||||
install(DIRECTORY ico/breeze-icons/16x16 DESTINATION ${QET_ICONS_PATH})
|
||||
install(DIRECTORY ico/breeze-icons/22x22 DESTINATION ${QET_ICONS_PATH})
|
||||
install(DIRECTORY ico/breeze-icons/32x32 DESTINATION ${QET_ICONS_PATH})
|
||||
install(DIRECTORY ico/breeze-icons/48x48 DESTINATION ${QET_ICONS_PATH})
|
||||
install(DIRECTORY ico/breeze-icons/64x64 DESTINATION ${QET_ICONS_PATH})
|
||||
install(DIRECTORY ico/breeze-icons/128x128 DESTINATION ${QET_ICONS_PATH})
|
||||
install(DIRECTORY ico/breeze-icons/256x256 DESTINATION ${QET_ICONS_PATH})
|
||||
install(DIRECTORY elements DESTINATION share/qelectrotech)
|
||||
install(DIRECTORY examples DESTINATION share/qelectrotech)
|
||||
install(DIRECTORY titleblocks DESTINATION share/qelectrotech)
|
||||
install(FILES LICENSE ELEMENTS.LICENSE CREDIT README ChangeLog DESTINATION share/doc/qelectrotech)
|
||||
install(FILES misc/org.qelectrotech.qelectrotech.desktop DESTINATION share/applications)
|
||||
install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages)
|
||||
install(FILES misc/qelectrotech.appdata.xml DESTINATION ${QET_APPDATA_PATH})
|
||||
install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH})
|
||||
|
||||
endif()
|
||||
30
CREDIT
30
CREDIT
@@ -1,33 +1,3 @@
|
||||
[ca]
|
||||
Gràcies a Qt Software per la biblioteca Qt ( http://www.qtsoftware.com/ ), amb llicència GNU/GPL.
|
||||
Gràcies al projecte KDE ( http://www.kde.org/ ).
|
||||
Gràcies a Loic per les seves explicacions d'ordre matemàtic.
|
||||
Gràcies a Remi Collet pels paquets Fedora.
|
||||
Gràcies a Laurent Trinques pels paquets Debian.
|
||||
Gràcies a `trem' pels paquets Mandriva.
|
||||
Gràcies a TuxFamily ( http://tuxfamily.org/ ) per a l'allotjament del projecte.
|
||||
Gràcies a `Nishiki' pels seus elements i el seu suport suport.
|
||||
Gràcies a qtcentre.org per la seva classe SingleApplication.
|
||||
Gràcies a Alfredo Carreto per les seves traduccions i correccions al castellà ( http://electronicosmx.net )
|
||||
Gràcies a 'Dr.Slump' et Sivio pour leurs traductions a l'italià
|
||||
Gràcies a Jose Carlos Martins per les seves traduccions al portuguès
|
||||
Gràcies a Pavel Fric per les seves traduccions al txec
|
||||
Gràcies a Pawel Smiech per les seves traduccions al polonès
|
||||
Gràcies a Yuriy Litkevich per les seves traduccions al rus
|
||||
Gràcies a Youssef Ouamalkran i Antoni Mirabete per les seves traduccions al català
|
||||
Gràcies a Gabi Mandoc per les seves traduccions al romanès
|
||||
Gràcies a Markus Budde i Jonas Stein et Noah Braden per les seves traduccions a l'alemany
|
||||
Gràcies a Mohamed Souabni per les seves traduccions a l'àrab
|
||||
Gràcies a Uroš Platiše per les seves traduccions a l'eslovè
|
||||
Gràcies a Antun Marakovic per les seves traduccions al croat
|
||||
Gràcies a Nikos Papadopoylos && Yannis Gyftomitros per les seves traduccions al grec
|
||||
Gràcies a Markos Chandras pels paquets Gentoo
|
||||
Gràcies a David pels paquets Slackware
|
||||
Gràcies a Chipsterjulien pels paquets Archlinux AUR
|
||||
Gràcies a Elbert de NL pels paquets OS/2
|
||||
Gràcies a Zloidemon pels paquets (port GCC)
|
||||
Gràcies a Mrbit per ebuild els paquets Gentoo
|
||||
|
||||
[en]
|
||||
Thanks to Qt Software for their Qt library ( http://www.qtsoftware.com/ ), licensed under GNU/GPL.
|
||||
Thanks to the KDE project ( http://www.kde.org/ ).
|
||||
|
||||
51
ChangeLog
51
ChangeLog
@@ -1,54 +1,3 @@
|
||||
====== ChangeLog from 0.8 to 0.9 ======
|
||||
|
||||
|
||||
*Diagram editor :
|
||||
Improved QElectroTech speed (launch qet, open project, function)
|
||||
A drop-down list has been added to the toolbar to change the size of the resize handles.
|
||||
|
||||
|
||||
*Element Editor:
|
||||
The "keep visual rotation" property of element texts is editable from the element editor.
|
||||
Thanks to the work of antonioaja it is now possible to import a dxf directly from the element editor in a completely transparent way for the user.
|
||||
In the background QElectroTech uses the dxf2elmt software. https://qelectrotech.org/forum/viewtopic.php?id=2265 https://github.com/antonioaja/dxf2elmt
|
||||
Improved responsiveness when multiple shapes are selected or deleted, especially when working on a large converted DXF element.
|
||||
https://qelectrotech.org/forum/viewtopic.php?pid=16612#p16612
|
||||
|
||||
*Other:
|
||||
Add a "side project" tab in the "about" window.
|
||||
In the general QElectroTech configuration, a drop down list allows to choose the scaling method for hdpi screens.
|
||||
Allow open polygons (i.e. polylines) when saving in dxf format.
|
||||
https://qelectrotech.org/forum/viewtopic.php?pid=16611#p16611
|
||||
|
||||
Added 'Other' option for slave device contact type.
|
||||
https://github.com/qelectrotech/qelectrotech-source-mirror/pull/222
|
||||
https://qelectrotech.org/forum/viewtopic.php?id=2264
|
||||
|
||||
*Logs:
|
||||
|
||||
Added a QElapsedTimer to calculate the time used to reload the item collection.
|
||||
Improved QElapsedTimer to calculate the time used to reload the item collection in seconds instead of ms.
|
||||
Added Linux pc.gpu.RAM information, but requires mesa-utils dependency on the Linux OS.
|
||||
Added information about mounted disk volumes.
|
||||
Added CPU architecture for which Qt was compiled in the aboutqetdialog widget and in the logs.
|
||||
Added MSVC support to MachineInfo.
|
||||
Added RAM information on Windows of available RAM.
|
||||
Added QElectroTech version to the log file.
|
||||
|
||||
|
||||
|
||||
* Elements collection :
|
||||
Improve collection 8274 elements in 1097 categories (i.e. 9371 files).
|
||||
|
||||
|
||||
|
||||
* macOS :
|
||||
Fix sqlite3 database export on macOS, now I use macports with Digikam scripts instead off Homebrew Package Manager.
|
||||
See: https://invent.kde.org/graphics/digikam/-/tree/master/project/bundles/macports
|
||||
|
||||
|
||||
*Bug fix:
|
||||
see: https://git.tuxfamily.org/qet/qet.git/log/?h=0.8.1
|
||||
|
||||
====== ChangeLog from 0.7 to 0.8 ======
|
||||
|
||||
|
||||
|
||||
338
ChangeLog.MD
338
ChangeLog.MD
@@ -1,338 +0,0 @@
|
||||
# Changelog
|
||||
|
||||
## [Unreleased](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/HEAD)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9...HEAD)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Apple silicon download is not working [\#400](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/400)
|
||||
- Apple silicon download is not working [\#394](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/394)
|
||||
- Differenciating connector for proper labeling [\#390](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/390)
|
||||
- Non-perpendicular connections [\#368](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/368)
|
||||
- using the wrong Application Data folder on Windows [\#325](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/325)
|
||||
- Unclear which PPA to use [\#321](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/321)
|
||||
- missing group functionality [\#318](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/318)
|
||||
- segfault due to calling method of uninitialized object [\#311](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/311)
|
||||
- Cannot open qelectrotech.app on macOS Sequoia 15.0 [\#307](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/307)
|
||||
- Dark Mode [\#301](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/301)
|
||||
- README 404 Not Found URL: qelectrotech.org/download.html needs to be qelectrotech.org/download.php [\#298](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/298)
|
||||
- Malware warning when trying to install dev version 0.100 [\#290](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/290)
|
||||
- The page sorting of folio [\#279](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/279)
|
||||
- Bad file name for translations [\#278](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/278)
|
||||
- Error using Portuguese Language [\#274](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/274)
|
||||
- Uninstaller [\#265](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/265)
|
||||
- New Maintainer [\#263](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/263)
|
||||
- crash on export project db \(sqlite\) [\#262](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/262)
|
||||
- https://qelectrotech.org/ is down for several days now ! [\#261](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/261)
|
||||
- right click on text crashes app [\#260](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/260)
|
||||
- broken link on github [\#259](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/259)
|
||||
- Build on Bullseye 11.5 fails [\#254](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/254)
|
||||
- Question about ARM target in future release [\#238](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/238)
|
||||
- Component library disappears completely after reset of program [\#87](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/87)
|
||||
- Can't change language in portable version [\#75](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/75)
|
||||
- Transformation Matrix for Element Editor [\#56](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/56)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Fixing translation file list in CMake [\#404](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/404) ([arummler](https://github.com/arummler))
|
||||
- Update dependencies to fix compilation errors [\#403](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/403) ([arummler](https://github.com/arummler))
|
||||
- Minor corrections to prevent crashes [\#401](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/401) ([Evilscrack](https://github.com/Evilscrack))
|
||||
- Correct compositeText alignment on copying [\#399](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/399) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- Better handling of conductors when moving [\#398](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/398) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- A few small improvements [\#395](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/395) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- qet\_de updated [\#388](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/388) ([Bisku](https://github.com/Bisku))
|
||||
- only calculate grid-point-size, when min != max [\#387](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/387) ([plc-user](https://github.com/plc-user))
|
||||
- Mouse hover text for dynamic text items [\#386](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/386) ([elevatormind](https://github.com/elevatormind))
|
||||
- improvement: adjust size of grid-dots with zoom-factor [\#384](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/384) ([plc-user](https://github.com/plc-user))
|
||||
- adjust zoom-factor to use cosmetic-line and fixed comments [\#383](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/383) ([plc-user](https://github.com/plc-user))
|
||||
- element-editor: fix jumping positions when rotate, mirror or flip [\#382](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/382) ([plc-user](https://github.com/plc-user))
|
||||
- unify some more code for Qt5 & Qt6 \(and more\) [\#379](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/379) ([plc-user](https://github.com/plc-user))
|
||||
- same simplifications as in \#376 "use the same code for Qt5 & Qt6" [\#377](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/377) ([plc-user](https://github.com/plc-user))
|
||||
- simplify and use the same code for Qt5 & Qt6 [\#376](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/376) ([plc-user](https://github.com/plc-user))
|
||||
- bordertitleblock: use same code for Qt5 & Qt6 for "numbering" rows [\#375](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/375) ([plc-user](https://github.com/plc-user))
|
||||
- some minor changes [\#374](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/374) ([plc-user](https://github.com/plc-user))
|
||||
- implement setting of point-size of grids [\#372](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/372) ([plc-user](https://github.com/plc-user))
|
||||
- some small changes for selective move [\#370](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/370) ([plc-user](https://github.com/plc-user))
|
||||
- Added slovak translation to org.qelectrotech.qelectrotech.desktop [\#369](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/369) ([prescott66](https://github.com/prescott66))
|
||||
- unify calls to "setRotation" for element-primitives again [\#367](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/367) ([plc-user](https://github.com/plc-user))
|
||||
- Added option to only move dynamic texts [\#365](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/365) ([scorpio810](https://github.com/scorpio810))
|
||||
- New variables for conductor text formulas [\#364](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/364) ([scorpio810](https://github.com/scorpio810))
|
||||
- Fix typo widht to width [\#362](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/362) ([pkess](https://github.com/pkess))
|
||||
- element-editor: add mirror and flip for "text" [\#361](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/361) ([plc-user](https://github.com/plc-user))
|
||||
- Add Swedish translation [\#360](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/360) ([scorpio810](https://github.com/scorpio810))
|
||||
- German text for launcher and debian package code style [\#359](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/359) ([pkess](https://github.com/pkess))
|
||||
- some more rotation, mirror and flip [\#358](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/358) ([plc-user](https://github.com/plc-user))
|
||||
- BugFix: Flip and Mirror of terminals [\#357](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/357) ([plc-user](https://github.com/plc-user))
|
||||
- element-editor: fix rotation and more [\#356](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/356) ([plc-user](https://github.com/plc-user))
|
||||
- minor: mostly typos [\#355](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/355) ([plc-user](https://github.com/plc-user))
|
||||
- a few translated shortcuts were still there ... fixed! [\#354](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/354) ([plc-user](https://github.com/plc-user))
|
||||
- FIX: some shortcuts do not work with language set to local [\#353](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/353) ([plc-user](https://github.com/plc-user))
|
||||
- fix movement of element, when origin is outside of graphics [\#352](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/352) ([plc-user](https://github.com/plc-user))
|
||||
- FIX copy-and-paste in element-editor: set paste-position to meaningful values [\#351](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/351) ([plc-user](https://github.com/plc-user))
|
||||
- some cleaning for element-file [\#350](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/350) ([plc-user](https://github.com/plc-user))
|
||||
- fix: properties in project-file [\#348](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/348) ([plc-user](https://github.com/plc-user))
|
||||
- translation: update German and English [\#347](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/347) ([plc-user](https://github.com/plc-user))
|
||||
- export: set maximum width / height according limitations in QPainter [\#346](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/346) ([plc-user](https://github.com/plc-user))
|
||||
- export: set maximum width / height according specifications of export-type [\#345](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/345) ([plc-user](https://github.com/plc-user))
|
||||
- some clean-up for element-file and in code [\#344](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/344) ([plc-user](https://github.com/plc-user))
|
||||
- minor: typos, comments, whitespace, translation [\#343](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/343) ([plc-user](https://github.com/plc-user))
|
||||
- Sort names in element-file by language-code [\#342](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/342) ([plc-user](https://github.com/plc-user))
|
||||
- more precise Log-Text for search of "qet\_tb\_generator" [\#341](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/341) ([plc-user](https://github.com/plc-user))
|
||||
- machine\_info: add entry for QETApp::configDir\(\) also for win [\#340](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/340) ([plc-user](https://github.com/plc-user))
|
||||
- remove dead code \(local variables that were never used\) [\#339](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/339) ([plc-user](https://github.com/plc-user))
|
||||
- minor changes [\#338](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/338) ([plc-user](https://github.com/plc-user))
|
||||
- Update of qet\_de [\#337](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/337) ([Bisku](https://github.com/Bisku))
|
||||
- rewrite code for executing “qet\_tb\_generator” plugin [\#335](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/335) ([plc-user](https://github.com/plc-user))
|
||||
- build-aux/snap/snapcraft.yaml: python3.8 -\> 3.10 [\#334](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/334) ([zultron](https://github.com/zultron))
|
||||
- corrected a few places where QETApp::documentDir\(\) should also be used [\#333](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/333) ([plc-user](https://github.com/plc-user))
|
||||
- add commandline-parameter "--data-dir" [\#332](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/332) ([plc-user](https://github.com/plc-user))
|
||||
- machine\_info: fix element-count and make static text a bit shorter [\#331](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/331) ([plc-user](https://github.com/plc-user))
|
||||
- formatting / whitespace - unify declarations [\#330](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/330) ([plc-user](https://github.com/plc-user))
|
||||
- Set default-location for projects to documents-dir. [\#329](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/329) ([plc-user](https://github.com/plc-user))
|
||||
- machine\_info.cpp: add explaining text for directory-list [\#328](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/328) ([plc-user](https://github.com/plc-user))
|
||||
- set config- and data-dir to system-specific paths [\#327](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/327) ([plc-user](https://github.com/plc-user))
|
||||
- Update qet\_cs.ts [\#326](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/326) ([pafri](https://github.com/pafri))
|
||||
- update German translation [\#324](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/324) ([plc-user](https://github.com/plc-user))
|
||||
- fix copyright-year [\#323](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/323) ([plc-user](https://github.com/plc-user))
|
||||
- PT-BR language update [\#322](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/322) ([gleissonjoaquim3](https://github.com/gleissonjoaquim3))
|
||||
- Fix: Only scroll diagram-view, when moved text leaves visible area [\#320](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/320) ([plc-user](https://github.com/plc-user))
|
||||
- Change Sorting of ElementInfo ComboBox [\#319](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/319) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- Revert "ElementEditor elmt\_info\_cb sorting changed" [\#317](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/317) ([scorpio810](https://github.com/scorpio810))
|
||||
- Fix typo and some whitespace [\#316](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/316) ([plc-user](https://github.com/plc-user))
|
||||
- Fix missing company-titleblocks in properties-dialog [\#315](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/315) ([plc-user](https://github.com/plc-user))
|
||||
- ElementEditor elmt\_info\_cb sorting changed [\#314](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/314) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- fix typos and whitespace [\#313](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/313) ([plc-user](https://github.com/plc-user))
|
||||
- Force light mode in collections like projects [\#312](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/312) ([Arusekk](https://github.com/Arusekk))
|
||||
- About QET: improvements in usability [\#310](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/310) ([plc-user](https://github.com/plc-user))
|
||||
- use MessageBox to inform user about additional info when importing scaled element [\#308](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/308) ([plc-user](https://github.com/plc-user))
|
||||
- make text for missing software "dxf2elmt" translatable [\#304](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/304) ([plc-user](https://github.com/plc-user))
|
||||
- QET\_ElementScaler: fix error for Qt 5.9 and added mirroring [\#303](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/303) ([plc-user](https://github.com/plc-user))
|
||||
- integrate "QET\_ElementScaler" as external software [\#302](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/302) ([plc-user](https://github.com/plc-user))
|
||||
- move code into else-clause to avoid possible crashes [\#300](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/300) ([plc-user](https://github.com/plc-user))
|
||||
- add terminal-names to connection in qet-file [\#297](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/297) ([plc-user](https://github.com/plc-user))
|
||||
- fix: editing SpinBoxes with keyboard lose focus [\#296](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/296) ([plc-user](https://github.com/plc-user))
|
||||
- Spanish lang update [\#295](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/295) ([joseyspain](https://github.com/joseyspain))
|
||||
- More spanish translations.Josey [\#294](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/294) ([joseyspain](https://github.com/joseyspain))
|
||||
- update German and English translations [\#293](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/293) ([plc-user](https://github.com/plc-user))
|
||||
- hide SVG background checkbox in print preferences [\#292](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/292) ([plc-user](https://github.com/plc-user))
|
||||
- fixed indentations of the remaining \*.cpp/\*.h files [\#291](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/291) ([plc-user](https://github.com/plc-user))
|
||||
- correct more indentations / whitespace [\#289](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/289) ([plc-user](https://github.com/plc-user))
|
||||
- update German and English translations [\#288](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/288) ([plc-user](https://github.com/plc-user))
|
||||
- some minor changes [\#286](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/286) ([plc-user](https://github.com/plc-user))
|
||||
- correct comments [\#285](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/285) ([plc-user](https://github.com/plc-user))
|
||||
- FIX SegFault: Disable menu-entry for DB-export when no project loaded [\#284](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/284) ([plc-user](https://github.com/plc-user))
|
||||
- changed some remaining "pt\_br" to "pt\_BR" [\#282](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/282) ([plc-user](https://github.com/plc-user))
|
||||
- add option "transparent background" in SVG-export [\#281](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/281) ([plc-user](https://github.com/plc-user))
|
||||
- Fix sizes [\#280](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/280) ([plc-user](https://github.com/plc-user))
|
||||
- added folder "company-titleblocks" \(incl. language-files\) [\#277](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/277) ([plc-user](https://github.com/plc-user))
|
||||
- update translations: de, en, nl [\#276](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/276) ([plc-user](https://github.com/plc-user))
|
||||
- fix: set default "company-element-dir" [\#275](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/275) ([plc-user](https://github.com/plc-user))
|
||||
- Fix Cmake build [\#273](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/273) ([De-Backer](https://github.com/De-Backer))
|
||||
- added "company-collection" as second user-collection [\#272](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/272) ([plc-user](https://github.com/plc-user))
|
||||
- corrected german texts for "line-style" [\#269](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/269) ([plc-user](https://github.com/plc-user))
|
||||
- Too many parts [\#268](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/268) ([scorpio810](https://github.com/scorpio810))
|
||||
- Merge Terminal strip to master [\#267](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/267) ([scorpio810](https://github.com/scorpio810))
|
||||
- Terminal strip [\#266](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/266) ([scorpio810](https://github.com/scorpio810))
|
||||
- Added new symbols [\#264](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/264) ([kamikazzyyyy](https://github.com/kamikazzyyyy))
|
||||
|
||||
## [0.9](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9) (2023-01-03)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2022/12/30...0.9)
|
||||
|
||||
## [0.9-dev-2022/12/30](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2022/12/30) (2022-12-30)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2022/08/15...0.9-dev-2022/12/30)
|
||||
|
||||
## [0.9-dev-2022/08/15](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2022/08/15) (2022-08-13)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2022/04/22...0.9-dev-2022/08/15)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Polylines always closed on dxf export [\#228](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/228)
|
||||
- Refreshing after making changes to elements [\#168](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/168)
|
||||
|
||||
## [9-dev-2022/04/22](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2022/04/22) (2022-04-09)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/09/09...9-dev-2022/04/22)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- File dialog should enforce suffix [\#206](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/206)
|
||||
- snap: Update stable release to core20 & introduce branch for stable releases [\#201](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/201)
|
||||
- Can we submit Flatpak to Flathub? [\#143](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/143)
|
||||
|
||||
## [9-dev-2021/09/09](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/09/09) (2021-09-08)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/06/28...9-dev-2021/09/09)
|
||||
|
||||
## [9-dev-2021/06/28](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/06/28) (2021-07-06)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/05/09...9-dev-2021/06/28)
|
||||
|
||||
## [9-dev-2021/05/09](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/05/09) (2021-05-09)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2021/05...9-dev-2021/05/09)
|
||||
|
||||
## [0.9-dev-2021/05](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2021/05) (2021-04-30)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8.0...0.9-dev-2021/05)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Rewrite how Properties are stored in the Project file [\#144](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/144) ([Murmele](https://github.com/Murmele))
|
||||
- Xml properties rebase2 [\#80](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/80) ([Murmele](https://github.com/Murmele))
|
||||
|
||||
## [0.8.0](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8.0) (2021-02-21)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev...0.8.0)
|
||||
|
||||
## [0.9-dev](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev) (2021-02-21)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8.rc...0.9-dev)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- QET font [\#110](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/110)
|
||||
|
||||
## [0.8.rc](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8.rc) (2020-12-01)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8-dev...0.8.rc)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- overlapping comparisons always evaluate to true [\#78](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/78)
|
||||
- New snap break HiDPI [\#41](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/41)
|
||||
|
||||
## [0.8-dev](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8-dev) (2019-08-06)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.7.0...0.8-dev)
|
||||
|
||||
## [0.7.0](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.7.0) (2019-07-17)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2a...0.7.0)
|
||||
|
||||
## [0.2a](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2a) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2b...0.2a)
|
||||
|
||||
## [0.2b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2b) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2rc1...0.2b)
|
||||
|
||||
## [0.2rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2rc1) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2rc2...0.2rc1)
|
||||
|
||||
## [0.2rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2rc2) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2...0.2rc2)
|
||||
|
||||
## [0.2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3a...0.2)
|
||||
|
||||
## [0.3a](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3a) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.11...0.3a)
|
||||
|
||||
## [0.11](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.11) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.21...0.11)
|
||||
|
||||
## [0.21](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.21) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.22...0.21)
|
||||
|
||||
## [0.22](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.22) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.70rc2...0.22)
|
||||
|
||||
## [0.70rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.70rc2) (2019-06-25)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.70rc1...0.70rc2)
|
||||
|
||||
## [0.70rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.70rc1) (2019-04-12)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.61...0.70rc1)
|
||||
|
||||
## [0.61](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.61) (2018-08-23)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6...0.61)
|
||||
|
||||
## [0.6](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6) (2018-03-06)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc4...0.6)
|
||||
|
||||
## [0.6rc4](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc4) (2018-01-12)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc3...0.6rc4)
|
||||
|
||||
## [0.6rc3](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc3) (2017-09-20)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc2...0.6rc3)
|
||||
|
||||
## [0.6rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc2) (2017-06-13)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc1...0.6rc2)
|
||||
|
||||
## [0.6rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc1) (2017-04-23)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5...0.6rc1)
|
||||
|
||||
## [0.5](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5) (2015-11-27)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5rc1...0.5)
|
||||
|
||||
## [0.5rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5rc1) (2015-10-30)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5b...0.5rc1)
|
||||
|
||||
## [0.5b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5b) (2015-10-04)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4...0.5b)
|
||||
|
||||
## [0.4](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4) (2015-02-20)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4rc2...0.4)
|
||||
|
||||
## [0.4rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4rc2) (2014-12-27)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4rc1...0.4rc2)
|
||||
|
||||
## [0.4rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4rc1) (2014-11-10)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4b...0.4rc1)
|
||||
|
||||
## [0.4b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4b) (2014-11-02)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3...0.4b)
|
||||
|
||||
## [0.3](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3) (2013-09-28)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3rc...0.3)
|
||||
|
||||
## [0.3rc](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3rc) (2013-09-10)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3b...0.3rc)
|
||||
|
||||
## [0.3b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3b) (2013-06-18)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1...0.3b)
|
||||
|
||||
## [0.1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1) (2008-03-08)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1rc1...0.1)
|
||||
|
||||
## [0.1rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1rc1) (2008-03-02)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1b...0.1rc1)
|
||||
|
||||
## [0.1b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1b) (2007-12-23)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/5cadf173c7b73460b62409c81568fc8999177d52...0.1b)
|
||||
|
||||
|
||||
|
||||
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
||||
2
Doxyfile
2
Doxyfile
@@ -38,7 +38,7 @@ PROJECT_NAME = QElectroTech
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = " 0.100.0-dev"
|
||||
PROJECT_NUMBER = " 0.8-dev"
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
|
||||
@@ -4,10 +4,6 @@ without any warranty of fitness for your purpose or working.
|
||||
The usage, the modification and the integration of the elements into electric
|
||||
diagrams is allowed without any condition, whatever the final license of the
|
||||
diagrams is.
|
||||
|
||||
Permission is not granted to use this software or any of the associated files
|
||||
as sample data for the purposes of building machine learning models.
|
||||
|
||||
If you redistribute all or a part of the QElectroTech collection, with or
|
||||
without any modification, out of an electric diagram, you must respect the
|
||||
conditions of the CC-BY license:
|
||||
@@ -23,9 +19,6 @@ fonctionne.
|
||||
L'utilisation, la modification et l'intégration des éléments dans des schémas
|
||||
électriques est autorisée sans condition, quelle que soit la licence finale des
|
||||
schémas.
|
||||
L'autorisation n'est pas accordée pour utiliser ce logiciel ou l'un des fichiers associés
|
||||
comme exemples de données aux fins de création de modèles d’apprentissage automatique.
|
||||
|
||||
Si vous redistribuez tout ou partie de la collection QElectroTech, avec ou sans
|
||||
modification, en dehors d'un schéma électrique, vous devrez respecter les
|
||||
conditions de la licence CC-BY :
|
||||
@@ -34,26 +27,6 @@ disponible en ligne http://creativecommons.org/licenses/by/3.0/ ou par
|
||||
courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco,
|
||||
California 94105, USA.
|
||||
|
||||
[de]
|
||||
Die mit QElectroTech zur Verfügung gestellte Sammlung von Elementen wird ohne
|
||||
Gewährleistung der Eignung für einen bestimmten Zweck oder der Funktions-
|
||||
fähigkeit zur Verfügung gestellt.
|
||||
Die Verwendung, Modifikation und Integration der Elemente in elektrische
|
||||
Schaltpläne ist uneingeschränkt erlaubt, unabhängig von der endgültigen Lizenz
|
||||
der Schaltpläne.
|
||||
Es ist nicht gestattet, diese Software oder eine der zugehörigen Dateien
|
||||
als Beispieldaten für die Erstellung von Modellen für maschinelles Lernen
|
||||
zu verwenden.
|
||||
Wenn Sie die gesamte QElectroTech-Sammlung oder Teile davon, mit oder ohne
|
||||
Modifikationen, aus einem Schaltplan weitergeben, müssen Sie die Bedingungen
|
||||
der CC-BY-Lizenz einhalten.
|
||||
Dieses Werk steht unter einer Creative Commons Attribution 3.0 Lizenz.
|
||||
Eine Kopie dieser Lizenz finden Sie unter:
|
||||
http://creativecommons.org/licenses/by/3.0/
|
||||
oder senden Sie einen Brief an:
|
||||
Creative Commons, 171 Second Street, Suite 300,
|
||||
San Francisco, Kalifornien, 94105, USA.
|
||||
|
||||
[ru]
|
||||
Коллекция элементов, поставляемая вместе с QElectroTech, поставляется "как есть"
|
||||
и без каких-либо гарантий пригодности для той или иной цели или работы.
|
||||
|
||||
33
INSTALL
33
INSTALL
@@ -1,14 +1,3 @@
|
||||
[ca]
|
||||
Dependències:
|
||||
libQt5 (paquets libqt5*)
|
||||
cupsys-bsd per imprimir
|
||||
|
||||
Com compilar:
|
||||
$ qmake (qmake-qt5 pels sistemes basats en Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[en]
|
||||
Requirements :
|
||||
libQt5 (see packages libqt5*)
|
||||
@@ -31,17 +20,6 @@ $ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[de]
|
||||
Abhängigkeiten:
|
||||
libQt5 (Pakete libqt5*)
|
||||
cupsys-bsd zum Drucken
|
||||
|
||||
Kompilieren:
|
||||
$ qmake (qmake-qt5 für Debian-basierende Systeme)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[ru]
|
||||
Зависимости:
|
||||
libQt5 (пакет libqt5*)
|
||||
@@ -75,6 +53,17 @@ $ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[ca]
|
||||
Dependències:
|
||||
libQt5 (paquets libqt5*)
|
||||
cupsys-bsd per imprimir
|
||||
|
||||
Com compilar:
|
||||
$ qmake (qmake-qt5 pels sistemes basats en Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[cs]
|
||||
Požadavky :
|
||||
libQt5 (viz balíček libqt5*)
|
||||
|
||||
1
LICENSE
1
LICENSE
@@ -7,7 +7,6 @@
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
|
||||
6
README
6
README
@@ -1,7 +1,3 @@
|
||||
[ca]
|
||||
QElectroTech és una aplicació Qt5 per crear esquemes elèctrics.
|
||||
QET utilitza el format XML per als seus elements i esquemes i inclou un editor d'esquemes, un editor d'elements i un editor de caixetins.
|
||||
|
||||
[en]
|
||||
QElectroTech is a Qt5 application to design electric diagrams.
|
||||
It uses XML files for elements and diagrams, and includes both a diagram editor, a element editor, and an titleblock editor.
|
||||
@@ -12,7 +8,7 @@ QET utilise le format XML pour ses éléments et ses schémas et inclut un édit
|
||||
|
||||
[de]
|
||||
QElectroTech ist eine Qt5 Software, um Schaltpläne zu erstellen.
|
||||
QET benutzt das XML Format für seine Bauteile und seine Projekte, und beinhaltet einen Schaltplaneditor, einen Bauteileditor sowie einen Schriftfeldeditor.
|
||||
QET benutzt das XML Format für seine Bauteile und seine Projekte, und beinhaltet einen Schaltplaneditor, einen Bauteileditor sowie einen Zeichnungskopfeditor.
|
||||
|
||||
|
||||
[ru]
|
||||
|
||||
105
README.md
105
README.md
@@ -15,27 +15,24 @@ The main goal of the developers is to provide a libre, easy to use and effective
|
||||
|
||||
### Version
|
||||
|
||||
The current stable version is 0.90 and was released on 2023.01.06.
|
||||
Once it has been officially released, the stable version is always frozen and is no longer developed.
|
||||
The current stable version is 0.70 and was released on 2019.07.13.
|
||||
Once it has been officialy released, the stable version is always frozen and is no longer developed.
|
||||
|
||||
New functionalities, bug and issue fixings are further made in the development version (currently 0.100), which can also be [downloaded](https://qelectrotech.org/download.php).
|
||||
New functionalities, bug and issue fixings are further made in the development version (currently 0.8), which can also be [downloaded](https://qelectrotech.org/download.html).
|
||||
|
||||
Users who want to test and take benefits from the last software implementations should use the development version. But... use it at your own risk, since things are sometimes broken or only partially implemented until they are done!
|
||||
Users who want to test and take benefits from the last software implementations should use the development version. But... use it at your own risk, since things are sometimes broken or only partialy implemented until they are done!
|
||||
|
||||
### License
|
||||
|
||||
The software is licensed under [GNU/GPL](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html).
|
||||
You are free to use, copy, modify and redistribute it under the terms of the license.
|
||||
|
||||
Like many other open source software, QElectroTech is provided as is, without any warranty.
|
||||
|
||||
Like many other open source softwares, QElectroTech is provided as it is, without any warranty.
|
||||
|
||||
### Development / technical choices
|
||||
|
||||
The development follows the classical way of free and open source software: the source code, written by a community of users, is freely accessible.
|
||||
* Get sources and sub-modules
|
||||
```txt
|
||||
git clone --recursive https://github.com/qelectrotech/qelectrotech-source-mirror.git
|
||||
```
|
||||
|
||||
Here are the technical choices made for the software development:
|
||||
|
||||
@@ -43,13 +40,11 @@ Here are the technical choices made for the software development:
|
||||
* Libraries: Qt 5.x
|
||||
* [KF5 Framework](https://github.com/KDE)
|
||||
[Cmake](https://cmake.org/install/)
|
||||
[kcoreaddons](https://github.com/KDE/kcoreaddons/tree/kf5)
|
||||
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons/tree/kf5).
|
||||
[kcoreaddons](https://github.com/KDE/kcoreaddons)
|
||||
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons).
|
||||
* Coding language: [C++](https://en.wikipedia.org/wiki/C%2B%2B)
|
||||
* GUI translations: [Qt Linguist](http://doc.qt.io/qt-5/qtlinguist-index.html)
|
||||
* Version control: [GIT](https://github.com/qelectrotech/qelectrotech-source-mirror.git)
|
||||
* Doxygen documentation :[Doxygen](https://download.qelectrotech.org/qet/doxygen/html/)
|
||||
* QtCreator qch doxygen :[QElectroTech.qch](https://download.qelectrotech.org/qet/doxygen/)
|
||||
* Version control: [GIT](https://git.tuxfamily.org/qet/qet.git/)
|
||||
* File format for projects, elements and titleblocks: [XML](http://www.w3schools.com/xml/xml_whatis.asp)
|
||||
* Main development platform: [GNU/Linux](http://getgnulinux.org/en/linux/)
|
||||
* Targeted platforms: Windows, GNU/Linux, Mac OS X, BSDs
|
||||
@@ -77,12 +72,12 @@ Take advantage of the modern GUI
|
||||
Toolbars and panels can be enabled/disabled, moved and displayed the way you want to work.
|
||||
Panels can be stacked on each other (as tabs) or docked on the sides (as docks) or completely separated from the main window (as windows).
|
||||
The GUI can fit to small or big screens, and even to multi-display configurations.
|
||||

|
||||

|
||||
|
||||
|
||||
The GUI of QElectroTech is translated in 25 languages.
|
||||
The GUI of QElectroTech is translated in 19 languages.
|
||||
You only need to restart the application for the new selected language to take effect.
|
||||

|
||||

|
||||
|
||||
Create technical documentation in professional quality
|
||||
|
||||
@@ -91,56 +86,56 @@ You can set vertical and horizontal headers (printed rulers) individually on and
|
||||
|
||||
Titlebocks can be created and edited with the embedded titleblock editor to perfectly suit your needs.
|
||||
Custom variables can be defined to display the informations you wish in the titleblock.
|
||||

|
||||

|
||||
|
||||
With only 2 mouse clicks you can add a full automatic generated table of content.
|
||||
Changes in the documentation are updated on the fly.
|
||||

|
||||

|
||||
|
||||
Choose from more than 8.200 symbols...
|
||||
Choose from more than 7.000 symbols...
|
||||
The embedded QET collection contains a rich library of electric, logic, pneumatic, hydraulic and fluid symbols.
|
||||
The library grows at every new release thanks to an active user community.
|
||||

|
||||

|
||||
|
||||
...or create your own collection
|
||||
|
||||
The embedded element editor is a nice tool to create your own elements (symbols or anything else).
|
||||
Your own elements are stored in the user collection.
|
||||

|
||||

|
||||
|
||||
Quickly find what you need
|
||||
|
||||
All collections can quickly be searched with the integrated search engine.
|
||||
Furthermore, the search request can be restricted to the folder of your choice.
|
||||

|
||||

|
||||
|
||||
Easily draw complex schematics
|
||||
|
||||
To add an element on the drawing area, it only needs a drag & drop from the collection panel.
|
||||

|
||||

|
||||
|
||||
Elements are automatically connected if they are aligned, or connected from point to point by pulling a conductor with the mouse.
|
||||

|
||||

|
||||
|
||||
The path of every conductor can be modified by moving its handles with the mouse.
|
||||

|
||||

|
||||
And of course, you can accurately zoom with the mouse wheel over the drawing area to catch the smallest details.
|
||||
|
||||
Link elements together to create cross references
|
||||
|
||||
Several types of element can be linked together to display a cross reference text.
|
||||
All types of cross references are automatically updated on the fly, you don't need to think about them if you make changes.
|
||||

|
||||

|
||||
To speed up your work, linkable elements are easily searched and shown.
|
||||

|
||||

|
||||
|
||||
|
||||
Export informations to a parts list
|
||||
Informations of all elements in the project can be exported to a .csv file that can be read and edited by any spreadsheet application.
|
||||

|
||||

|
||||
|
||||
This way, you can make your own parts list or bill of material using the full power of a spreadsheet program.
|
||||

|
||||

|
||||
Print to pdf and/or export your work to images
|
||||
|
||||
Your whole documentation or only selected parts of it can be printed to a real printer or to a pdf file.
|
||||
@@ -158,52 +153,6 @@ Alternatively, you can export to vector (svg) or pixel (png, jpg, bmp) format im
|
||||
* conductors num can be exported to csv file.
|
||||
* ***
|
||||
|
||||
Nomenclature
|
||||
|
||||
A new nomenclature tool appears in the menu: project -> Add a nomenclature.
|
||||
The nomenclature is presented in the form of a configurable table separated into two parts: the display (the form) and the content (the background).
|
||||
- Display: the size and position of the table, the margins between text and the table cell, the alignment of the text in the cells and the font. The configuration of the table headers and the table itself are separate.
|
||||
- Content: the information to display in the table and the order in which it should be displayed.
|
||||
|
||||

|
||||
|
||||
In order to speed up the establishment of a nomenclature, it is possible to export / import the display and content configurations separately. This is the "Configuration" part that can be seen in the photos above.
|
||||
|
||||
Behind the scenes, an SQLite database does the work, so setting up the content is nothing more or less than an SQL query created using a dialog (screenshot by right).
|
||||
The SQL query is configured as follows (from top to bottom in the screenshot):
|
||||
- “Available information”: the information to display;
|
||||
- "Filter": filter the information (is not empty, is empty, contains, does not contain, is equal to, is not equal to) only one filter can be applied per information, it is not possible combine several;
|
||||
- "Type of elements": allows you to filter on what type of element you want to obtain information.
|
||||
|
||||
At the bottom, a checkmark "SQL query" allows you to edit a personalized query, if the basic options are not sufficient.
|
||||
|
||||
When a nomenclature is too large to be contained in a single folio, it is possible to separate it on several folios, the tables of each folio are then linked together. When creating a nomenclature, this option is activated by default, which has the effect of adding the necessary number of folios, adding a table in each of them and linking them together.
|
||||
|
||||
Finally two buttons are available in the property panel:
|
||||
- "Fit the table to the folio": positions and adjusts the size and determines the number of rows in the table in relation to the folio;
|
||||
- "Apply geometry to all tables linked to this one": applies the three properties mentioned above to all linked tables in order to save time and maintain aesthetic consistency.
|
||||
|
||||
And to finish a table
|
||||

|
||||
|
||||
|
||||
Summary
|
||||
|
||||
The old summary has been completely removed from the code in order to make room for the new one which is exactly the same as the nomenclature (a large amount of the code is common), with the exception of the SQL query (and its dialog to configure it) which offers specific information for editing a summary.
|
||||
|
||||
Export of the internal database
|
||||
|
||||
The database used by the nomenclature and the summary can be exported in a “.sqlite” file.
|
||||
Currently this is irrelevant, as the function was created during development for debugging purposes, we left it.
|
||||
Note that the database will become increasingly important in the future of Qet.
|
||||
|
||||
|
||||
Export of the wiring list
|
||||
|
||||
In order to be able to use the wiring number printers more easily, the names of conductors can be exported in CSV format, the export respects the quantity of conductors in order to print the right quantity of numbers, for example a potential numbered 240 composed of 3 wires will give 6 × 240 (2 numbers per wire × 3 wires) in the CSV.
|
||||
|
||||
|
||||
|
||||
### Story
|
||||
|
||||
The QElectroTech project was founded in 2007 by two french students, Xavier and Benoit.
|
||||
@@ -223,7 +172,7 @@ Nowadays, QET is not only used by many individuals, teachers and students but al
|
||||
If you love QElectroTech, you can help developers to buy new hardware to test
|
||||
and implement new features. Thanks in advance for your generous donations.
|
||||
|
||||
For more information, look at [Paypal](https://www.paypal.com/donate/?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC&ssrt=1694606609672)
|
||||
|
||||
For more information, look at [Paypal](https://www.paypal.com/donate/?token=rqf80cP0Ck1F2jn4Y46G7tIPv9bq7x0crXkwt3GZ6OZYG6ihJYi8lZxmmQ8itsFwMUdd1G&country.x=GB&locale.x=GB)
|
||||
or at [leetchi.com](https://www.leetchi.com/c/qelectroteck)
|
||||
|
||||
|
||||
|
||||
Submodule SingleApplication deleted from cbe496bc01
228
SingleApplication/CHANGELOG.md
Normal file
228
SingleApplication/CHANGELOG.md
Normal file
@@ -0,0 +1,228 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
__3.0.18__
|
||||
----------
|
||||
|
||||
* Fallback to standard QApplication class on iOS and Android systems where
|
||||
the library is not supported.
|
||||
|
||||
* Added Build CI tests to verify the library builds successfully on Linux, Windows and MacOS across multiple Qt versions.
|
||||
|
||||
_Anton Filimonov_
|
||||
|
||||
__3.0.17__
|
||||
----------
|
||||
|
||||
* Fixed compilation warning/error caused by `geteuid()` on unix based systems.
|
||||
|
||||
_Iakov Kirilenko_
|
||||
|
||||
* Added CMake support
|
||||
|
||||
_Hennadii Chernyshchyk_
|
||||
|
||||
__3.0.16__
|
||||
----------
|
||||
|
||||
* Use geteuid and getpwuid to get username on Unix, fallback to environment variable.
|
||||
|
||||
_Jonas Kvinge_
|
||||
|
||||
__3.0.15__
|
||||
----------
|
||||
|
||||
* Bug Fix: sendMessage() might return false even though data was actually written.
|
||||
|
||||
_Jonas Kvinge_
|
||||
|
||||
__3.0.14__
|
||||
----------
|
||||
|
||||
* Fixed uninitialised variables in the `SingleApplicationPrivate` constructor.
|
||||
|
||||
__3.0.13a__
|
||||
----------
|
||||
|
||||
* Process socket events asynchronously
|
||||
* Fix undefined variable error on Windows
|
||||
|
||||
_Francis Giraldeau_
|
||||
|
||||
__3.0.12a__
|
||||
----------
|
||||
|
||||
* Removed signal handling.
|
||||
|
||||
__3.0.11a__
|
||||
----------
|
||||
|
||||
* Fixed bug where the message sent by the second process was not received
|
||||
correctly when the message is sent immediately following a connection.
|
||||
|
||||
_Francis Giraldeau_
|
||||
|
||||
* Refactored code and implemented shared memory block consistency checks
|
||||
via `qChecksum()` (CRC-16).
|
||||
* Explicit `qWarning` and `qCritical` when the library is unable to initialise
|
||||
correctly.
|
||||
|
||||
__3.0.10__
|
||||
----------
|
||||
|
||||
* Removed C style casts and eliminated all clang warnings. Fixed `instanceId`
|
||||
reading from only one byte in the message deserialization. Cleaned up
|
||||
serialization code using `QDataStream`. Changed connection type to use
|
||||
`quint8 enum` rather than `char`.
|
||||
* Renamed `SingleAppConnectionType` to `ConnectionType`. Added initialization
|
||||
values to all `ConnectionType` enum cases.
|
||||
|
||||
_Jedidiah Buck McCready_
|
||||
|
||||
__3.0.9__
|
||||
---------
|
||||
|
||||
* Added SingleApplicationPrivate::primaryPid() as a solution to allow
|
||||
bringing the primary window of an application to the foreground on
|
||||
Windows.
|
||||
|
||||
_Eelco van Dam from Peacs BV_
|
||||
|
||||
__3.0.8__
|
||||
---------
|
||||
|
||||
* Bug fix - changed QApplication::instance() to QCoreApplication::instance()
|
||||
|
||||
_Evgeniy Bazhenov_
|
||||
|
||||
__3.0.7a__
|
||||
----------
|
||||
|
||||
* Fixed compilation error with Mingw32 in MXE thanks to Vitaly Tonkacheyev.
|
||||
* Removed QMutex used for thread safe behaviour. The implementation now uses
|
||||
QCoreApplication::instance() to get an instance to SingleApplication for
|
||||
memory deallocation.
|
||||
|
||||
__3.0.6a__
|
||||
----------
|
||||
|
||||
* Reverted GetUserName API usage on Windows. Fixed bug with missing library.
|
||||
* Fixed bug in the Calculator example, preventing it's window to be raised
|
||||
on Windows.
|
||||
|
||||
Special thanks to Charles Gunawan.
|
||||
|
||||
__3.0.5a__
|
||||
----------
|
||||
|
||||
* Fixed a memory leak in the SingleApplicationPrivate destructor.
|
||||
|
||||
_Sergei Moiseev_
|
||||
|
||||
__3.0.4a__
|
||||
----------
|
||||
|
||||
* Fixed shadow and uninitialised variable warnings.
|
||||
|
||||
_Paul Walmsley_
|
||||
|
||||
__3.0.3a__
|
||||
----------
|
||||
|
||||
* Removed Microsoft Windows specific code for getting username due to
|
||||
multiple problems and compiler differences on Windows platforms. On
|
||||
Windows the shared memory block in User mode now includes the user's
|
||||
home path (which contains the user's username).
|
||||
|
||||
* Explicitly getting absolute path of the user's home directory as on Unix
|
||||
a relative path (`~`) may be returned.
|
||||
|
||||
__3.0.2a__
|
||||
----------
|
||||
|
||||
* Fixed bug on Windows when username containing wide characters causes the
|
||||
library to crash.
|
||||
|
||||
_Le Liu_
|
||||
|
||||
__3.0.1a__
|
||||
----------
|
||||
|
||||
* Allows the application path and version to be excluded from the server name
|
||||
hash. The following flags were added for this purpose:
|
||||
* `SingleApplication::Mode::ExcludeAppVersion`
|
||||
* `SingleApplication::Mode::ExcludeAppPath`
|
||||
* Allow a non elevated process to connect to a local server created by an
|
||||
elevated process run by the same user on Windows
|
||||
* Fixes a problem with upper case letters in paths on Windows
|
||||
|
||||
_Le Liu_
|
||||
|
||||
__v3.0a__
|
||||
---------
|
||||
|
||||
* Deprecated secondary instances count.
|
||||
* Added a sendMessage() method to send a message to the primary instance.
|
||||
* Added a receivedMessage() signal, emitted when a message is received from a
|
||||
secondary instance.
|
||||
* The SingleApplication constructor's third parameter is now a bool
|
||||
specifying if the current instance should be allowed to run as a secondary
|
||||
instance if there is already a primary instance.
|
||||
* The SingleApplication constructor accept a fourth parameter specifying if
|
||||
the SingleApplication block should be User-wide or System-wide.
|
||||
* SingleApplication no longer relies on `applicationName` and
|
||||
`organizationName` to be set. It instead concatenates all of the following
|
||||
data and computes a `SHA256` hash which is used as the key of the
|
||||
`QSharedMemory` block and the `QLocalServer`. Since at least
|
||||
`applicationFilePath` is always present there is no need to explicitly set
|
||||
any of the following prior to initialising `SingleApplication`.
|
||||
* `QCoreApplication::applicationName`
|
||||
* `QCoreApplication::applicationVersion`
|
||||
* `QCoreApplication::applicationFilePath`
|
||||
* `QCoreApplication::organizationName`
|
||||
* `QCoreApplication::organizationDomain`
|
||||
* User name or home directory path if in User mode
|
||||
* The primary instance is no longer notified when a secondary instance had
|
||||
been started by default. A `Mode` flag for this feature exists.
|
||||
* Added `instanceNumber()` which represents a unique identifier for each
|
||||
secondary instance started. When called from the primary instance will
|
||||
return `0`.
|
||||
|
||||
__v2.4__
|
||||
--------
|
||||
|
||||
* Stability improvements
|
||||
* Support for secondary instances.
|
||||
* The library now recovers safely after the primary process has crashed
|
||||
and the shared memory had not been deleted.
|
||||
|
||||
__v2.3__
|
||||
--------
|
||||
|
||||
* Improved pimpl design and inheritance safety.
|
||||
|
||||
_Vladislav Pyatnichenko_
|
||||
|
||||
__v2.2__
|
||||
--------
|
||||
|
||||
* The `QAPPLICATION_CLASS` macro can now be defined in the file including the
|
||||
Single Application header or with a `DEFINES+=` statement in the project file.
|
||||
|
||||
__v2.1__
|
||||
--------
|
||||
|
||||
* A race condition can no longer occur when starting two processes nearly
|
||||
simultaneously.
|
||||
|
||||
Fix issue [#3](https://github.com/itay-grudev/SingleApplication/issues/3)
|
||||
|
||||
__v2.0__
|
||||
--------
|
||||
|
||||
* SingleApplication is now being passed a reference to `argc` instead of a
|
||||
copy.
|
||||
|
||||
Fix issue [#1](https://github.com/itay-grudev/SingleApplication/issues/1)
|
||||
|
||||
* Improved documentation.
|
||||
43
SingleApplication/CMakeLists.txt
Normal file
43
SingleApplication/CMakeLists.txt
Normal file
@@ -0,0 +1,43 @@
|
||||
cmake_minimum_required(VERSION 3.1.0)
|
||||
|
||||
project(SingleApplication)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
# SingleApplication base class
|
||||
set(QAPPLICATION_CLASS QCoreApplication CACHE STRING "Inheritance class for SingleApplication")
|
||||
set_property(CACHE QAPPLICATION_CLASS PROPERTY STRINGS QApplication QGuiApplication QCoreApplication)
|
||||
|
||||
# Libary target
|
||||
add_library(${PROJECT_NAME} STATIC
|
||||
singleapplication.cpp
|
||||
singleapplication_p.cpp
|
||||
)
|
||||
|
||||
# Find dependencies
|
||||
find_package(Qt5Network)
|
||||
if(QAPPLICATION_CLASS STREQUAL QApplication)
|
||||
find_package(Qt5 COMPONENTS Widgets REQUIRED)
|
||||
elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication)
|
||||
find_package(Qt5 COMPONENTS Gui REQUIRED)
|
||||
else()
|
||||
find_package(Qt5 COMPONENTS Core REQUIRED)
|
||||
endif()
|
||||
add_compile_definitions(QAPPLICATION_CLASS=${QAPPLICATION_CLASS})
|
||||
|
||||
# Link dependencies
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Network)
|
||||
if(QAPPLICATION_CLASS STREQUAL QApplication)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets)
|
||||
elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Gui)
|
||||
else()
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE advapi32)
|
||||
endif()
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
24
SingleApplication/LICENSE
Normal file
24
SingleApplication/LICENSE
Normal file
@@ -0,0 +1,24 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Itay Grudev 2015 - 2016
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Note: Some of the examples include code not distributed under the terms of the
|
||||
MIT License.
|
||||
277
SingleApplication/README.md
Normal file
277
SingleApplication/README.md
Normal file
@@ -0,0 +1,277 @@
|
||||
SingleApplication
|
||||
=================
|
||||
|
||||
This is a replacement of the QtSingleApplication for `Qt5`.
|
||||
|
||||
Keeps the Primary Instance of your Application and kills each subsequent
|
||||
instances. It can (if enabled) spawn secondary (non-related to the primary)
|
||||
instances and can send data to the primary instance from secondary instances.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
The `SingleApplication` class inherits from whatever `Q[Core|Gui]Application`
|
||||
class you specify via the `QAPPLICATION_CLASS` macro (`QCoreApplication` is the
|
||||
default). Further usage is similar to the use of the `Q[Core|Gui]Application`
|
||||
classes.
|
||||
|
||||
The library sets up a `QLocalServer` and a `QSharedMemory` block. The first
|
||||
instance of your Application is your Primary Instance. It would check if the
|
||||
shared memory block exists and if not it will start a `QLocalServer` and listen
|
||||
for connections. Each subsequent instance of your application would check if the
|
||||
shared memory block exists and if it does, it will connect to the QLocalServer
|
||||
to notify the primary instance that a new instance had been started, after which
|
||||
it would terminate with status code `0`. In the Primary Instance
|
||||
`SingleApplication` would emit the `instanceStarted()` signal upon detecting
|
||||
that a new instance had been started.
|
||||
|
||||
The library uses `stdlib` to terminate the program with the `exit()` function.
|
||||
|
||||
You can use the library as if you use any other `QCoreApplication` derived
|
||||
class:
|
||||
|
||||
```cpp
|
||||
#include <QApplication>
|
||||
#include <SingleApplication.h>
|
||||
|
||||
int main( int argc, char* argv[] )
|
||||
{
|
||||
SingleApplication app( argc, argv );
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
```
|
||||
|
||||
To include the library files I would recommend that you add it as a git
|
||||
submodule to your project and include it's contents with a `.pri` file. Here is
|
||||
how:
|
||||
|
||||
```bash
|
||||
git submodule add git@github.com:itay-grudev/SingleApplication.git singleapplication
|
||||
```
|
||||
|
||||
**Qmake:**
|
||||
|
||||
Then include the `singleapplication.pri` file in your `.pro` project file.
|
||||
|
||||
```qmake
|
||||
include(singleapplication/singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QApplication
|
||||
```
|
||||
|
||||
**CMake:**
|
||||
|
||||
Then include the subdirectory in your `CMakeLists.txt` project file.
|
||||
|
||||
```cmake
|
||||
set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication")
|
||||
add_subdirectory(src/third-party/singleapplication)
|
||||
```
|
||||
|
||||
Also don't forget to specify which `QCoreApplication` class your app is using if it
|
||||
is not `QCoreApplication` as in examples above.
|
||||
|
||||
The `Instance Started` signal
|
||||
------------------------
|
||||
|
||||
The SingleApplication class implements a `instanceStarted()` signal. You can
|
||||
bind to that signal to raise your application's window when a new instance had
|
||||
been started, for example.
|
||||
|
||||
```cpp
|
||||
// window is a QWindow instance
|
||||
QObject::connect(
|
||||
&app,
|
||||
&SingleApplication::instanceStarted,
|
||||
&window,
|
||||
&QWindow::raise
|
||||
);
|
||||
```
|
||||
|
||||
Using `SingleApplication::instance()` is a neat way to get the
|
||||
`SingleApplication` instance for binding to it's signals anywhere in your
|
||||
program.
|
||||
|
||||
__Note:__ On Windows the ability to bring the application windows to the
|
||||
foreground is restricted. See [Windows specific implementations](Windows.md)
|
||||
for a workaround and an example implementation.
|
||||
|
||||
|
||||
Secondary Instances
|
||||
-------------------
|
||||
|
||||
If you want to be able to launch additional Secondary Instances (not related to
|
||||
your Primary Instance) you have to enable that with the third parameter of the
|
||||
`SingleApplication` constructor. The default is `false` meaning no Secondary
|
||||
Instances. Here is an example of how you would start a Secondary Instance send
|
||||
a message with the command line arguments to the primary instance and then shut
|
||||
down.
|
||||
|
||||
```cpp
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
SingleApplication app( argc, argv, true );
|
||||
|
||||
if( app.isSecondary() ) {
|
||||
app.sendMessage( app.arguments().join(' ')).toUtf8() );
|
||||
app.exit( 0 );
|
||||
}
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
```
|
||||
|
||||
*__Note:__ A secondary instance won't cause the emission of the
|
||||
`instanceStarted()` signal by default. See `SingleApplication::Mode` for more
|
||||
details.*
|
||||
|
||||
You can check whether your instance is a primary or secondary with the following
|
||||
methods:
|
||||
|
||||
```cpp
|
||||
app.isPrimary();
|
||||
// or
|
||||
app.isSecondary();
|
||||
```
|
||||
|
||||
*__Note:__ If your Primary Instance is terminated a newly launched instance
|
||||
will replace the Primary one even if the Secondary flag has been set.*
|
||||
|
||||
API
|
||||
---
|
||||
|
||||
### Members
|
||||
|
||||
```cpp
|
||||
SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 100 )
|
||||
```
|
||||
|
||||
Depending on whether `allowSecondary` is set, this constructor may terminate
|
||||
your app if there is already a primary instance running. Additional `Options`
|
||||
can be specified to set whether the SingleApplication block should work
|
||||
user-wide or system-wide. Additionally the `Mode::SecondaryNotification` may be
|
||||
used to notify the primary instance whenever a secondary instance had been
|
||||
started (disabled by default). `timeout` specifies the maximum time in
|
||||
milliseconds to wait for blocking operations.
|
||||
|
||||
*__Note:__ `argc` and `argv` may be changed as Qt removes arguments that it
|
||||
recognizes.*
|
||||
|
||||
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
|
||||
and the secondary instance.*
|
||||
|
||||
*__Note:__ Operating system can restrict the shared memory blocks to the same
|
||||
user, in which case the User/System modes will have no effect and the block will
|
||||
be user wide.*
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
bool SingleApplication::sendMessage( QByteArray message, int timeout = 100 )
|
||||
```
|
||||
|
||||
Sends `message` to the Primary Instance. Uses `timeout` as a the maximum timeout
|
||||
in milliseconds for blocking functions
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
bool SingleApplication::isPrimary()
|
||||
```
|
||||
|
||||
Returns if the instance is the primary instance.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
bool SingleApplication::isSecondary()
|
||||
```
|
||||
Returns if the instance is a secondary instance.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
quint32 SingleApplication::instanceId()
|
||||
```
|
||||
|
||||
Returns a unique identifier for the current instance.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
qint64 SingleApplication::primaryPid()
|
||||
```
|
||||
|
||||
Returns the process ID (PID) of the primary instance.
|
||||
|
||||
### Signals
|
||||
|
||||
```cpp
|
||||
void SingleApplication::instanceStarted()
|
||||
```
|
||||
|
||||
Triggered whenever a new instance had been started, except for secondary
|
||||
instances if the `Mode::SecondaryNotification` flag is not specified.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
void SingleApplication::receivedMessage( quint32 instanceId, QByteArray message )
|
||||
```
|
||||
|
||||
Triggered whenever there is a message received from a secondary instance.
|
||||
|
||||
---
|
||||
|
||||
### Flags
|
||||
|
||||
```cpp
|
||||
enum SingleApplication::Mode
|
||||
```
|
||||
|
||||
* `Mode::User` - The SingleApplication block should apply user wide. This adds
|
||||
user specific data to the key used for the shared memory and server name.
|
||||
This is the default functionality.
|
||||
* `Mode::System` – The SingleApplication block applies system-wide.
|
||||
* `Mode::SecondaryNotification` – Whether to trigger `instanceStarted()` even
|
||||
whenever secondary instances are started.
|
||||
* `Mode::ExcludeAppPath` – Excludes the application path from the server name
|
||||
(and memory block) hash.
|
||||
* `Mode::ExcludeAppVersion` – Excludes the application version from the server
|
||||
name (and memory block) hash.
|
||||
|
||||
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
|
||||
and the secondary instance.*
|
||||
|
||||
*__Note:__ Operating system can restrict the shared memory blocks to the same
|
||||
user, in which case the User/System modes will have no effect and the block will
|
||||
be user wide.*
|
||||
|
||||
---
|
||||
|
||||
Versioning
|
||||
----------
|
||||
|
||||
Each major version introduces either very significant changes or is not
|
||||
backwards compatible with the previous version. Minor versions only add
|
||||
additional features, bug fixes or performance improvements and are backwards
|
||||
compatible with the previous release. See [`CHANGELOG.md`](CHANGELOG.md) for
|
||||
more details.
|
||||
|
||||
Implementation
|
||||
--------------
|
||||
|
||||
The library is implemented with a QSharedMemory block which is thread safe and
|
||||
guarantees a race condition will not occur. It also uses a QLocalSocket to
|
||||
notify the main process that a new instance had been spawned and thus invoke the
|
||||
`instanceStarted()` signal and for messaging the primary instance.
|
||||
|
||||
Additionally the library can recover from being forcefully killed on *nix
|
||||
systems and will reset the memory block given that there are no other
|
||||
instances running.
|
||||
|
||||
License
|
||||
-------
|
||||
This library and it's supporting documentation are released under
|
||||
`The MIT License (MIT)` with the exception of the Qt calculator examples which
|
||||
is distributed under the BSD license.
|
||||
46
SingleApplication/Windows.md
Normal file
46
SingleApplication/Windows.md
Normal file
@@ -0,0 +1,46 @@
|
||||
Windows Specific Implementations
|
||||
================================
|
||||
|
||||
Setting the foreground window
|
||||
-----------------------------
|
||||
|
||||
In the `instanceStarted()` example in the `README` we demonstrated how an
|
||||
application can bring it's primary instance window whenever a second copy
|
||||
of the application is started.
|
||||
|
||||
On Windows the ability to bring the application windows to the foreground is
|
||||
restricted, see [`AllowSetForegroundWindow()`][AllowSetForegroundWindow] for more
|
||||
details.
|
||||
|
||||
The background process (the primary instance) can bring its windows to the
|
||||
foreground if it is allowed by the current foreground process (the secondary
|
||||
instance). To bypass this `SingleApplication` must be initialized with the
|
||||
`allowSecondary` parameter set to `true` and the `options` parameter must
|
||||
include `Mode::SecondaryNotification`, See `SingleApplication::Mode` for more
|
||||
details.
|
||||
|
||||
Here is an example:
|
||||
|
||||
```cpp
|
||||
if( app.isSecondary() ) {
|
||||
// This API requires LIBS += User32.lib to be added to the project
|
||||
AllowSetForegroundWindow( DWORD( app.primaryPid() ) );
|
||||
}
|
||||
|
||||
if( app.isPrimary() ) {
|
||||
QObject::connect(
|
||||
&app,
|
||||
&SingleApplication::instanceStarted,
|
||||
this,
|
||||
&App::instanceStarted
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
```cpp
|
||||
void App::instanceStarted() {
|
||||
QApplication::setActiveWindow( [window/widget to set to the foreground] );
|
||||
}
|
||||
```
|
||||
|
||||
[AllowSetForegroundWindow]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632668.aspx
|
||||
5
SingleApplication/examples/basic/basic.pro
Normal file
5
SingleApplication/examples/basic/basic.pro
Normal file
@@ -0,0 +1,5 @@
|
||||
# Single Application implementation
|
||||
include(../../singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QCoreApplication
|
||||
|
||||
SOURCES += main.cpp
|
||||
9
SingleApplication/examples/basic/main.cpp
Normal file
9
SingleApplication/examples/basic/main.cpp
Normal file
@@ -0,0 +1,9 @@
|
||||
#include <singleapplication.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Allow secondary instances
|
||||
SingleApplication app( argc, argv );
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
73
SingleApplication/examples/calculator/button.cpp
Normal file
73
SingleApplication/examples/calculator/button.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtWidgets>
|
||||
|
||||
#include "button.h"
|
||||
|
||||
//! [0]
|
||||
Button::Button(const QString &text, QWidget *parent)
|
||||
: QToolButton(parent)
|
||||
{
|
||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
setText(text);
|
||||
}
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
QSize Button::sizeHint() const
|
||||
//! [1] //! [2]
|
||||
{
|
||||
QSize size = QToolButton::sizeHint();
|
||||
size.rheight() += 20;
|
||||
size.rwidth() = qMax(size.width(), size.height());
|
||||
return size;
|
||||
}
|
||||
//! [2]
|
||||
68
SingleApplication/examples/calculator/button.h
Normal file
68
SingleApplication/examples/calculator/button.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef BUTTON_H
|
||||
#define BUTTON_H
|
||||
|
||||
#include <QToolButton>
|
||||
|
||||
//! [0]
|
||||
class Button : public QToolButton
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Button(const QString &text, QWidget *parent = 0);
|
||||
|
||||
QSize sizeHint() const Q_DECL_OVERRIDE;
|
||||
};
|
||||
//! [0]
|
||||
|
||||
#endif
|
||||
406
SingleApplication/examples/calculator/calculator.cpp
Normal file
406
SingleApplication/examples/calculator/calculator.cpp
Normal file
@@ -0,0 +1,406 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtWidgets>
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#include "button.h"
|
||||
#include "calculator.h"
|
||||
|
||||
//! [0]
|
||||
Calculator::Calculator(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
sumInMemory = 0.0;
|
||||
sumSoFar = 0.0;
|
||||
factorSoFar = 0.0;
|
||||
waitingForOperand = true;
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
display = new QLineEdit("0");
|
||||
//! [1] //! [2]
|
||||
display->setReadOnly(true);
|
||||
display->setAlignment(Qt::AlignRight);
|
||||
display->setMaxLength(15);
|
||||
|
||||
QFont font = display->font();
|
||||
font.setPointSize(font.pointSize() + 8);
|
||||
display->setFont(font);
|
||||
//! [2]
|
||||
|
||||
//! [4]
|
||||
for (int i = 0; i < NumDigitButtons; ++i) {
|
||||
digitButtons[i] = createButton(QString::number(i), SLOT(digitClicked()));
|
||||
}
|
||||
|
||||
Button *pointButton = createButton(tr("."), SLOT(pointClicked()));
|
||||
Button *changeSignButton = createButton(tr("\302\261"), SLOT(changeSignClicked()));
|
||||
|
||||
Button *backspaceButton = createButton(tr("Backspace"), SLOT(backspaceClicked()));
|
||||
Button *clearButton = createButton(tr("Clear"), SLOT(clear()));
|
||||
Button *clearAllButton = createButton(tr("Clear All"), SLOT(clearAll()));
|
||||
|
||||
Button *clearMemoryButton = createButton(tr("MC"), SLOT(clearMemory()));
|
||||
Button *readMemoryButton = createButton(tr("MR"), SLOT(readMemory()));
|
||||
Button *setMemoryButton = createButton(tr("MS"), SLOT(setMemory()));
|
||||
Button *addToMemoryButton = createButton(tr("M+"), SLOT(addToMemory()));
|
||||
|
||||
Button *divisionButton = createButton(tr("\303\267"), SLOT(multiplicativeOperatorClicked()));
|
||||
Button *timesButton = createButton(tr("\303\227"), SLOT(multiplicativeOperatorClicked()));
|
||||
Button *minusButton = createButton(tr("-"), SLOT(additiveOperatorClicked()));
|
||||
Button *plusButton = createButton(tr("+"), SLOT(additiveOperatorClicked()));
|
||||
|
||||
Button *squareRootButton = createButton(tr("Sqrt"), SLOT(unaryOperatorClicked()));
|
||||
Button *powerButton = createButton(tr("x\302\262"), SLOT(unaryOperatorClicked()));
|
||||
Button *reciprocalButton = createButton(tr("1/x"), SLOT(unaryOperatorClicked()));
|
||||
Button *equalButton = createButton(tr("="), SLOT(equalClicked()));
|
||||
//! [4]
|
||||
|
||||
//! [5]
|
||||
QGridLayout *mainLayout = new QGridLayout;
|
||||
//! [5] //! [6]
|
||||
mainLayout->setSizeConstraint(QLayout::SetFixedSize);
|
||||
mainLayout->addWidget(display, 0, 0, 1, 6);
|
||||
mainLayout->addWidget(backspaceButton, 1, 0, 1, 2);
|
||||
mainLayout->addWidget(clearButton, 1, 2, 1, 2);
|
||||
mainLayout->addWidget(clearAllButton, 1, 4, 1, 2);
|
||||
|
||||
mainLayout->addWidget(clearMemoryButton, 2, 0);
|
||||
mainLayout->addWidget(readMemoryButton, 3, 0);
|
||||
mainLayout->addWidget(setMemoryButton, 4, 0);
|
||||
mainLayout->addWidget(addToMemoryButton, 5, 0);
|
||||
|
||||
for (int i = 1; i < NumDigitButtons; ++i) {
|
||||
int row = ((9 - i) / 3) + 2;
|
||||
int column = ((i - 1) % 3) + 1;
|
||||
mainLayout->addWidget(digitButtons[i], row, column);
|
||||
}
|
||||
|
||||
mainLayout->addWidget(digitButtons[0], 5, 1);
|
||||
mainLayout->addWidget(pointButton, 5, 2);
|
||||
mainLayout->addWidget(changeSignButton, 5, 3);
|
||||
|
||||
mainLayout->addWidget(divisionButton, 2, 4);
|
||||
mainLayout->addWidget(timesButton, 3, 4);
|
||||
mainLayout->addWidget(minusButton, 4, 4);
|
||||
mainLayout->addWidget(plusButton, 5, 4);
|
||||
|
||||
mainLayout->addWidget(squareRootButton, 2, 5);
|
||||
mainLayout->addWidget(powerButton, 3, 5);
|
||||
mainLayout->addWidget(reciprocalButton, 4, 5);
|
||||
mainLayout->addWidget(equalButton, 5, 5);
|
||||
setLayout(mainLayout);
|
||||
|
||||
setWindowTitle(tr("Calculator"));
|
||||
}
|
||||
//! [6]
|
||||
|
||||
//! [7]
|
||||
void Calculator::digitClicked()
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
int digitValue = clickedButton->text().toInt();
|
||||
if (display->text() == "0" && digitValue == 0.0)
|
||||
return;
|
||||
|
||||
if (waitingForOperand) {
|
||||
display->clear();
|
||||
waitingForOperand = false;
|
||||
}
|
||||
display->setText(display->text() + QString::number(digitValue));
|
||||
}
|
||||
//! [7]
|
||||
|
||||
//! [8]
|
||||
void Calculator::unaryOperatorClicked()
|
||||
//! [8] //! [9]
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
QString clickedOperator = clickedButton->text();
|
||||
double operand = display->text().toDouble();
|
||||
double result = 0.0;
|
||||
|
||||
if (clickedOperator == tr("Sqrt")) {
|
||||
if (operand < 0.0) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
result = std::sqrt(operand);
|
||||
} else if (clickedOperator == tr("x\302\262")) {
|
||||
result = std::pow(operand, 2.0);
|
||||
} else if (clickedOperator == tr("1/x")) {
|
||||
if (operand == 0.0) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
result = 1.0 / operand;
|
||||
}
|
||||
display->setText(QString::number(result));
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [9]
|
||||
|
||||
//! [10]
|
||||
void Calculator::additiveOperatorClicked()
|
||||
//! [10] //! [11]
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
QString clickedOperator = clickedButton->text();
|
||||
double operand = display->text().toDouble();
|
||||
|
||||
//! [11] //! [12]
|
||||
if (!pendingMultiplicativeOperator.isEmpty()) {
|
||||
//! [12] //! [13]
|
||||
if (!calculate(operand, pendingMultiplicativeOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
display->setText(QString::number(factorSoFar));
|
||||
operand = factorSoFar;
|
||||
factorSoFar = 0.0;
|
||||
pendingMultiplicativeOperator.clear();
|
||||
}
|
||||
|
||||
//! [13] //! [14]
|
||||
if (!pendingAdditiveOperator.isEmpty()) {
|
||||
//! [14] //! [15]
|
||||
if (!calculate(operand, pendingAdditiveOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
display->setText(QString::number(sumSoFar));
|
||||
} else {
|
||||
sumSoFar = operand;
|
||||
}
|
||||
|
||||
//! [15] //! [16]
|
||||
pendingAdditiveOperator = clickedOperator;
|
||||
//! [16] //! [17]
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [17]
|
||||
|
||||
//! [18]
|
||||
void Calculator::multiplicativeOperatorClicked()
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
QString clickedOperator = clickedButton->text();
|
||||
double operand = display->text().toDouble();
|
||||
|
||||
if (!pendingMultiplicativeOperator.isEmpty()) {
|
||||
if (!calculate(operand, pendingMultiplicativeOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
display->setText(QString::number(factorSoFar));
|
||||
} else {
|
||||
factorSoFar = operand;
|
||||
}
|
||||
|
||||
pendingMultiplicativeOperator = clickedOperator;
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [18]
|
||||
|
||||
//! [20]
|
||||
void Calculator::equalClicked()
|
||||
{
|
||||
double operand = display->text().toDouble();
|
||||
|
||||
if (!pendingMultiplicativeOperator.isEmpty()) {
|
||||
if (!calculate(operand, pendingMultiplicativeOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
operand = factorSoFar;
|
||||
factorSoFar = 0.0;
|
||||
pendingMultiplicativeOperator.clear();
|
||||
}
|
||||
if (!pendingAdditiveOperator.isEmpty()) {
|
||||
if (!calculate(operand, pendingAdditiveOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
pendingAdditiveOperator.clear();
|
||||
} else {
|
||||
sumSoFar = operand;
|
||||
}
|
||||
|
||||
display->setText(QString::number(sumSoFar));
|
||||
sumSoFar = 0.0;
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [20]
|
||||
|
||||
//! [22]
|
||||
void Calculator::pointClicked()
|
||||
{
|
||||
if (waitingForOperand)
|
||||
display->setText("0");
|
||||
if (!display->text().contains('.'))
|
||||
display->setText(display->text() + tr("."));
|
||||
waitingForOperand = false;
|
||||
}
|
||||
//! [22]
|
||||
|
||||
//! [24]
|
||||
void Calculator::changeSignClicked()
|
||||
{
|
||||
QString text = display->text();
|
||||
double value = text.toDouble();
|
||||
|
||||
if (value > 0.0) {
|
||||
text.prepend(tr("-"));
|
||||
} else if (value < 0.0) {
|
||||
text.remove(0, 1);
|
||||
}
|
||||
display->setText(text);
|
||||
}
|
||||
//! [24]
|
||||
|
||||
//! [26]
|
||||
void Calculator::backspaceClicked()
|
||||
{
|
||||
if (waitingForOperand)
|
||||
return;
|
||||
|
||||
QString text = display->text();
|
||||
text.chop(1);
|
||||
if (text.isEmpty()) {
|
||||
text = "0";
|
||||
waitingForOperand = true;
|
||||
}
|
||||
display->setText(text);
|
||||
}
|
||||
//! [26]
|
||||
|
||||
//! [28]
|
||||
void Calculator::clear()
|
||||
{
|
||||
if (waitingForOperand)
|
||||
return;
|
||||
|
||||
display->setText("0");
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [28]
|
||||
|
||||
//! [30]
|
||||
void Calculator::clearAll()
|
||||
{
|
||||
sumSoFar = 0.0;
|
||||
factorSoFar = 0.0;
|
||||
pendingAdditiveOperator.clear();
|
||||
pendingMultiplicativeOperator.clear();
|
||||
display->setText("0");
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [30]
|
||||
|
||||
//! [32]
|
||||
void Calculator::clearMemory()
|
||||
{
|
||||
sumInMemory = 0.0;
|
||||
}
|
||||
|
||||
void Calculator::readMemory()
|
||||
{
|
||||
display->setText(QString::number(sumInMemory));
|
||||
waitingForOperand = true;
|
||||
}
|
||||
|
||||
void Calculator::setMemory()
|
||||
{
|
||||
equalClicked();
|
||||
sumInMemory = display->text().toDouble();
|
||||
}
|
||||
|
||||
void Calculator::addToMemory()
|
||||
{
|
||||
equalClicked();
|
||||
sumInMemory += display->text().toDouble();
|
||||
}
|
||||
//! [32]
|
||||
//! [34]
|
||||
Button *Calculator::createButton(const QString &text, const char *member)
|
||||
{
|
||||
Button *button = new Button(text);
|
||||
connect(button, SIGNAL(clicked()), this, member);
|
||||
return button;
|
||||
}
|
||||
//! [34]
|
||||
|
||||
//! [36]
|
||||
void Calculator::abortOperation()
|
||||
{
|
||||
clearAll();
|
||||
display->setText(tr("####"));
|
||||
}
|
||||
//! [36]
|
||||
|
||||
//! [38]
|
||||
bool Calculator::calculate(double rightOperand, const QString &pendingOperator)
|
||||
{
|
||||
if (pendingOperator == tr("+")) {
|
||||
sumSoFar += rightOperand;
|
||||
} else if (pendingOperator == tr("-")) {
|
||||
sumSoFar -= rightOperand;
|
||||
} else if (pendingOperator == tr("\303\227")) {
|
||||
factorSoFar *= rightOperand;
|
||||
} else if (pendingOperator == tr("\303\267")) {
|
||||
if (rightOperand == 0.0)
|
||||
return false;
|
||||
factorSoFar /= rightOperand;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//! [38]
|
||||
117
SingleApplication/examples/calculator/calculator.h
Normal file
117
SingleApplication/examples/calculator/calculator.h
Normal file
@@ -0,0 +1,117 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CALCULATOR_H
|
||||
#define CALCULATOR_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QLineEdit;
|
||||
QT_END_NAMESPACE
|
||||
class Button;
|
||||
|
||||
//! [0]
|
||||
class Calculator : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Calculator(QWidget *parent = 0);
|
||||
|
||||
private slots:
|
||||
void digitClicked();
|
||||
void unaryOperatorClicked();
|
||||
void additiveOperatorClicked();
|
||||
void multiplicativeOperatorClicked();
|
||||
void equalClicked();
|
||||
void pointClicked();
|
||||
void changeSignClicked();
|
||||
void backspaceClicked();
|
||||
void clear();
|
||||
void clearAll();
|
||||
void clearMemory();
|
||||
void readMemory();
|
||||
void setMemory();
|
||||
void addToMemory();
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
private:
|
||||
//! [1] //! [2]
|
||||
Button *createButton(const QString &text, const char *member);
|
||||
void abortOperation();
|
||||
bool calculate(double rightOperand, const QString &pendingOperator);
|
||||
//! [2]
|
||||
|
||||
//! [3]
|
||||
double sumInMemory;
|
||||
//! [3] //! [4]
|
||||
double sumSoFar;
|
||||
//! [4] //! [5]
|
||||
double factorSoFar;
|
||||
//! [5] //! [6]
|
||||
QString pendingAdditiveOperator;
|
||||
//! [6] //! [7]
|
||||
QString pendingMultiplicativeOperator;
|
||||
//! [7] //! [8]
|
||||
bool waitingForOperand;
|
||||
//! [8]
|
||||
|
||||
//! [9]
|
||||
QLineEdit *display;
|
||||
//! [9] //! [10]
|
||||
|
||||
enum { NumDigitButtons = 10 };
|
||||
Button *digitButtons[NumDigitButtons];
|
||||
};
|
||||
//! [10]
|
||||
|
||||
#endif
|
||||
11
SingleApplication/examples/calculator/calculator.pro
Normal file
11
SingleApplication/examples/calculator/calculator.pro
Normal file
@@ -0,0 +1,11 @@
|
||||
QT += widgets
|
||||
|
||||
HEADERS = button.h \
|
||||
calculator.h
|
||||
SOURCES = button.cpp \
|
||||
calculator.cpp \
|
||||
main.cpp
|
||||
|
||||
# Single Application implementation
|
||||
include(../../singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QApplication
|
||||
71
SingleApplication/examples/calculator/main.cpp
Normal file
71
SingleApplication/examples/calculator/main.cpp
Normal file
@@ -0,0 +1,71 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
#include <singleapplication.h>
|
||||
|
||||
#include "calculator.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
SingleApplication app(argc, argv);
|
||||
|
||||
Calculator calc;
|
||||
|
||||
QObject::connect( &app, &SingleApplication::instanceStarted, [ &calc ]() {
|
||||
calc.raise();
|
||||
calc.activateWindow();
|
||||
});
|
||||
|
||||
calc.show();
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
25
SingleApplication/examples/sending_arguments/main.cpp
Normal file
25
SingleApplication/examples/sending_arguments/main.cpp
Normal file
@@ -0,0 +1,25 @@
|
||||
#include <singleapplication.h>
|
||||
#include "messagereceiver.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Allow secondary instances
|
||||
SingleApplication app( argc, argv, true );
|
||||
|
||||
MessageReceiver msgReceiver;
|
||||
|
||||
// If this is a secondary instance
|
||||
if( app.isSecondary() ) {
|
||||
app.sendMessage( app.arguments().join(' ').toUtf8() );
|
||||
return 0;
|
||||
} else {
|
||||
QObject::connect(
|
||||
&app,
|
||||
&SingleApplication::receivedMessage,
|
||||
&msgReceiver,
|
||||
&MessageReceiver::receivedMessage
|
||||
);
|
||||
}
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#include <QDebug>
|
||||
#include "messagereceiver.h"
|
||||
|
||||
MessageReceiver::MessageReceiver(QObject *parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void MessageReceiver::receivedMessage(int instanceId, QByteArray message)
|
||||
{
|
||||
qDebug() << "Received message from instance: " << instanceId;
|
||||
qDebug() << "Message Text: " << message;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
#ifndef MESSAGERECEIVER_H
|
||||
#define MESSAGERECEIVER_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class MessageReceiver : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MessageReceiver(QObject *parent = 0);
|
||||
public slots:
|
||||
void receivedMessage( int instanceId, QByteArray message );
|
||||
};
|
||||
|
||||
#endif // MESSAGERECEIVER_H
|
||||
@@ -0,0 +1,9 @@
|
||||
# Single Application implementation
|
||||
include(../../singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QCoreApplication
|
||||
|
||||
SOURCES += main.cpp \
|
||||
messagereceiver.cpp
|
||||
|
||||
HEADERS += \
|
||||
messagereceiver.h
|
||||
195
SingleApplication/singleapplication.cpp
Normal file
195
SingleApplication/singleapplication.cpp
Normal file
@@ -0,0 +1,195 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2018
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#include <QtCore/QTime>
|
||||
#include <QtCore/QThread>
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QSharedMemory>
|
||||
#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
|
||||
*/
|
||||
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.
|
||||
d->memory = new QSharedMemory( d->blockServerName );
|
||||
d->memory->attach();
|
||||
delete d->memory;
|
||||
#endif
|
||||
// Guarantee thread safe behaviour with a shared memory block.
|
||||
d->memory = new QSharedMemory( d->blockServerName );
|
||||
|
||||
// Create a shared memory block
|
||||
if( d->memory->create( sizeof( InstancesInfo ) ) ) {
|
||||
// Initialize the shared memory block
|
||||
d->memory->lock();
|
||||
d->initializeMemoryBlock();
|
||||
d->memory->unlock();
|
||||
} else {
|
||||
// Attempt to attach to the memory segment
|
||||
if( ! d->memory->attach() ) {
|
||||
qCritical() << "SingleApplication: Unable to attach to shared memory block.";
|
||||
qCritical() << d->memory->errorString();
|
||||
delete d;
|
||||
::exit( EXIT_FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>( d->memory->data() );
|
||||
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;
|
||||
inst->checksum = d->blockChecksum();
|
||||
d->instanceNumber = inst->secondary;
|
||||
d->startSecondary();
|
||||
if( d->options & Mode::SecondaryNotification ) {
|
||||
d->connectToPrimary( timeout, SingleApplicationPrivate::SecondaryInstance );
|
||||
}
|
||||
d->memory->unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
d->memory->unlock();
|
||||
|
||||
d->connectToPrimary( timeout, SingleApplicationPrivate::NewInstance );
|
||||
|
||||
delete d;
|
||||
|
||||
::exit( EXIT_SUCCESS );
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Destructor
|
||||
*/
|
||||
SingleApplication::~SingleApplication()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
delete d;
|
||||
}
|
||||
|
||||
bool SingleApplication::isPrimary()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->server != nullptr;
|
||||
}
|
||||
|
||||
bool SingleApplication::isSecondary()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->server == nullptr;
|
||||
}
|
||||
|
||||
quint32 SingleApplication::instanceId()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->instanceNumber;
|
||||
}
|
||||
|
||||
qint64 SingleApplication::primaryPid()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->primaryPid();
|
||||
}
|
||||
|
||||
bool SingleApplication::sendMessage( QByteArray message, int timeout )
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
|
||||
// Nobody to connect to
|
||||
if( isPrimary() ) return false;
|
||||
|
||||
// Make sure the socket is connected
|
||||
d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect );
|
||||
|
||||
d->socket->write( message );
|
||||
bool dataWritten = d->socket->waitForBytesWritten( timeout );
|
||||
d->socket->flush();
|
||||
return dataWritten;
|
||||
}
|
||||
136
SingleApplication/singleapplication.h
Normal file
136
SingleApplication/singleapplication.h
Normal file
@@ -0,0 +1,136 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2018
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#ifndef SINGLE_APPLICATION_H
|
||||
#define SINGLE_APPLICATION_H
|
||||
|
||||
#include <QtCore/QtGlobal>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
#include <QElapsedTimer>
|
||||
|
||||
#ifndef QAPPLICATION_CLASS
|
||||
#define QAPPLICATION_CLASS QCoreApplication
|
||||
#endif
|
||||
|
||||
#include QT_STRINGIFY(QAPPLICATION_CLASS)
|
||||
|
||||
class SingleApplicationPrivate;
|
||||
|
||||
/**
|
||||
@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_DECLARE_OPERATORS_FOR_FLAGS(SingleApplication::Options)
|
||||
|
||||
#endif // SINGLE_APPLICATION_H
|
||||
19
SingleApplication/singleapplication.pri
Normal file
19
SingleApplication/singleapplication.pri
Normal file
@@ -0,0 +1,19 @@
|
||||
QT += core network
|
||||
CONFIG += c++17
|
||||
|
||||
HEADERS += $$PWD/singleapplication.h \
|
||||
$$PWD/singleapplication_p.h
|
||||
SOURCES += $$PWD/singleapplication.cpp \
|
||||
$$PWD/singleapplication_p.cpp
|
||||
|
||||
INCLUDEPATH += $$PWD
|
||||
|
||||
win32 {
|
||||
msvc:LIBS += Advapi32.lib
|
||||
gcc:LIBS += -ladvapi32
|
||||
}
|
||||
|
||||
DISTFILES += \
|
||||
$$PWD/README.md \
|
||||
$$PWD/CHANGELOG.md \
|
||||
$$PWD/Windows.md
|
||||
444
SingleApplication/singleapplication_p.cpp
Normal file
444
SingleApplication/singleapplication_p.cpp
Normal file
@@ -0,0 +1,444 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2018
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
//
|
||||
// W A R N I N G !!!
|
||||
// -----------------
|
||||
//
|
||||
// This file is not part of the SingleApplication API. It is used purely as an
|
||||
// implementation detail. This header file may change from version to
|
||||
// version without notice, or may even be removed.
|
||||
//
|
||||
|
||||
#include <cstdlib>
|
||||
#include <cstddef>
|
||||
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QDataStream>
|
||||
#include <QtCore/QCryptographicHash>
|
||||
#include <QtNetwork/QLocalServer>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
|
||||
#include "singleapplication.h"
|
||||
#include "singleapplication_p.h"
|
||||
|
||||
#ifdef Q_OS_UNIX
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <pwd.h>
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include <windows.h>
|
||||
#include <lmcons.h>
|
||||
#endif
|
||||
|
||||
SingleApplicationPrivate::SingleApplicationPrivate( SingleApplication *q_ptr )
|
||||
: q_ptr( q_ptr )
|
||||
{
|
||||
server = nullptr;
|
||||
socket = nullptr;
|
||||
memory = nullptr;
|
||||
instanceNumber = -1;
|
||||
}
|
||||
|
||||
SingleApplicationPrivate::~SingleApplicationPrivate()
|
||||
{
|
||||
if( socket != nullptr ) {
|
||||
socket->close();
|
||||
delete socket;
|
||||
}
|
||||
|
||||
memory->lock();
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>(memory->data());
|
||||
if( server != nullptr ) {
|
||||
server->close();
|
||||
delete server;
|
||||
inst->primary = false;
|
||||
inst->primaryPid = -1;
|
||||
inst->checksum = blockChecksum();
|
||||
}
|
||||
memory->unlock();
|
||||
|
||||
delete memory;
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::genBlockServerName()
|
||||
{
|
||||
QCryptographicHash appData( QCryptographicHash::Sha256 );
|
||||
appData.addData( "SingleApplication", 17 );
|
||||
appData.addData( SingleApplication::app_t::applicationName().toUtf8() );
|
||||
appData.addData( SingleApplication::app_t::organizationName().toUtf8() );
|
||||
appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() );
|
||||
|
||||
if( ! (options & SingleApplication::Mode::ExcludeAppVersion) ) {
|
||||
appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() );
|
||||
}
|
||||
|
||||
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ) {
|
||||
#ifdef Q_OS_WIN
|
||||
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
|
||||
#else
|
||||
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
|
||||
#endif
|
||||
}
|
||||
|
||||
// User level block requires a user specific data in the hash
|
||||
if( options & SingleApplication::Mode::User ) {
|
||||
#ifdef Q_OS_WIN
|
||||
wchar_t username [ UNLEN + 1 ];
|
||||
// Specifies size of the buffer on input
|
||||
DWORD usernameLength = UNLEN + 1;
|
||||
if( GetUserNameW( username, &usernameLength ) ) {
|
||||
appData.addData( QString::fromWCharArray(username).toUtf8() );
|
||||
} else {
|
||||
appData.addData( 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);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Replace the backslash in RFC 2045 Base64 [a-zA-Z0-9+/=] to comply with
|
||||
// server naming requirements.
|
||||
blockServerName = appData.result().toBase64().replace("/", "_");
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::initializeMemoryBlock()
|
||||
{
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
|
||||
inst->primary = false;
|
||||
inst->secondary = 0;
|
||||
inst->primaryPid = -1;
|
||||
inst->checksum = blockChecksum();
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::startPrimary()
|
||||
{
|
||||
Q_Q(SingleApplication);
|
||||
|
||||
// Successful creation means that no main process exists
|
||||
// So we start a QLocalServer to listen for connections
|
||||
QLocalServer::removeServer( blockServerName );
|
||||
server = new QLocalServer();
|
||||
|
||||
// Restrict access to the socket according to the
|
||||
// SingleApplication::Mode::User flag on User level or no restrictions
|
||||
if( options & SingleApplication::Mode::User ) {
|
||||
server->setSocketOptions( QLocalServer::UserAccessOption );
|
||||
} else {
|
||||
server->setSocketOptions( QLocalServer::WorldAccessOption );
|
||||
}
|
||||
|
||||
server->listen( blockServerName );
|
||||
QObject::connect(
|
||||
server,
|
||||
&QLocalServer::newConnection,
|
||||
this,
|
||||
&SingleApplicationPrivate::slotConnectionEstablished
|
||||
);
|
||||
|
||||
// Reset the number of connections
|
||||
InstancesInfo* inst = static_cast <InstancesInfo*>( memory->data() );
|
||||
|
||||
inst->primary = true;
|
||||
inst->primaryPid = q->applicationPid();
|
||||
inst->checksum = blockChecksum();
|
||||
|
||||
instanceNumber = 0;
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::startSecondary()
|
||||
{
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType connectionType )
|
||||
{
|
||||
// Connect to the Local Server of the Primary Instance if not already
|
||||
// connected.
|
||||
if( socket == nullptr ) {
|
||||
socket = new QLocalSocket();
|
||||
}
|
||||
|
||||
// If already connected - we are done;
|
||||
if( socket->state() == QLocalSocket::ConnectedState )
|
||||
return;
|
||||
|
||||
// If not connect
|
||||
if( socket->state() == QLocalSocket::UnconnectedState ||
|
||||
socket->state() == QLocalSocket::ClosingState ) {
|
||||
socket->connectToServer( blockServerName );
|
||||
}
|
||||
|
||||
// Wait for being connected
|
||||
if( socket->state() == QLocalSocket::ConnectingState ) {
|
||||
socket->waitForConnected( msecs );
|
||||
}
|
||||
|
||||
// Initialisation message according to the SingleApplication protocol
|
||||
if( socket->state() == QLocalSocket::ConnectedState ) {
|
||||
// Notify the parent that a new instance had been started;
|
||||
QByteArray initMsg;
|
||||
QDataStream writeStream(&initMsg, QIODevice::WriteOnly);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
writeStream.setVersion(QDataStream::Qt_5_6);
|
||||
#endif
|
||||
|
||||
writeStream << blockServerName.toLatin1();
|
||||
writeStream << static_cast<quint8>(connectionType);
|
||||
writeStream << instanceNumber;
|
||||
|
||||
#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);
|
||||
#endif
|
||||
headerStream << static_cast <quint64>( initMsg.length() );
|
||||
|
||||
socket->write( header );
|
||||
socket->write( initMsg );
|
||||
socket->flush();
|
||||
socket->waitForBytesWritten( msecs );
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
*/
|
||||
void SingleApplicationPrivate::slotConnectionEstablished()
|
||||
{
|
||||
QLocalSocket *nextConnSocket = server->nextPendingConnection();
|
||||
connectionMap.insert(nextConnSocket, ConnectionInfo());
|
||||
|
||||
QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose,
|
||||
[nextConnSocket, this]() {
|
||||
auto &info = connectionMap[nextConnSocket];
|
||||
Q_EMIT this->slotClientConnectionClosed( nextConnSocket, info.instanceId );
|
||||
}
|
||||
);
|
||||
|
||||
QObject::connect(nextConnSocket, &QLocalSocket::disconnected,
|
||||
[nextConnSocket, this](){
|
||||
connectionMap.remove(nextConnSocket);
|
||||
nextConnSocket->deleteLater();
|
||||
}
|
||||
);
|
||||
|
||||
QObject::connect(nextConnSocket, &QLocalSocket::readyRead,
|
||||
[nextConnSocket, this]() {
|
||||
auto &info = connectionMap[nextConnSocket];
|
||||
switch(info.stage) {
|
||||
case StageHeader:
|
||||
readInitMessageHeader(nextConnSocket);
|
||||
break;
|
||||
case StageBody:
|
||||
readInitMessageBody(nextConnSocket);
|
||||
break;
|
||||
case StageConnected:
|
||||
Q_EMIT this->slotDataAvailable( nextConnSocket, info.instanceId );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock )
|
||||
{
|
||||
if (!connectionMap.contains( sock )) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
QDataStream headerStream( sock );
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
headerStream.setVersion( QDataStream::Qt_5_6 );
|
||||
#endif
|
||||
|
||||
// Read the header to know the message length
|
||||
quint64 msgLen = 0;
|
||||
headerStream >> msgLen;
|
||||
ConnectionInfo &info = connectionMap[sock];
|
||||
info.stage = StageBody;
|
||||
info.msgLen = msgLen;
|
||||
|
||||
if ( sock->bytesAvailable() >= (qint64) msgLen ) {
|
||||
readInitMessageBody( sock );
|
||||
}
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
|
||||
{
|
||||
Q_Q(SingleApplication);
|
||||
|
||||
if (!connectionMap.contains( sock )) {
|
||||
return;
|
||||
}
|
||||
|
||||
ConnectionInfo &info = connectionMap[sock];
|
||||
if( sock->bytesAvailable() < ( qint64 )info.msgLen ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Read the message body
|
||||
QByteArray msgBytes = sock->read(info.msgLen);
|
||||
QDataStream readStream(msgBytes);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
readStream.setVersion( QDataStream::Qt_5_6 );
|
||||
#endif
|
||||
|
||||
// server name
|
||||
QByteArray latin1Name;
|
||||
readStream >> latin1Name;
|
||||
|
||||
// connection type
|
||||
ConnectionType connectionType = InvalidConnection;
|
||||
quint8 connTypeVal = InvalidConnection;
|
||||
readStream >> connTypeVal;
|
||||
connectionType = static_cast <ConnectionType>( connTypeVal );
|
||||
|
||||
// instance id
|
||||
quint32 instanceId = 0;
|
||||
readStream >> instanceId;
|
||||
|
||||
// checksum
|
||||
quint16 msgChecksum = 0;
|
||||
readStream >> msgChecksum;
|
||||
|
||||
#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;
|
||||
|
||||
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 );
|
||||
}
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quint32 instanceId )
|
||||
{
|
||||
Q_Q(SingleApplication);
|
||||
Q_EMIT q->receivedMessage( instanceId, dataSocket->readAll() );
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::slotClientConnectionClosed( QLocalSocket *closedSocket, quint32 instanceId )
|
||||
{
|
||||
if( closedSocket->bytesAvailable() > 0 )
|
||||
Q_EMIT slotDataAvailable( closedSocket, instanceId );
|
||||
}
|
||||
99
SingleApplication/singleapplication_p.h
Normal file
99
SingleApplication/singleapplication_p.h
Normal file
@@ -0,0 +1,99 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2016
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
//
|
||||
// W A R N I N G !!!
|
||||
// -----------------
|
||||
//
|
||||
// This file is not part of the SingleApplication API. It is used purely as an
|
||||
// implementation detail. This header file may change from version to
|
||||
// version without notice, or may even be removed.
|
||||
//
|
||||
|
||||
#ifndef SINGLEAPPLICATION_P_H
|
||||
#define SINGLEAPPLICATION_P_H
|
||||
|
||||
#include <QtCore/QSharedMemory>
|
||||
#include <QtNetwork/QLocalServer>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
#include "singleapplication.h"
|
||||
|
||||
struct InstancesInfo {
|
||||
bool primary;
|
||||
quint32 secondary;
|
||||
qint64 primaryPid;
|
||||
quint16 checksum;
|
||||
};
|
||||
|
||||
struct ConnectionInfo {
|
||||
explicit ConnectionInfo() :
|
||||
msgLen(0), instanceId(0), stage(0) {}
|
||||
qint64 msgLen;
|
||||
quint32 instanceId;
|
||||
quint8 stage;
|
||||
};
|
||||
|
||||
class SingleApplicationPrivate : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum ConnectionType : quint8 {
|
||||
InvalidConnection = 0,
|
||||
NewInstance = 1,
|
||||
SecondaryInstance = 2,
|
||||
Reconnect = 3
|
||||
};
|
||||
enum ConnectionStage : quint8 {
|
||||
StageHeader = 0,
|
||||
StageBody = 1,
|
||||
StageConnected = 2,
|
||||
};
|
||||
Q_DECLARE_PUBLIC(SingleApplication)
|
||||
|
||||
SingleApplicationPrivate( SingleApplication *q_ptr );
|
||||
~SingleApplicationPrivate();
|
||||
|
||||
void genBlockServerName();
|
||||
void initializeMemoryBlock();
|
||||
void startPrimary();
|
||||
void startSecondary();
|
||||
void connectToPrimary(int msecs, ConnectionType connectionType );
|
||||
quint16 blockChecksum();
|
||||
qint64 primaryPid();
|
||||
void readInitMessageHeader(QLocalSocket *socket);
|
||||
void readInitMessageBody(QLocalSocket *socket);
|
||||
|
||||
SingleApplication *q_ptr;
|
||||
QSharedMemory *memory;
|
||||
QLocalSocket *socket;
|
||||
QLocalServer *server;
|
||||
quint32 instanceNumber;
|
||||
QString blockServerName;
|
||||
SingleApplication::Options options;
|
||||
QMap<QLocalSocket*, ConnectionInfo> connectionMap;
|
||||
|
||||
public Q_SLOTS:
|
||||
void slotConnectionEstablished();
|
||||
void slotDataAvailable( QLocalSocket*, quint32 );
|
||||
void slotClientConnectionClosed( QLocalSocket*, quint32 );
|
||||
};
|
||||
|
||||
#endif // SINGLEAPPLICATION_P_H
|
||||
@@ -1,73 +1,26 @@
|
||||
{
|
||||
"id": "org.qelectrotech.QElectroTech",
|
||||
"base-version": "5.15-23.08",
|
||||
"runtime": "org.kde.Platform",
|
||||
"runtime-version": "5.15-23.08",
|
||||
"runtime-version": "5.14",
|
||||
"sdk": "org.kde.Sdk",
|
||||
"command": "qelectrotech",
|
||||
"rename-desktop-file": "org.qelectrotech.qelectrotech.desktop",
|
||||
"rename-desktop-file": "qelectrotech.desktop",
|
||||
"rename-appdata-file": "qelectrotech.appdata.xml",
|
||||
"rename-icon": "qelectrotech",
|
||||
"copy-icon": true,
|
||||
"finish-args": [
|
||||
"--socket=wayland",
|
||||
"--socket=fallback-x11",
|
||||
"--socket=x11",
|
||||
"--device=dri",
|
||||
"--share=ipc",
|
||||
"--share=network",
|
||||
"--socket=cups",
|
||||
"--filesystem=host"
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
"name": "tkinter",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"pip3 install --prefix=${FLATPAK_DEST} ."
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/iwalton3/tkinter-standalone",
|
||||
"commit": "23c793bad2429f4a81eee9f50e2d07ae845b7785"
|
||||
}
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
"name": "tcl",
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://sourceforge.net/projects/tcl/files/Tcl/8.6.11/tcl8.6.11-src.tar.gz",
|
||||
"sha256": "8c0486668586672c5693d7d95817cb05a18c5ecca2f40e2836b9578064088258"
|
||||
}
|
||||
],
|
||||
"subdir": "unix",
|
||||
"post-install": [
|
||||
"chmod +w ${FLATPAK_DEST}/lib/libtcl8.6.so"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tk",
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://sourceforge.net/projects/tcl/files/Tcl/8.6.11/tk8.6.11-src.tar.gz",
|
||||
"sha256": "5228a8187a7f70fa0791ef0f975270f068ba9557f57456f51eb02d9d4ea31282"
|
||||
}
|
||||
],
|
||||
"subdir": "unix",
|
||||
"post-install": [
|
||||
"chmod +w ${FLATPAK_DEST}/lib/libtk8.6.so"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "qelectrotech",
|
||||
"buildsystem": "qmake",
|
||||
"post-install": [
|
||||
"mv ${FLATPAK_DEST}/share/mime/packages/qelectrotech.xml ${FLATPAK_DEST}/share/mime/packages/org.qelectrotech.QElectroTech.xml"
|
||||
"mv /app/share/mime/packages/qelectrotech.xml /app/share/mime/packages/org.qelectrotech.QElectroTech.xml"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
@@ -79,34 +32,6 @@
|
||||
"path": "patches/0001-build-Fix-the-installation-paths.patch"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "python3-PySimpleGUI",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} PySimpleGUI"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/d0/c3/c1ce811a1e48d5e0f2df0b393ff189fae4842ec840bb6e4db79c8da55e74/PySimpleGUI-4.41.2.tar.gz",
|
||||
"sha256": "cf42d9f61f28c8e790a9c031ce900a9cee5fd2f950da2f055ed36bbc487dcf11"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "python3-qet-tb-generator",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} qet-tb-generator"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/70/aa/ebde0dddfbde799a4e8cf0564e52f95089105a7f562739ee1d16ff5a495a/qet_tb_generator-1.3.1.tar.gz",
|
||||
"sha256": "52c9836387d54bc30ea29272068ec156fc65c3905e0cb863afd9418abc3c0907"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
From 14f0685ddcf3a7d64bb85a3e9a9ac97c369bb508 Mon Sep 17 00:00:00 2001
|
||||
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
|
||||
|
||||
---
|
||||
qelectrotech.pro | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
qelectrotech.pro | 14 +++++++-------
|
||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/qelectrotech.pro b/qelectrotech.pro
|
||||
index 7baddbb08..5dcda04b6 100644
|
||||
index 2901a30d5..1019a9870 100644
|
||||
--- a/qelectrotech.pro
|
||||
+++ b/qelectrotech.pro
|
||||
@@ -5,18 +5,18 @@
|
||||
@@ -5,20 +5,20 @@
|
||||
# Chemins utilises pour la compilation et l'installation de QET
|
||||
unix {
|
||||
# Chemins UNIX
|
||||
@@ -25,8 +25,12 @@ index 7baddbb08..5dcda04b6 100644
|
||||
QET_LANG_PATH = 'share/qelectrotech/lang/'
|
||||
QET_EXAMPLES_PATH = 'share/qelectrotech/examples/'
|
||||
- QET_LICENSE_PATH = 'doc/qelectrotech/'
|
||||
- QET_MIME_XML_PATH = '../share/mime/application/'
|
||||
- QET_MIME_DESKTOP_PATH = '../share/mimelnk/application/'
|
||||
- QET_MIME_PACKAGE_PATH = '../share/mime/packages/'
|
||||
+ QET_LICENSE_PATH = 'share/doc/qelectrotech/'
|
||||
+ QET_MIME_XML_PATH = 'share/mime/application/'
|
||||
+ QET_MIME_DESKTOP_PATH = 'share/mimelnk/application/'
|
||||
+ QET_MIME_PACKAGE_PATH = 'share/mime/packages/'
|
||||
QET_DESKTOP_PATH = 'share/applications/'
|
||||
QET_ICONS_PATH = 'share/icons/hicolor/'
|
||||
@@ -36,5 +40,5 @@ index 7baddbb08..5dcda04b6 100644
|
||||
}
|
||||
win32 {
|
||||
--
|
||||
2.35.1
|
||||
2.28.0
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
[ca]
|
||||
Col·lecció d'elements per a QElectroTech.
|
||||
|
||||
[fr]
|
||||
Collection d'éléments pour QElectroTech.
|
||||
|
||||
@@ -13,7 +10,6 @@ Bauteilsammlung für QElectroTech.
|
||||
[es]
|
||||
Collección de elementos para QElectroTech.
|
||||
|
||||
|
||||
[pt]
|
||||
Colecção de elementos para QElectroTech.
|
||||
|
||||
|
||||
20
build-aux/snap/local/launchers/qelectrotech-launch
Normal file → Executable file
20
build-aux/snap/local/launchers/qelectrotech-launch
Normal file → Executable file
@@ -1,5 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
# a KDE session forces the KDE Plasma platformtheme which is incompatible with QET
|
||||
# unset the ENV vars in that case to prevent loading of the theme
|
||||
if [ ! -z "$KDE_FULL_SESSION" ]; then
|
||||
unset KDE_FULL_SESSION
|
||||
fi
|
||||
|
||||
if echo "$XDG_CURRENT_DESKTOP" | grep -q KDE; then
|
||||
unset XDG_CURRENT_DESKTOP
|
||||
fi
|
||||
|
||||
# migrate .qet directory from SNAP_USER_DATA to SNAP_USER_COMMON
|
||||
from="$SNAP_USER_DATA/.qet"
|
||||
to="$SNAP_USER_COMMON/.qet"
|
||||
@@ -9,6 +19,16 @@ if [ ! -d "$to" ] && [ -d "$from" ]; then
|
||||
cp -av "$from/." "$to"
|
||||
fi
|
||||
|
||||
# link DXFtoQET so that QET finds it
|
||||
mkdir -p "$HOME/.qet"
|
||||
ln -snf "$SNAP/bin/DXFtoQET" "$HOME/.qet/DXFtoQET"
|
||||
|
||||
# start desktop portal. Open & save dialogs might fail if it is not running
|
||||
dbus-send --print-reply \
|
||||
--dest=org.freedesktop.DBus \
|
||||
/org/freedesktop/DBus \
|
||||
org.freedesktop.DBus.StartServiceByName \
|
||||
string:org.freedesktop.portal.Desktop \
|
||||
uint32:0
|
||||
|
||||
exec "${@}"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: qelectrotech
|
||||
title: QElectroTech
|
||||
base: core22
|
||||
base: core18
|
||||
adopt-info: qelectrotech
|
||||
license: GPL-2.0
|
||||
summary: Electrical diagram editor
|
||||
@@ -10,39 +10,45 @@ description: |
|
||||
|
||||
grade: stable
|
||||
confinement: strict
|
||||
compression: lzo
|
||||
|
||||
architectures:
|
||||
- build-on: amd64
|
||||
build-for: amd64
|
||||
- build-on: arm64
|
||||
build-for: arm64
|
||||
|
||||
run-on: amd64
|
||||
|
||||
layout:
|
||||
/usr/local/share/qelectrotech:
|
||||
symlink: $SNAP/usr/local/share/qelectrotech
|
||||
|
||||
/usr/share/libdrm/amdgpu.ids:
|
||||
symlink: $SNAP/kf5/usr/share/libdrm/amdgpu.ids
|
||||
|
||||
apps:
|
||||
qelectrotech:
|
||||
command: usr/local/bin/qelectrotech
|
||||
common-id: qelectrotech.desktop
|
||||
extensions:
|
||||
- kde-neon
|
||||
plugs: &plugs [opengl, unity7, home, removable-media, gsettings, network, cups-control, wayland, x11]
|
||||
command-chain:
|
||||
- bin/qelectrotech-launch
|
||||
desktop: usr/local/share/applications/qelectrotech.desktop
|
||||
extensions: [kde-neon]
|
||||
plugs: &plugs [opengl, unity7, home, removable-media, gsettings, network, cups-control]
|
||||
environment: &env
|
||||
__EGL_VENDOR_LIBRARY_DIRS: $SNAP/kf5/usr/share/glvnd/egl_vendor.d:$SNAP/usr/share/glvnd/egl_vendor.d
|
||||
TCL_LIBRARY: $SNAP/usr/share/tcltk/tcl8.6
|
||||
QT_QPA_PLATFORMTHEME: gtk3
|
||||
QT_AUTO_SCREEN_SCALE_FACTOR: 1
|
||||
HOME: $SNAP_USER_COMMON
|
||||
PYTHONPATH: $SNAP:$SNAP/lib/python3.10/site-packages:$SNAP/usr/lib/python3.10:$SNAP/usr/lib/python3.10/lib-dynload
|
||||
PYTHONPATH: $SNAP:$SNAP/lib/python3.6/site-packages:$SNAP/usr/lib/python3.6:$SNAP/usr/lib/python3.6/lib-dynload
|
||||
|
||||
qet-tb-generator:
|
||||
command: bin/qet_tb_generator
|
||||
extensions:
|
||||
- kde-neon
|
||||
command: bin/qelectrotech-launch $SNAP/bin/qet_tb_generator
|
||||
extensions: [kde-neon]
|
||||
plugs: *plugs
|
||||
environment: *env
|
||||
|
||||
|
||||
dxf-to-qet:
|
||||
command: bin/DXFtoQET
|
||||
extensions: [kde-neon]
|
||||
plugs: *plugs
|
||||
environment: *env
|
||||
|
||||
parts:
|
||||
launchers:
|
||||
plugin: dump
|
||||
@@ -52,8 +58,8 @@ parts:
|
||||
|
||||
qet-tb-generator:
|
||||
plugin: python
|
||||
source: https://github.com/raulroda/qet_tb_generator-plugin.git
|
||||
python-packages: [PySimpleGUI]
|
||||
python-version: python3
|
||||
source: https://github.com/qelectrotech/qet_tb_generator.git
|
||||
stage-packages:
|
||||
- python3-lxml
|
||||
- python3-tk
|
||||
@@ -62,50 +68,57 @@ parts:
|
||||
kde-sdk-setup:
|
||||
plugin: nil
|
||||
build-snaps:
|
||||
- kf5-5-110-qt-5-15-11-core22-sdk
|
||||
- kde-frameworks-5-core18-sdk
|
||||
build-packages:
|
||||
- g++
|
||||
- mesa-common-dev
|
||||
- libglvnd-dev
|
||||
- rsync
|
||||
override-build: |
|
||||
rsync -a --ignore-existing /snap/kf5-5-110-qt-5-15-11-core22-sdk/current/ /
|
||||
rsync -a --ignore-existing /snap/kde-frameworks-5-core18-sdk/current/ /
|
||||
|
||||
dxf-to-qet:
|
||||
after: [kde-sdk-setup]
|
||||
plugin: nil
|
||||
source: https://github.com/qelectrotech/DXFtoQET-2020.git
|
||||
override-build: |
|
||||
qmake "$SNAPCRAFT_PART_SRC/DXFtoQET.pro"
|
||||
make -j$(nproc)
|
||||
mkdir -p "$SNAPCRAFT_PART_INSTALL/bin"
|
||||
cp DXFtoQET "$SNAPCRAFT_PART_INSTALL/bin/"
|
||||
|
||||
|
||||
qelectrotech:
|
||||
after: [kde-sdk-setup]
|
||||
plugin: nil
|
||||
source: .
|
||||
stage-packages: [ git, sqlite3, xdg-user-dirs ]
|
||||
stage-packages: [ git, sqlite3 ]
|
||||
build-packages:
|
||||
- git
|
||||
- libsqlite3-dev
|
||||
override-build: |
|
||||
displayed_version=$(cat sources/qetversion.cpp | grep "return QVersionNumber{"| head -n 1| awk -F "{" '{ print $2 }' | awk -F "}" '{ print $1 }' | sed -e 's/,/./g' -e 's/ //g')
|
||||
snap_version="${displayed_version}-g$(git rev-parse --short=8 HEAD)"
|
||||
modified_displayed_version="${snap_version}.snap"
|
||||
override-pull: |
|
||||
snapcraftctl pull
|
||||
snap_version=$(git describe --dirty)
|
||||
modified_displayed_version=$snap_version".snap"
|
||||
sed -i -E "s|const QString displayedVersion =.*|const QString displayedVersion =\"$modified_displayed_version\";|" sources/qet.h
|
||||
craftctl set version="$snap_version"
|
||||
qmake "$CRAFT_PART_SRC/qelectrotech.pro"
|
||||
make -j${CRAFT_PARALLEL_BUILD_COUNT}
|
||||
make install INSTALL_ROOT="$CRAFT_PART_INSTALL"
|
||||
snapcraftctl set-version "$snap_version"
|
||||
override-build: |
|
||||
qmake "$SNAPCRAFT_PART_SRC/qelectrotech.pro"
|
||||
make -j$(nproc)
|
||||
make install INSTALL_ROOT="$SNAPCRAFT_PART_INSTALL"
|
||||
override-stage: |
|
||||
craftctl default
|
||||
snapcraftctl stage
|
||||
# patch desktop file with correct icon path
|
||||
SED_CMD="sed -i -E s|^Icon=(.*)|Icon=\${SNAP}/usr/local/share/icons/hicolor/128x128/apps/\1.png|g"
|
||||
$SED_CMD usr/local/share/applications/org.qelectrotech.qelectrotech.desktop
|
||||
$SED_CMD usr/local/share/applications/qelectrotech.desktop
|
||||
|
||||
cleanup:
|
||||
after: [qelectrotech, qet-tb-generator]
|
||||
after: [qelectrotech, dxf-to-qet, qet-tb-generator]
|
||||
plugin: nil
|
||||
build-snaps: [kf5-5-110-qt-5-15-11-core22]
|
||||
build-snaps: [core18, kde-frameworks-5-core18]
|
||||
override-prime: |
|
||||
# Remove all files from snap that are already included in the base snap or in
|
||||
# any connected content snaps
|
||||
set -eux
|
||||
for snap in "kf5-5-110-qt-5-15-11-core22"; do # List all content-snaps you're using here
|
||||
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$CRAFT_PRIME/{}" "$CRAFT_PRIME/usr/{}" \;
|
||||
for snap in "core18" "kde-frameworks-5-core18"; do # List all content-snaps and base snaps you're using here
|
||||
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$SNAPCRAFT_PRIME/{}" \;
|
||||
done
|
||||
for cruft in bug lintian man; do
|
||||
rm -rf $CRAFT_PRIME/usr/share/$cruft
|
||||
done
|
||||
find $CRAFT_PRIME/usr/share/doc/ -type f -not -name 'copyright' -delete
|
||||
find $CRAFT_PRIME/usr/share -type d -empty -delete
|
||||
|
||||
7
build-aux/windows/Lancer QET.bat
Executable file → Normal file
7
build-aux/windows/Lancer QET.bat
Executable file → Normal file
@@ -5,10 +5,7 @@ set current_dir=%~dp0
|
||||
cd /d %current_dir%
|
||||
|
||||
rem lance QElectroTech
|
||||
rem Sans option --config-dir, la configuration de QElectroTech seront dans
|
||||
rem "C:/Users/<USER>/AppData/Local/QElectroTech/QElectroTech"
|
||||
rem Sans l'option --data-dir, les données utilisateur (elements, titleblocks,
|
||||
rem log, ...) de QElectroTech sont stockées dans
|
||||
rem "C:/Users/<USER>/AppData/Roaming/QElectroTech/QElectroTech"
|
||||
rem Sans option --config-dir, la configuration de QElectroTech ainsi que la
|
||||
rem collection d'elements perso seront dans "%APPDATA%\qet"
|
||||
set command=bin\qelectrotech.exe --common-elements-dir=elements/ --common-tbt-dir=titleblocks/ --lang-dir=lang/ -style windowsvista %*
|
||||
@start %command%
|
||||
|
||||
391
build-aux/windows/QET.nsi
Normal file
391
build-aux/windows/QET.nsi
Normal file
@@ -0,0 +1,391 @@
|
||||
; this file is part of installer for QElectroTech
|
||||
; Copyright (C)2015 QElectroTech Team <scorpio@qelectrotech.org>
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or
|
||||
; modify it under the terms of the GNU General Public License
|
||||
; as published by the Free Software Foundation; either
|
||||
; version 2 of the License, or (at your option) any later version.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program; if not, write to the Free Software
|
||||
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
; WebSite : http://qelectrotech.org/
|
||||
|
||||
;--------------------------------
|
||||
;Include Modern UI
|
||||
|
||||
!include "MUI2.nsh"
|
||||
!include "FileFunc.nsh"
|
||||
!insertmacro Locate
|
||||
!include FileFunc.nsh
|
||||
!insertmacro GetParameters
|
||||
!insertmacro GetOptions
|
||||
|
||||
|
||||
|
||||
; MUI Settings
|
||||
;--------------------------------
|
||||
;General
|
||||
; General Product Description Definitions
|
||||
!define SOFT_NAME "QElectroTech"
|
||||
!define SOFT_VERSION "0.5-dev+4113"
|
||||
!define SOFT_WEB_SITE "http://qelectrotech.org/"
|
||||
!define SOFT_BUILD "1"
|
||||
|
||||
SetCompressor /final /solid lzma
|
||||
CRCCheck force
|
||||
XPStyle on
|
||||
BrandingText "${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}" ; Shows in the Bottom Left of the installer
|
||||
|
||||
;Name and file
|
||||
Name "${SOFT_NAME} ${SOFT_VERSION}"
|
||||
OutFile "Installer_${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}.exe"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$PROGRAMFILES\${SOFT_NAME}"
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey HKCU "Software\${SOFT_NAME}" ""
|
||||
|
||||
;Request application privileges for Windows Vista
|
||||
; we request for admin because we write stuff into the registry
|
||||
RequestExecutionLevel admin
|
||||
|
||||
;--------------------------------
|
||||
;Interface Settings
|
||||
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-install.ico"
|
||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-uninstall.ico"
|
||||
|
||||
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\images\wizard.bmp"
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
|
||||
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP ".\images\header.bmp" ; optional
|
||||
|
||||
;--------------------------------
|
||||
;Language Selection Dialog Settings
|
||||
|
||||
;Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "Software\${SOFT_NAME}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
|
||||
|
||||
;--------------------------------
|
||||
;Pages
|
||||
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "files\LICENSE"
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
; Finish page and checkbox to run QElectroTech
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\Lancer QET.bat"
|
||||
!define MUI_FINISHPAGE_RUN_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "$(Check)"
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
;--------------------------------
|
||||
;Languages
|
||||
;Since NSIS 2.26, the language selection dialog of Modern UI hides languages unsupported by the user's selected codepage by default.
|
||||
;To revert to the old behavior and display all languages, no matter what the user will see when they're selected, use MUI_LANGDLL_ALLLANGUAGES.
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
; For consistency, we limit the installer to languages supported by QElectroTech itself
|
||||
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
||||
!insertmacro MUI_LANGUAGE "French"
|
||||
!insertmacro MUI_LANGUAGE "Spanish"
|
||||
!insertmacro MUI_LANGUAGE "Russian"
|
||||
!insertmacro MUI_LANGUAGE "Portuguese"
|
||||
!insertmacro MUI_LANGUAGE "Czech"
|
||||
!insertmacro MUI_LANGUAGE "Polish"
|
||||
!insertmacro MUI_LANGUAGE "Greek"
|
||||
!insertmacro MUI_LANGUAGE "Arabic"
|
||||
!insertmacro MUI_LANGUAGE "German"
|
||||
!insertmacro MUI_LANGUAGE "Italian"
|
||||
!insertmacro MUI_LANGUAGE "Romanian"
|
||||
!insertmacro MUI_LANGUAGE "Catalan"
|
||||
!insertmacro MUI_LANGUAGE "Croatian"
|
||||
!insertmacro MUI_LANGUAGE "Dutch"
|
||||
!insertmacro MUI_LANGUAGE "Dutch_Belgium"
|
||||
!insertmacro MUI_LANGUAGE "Danish"
|
||||
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
!include lang_extra.nsh
|
||||
!include lang_extra_fr.nsh
|
||||
|
||||
|
||||
|
||||
SetOverwrite on
|
||||
Section "Main Program"
|
||||
SectionIn RO ; Read only, always installed
|
||||
|
||||
Setoutpath "$INSTDIR\bin\"
|
||||
File "./files/bin/${SOFT_NAME}.exe"
|
||||
|
||||
Setoutpath "$INSTDIR"
|
||||
File "./files/ChangeLog"
|
||||
File "./files/CREDIT"
|
||||
File "./files/ELEMENTS.LICENSE"
|
||||
File "./files/LICENSE"
|
||||
File "./files/qet_uninstall_file_associations.reg"
|
||||
File "./files/README"
|
||||
File "./files/register_filetypes.bat"
|
||||
File "Lancer QET.bat"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "./files/ico"
|
||||
|
||||
SectionEnd
|
||||
|
||||
;---------------------------
|
||||
SetOverwrite on
|
||||
SubSection "$(Elements)" SEC01
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Electric)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/10_electric"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Logic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/20_logic"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Hydraulic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/30_hydraulic"
|
||||
SectionEnd
|
||||
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Pneumatic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/50_pneumatic"
|
||||
SectionEnd
|
||||
|
||||
|
||||
;---------------------------------
|
||||
SubSection "$(Energy)"
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(water)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /r "./files/elements/60_energy/11_water"
|
||||
File /r "./files/elements/60_energy/"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Refrigeration)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /r "./files/elements/60_energy/21_refrigeration"
|
||||
File /r "./files/elements/60_energy/"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Solar_thermal)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /r "./files/elements/60_energy/31_solar_thermal"
|
||||
File /r "./files/elements/60_energy/"
|
||||
SectionEnd
|
||||
|
||||
SubSectionEnd
|
||||
SubSectionEnd
|
||||
;-------------------------------
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Lang)" SEC02
|
||||
SetOutPath "$INSTDIR\lang"
|
||||
File "./files/lang/*.qm"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Titleblocks)" SEC03
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "./files/titleblocks"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Examples)" SEC04
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "./files/examples"
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(var1)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(var2)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $(var3)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $(var4)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
;--------------------------------
|
||||
|
||||
;Installer Sections
|
||||
|
||||
Section ""
|
||||
SetOutPath "$INSTDIR"
|
||||
;Store installation folder
|
||||
WriteRegStr HKCU "Software\${SOFT_NAME}" "" $INSTDIR
|
||||
; write uninstall strings
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "DisplayName" "${SOFT_NAME} (remove only)"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "UninstallString" '"$INSTDIR\Uninstall.exe"'
|
||||
;Create uninstaller
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
; get the final path for the icons and the launch script
|
||||
Var /GLOBAL final_qet_exe
|
||||
Var /GLOBAL final_project_ico
|
||||
Var /GLOBAL final_element_ico
|
||||
Var /GLOBAL final_titleblock_ico
|
||||
|
||||
StrCpy $final_qet_exe "$INSTDIR\Lancer QET.bat"
|
||||
StrCpy $final_project_ico "$INSTDIR\\ico\application-x-qet-project.ico"
|
||||
StrCpy $final_element_ico "$INSTDIR\\ico\application-x-qet-element.ico"
|
||||
StrCpy $final_titleblock_ico "$INSTDIR\\ico\application-x-qet-titleblock.ico"
|
||||
|
||||
; write file associations registry keys
|
||||
WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Sch<EFBFBD>ma QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "<EFBFBD>l<EFBFBD>ment QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".titleblock" "" "qet_titleblock_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file" "" "Titleblock QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\DefaultIcon" "" "$final_titleblock_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
|
||||
SetShellVarContext all ; all users
|
||||
; shortcuts in the start menu
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}"
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Manual"
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Upgrade"
|
||||
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\\ico\qelectrotech.ico"
|
||||
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\Uninstall QElectroTech.lnk" "$INSTDIR\Uninstall.exe"
|
||||
|
||||
; shortcut on the desktop
|
||||
CreateShortCut "$DESKTOP\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/manual_0.7/build/index.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/joshua/html/QET_ru.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/builds/nightly/"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Donate.url" "InternetShortcut" "URL" "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC"
|
||||
|
||||
;changing $INSTDIR\elements\ *.elmt to read-only attribute
|
||||
${Locate} "$INSTDIR\elements\" "/L=FD /M=*.elmt" "LocateCallback"
|
||||
IfErrors 0 +2
|
||||
;MessageBox MB_OK "Error"
|
||||
SectionEnd
|
||||
|
||||
Function LocateCallback
|
||||
SetFileAttributes $R9 FILE_ATTRIBUTE_READONLY
|
||||
Push $0
|
||||
FunctionEnd
|
||||
;--------------------------------
|
||||
;Installer Functions
|
||||
|
||||
Function .onInit
|
||||
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
|
||||
;Auto-uninstall old before installing new
|
||||
ReadRegStr $R0 HKLM \
|
||||
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \
|
||||
"UninstallString"
|
||||
StrCmp $R0 "" done
|
||||
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
|
||||
"$(installed)" \
|
||||
IDOK uninst
|
||||
Abort
|
||||
|
||||
|
||||
;Run the uninstaller
|
||||
uninst:
|
||||
ClearErrors
|
||||
ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
|
||||
|
||||
IfErrors no_remove_uninstaller done
|
||||
;You can either use Delete /REBOOTOK in the uninstaller or add some code
|
||||
;here to remove the uninstaller. Use a registry key to check
|
||||
;whether the user has chosen to uninstall. If you are using an uninstaller
|
||||
;components page, make sure all sections are uninstalled.
|
||||
no_remove_uninstaller:
|
||||
|
||||
done:
|
||||
|
||||
FunctionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Descriptions
|
||||
|
||||
;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC
|
||||
|
||||
;Assign descriptions to sections
|
||||
;!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
;!insertmacro MUI_DESCRIPTION_TEXT ${CopyFiles} "CopyFiles"
|
||||
;!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Section
|
||||
|
||||
Section "Uninstall"
|
||||
SetShellVarContext all ; all users
|
||||
; remove start menu shortcuts
|
||||
RMDir /r "$SMPROGRAMS\${SOFT_NAME}"
|
||||
; remove shortcut on the desktop
|
||||
Delete "$DESKTOP\QElectroTech.lnk"
|
||||
|
||||
; remove the application files
|
||||
Delete "$INSTDIR\*.*"
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
;remove installation registry keys
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}"
|
||||
DeleteRegKey /ifempty HKCU "Software\${SOFT_NAME}"
|
||||
|
||||
; remove file associations registry keys
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "Applications\qelectrotech.exe"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".qet"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_diagram_file"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".elmt"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_element_file"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".titleblock"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_titleblock_file"
|
||||
|
||||
IfFileExists "$INSTDIR" 0 NoErrorMsg
|
||||
;MessageBox MB_OK "Note: $INSTDIR could not be removed!" IDOK 0 ; skipped if file doesn't exist
|
||||
NoErrorMsg:
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Functions
|
||||
|
||||
Function un.onInit
|
||||
|
||||
!insertmacro MUI_UNGETLANGUAGE
|
||||
|
||||
FunctionEnd
|
||||
@@ -125,7 +125,6 @@
|
||||
!insertmacro MUI_LANGUAGE "Dutch"
|
||||
!insertmacro MUI_LANGUAGE "Dutch_Belgium"
|
||||
!insertmacro MUI_LANGUAGE "Danish"
|
||||
!insertmacro MUI_LANGUAGE "Swedish"
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
!include lang_extra.nsh
|
||||
@@ -267,13 +266,13 @@ Section ""
|
||||
; write file associations registry keys
|
||||
WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Diagram QET"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Sch<EFBFBD>ma QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "Element QET"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "<EFBFBD>l<EFBFBD>ment QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico"
|
||||
@@ -296,9 +295,9 @@ Section ""
|
||||
|
||||
; shortcut on the desktop
|
||||
CreateShortCut "$DESKTOP\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/manual_0.7/build/index.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/joshua/html/QET_ru.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/builds/nightly/"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/manual_0.7/build/index.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/joshua/html/QET_ru.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/builds/nightly/"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Donate.url" "InternetShortcut" "URL" "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC"
|
||||
|
||||
;changing $INSTDIR\elements\ *.elmt to read-only attribute
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
|
||||
LangString installed ${LANG_GERMAN} "${SOFT_NAME} ist bereits installiert. $\n$\nKlicken Sie auf `OK`, um die alte Version zu deinstallieren, oder auf `Abbrechen`, um das Upgrade abzubrechen."
|
||||
LangString wrongArch ${LANG_GERMAN} "Dieses Programm läuft ausschließlich unter Windows 64 Bit."
|
||||
LangString wrongArch ${LANG_GERMAN} "Dieses Programm läuft ausschließlich unter Windows 64 Bits."
|
||||
LangString Elements ${LANG_GERMAN} "Bauteile"
|
||||
LangString Electric ${LANG_GERMAN} "Elektrik"
|
||||
LangString Logic ${LANG_GERMAN} "Logik"
|
||||
@@ -115,13 +115,13 @@
|
||||
LangString Refrigeration ${LANG_GERMAN} "Kältetechnik"
|
||||
LangString Solar_thermal ${LANG_GERMAN} "Solar-Wärmetechnik"
|
||||
LangString Lang ${LANG_GERMAN} "Sprachen"
|
||||
LangString Titleblocks ${LANG_GERMAN} "Schriftfelder"
|
||||
LangString Titleblocks ${LANG_GERMAN} "Zeichnungsköpfe"
|
||||
LangString Examples ${LANG_GERMAN} "Beispiele"
|
||||
LangString Check ${LANG_GERMAN} "Ankreuzen zum Starten von ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_GERMAN} "Elemente der offiziellen Sammlung"
|
||||
LangString var2 ${LANG_GERMAN} "Sprachdateien"
|
||||
LangString var3 ${LANG_GERMAN} "Schriftfeld-Beispiele"
|
||||
LangString var4 ${LANG_GERMAN} "Schaltplan-Beispiele"
|
||||
LangString Check ${LANG_GERMAN} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_GERMAN} "Elements of the official collection"
|
||||
LangString var2 ${LANG_GERMAN} "languagues files"
|
||||
LangString var3 ${LANG_GERMAN} "Examples of cartridges"
|
||||
LangString var4 ${LANG_GERMAN} "Examples of diagrams"
|
||||
|
||||
|
||||
LangString installed ${LANG_RUSSIAN} "${SOFT_NAME} уже установлен. $\n$\nДля удаления предыдущей версии нажмите `OK` или `Cancel` для отмены обновления."
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(
|
||||
"_____________________________________________________________________"
|
||||
"\nCopyright 2006 The QElectroTech Team"
|
||||
"\nThis file is part of QElectroTech."
|
||||
|
||||
"\n\nQElectroTech is free software: you can redistribute it and/or modify"
|
||||
"\nit under the terms of the GNU General Public License as published by"
|
||||
"\nthe Free Software Foundation, either version 2 of the License, or"
|
||||
"\n(at your option) any later version."
|
||||
|
||||
"\nQElectroTech is distributed in the hope that it will be useful,"
|
||||
"\nbut WITHOUT ANY WARRANTY; without even the implied warranty of"
|
||||
"\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"
|
||||
"\nGNU General Public License for more details."
|
||||
|
||||
"\n\nYou should have received a copy of the GNU General Public License"
|
||||
"\nalong with QElectroTech. If not, see <http://www.gnu.org/licenses/>.\n"
|
||||
"_____________________________________________________________________")
|
||||
@@ -1,71 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Paths used for compilation and installation of QET
|
||||
|
||||
message(" - define_definitions")
|
||||
|
||||
message("Paths used for compilation and installation of QET")
|
||||
message("--------------------------------------------------")
|
||||
message("COMPIL_PREFIX " ${COMPIL_PREFIX})
|
||||
message("INSTALL_PREFIX " ${INSTALL_PREFIX})
|
||||
message("QET_BINARY_PATH " ${QET_BINARY_PATH})
|
||||
|
||||
if(${QET_COMMON_COLLECTION_PATH} STRGREATER "")
|
||||
message("QET_COMMON_COLLECTION_PATH " ${INSTALL_PREFIX}${QET_COMMON_COLLECTION_PATH})
|
||||
add_definitions(-DQET_COMMON_COLLECTION_PATH=${INSTALL_PREFIX}${QET_COMMON_COLLECTION_PATH})
|
||||
endif()
|
||||
if(${QET_COMMON_TBT_PATH} STRGREATER "")
|
||||
message("QET_COMMON_TBT_PATH " ${INSTALL_PREFIX}${QET_COMMON_TBT_PATH})
|
||||
add_definitions(-DQET_COMMON_TBT_PATH=${INSTALL_PREFIX}${QET_COMMON_TBT_PATH})
|
||||
endif()
|
||||
if(${QET_LANG_PATH_RELATIVE_TO_BINARY_PATH})
|
||||
add_definitions(-DQET_LANG_PATH_RELATIVE_TO_BINARY_PATH)
|
||||
endif()
|
||||
if(${QET_LANG_PATH} STRGREATER "")
|
||||
message("QET_LANG_PATH " ${INSTALL_PREFIX}${QET_LANG_PATH})
|
||||
add_definitions(-DQET_LANG_PATH=${INSTALL_PREFIX}${QET_LANG_PATH})
|
||||
endif()
|
||||
if (NOT MINGW)
|
||||
if(${QET_EXAMPLES_PATH} STRGREATER "")
|
||||
message("QET_EXAMPLES_PATH " ${INSTALL_PREFIX}${QET_EXAMPLES_PATH})
|
||||
add_definitions(-DQET_EXAMPLES_PATH=${INSTALL_PREFIX}${QET_EXAMPLES_PATH})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
message("QET_LICENSE_PATH " ${QET_LICENSE_PATH})
|
||||
message("QET_MIME_PACKAGE_PATH " ${QET_MIME_PACKAGE_PATH})
|
||||
message("QET_DESKTOP_PATH " ${QET_DESKTOP_PATH})
|
||||
message("QET_ICONS_PATH " ${QET_ICONS_PATH})
|
||||
message("QET_MAN_PATH " ${QET_MAN_PATH})
|
||||
message("QET_APPDATA_PATH " ${QET_APPDATA_PATH})
|
||||
message("ICON " ${ICON})
|
||||
message("--------------------------------------------------")
|
||||
message("PROJECT_NAME :" ${PROJECT_NAME})
|
||||
message("PROJECT_VERSION :" ${PROJECT_VERSION})
|
||||
message("PROJECT_DESCRIPTION :" ${PROJECT_DESCRIPTION})
|
||||
message("PROJECT_HOMEPAGE_URL :" ${PROJECT_HOMEPAGE_URL})
|
||||
message("PROJECT_SOURCE_DIR :" ${PROJECT_SOURCE_DIR})
|
||||
message("QET_DIR :" ${QET_DIR})
|
||||
message("GIT_COMMIT_SHA :" ${GIT_COMMIT_SHA})
|
||||
|
||||
if(BUILD_WITH_KF5)
|
||||
message("KF5_GIT_TAG :" ${KF5_GIT_TAG})
|
||||
else()
|
||||
add_definitions(-DBUILD_WITHOUT_KF5)
|
||||
endif()
|
||||
message("QET_COMPONENTS :" ${QET_COMPONENTS})
|
||||
message("QT_VERSION_MAJOR :" ${QT_VERSION_MAJOR})
|
||||
@@ -1,35 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(" - developer_options")
|
||||
|
||||
# warn on *any* usage of deprecated APIs
|
||||
add_definitions(-DQT_DEPRECATED_WARNINGS)
|
||||
|
||||
# You can make your code fail to compile if it uses deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
# disables all the APIs deprecated before Qt 6.0.0
|
||||
#add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000)
|
||||
|
||||
# to enable function names and line numbers even for release builds
|
||||
add_definitions(-DQT_MESSAGELOGCONTEXT)
|
||||
|
||||
# You can make your code warn on compile time for the TODO's
|
||||
# In order to do so, uncomment the following line.
|
||||
#add_definitions(-DTODO_LIST)
|
||||
|
||||
# Build with KF5
|
||||
option(BUILD_WITH_KF5 "Build with KF5" ON)
|
||||
@@ -1,67 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(" - fetch_kdeaddons")
|
||||
|
||||
if(DEFINED BUILD_WITH_KF5)
|
||||
Include(FetchContent)
|
||||
|
||||
option(BUILD_KF5 "Build KF5 libraries, use system ones otherwise" YES)
|
||||
|
||||
if(BUILD_KF5)
|
||||
|
||||
if(NOT DEFINED KF5_GIT_TAG)
|
||||
#https://qelectrotech.org/forum/viewtopic.php?pid=13924#p13924
|
||||
set(KF5_GIT_TAG v5.77.0)
|
||||
endif()
|
||||
|
||||
# Fix stop the run autotests of kcoreaddons
|
||||
# see
|
||||
# https://invent.kde.org/frameworks/kcoreaddons/-/blob/master/CMakeLists.txt#L98
|
||||
# issue:
|
||||
# CMake Error at /usr/share/ECM/modules/ECMAddTests.cmake:89 (add_executable):
|
||||
# Cannot find source file:
|
||||
# see
|
||||
# https://qelectrotech.org/forum/viewtopic.php?pid=13929#p13929
|
||||
set(KDE_SKIP_TEST_SETTINGS "TRUE")
|
||||
set(BUILD_TESTING "0")
|
||||
FetchContent_Declare(
|
||||
ecm
|
||||
GIT_REPOSITORY https://invent.kde.org/frameworks/extra-cmake-modules.git
|
||||
GIT_TAG ${KF5_GIT_TAG})
|
||||
FetchContent_MakeAvailable(ecm)
|
||||
|
||||
FetchContent_Declare(
|
||||
kcoreaddons
|
||||
GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git
|
||||
GIT_TAG ${KF5_GIT_TAG})
|
||||
FetchContent_MakeAvailable(kcoreaddons)
|
||||
|
||||
FetchContent_Declare(
|
||||
kwidgetsaddons
|
||||
GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git
|
||||
GIT_TAG ${KF5_GIT_TAG})
|
||||
FetchContent_MakeAvailable(kwidgetsaddons)
|
||||
else()
|
||||
find_package(KF5CoreAddons REQUIRED)
|
||||
find_package(KF5WidgetsAddons REQUIRED)
|
||||
endif()
|
||||
|
||||
set(KF5_PRIVATE_LIBRARIES
|
||||
KF5::WidgetsAddons
|
||||
KF5::CoreAddons
|
||||
)
|
||||
endif()
|
||||
@@ -1,33 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(" - fetch_pugixml")
|
||||
|
||||
Include(FetchContent)
|
||||
|
||||
option(BUILD_PUGIXML "Build pugixml library, use system one otherwise" YES)
|
||||
|
||||
if(BUILD_PUGIXML)
|
||||
|
||||
FetchContent_Declare(
|
||||
pugixml
|
||||
GIT_REPOSITORY https://github.com/zeux/pugixml.git
|
||||
GIT_TAG v1.11.4)
|
||||
|
||||
FetchContent_MakeAvailable(pugixml)
|
||||
else()
|
||||
find_package(pugixml REQUIRED)
|
||||
endif()
|
||||
@@ -1,31 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(" - fetch_singleapplication")
|
||||
|
||||
# https://github.com/itay-grudev/SingleApplication/issues/18
|
||||
#qmake
|
||||
#DEFINES += QAPPLICATION_CLASS=QGuiApplication
|
||||
set(QAPPLICATION_CLASS QApplication)
|
||||
|
||||
Include(FetchContent)
|
||||
|
||||
FetchContent_Declare(
|
||||
SingleApplication
|
||||
GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git
|
||||
GIT_TAG v3.2.0)
|
||||
|
||||
FetchContent_MakeAvailable(SingleApplication)
|
||||
@@ -1,41 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(" - git_last_commit_sha")
|
||||
|
||||
find_package(Git QUIET)
|
||||
|
||||
if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||
#get GIT COMMIT SHA
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} -C ${QET_DIR} rev-parse --verify HEAD
|
||||
OUTPUT_VARIABLE GIT_COMMIT_SHA
|
||||
RESULT_VARIABLE GIT_COMMIT_RESULT)
|
||||
|
||||
# This strips terminating newline in the variable
|
||||
string(REGEX REPLACE "\n$" "" GIT_COMMIT_SHA "${GIT_COMMIT_SHA}")
|
||||
|
||||
if(NOT GIT_COMMIT_RESULT EQUAL "0")
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"git rev-parse --verify HEAD failed with "
|
||||
${GIT_COMMIT_RESULT}
|
||||
", please check")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# This adds to definitions => .cpp
|
||||
add_definitions(-DGIT_COMMIT_SHA="${GIT_COMMIT_SHA}")
|
||||
@@ -1,35 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(" - git_update_submodules")
|
||||
|
||||
find_package(Git QUIET)
|
||||
|
||||
if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||
# updates all git submodules
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
RESULT_VARIABLE GIT_SUBMOD_RESULT)
|
||||
|
||||
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"git submodule update --init failed with "
|
||||
${GIT_SUBMOD_RESULT}
|
||||
", please checkout submodules")
|
||||
endif()
|
||||
endif()
|
||||
@@ -1,25 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if(${CMAKE_VERSION} VERSION_LESS 3.14)
|
||||
message(
|
||||
"_____________________________________________________________________")
|
||||
message("to update Cmake on linux:")
|
||||
message("https://github.com/Kitware/CMake/")
|
||||
message("linux => cmake-3.19.1-Linux-x86_64.sh")
|
||||
message(" sudo ./cmake.sh --prefix=/usr/local/ --exclude-subdir")
|
||||
message("windows good luck :)")
|
||||
endif()
|
||||
@@ -1,65 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Paths used for compilation and installation of QET
|
||||
|
||||
message(" - paths_compilation_installation")
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
# for Linux, BSD, Solaris, Minix
|
||||
set(COMPIL_PREFIX "/usr/local/")
|
||||
set(INSTALL_PREFIX "/usr/local/")
|
||||
set(QET_BINARY_PATH "bin/")
|
||||
set(QET_COMMON_COLLECTION_PATH "share/qelectrotech/elements/")
|
||||
set(QET_COMMON_TBT_PATH "share/qelectrotech/titleblocks/")
|
||||
set(QET_LANG_PATH "share/qelectrotech/lang/")
|
||||
set(QET_EXAMPLES_PATH "share/qelectrotech/examples/")
|
||||
set(QET_LICENSE_PATH "doc/qelectrotech/")
|
||||
set(QET_MIME_PACKAGE_PATH "../share/mime/packages/")
|
||||
set(QET_DESKTOP_PATH "share/applications/")
|
||||
set(QET_ICONS_PATH "share/icons/hicolor/")
|
||||
set(QET_MAN_PATH "man/")
|
||||
set(QET_APPDATA_PATH "share/appdata")
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
# for MacOS X or iOS, watchOS, tvOS (since 3.10.3)
|
||||
set(COMPIL_PREFIX "./")
|
||||
set(INSTALL_PREFIX "/usr/local/")
|
||||
set(QET_BINARY_PATH "bin/")
|
||||
set(QET_COMMON_COLLECTION_PATH "../Resources/elements/")
|
||||
set(QET_COMMON_TBT_PATH "../Resources/titleblocks/")
|
||||
set(QET_LANG_PATH "../Resources/lang/")
|
||||
set(QET_EXAMPLES_PATH "share/qelectrotech/examples/")
|
||||
set(QET_LICENSE_PATH "doc/qelectrotech/")
|
||||
set(QET_DESKTOP_PATH "share/applications/")
|
||||
set(QET_ICONS_PATH "share/icons/hicolor/")
|
||||
set(QET_MAN_PATH "man/")
|
||||
set(ICON "ico/mac_icon/qelectrotech.icns")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
# for Windows operating system in general
|
||||
set(COMPIL_PREFIX "./")
|
||||
set(INSTALL_PREFIX "./")
|
||||
set(QET_BINARY_PATH "./")
|
||||
set(QET_COMMON_COLLECTION_PATH "elements/")
|
||||
set(QET_COMMON_TBT_PATH "titleblocks/")
|
||||
set(QET_LANG_PATH "l10n/")
|
||||
set(QET_LICENSE_PATH "./")
|
||||
# Liste des ressources Windows
|
||||
#RC_FILE = qelectrotech.rc
|
||||
endif()
|
||||
@@ -1,744 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(" - qet_compilation_vars")
|
||||
|
||||
set(QET_COMPONENTS
|
||||
LinguistTools
|
||||
PrintSupport
|
||||
Xml
|
||||
Svg
|
||||
Sql
|
||||
Network
|
||||
Widgets
|
||||
Concurrent)
|
||||
|
||||
set(QET_PRIVATE_LIBRARIES
|
||||
Qt::PrintSupport
|
||||
Qt::Gui
|
||||
Qt::Xml
|
||||
Qt::Svg
|
||||
Qt::Sql
|
||||
Qt::Network
|
||||
Qt::Widgets
|
||||
Qt::Concurrent
|
||||
)
|
||||
|
||||
set(QET_RES_FILES
|
||||
${QET_DIR}/sources/autoNum/ui/autonumberingdockwidget.ui
|
||||
${QET_DIR}/sources/autoNum/ui/autonumberingmanagementw.ui
|
||||
${QET_DIR}/sources/autoNum/ui/folioautonumbering.ui
|
||||
${QET_DIR}/sources/autoNum/ui/formulaautonumberingw.ui
|
||||
${QET_DIR}/sources/autoNum/ui/numparteditorw.ui
|
||||
${QET_DIR}/sources/autoNum/ui/selectautonumw.ui
|
||||
${QET_DIR}/sources/dataBase/ui/elementquerywidget.ui
|
||||
${QET_DIR}/sources/dataBase/ui/summaryquerywidget.ui
|
||||
${QET_DIR}/sources/editor/ui/dynamictextfieldeditor.ui
|
||||
${QET_DIR}/sources/editor/ui/elementpropertieseditorwidget.ui
|
||||
${QET_DIR}/sources/editor/ui/ellipseeditor.ui
|
||||
${QET_DIR}/sources/editor/ui/lineeditor.ui
|
||||
${QET_DIR}/sources/editor/ui/polygoneditor.ui
|
||||
${QET_DIR}/sources/editor/ui/rectangleeditor.ui
|
||||
${QET_DIR}/sources/editor/ui/qetelementeditor.ui
|
||||
${QET_DIR}/sources/editor/ui/terminaleditor.ui
|
||||
${QET_DIR}/sources/ElementsCollection/ui/renamedialog.ui
|
||||
${QET_DIR}/sources/factory/ui/addtabledialog.ui
|
||||
${QET_DIR}/sources/NameList/ui/namelistdialog.ui
|
||||
${QET_DIR}/sources/NameList/ui/namelistwidget.ui
|
||||
${QET_DIR}/sources/print/projectprintwindow.ui
|
||||
${QET_DIR}/sources/PropertiesEditor/propertieseditordockwidget.ui
|
||||
${QET_DIR}/sources/richtext/addlinkdialog.ui
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replaceadvanceddialog.ui
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replaceconductordialog.ui
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replaceelementdialog.ui
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replacefoliowidget.ui
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/addterminalstripitemdialog.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminaleditor.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripcreatordialog.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditor.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditorwindow.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriplayouteditor.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriptreedockwidget.ui
|
||||
${QET_DIR}/sources/ui/aboutqetdialog.ui
|
||||
${QET_DIR}/sources/ui/alignmenttextdialog.ui
|
||||
${QET_DIR}/sources/ui/bomexportdialog.ui
|
||||
${QET_DIR}/sources/ui/borderpropertieswidget.ui
|
||||
${QET_DIR}/sources/ui/compositetexteditdialog.ui
|
||||
${QET_DIR}/sources/ui/conductorpropertiesdialog.ui
|
||||
${QET_DIR}/sources/ui/conductorpropertieswidget.ui
|
||||
${QET_DIR}/sources/ui/configsaveloaderwidget.ui
|
||||
${QET_DIR}/sources/ui/diagramcontextwidget.ui
|
||||
${QET_DIR}/sources/ui/diagrameditorhandlersizewidget.ui
|
||||
${QET_DIR}/sources/ui/diagramselection.ui
|
||||
${QET_DIR}/sources/ui/dialogwaiting.ui
|
||||
${QET_DIR}/sources/ui/dynamicelementtextitemeditor.ui
|
||||
${QET_DIR}/sources/ui/elementinfopartwidget.ui
|
||||
${QET_DIR}/sources/ui/elementinfowidget.ui
|
||||
${QET_DIR}/sources/ui/formulaassistantdialog.ui
|
||||
${QET_DIR}/sources/ui/imagepropertieswidget.ui
|
||||
${QET_DIR}/sources/ui/importelementdialog.ui
|
||||
${QET_DIR}/sources/ui/importelementtextpatterndialog.ui
|
||||
${QET_DIR}/sources/ui/linksingleelementwidget.ui
|
||||
${QET_DIR}/sources/ui/marginseditdialog.ui
|
||||
${QET_DIR}/sources/ui/masterpropertieswidget.ui
|
||||
${QET_DIR}/sources/ui/multipastedialog.ui
|
||||
${QET_DIR}/sources/ui/potentialselectordialog.ui
|
||||
${QET_DIR}/sources/ui/reportpropertiewidget.ui
|
||||
${QET_DIR}/sources/ui/shapegraphicsitempropertieswidget.ui
|
||||
${QET_DIR}/sources/ui/thirdpartybinaryinstalldialog.ui
|
||||
${QET_DIR}/sources/ui/titleblockpropertieswidget.ui
|
||||
${QET_DIR}/sources/ui/xrefpropertieswidget.ui
|
||||
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.ui
|
||||
)
|
||||
set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/borderproperties.cpp
|
||||
${QET_DIR}/sources/borderproperties.h
|
||||
${QET_DIR}/sources/bordertitleblock.cpp
|
||||
${QET_DIR}/sources/bordertitleblock.h
|
||||
${QET_DIR}/sources/conductorautonumerotation.cpp
|
||||
${QET_DIR}/sources/conductorautonumerotation.h
|
||||
${QET_DIR}/sources/conductornumexport.cpp
|
||||
${QET_DIR}/sources/conductornumexport.h
|
||||
${QET_DIR}/sources/conductorprofile.cpp
|
||||
${QET_DIR}/sources/conductorprofile.h
|
||||
${QET_DIR}/sources/conductorproperties.cpp
|
||||
${QET_DIR}/sources/conductorproperties.h
|
||||
${QET_DIR}/sources/conductorsegment.cpp
|
||||
${QET_DIR}/sources/conductorsegment.h
|
||||
${QET_DIR}/sources/conductorsegmentprofile.h
|
||||
${QET_DIR}/sources/configdialog.cpp
|
||||
${QET_DIR}/sources/configdialog.h
|
||||
${QET_DIR}/sources/createdxf.cpp
|
||||
${QET_DIR}/sources/createdxf.h
|
||||
${QET_DIR}/sources/diagramcommands.cpp
|
||||
${QET_DIR}/sources/diagramcommands.h
|
||||
${QET_DIR}/sources/diagramcontent.cpp
|
||||
${QET_DIR}/sources/diagramcontent.h
|
||||
${QET_DIR}/sources/diagramcontext.cpp
|
||||
${QET_DIR}/sources/diagramcontext.h
|
||||
${QET_DIR}/sources/diagram.cpp
|
||||
${QET_DIR}/sources/diagram.h
|
||||
${QET_DIR}/sources/diagramposition.cpp
|
||||
${QET_DIR}/sources/diagramposition.h
|
||||
${QET_DIR}/sources/diagramview.cpp
|
||||
${QET_DIR}/sources/diagramview.h
|
||||
${QET_DIR}/sources/elementdialog.cpp
|
||||
${QET_DIR}/sources/elementdialog.h
|
||||
${QET_DIR}/sources/elementprovider.cpp
|
||||
${QET_DIR}/sources/elementprovider.h
|
||||
${QET_DIR}/sources/elementscategoryeditor.cpp
|
||||
${QET_DIR}/sources/elementscategoryeditor.h
|
||||
${QET_DIR}/sources/elementscollectioncache.cpp
|
||||
${QET_DIR}/sources/elementscollectioncache.h
|
||||
${QET_DIR}/sources/elementsmover.cpp
|
||||
${QET_DIR}/sources/elementsmover.h
|
||||
${QET_DIR}/sources/elementspanel.cpp
|
||||
${QET_DIR}/sources/elementspanel.h
|
||||
${QET_DIR}/sources/elementspanelwidget.cpp
|
||||
${QET_DIR}/sources/elementspanelwidget.h
|
||||
${QET_DIR}/sources/elementtextpattern.cpp
|
||||
${QET_DIR}/sources/elementtextpattern.h
|
||||
${QET_DIR}/sources/elementtextsmover.cpp
|
||||
${QET_DIR}/sources/elementtextsmover.h
|
||||
${QET_DIR}/sources/exportdialog.cpp
|
||||
${QET_DIR}/sources/exportdialog.h
|
||||
${QET_DIR}/sources/exportproperties.cpp
|
||||
${QET_DIR}/sources/exportproperties.h
|
||||
${QET_DIR}/sources/exportpropertieswidget.cpp
|
||||
${QET_DIR}/sources/exportpropertieswidget.h
|
||||
${QET_DIR}/sources/genericpanel.cpp
|
||||
${QET_DIR}/sources/genericpanel.h
|
||||
${QET_DIR}/sources/machine_info.cpp
|
||||
${QET_DIR}/sources/machine_info.h
|
||||
${QET_DIR}/sources/main.cpp
|
||||
${QET_DIR}/sources/newelementwizard.cpp
|
||||
${QET_DIR}/sources/newelementwizard.h
|
||||
${QET_DIR}/sources/projectview.cpp
|
||||
${QET_DIR}/sources/projectview.h
|
||||
${QET_DIR}/sources/qetapp.cpp
|
||||
${QET_DIR}/sources/qetapp.h
|
||||
${QET_DIR}/sources/qetarguments.cpp
|
||||
${QET_DIR}/sources/qetarguments.h
|
||||
${QET_DIR}/sources/qet.cpp
|
||||
${QET_DIR}/sources/qetdiagrameditor.cpp
|
||||
${QET_DIR}/sources/qetdiagrameditor.h
|
||||
${QET_DIR}/sources/qet.h
|
||||
${QET_DIR}/sources/qeticons.cpp
|
||||
${QET_DIR}/sources/qeticons.h
|
||||
${QET_DIR}/sources/qetinformation.cpp
|
||||
${QET_DIR}/sources/qetinformation.h
|
||||
${QET_DIR}/sources/qetmainwindow.cpp
|
||||
${QET_DIR}/sources/qetmainwindow.h
|
||||
${QET_DIR}/sources/qetmessagebox.cpp
|
||||
${QET_DIR}/sources/qetmessagebox.h
|
||||
${QET_DIR}/sources/qetproject.cpp
|
||||
${QET_DIR}/sources/qetproject.h
|
||||
${QET_DIR}/sources/qetregexpvalidator.cpp
|
||||
${QET_DIR}/sources/qetregexpvalidator.h
|
||||
${QET_DIR}/sources/qetresult.cpp
|
||||
${QET_DIR}/sources/qetresult.h
|
||||
${QET_DIR}/sources/qetxml.cpp
|
||||
${QET_DIR}/sources/qetxml.h
|
||||
${QET_DIR}/sources/qetversion.cpp
|
||||
${QET_DIR}/sources/qetversion.h
|
||||
${QET_DIR}/sources/qfilenameedit.cpp
|
||||
${QET_DIR}/sources/qfilenameedit.h
|
||||
${QET_DIR}/sources/qgimanager.cpp
|
||||
${QET_DIR}/sources/qgimanager.h
|
||||
${QET_DIR}/sources/qtextorientationspinboxwidget.cpp
|
||||
${QET_DIR}/sources/qtextorientationspinboxwidget.h
|
||||
${QET_DIR}/sources/qtextorientationwidget.cpp
|
||||
${QET_DIR}/sources/qtextorientationwidget.h
|
||||
${QET_DIR}/sources/recentfiles.cpp
|
||||
${QET_DIR}/sources/recentfiles.h
|
||||
${QET_DIR}/sources/titleblockcell.cpp
|
||||
${QET_DIR}/sources/titleblockcell.h
|
||||
${QET_DIR}/sources/titleblockproperties.cpp
|
||||
${QET_DIR}/sources/titleblockproperties.h
|
||||
${QET_DIR}/sources/titleblocktemplate.cpp
|
||||
${QET_DIR}/sources/titleblocktemplate.h
|
||||
${QET_DIR}/sources/titleblocktemplaterenderer.cpp
|
||||
${QET_DIR}/sources/titleblocktemplaterenderer.h
|
||||
|
||||
${QET_DIR}/sources/autoNum/assignvariables.cpp
|
||||
${QET_DIR}/sources/autoNum/assignvariables.h
|
||||
${QET_DIR}/sources/autoNum/numerotationcontextcommands.cpp
|
||||
${QET_DIR}/sources/autoNum/numerotationcontextcommands.h
|
||||
${QET_DIR}/sources/autoNum/numerotationcontext.cpp
|
||||
${QET_DIR}/sources/autoNum/numerotationcontext.h
|
||||
${QET_DIR}/sources/autoNum/ui/autonumberingdockwidget.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/autonumberingdockwidget.h
|
||||
${QET_DIR}/sources/autoNum/ui/autonumberingmanagementw.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/autonumberingmanagementw.h
|
||||
${QET_DIR}/sources/autoNum/ui/folioautonumbering.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/folioautonumbering.h
|
||||
${QET_DIR}/sources/autoNum/ui/formulaautonumberingw.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/formulaautonumberingw.h
|
||||
${QET_DIR}/sources/autoNum/ui/numparteditorw.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/numparteditorw.h
|
||||
${QET_DIR}/sources/autoNum/ui/selectautonumw.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/selectautonumw.h
|
||||
|
||||
${QET_DIR}/sources/dataBase/projectdatabase.cpp
|
||||
${QET_DIR}/sources/dataBase/projectdatabase.h
|
||||
|
||||
${QET_DIR}/sources/dataBase/ui/elementquerywidget.cpp
|
||||
${QET_DIR}/sources/dataBase/ui/elementquerywidget.h
|
||||
${QET_DIR}/sources/dataBase/ui/summaryquerywidget.cpp
|
||||
${QET_DIR}/sources/dataBase/ui/summaryquerywidget.h
|
||||
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddelement.cpp
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddelement.h
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddimage.cpp
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddimage.h
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddshape.cpp
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddshape.h
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddtext.cpp
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddtext.h
|
||||
${QET_DIR}/sources/diagramevent/diagrameventinterface.cpp
|
||||
${QET_DIR}/sources/diagramevent/diagrameventinterface.h
|
||||
|
||||
${QET_DIR}/sources/dvevent/dveventinterface.cpp
|
||||
${QET_DIR}/sources/dvevent/dveventinterface.h
|
||||
|
||||
${QET_DIR}/sources/dxf/dxftoelmt.cpp
|
||||
${QET_DIR}/sources/dxf/dxftoelmt.h
|
||||
|
||||
${QET_DIR}/sources/qet_elementscaler/qet_elementscaler.cpp
|
||||
${QET_DIR}/sources/qet_elementscaler/qet_elementscaler.h
|
||||
|
||||
${QET_DIR}/sources/editor/arceditor.cpp
|
||||
${QET_DIR}/sources/editor/arceditor.h
|
||||
${QET_DIR}/sources/editor/editorcommands.cpp
|
||||
${QET_DIR}/sources/editor/editorcommands.h
|
||||
${QET_DIR}/sources/editor/elementcontent.h
|
||||
${QET_DIR}/sources/editor/elementitemeditor.cpp
|
||||
${QET_DIR}/sources/editor/elementitemeditor.h
|
||||
${QET_DIR}/sources/editor/elementprimitivedecorator.cpp
|
||||
${QET_DIR}/sources/editor/elementprimitivedecorator.h
|
||||
${QET_DIR}/sources/editor/elementscene.cpp
|
||||
${QET_DIR}/sources/editor/elementscene.h
|
||||
${QET_DIR}/sources/editor/elementview.cpp
|
||||
${QET_DIR}/sources/editor/elementview.h
|
||||
${QET_DIR}/sources/editor/styleeditor.cpp
|
||||
${QET_DIR}/sources/editor/styleeditor.h
|
||||
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddarc.cpp
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddarc.h
|
||||
${QET_DIR}/sources/editor/esevent/eseventadddynamictextfield.cpp
|
||||
${QET_DIR}/sources/editor/esevent/eseventadddynamictextfield.h
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddellipse.cpp
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddellipse.h
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddline.cpp
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddline.h
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddpolygon.cpp
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddpolygon.h
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddrect.cpp
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddrect.h
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddterminal.cpp
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddterminal.h
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddtext.cpp
|
||||
${QET_DIR}/sources/editor/esevent/eseventaddtext.h
|
||||
${QET_DIR}/sources/editor/esevent/eseventinterface.cpp
|
||||
${QET_DIR}/sources/editor/esevent/eseventinterface.h
|
||||
|
||||
${QET_DIR}/sources/editor/graphicspart/abstractpartellipse.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/abstractpartellipse.h
|
||||
${QET_DIR}/sources/editor/graphicspart/customelementgraphicpart.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/customelementgraphicpart.h
|
||||
${QET_DIR}/sources/editor/graphicspart/customelementpart.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/customelementpart.h
|
||||
${QET_DIR}/sources/editor/graphicspart/partarc.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/partarc.h
|
||||
${QET_DIR}/sources/editor/graphicspart/partdynamictextfield.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/partdynamictextfield.h
|
||||
${QET_DIR}/sources/editor/graphicspart/partellipse.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/partellipse.h
|
||||
${QET_DIR}/sources/editor/graphicspart/partline.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/partline.h
|
||||
${QET_DIR}/sources/editor/graphicspart/partpolygon.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/partpolygon.h
|
||||
${QET_DIR}/sources/editor/graphicspart/partrectangle.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/partrectangle.h
|
||||
${QET_DIR}/sources/editor/graphicspart/partterminal.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/partterminal.h
|
||||
${QET_DIR}/sources/editor/graphicspart/parttext.cpp
|
||||
${QET_DIR}/sources/editor/graphicspart/parttext.h
|
||||
${QET_DIR}/sources/editor/ui/dynamictextfieldeditor.cpp
|
||||
${QET_DIR}/sources/editor/ui/dynamictextfieldeditor.h
|
||||
${QET_DIR}/sources/editor/ui/elementpropertieseditorwidget.cpp
|
||||
${QET_DIR}/sources/editor/ui/elementpropertieseditorwidget.h
|
||||
${QET_DIR}/sources/editor/ui/ellipseeditor.cpp
|
||||
${QET_DIR}/sources/editor/ui/ellipseeditor.h
|
||||
${QET_DIR}/sources/editor/ui/lineeditor.cpp
|
||||
${QET_DIR}/sources/editor/ui/lineeditor.h
|
||||
${QET_DIR}/sources/editor/ui/polygoneditor.cpp
|
||||
${QET_DIR}/sources/editor/ui/polygoneditor.h
|
||||
${QET_DIR}/sources/editor/ui/rectangleeditor.cpp
|
||||
${QET_DIR}/sources/editor/ui/rectangleeditor.h
|
||||
${QET_DIR}/sources/editor/ui/terminaleditor.cpp
|
||||
${QET_DIR}/sources/editor/ui/terminaleditor.h
|
||||
${QET_DIR}/sources/editor/ui/texteditor.cpp
|
||||
${QET_DIR}/sources/editor/ui/texteditor.h
|
||||
${QET_DIR}/sources/editor/ui/qetelementeditor.h
|
||||
${QET_DIR}/sources/editor/ui/qetelementeditor.cpp
|
||||
|
||||
${QET_DIR}/sources/editor/UndoCommand/pastepartscommand.cpp
|
||||
${QET_DIR}/sources/editor/UndoCommand/pastepartscommand.h
|
||||
${QET_DIR}/sources/editor/UndoCommand/openelmtcommand.cpp
|
||||
${QET_DIR}/sources/editor/UndoCommand/openelmtcommand.h
|
||||
${QET_DIR}/sources/editor/UndoCommand/deletepartscommand.cpp
|
||||
${QET_DIR}/sources/editor/UndoCommand/deletepartscommand.h
|
||||
${QET_DIR}/sources/editor/UndoCommand/addpartcommand.cpp
|
||||
${QET_DIR}/sources/editor/UndoCommand/addpartcommand.h
|
||||
|
||||
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.h
|
||||
${QET_DIR}/sources/ElementsCollection/elementcollectionitem.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/elementcollectionitem.h
|
||||
${QET_DIR}/sources/ElementsCollection/elementscollectionmodel.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/elementscollectionmodel.h
|
||||
${QET_DIR}/sources/ElementsCollection/elementscollectionwidget.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/elementscollectionwidget.h
|
||||
${QET_DIR}/sources/ElementsCollection/elementslocation.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/elementslocation.h
|
||||
${QET_DIR}/sources/ElementsCollection/elementstreeview.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/elementstreeview.h
|
||||
${QET_DIR}/sources/ElementsCollection/fileelementcollectionitem.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/fileelementcollectionitem.h
|
||||
${QET_DIR}/sources/ElementsCollection/xmlelementcollection.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/xmlelementcollection.h
|
||||
${QET_DIR}/sources/ElementsCollection/xmlprojectelementcollectionitem.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/xmlprojectelementcollectionitem.h
|
||||
|
||||
${QET_DIR}/sources/ElementsCollection/ui/renamedialog.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/ui/renamedialog.h
|
||||
|
||||
${QET_DIR}/sources/factory/elementfactory.cpp
|
||||
${QET_DIR}/sources/factory/elementfactory.h
|
||||
${QET_DIR}/sources/factory/elementpicturefactory.cpp
|
||||
${QET_DIR}/sources/factory/elementpicturefactory.h
|
||||
${QET_DIR}/sources/factory/propertieseditorfactory.cpp
|
||||
${QET_DIR}/sources/factory/propertieseditorfactory.h
|
||||
${QET_DIR}/sources/factory/qetgraphicstablefactory.cpp
|
||||
${QET_DIR}/sources/factory/qetgraphicstablefactory.h
|
||||
|
||||
${QET_DIR}/sources/factory/ui/addtabledialog.cpp
|
||||
${QET_DIR}/sources/factory/ui/addtabledialog.h
|
||||
|
||||
${QET_DIR}/sources/NameList/nameslist.cpp
|
||||
${QET_DIR}/sources/NameList/nameslist.h
|
||||
|
||||
${QET_DIR}/sources/NameList/ui/namelistdialog.cpp
|
||||
${QET_DIR}/sources/NameList/ui/namelistdialog.h
|
||||
${QET_DIR}/sources/NameList/ui/namelistwidget.cpp
|
||||
${QET_DIR}/sources/NameList/ui/namelistwidget.h
|
||||
|
||||
${QET_DIR}/sources/print/projectprintwindow.cpp
|
||||
${QET_DIR}/sources/print/projectprintwindow.h
|
||||
|
||||
${QET_DIR}/sources/project/projectpropertieshandler.cpp
|
||||
${QET_DIR}/sources/project/projectpropertieshandler.h
|
||||
|
||||
${QET_DIR}/sources/properties/elementdata.cpp
|
||||
${QET_DIR}/sources/properties/elementdata.h
|
||||
${QET_DIR}/sources/properties/propertiesinterface.cpp
|
||||
${QET_DIR}/sources/properties/propertiesinterface.h
|
||||
${QET_DIR}/sources/properties/reportproperties.cpp
|
||||
${QET_DIR}/sources/properties/reportproperties.h
|
||||
${QET_DIR}/sources/properties/terminaldata.cpp
|
||||
${QET_DIR}/sources/properties/terminaldata.h
|
||||
${QET_DIR}/sources/properties/xrefproperties.cpp
|
||||
${QET_DIR}/sources/properties/xrefproperties.h
|
||||
${QET_DIR}/sources/properties/userproperties.cpp
|
||||
${QET_DIR}/sources/properties/userproperties.h
|
||||
|
||||
${QET_DIR}/sources/PropertiesEditor/propertieseditordialog.h
|
||||
${QET_DIR}/sources/PropertiesEditor/propertieseditordockwidget.cpp
|
||||
${QET_DIR}/sources/PropertiesEditor/propertieseditordockwidget.h
|
||||
${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.cpp
|
||||
${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.h
|
||||
|
||||
${QET_DIR}/pugixml/src/pugiconfig.hpp
|
||||
${QET_DIR}/pugixml/src/pugixml.cpp
|
||||
${QET_DIR}/pugixml/src/pugixml.hpp
|
||||
|
||||
${QET_DIR}/sources/qetgraphicsitem/conductor.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/conductor.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/conductortextitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/conductortextitem.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/crossrefitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/crossrefitem.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/diagramimageitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/diagramimageitem.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/diagramtextitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/diagramtextitem.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/dynamicelementtextitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/dynamicelementtextitem.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/element.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/element.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/elementtextitemgroup.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/elementtextitemgroup.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/independenttextitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/independenttextitem.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/masterelement.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/masterelement.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/qetgraphicsitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/qetgraphicsitem.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/qetshapeitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/qetshapeitem.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/qgraphicsitemutility.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/qgraphicsitemutility.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/reportelement.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/reportelement.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/simpleelement.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/simpleelement.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/slaveelement.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/slaveelement.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/terminal.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/terminalelement.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/terminalelement.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/terminal.h
|
||||
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/projectdbmodel.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/projectdbmodel.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/qetgraphicsheaderitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/qetgraphicsheaderitem.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.h
|
||||
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui/graphicstablepropertieseditor.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui/graphicstablepropertieseditor.h
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui/projectdbmodelpropertieswidget.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui/projectdbmodelpropertieswidget.h
|
||||
|
||||
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandleritem.cpp
|
||||
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandleritem.h
|
||||
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandlerutility.cpp
|
||||
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandlerutility.h
|
||||
|
||||
${QET_DIR}/sources/QPropertyUndoCommand/qpropertyundocommand.cpp
|
||||
${QET_DIR}/sources/QPropertyUndoCommand/qpropertyundocommand.h
|
||||
|
||||
${QET_DIR}/sources/QWidgetAnimation/qwidgetanimation.cpp
|
||||
${QET_DIR}/sources/QWidgetAnimation/qwidgetanimation.h
|
||||
|
||||
${QET_DIR}/sources/richtext/richtexteditor.cpp
|
||||
${QET_DIR}/sources/richtext/richtexteditor_p.h
|
||||
${QET_DIR}/sources/richtext/ui_addlinkdialog.h
|
||||
|
||||
${QET_DIR}/sources/SearchAndReplace/searchandreplaceworker.cpp
|
||||
${QET_DIR}/sources/SearchAndReplace/searchandreplaceworker.h
|
||||
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replaceadvanceddialog.cpp
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replaceadvanceddialog.h
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replaceconductordialog.cpp
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replaceconductordialog.h
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replaceelementdialog.cpp
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replaceelementdialog.h
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replacefoliowidget.cpp
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/replacefoliowidget.h
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.cpp
|
||||
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.h
|
||||
|
||||
${QET_DIR}/sources/titleblock/dimension.cpp
|
||||
${QET_DIR}/sources/titleblock/dimension.h
|
||||
${QET_DIR}/sources/titleblock/dimensionwidget.cpp
|
||||
${QET_DIR}/sources/titleblock/dimensionwidget.h
|
||||
${QET_DIR}/sources/titleblock/gridlayoutanimation.cpp
|
||||
${QET_DIR}/sources/titleblock/gridlayoutanimation.h
|
||||
${QET_DIR}/sources/titleblock/helpercell.cpp
|
||||
${QET_DIR}/sources/titleblock/helpercell.h
|
||||
${QET_DIR}/sources/titleblock/integrationmovetemplateshandler.cpp
|
||||
${QET_DIR}/sources/titleblock/integrationmovetemplateshandler.h
|
||||
${QET_DIR}/sources/titleblock/movetemplateshandler.h
|
||||
${QET_DIR}/sources/titleblock/qettemplateeditor.cpp
|
||||
${QET_DIR}/sources/titleblock/qettemplateeditor.h
|
||||
${QET_DIR}/sources/titleblock/splittedhelpercell.cpp
|
||||
${QET_DIR}/sources/titleblock/splittedhelpercell.h
|
||||
${QET_DIR}/sources/titleblock/templatecellsset.cpp
|
||||
${QET_DIR}/sources/titleblock/templatecellsset.h
|
||||
${QET_DIR}/sources/titleblock/templatecellwidget.cpp
|
||||
${QET_DIR}/sources/titleblock/templatecellwidget.h
|
||||
${QET_DIR}/sources/titleblock/templatecommands.cpp
|
||||
${QET_DIR}/sources/titleblock/templatecommands.h
|
||||
${QET_DIR}/sources/titleblock/templatedeleter.cpp
|
||||
${QET_DIR}/sources/titleblock/templatedeleter.h
|
||||
${QET_DIR}/sources/titleblock/templatelocationchooser.cpp
|
||||
${QET_DIR}/sources/titleblock/templatelocationchooser.h
|
||||
${QET_DIR}/sources/titleblock/templatelocation.cpp
|
||||
${QET_DIR}/sources/titleblock/templatelocation.h
|
||||
${QET_DIR}/sources/titleblock/templatelocationsaver.cpp
|
||||
${QET_DIR}/sources/titleblock/templatelocationsaver.h
|
||||
${QET_DIR}/sources/titleblock/templatelogomanager.cpp
|
||||
${QET_DIR}/sources/titleblock/templatelogomanager.h
|
||||
${QET_DIR}/sources/titleblock/templatescollection.cpp
|
||||
${QET_DIR}/sources/titleblock/templatescollection.h
|
||||
${QET_DIR}/sources/titleblock/templateview.cpp
|
||||
${QET_DIR}/sources/titleblock/templateview.h
|
||||
${QET_DIR}/sources/titleblock/templatevisualcell.cpp
|
||||
${QET_DIR}/sources/titleblock/templatevisualcell.h
|
||||
|
||||
${QET_DIR}/sources/TerminalStrip/physicalterminal.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/physicalterminal.h
|
||||
${QET_DIR}/sources/TerminalStrip/realterminal.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/realterminal.h
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstripbridge.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstripbridge.h
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstrip.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstrip.h
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstripdata.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstripdata.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/addterminalstripitemdialog.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminaleditor.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminaleditor.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminalmodel.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminalmodel.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripcreatordialog.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditor.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditor.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditorwindow.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditorwindow.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriplayouteditor.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripmodel.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripmodel.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriptreedockwidget.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminalstripcommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminalstripcommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminallevel.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminallevel.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripcolor.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripcolor.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripdata.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripdata.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/groupterminalscommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/groupterminalscommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/sortterminalstripcommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/sortterminalstripcommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/demoterminalstrip.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/demoterminalstrip.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripitem.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/trueterminalstrip.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/trueterminalstrip.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutshandler.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutshandler.h
|
||||
|
||||
${QET_DIR}/sources/ui/aboutqetdialog.cpp
|
||||
${QET_DIR}/sources/ui/aboutqetdialog.h
|
||||
${QET_DIR}/sources/ui/abstractelementpropertieseditorwidget.cpp
|
||||
${QET_DIR}/sources/ui/abstractelementpropertieseditorwidget.h
|
||||
${QET_DIR}/sources/ui/alignmenttextdialog.cpp
|
||||
${QET_DIR}/sources/ui/alignmenttextdialog.h
|
||||
${QET_DIR}/sources/ui/bomexportdialog.cpp
|
||||
${QET_DIR}/sources/ui/bomexportdialog.h
|
||||
${QET_DIR}/sources/ui/borderpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/borderpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/compositetexteditdialog.cpp
|
||||
${QET_DIR}/sources/ui/compositetexteditdialog.h
|
||||
${QET_DIR}/sources/ui/conductorpropertiesdialog.cpp
|
||||
${QET_DIR}/sources/ui/conductorpropertiesdialog.h
|
||||
${QET_DIR}/sources/ui/conductorpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/conductorpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/configsaveloaderwidget.cpp
|
||||
${QET_DIR}/sources/ui/configsaveloaderwidget.h
|
||||
${QET_DIR}/sources/ui/diagramcontextwidget.cpp
|
||||
${QET_DIR}/sources/ui/diagramcontextwidget.h
|
||||
${QET_DIR}/sources/ui/diagrameditorhandlersizewidget.cpp
|
||||
${QET_DIR}/sources/ui/diagrameditorhandlersizewidget.h
|
||||
${QET_DIR}/sources/ui/diagrampropertiesdialog.cpp
|
||||
${QET_DIR}/sources/ui/diagrampropertiesdialog.h
|
||||
${QET_DIR}/sources/ui/diagrampropertieseditordockwidget.cpp
|
||||
${QET_DIR}/sources/ui/diagrampropertieseditordockwidget.h
|
||||
${QET_DIR}/sources/ui/diagramselection.cpp
|
||||
${QET_DIR}/sources/ui/diagramselection.h
|
||||
${QET_DIR}/sources/ui/dialogwaiting.cpp
|
||||
${QET_DIR}/sources/ui/dialogwaiting.h
|
||||
${QET_DIR}/sources/ui/dynamicelementtextitemeditor.cpp
|
||||
${QET_DIR}/sources/ui/dynamicelementtextitemeditor.h
|
||||
${QET_DIR}/sources/ui/dynamicelementtextmodel.cpp
|
||||
${QET_DIR}/sources/ui/dynamicelementtextmodel.h
|
||||
${QET_DIR}/sources/ui/elementinfopartwidget.cpp
|
||||
${QET_DIR}/sources/ui/elementinfopartwidget.h
|
||||
${QET_DIR}/sources/ui/elementinfowidget.cpp
|
||||
${QET_DIR}/sources/ui/elementinfowidget.h
|
||||
${QET_DIR}/sources/ui/elementpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/elementpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/formulaassistantdialog.cpp
|
||||
${QET_DIR}/sources/ui/formulaassistantdialog.h
|
||||
${QET_DIR}/sources/ui/imagepropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/imagepropertieswidget.h
|
||||
${QET_DIR}/sources/ui/importelementdialog.cpp
|
||||
${QET_DIR}/sources/ui/importelementdialog.h
|
||||
${QET_DIR}/sources/ui/importelementtextpatterndialog.cpp
|
||||
${QET_DIR}/sources/ui/importelementtextpatterndialog.h
|
||||
${QET_DIR}/sources/ui/inditextpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/inditextpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/linksingleelementwidget.cpp
|
||||
${QET_DIR}/sources/ui/linksingleelementwidget.h
|
||||
${QET_DIR}/sources/ui/marginseditdialog.cpp
|
||||
${QET_DIR}/sources/ui/marginseditdialog.h
|
||||
${QET_DIR}/sources/ui/masterpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/masterpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/multipastedialog.cpp
|
||||
${QET_DIR}/sources/ui/multipastedialog.h
|
||||
${QET_DIR}/sources/ui/potentialselectordialog.cpp
|
||||
${QET_DIR}/sources/ui/potentialselectordialog.h
|
||||
${QET_DIR}/sources/ui/projectpropertiesdialog.cpp
|
||||
${QET_DIR}/sources/ui/projectpropertiesdialog.h
|
||||
${QET_DIR}/sources/ui/reportpropertiewidget.cpp
|
||||
${QET_DIR}/sources/ui/reportpropertiewidget.h
|
||||
${QET_DIR}/sources/ui/shapegraphicsitempropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/shapegraphicsitempropertieswidget.h
|
||||
${QET_DIR}/sources/ui/thirdpartybinaryinstalldialog.cpp
|
||||
${QET_DIR}/sources/ui/thirdpartybinaryinstalldialog.h
|
||||
${QET_DIR}/sources/ui/titleblockpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/titleblockpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/xrefpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/xrefpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/configpage/configpage.h
|
||||
${QET_DIR}/sources/ui/configpage/configpages.cpp
|
||||
${QET_DIR}/sources/ui/configpage/configpages.h
|
||||
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.cpp
|
||||
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.h
|
||||
${QET_DIR}/sources/ui/configpage/projectconfigpages.cpp
|
||||
${QET_DIR}/sources/ui/configpage/projectconfigpages.h
|
||||
|
||||
${QET_DIR}/sources/undocommand/addelementtextcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/addelementtextcommand.h
|
||||
${QET_DIR}/sources/undocommand/addgraphicsobjectcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/addgraphicsobjectcommand.h
|
||||
${QET_DIR}/sources/undocommand/changeelementdatacommand.cpp
|
||||
${QET_DIR}/sources/undocommand/changeelementdatacommand.h
|
||||
${QET_DIR}/sources/undocommand/changeelementinformationcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/changeelementinformationcommand.h
|
||||
${QET_DIR}/sources/undocommand/changetitleblockcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/changetitleblockcommand.h
|
||||
${QET_DIR}/sources/undocommand/deleteqgraphicsitemcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/deleteqgraphicsitemcommand.h
|
||||
${QET_DIR}/sources/undocommand/itemmodelcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/itemmodelcommand.h
|
||||
${QET_DIR}/sources/undocommand/linkelementcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/linkelementcommand.h
|
||||
${QET_DIR}/sources/undocommand/rotateselectioncommand.cpp
|
||||
${QET_DIR}/sources/undocommand/rotateselectioncommand.h
|
||||
${QET_DIR}/sources/undocommand/rotatetextscommand.cpp
|
||||
${QET_DIR}/sources/undocommand/rotatetextscommand.h
|
||||
${QET_DIR}/sources/undocommand/movegraphicsitemcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/movegraphicsitemcommand.h
|
||||
|
||||
${QET_DIR}/sources/utils/conductorcreator.cpp
|
||||
${QET_DIR}/sources/utils/conductorcreator.h
|
||||
${QET_DIR}/sources/utils/macosxopenevent.cpp
|
||||
${QET_DIR}/sources/utils/macosxopenevent.h
|
||||
${QET_DIR}/sources/utils/qetsettings.cpp
|
||||
${QET_DIR}/sources/utils/qetsettings.h
|
||||
${QET_DIR}/sources/utils/qetutils.cpp
|
||||
${QET_DIR}/sources/utils/qetutils.h
|
||||
|
||||
${QET_DIR}/sources/xml/terminalstripitemxml.cpp
|
||||
${QET_DIR}/sources/xml/terminalstripitemxml.h
|
||||
)
|
||||
|
||||
set(TS_FILES
|
||||
${QET_DIR}/lang/qet_ar.ts
|
||||
${QET_DIR}/lang/qet_ca.ts
|
||||
${QET_DIR}/lang/qet_cs.ts
|
||||
${QET_DIR}/lang/qet_da.ts
|
||||
${QET_DIR}/lang/qet_de.ts
|
||||
${QET_DIR}/lang/qet_el.ts
|
||||
${QET_DIR}/lang/qet_en.ts
|
||||
${QET_DIR}/lang/qet_es.ts
|
||||
${QET_DIR}/lang/qet_fi.ts
|
||||
${QET_DIR}/lang/qet_fr.ts
|
||||
${QET_DIR}/lang/qet_hr.ts
|
||||
${QET_DIR}/lang/qet_hu.ts
|
||||
${QET_DIR}/lang/qet_it.ts
|
||||
${QET_DIR}/lang/qet_ja.ts
|
||||
${QET_DIR}/lang/qet_mn.ts
|
||||
${QET_DIR}/lang/qet_nb.ts
|
||||
${QET_DIR}/lang/qet_nl.ts
|
||||
${QET_DIR}/lang/qet_nl_BE.ts
|
||||
${QET_DIR}/lang/qet_no.ts
|
||||
${QET_DIR}/lang/qet_pl.ts
|
||||
${QET_DIR}/lang/qet_pt.ts
|
||||
${QET_DIR}/lang/qet_pt_BR.ts
|
||||
${QET_DIR}/lang/qet_ro.ts
|
||||
${QET_DIR}/lang/qet_rs.ts
|
||||
${QET_DIR}/lang/qet_ru.ts
|
||||
${QET_DIR}/lang/qet_sk.ts
|
||||
${QET_DIR}/lang/qet_sl.ts
|
||||
${QET_DIR}/lang/qet_sr.ts
|
||||
${QET_DIR}/lang/qet_sv.ts
|
||||
${QET_DIR}/lang/qet_tr.ts
|
||||
${QET_DIR}/lang/qet_uk.ts
|
||||
${QET_DIR}/lang/qet_zh.ts
|
||||
)
|
||||
@@ -1,32 +0,0 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# QElectroTech is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
message(" - start_options")
|
||||
|
||||
# Comment the line below to deactivate the --common-elements-dir option
|
||||
add_definitions(-DQET_ALLOW_OVERRIDE_CED_OPTION)
|
||||
|
||||
# Comment the line below to disable the --common-tbt-dir option
|
||||
add_definitions(-DQET_ALLOW_OVERRIDE_CTBTD_OPTION)
|
||||
|
||||
# Comment the line below to deactivate the --config-dir option
|
||||
add_definitions(-DQET_ALLOW_OVERRIDE_CD_OPTION)
|
||||
|
||||
# Comment the line below to deactivate the --data-dir option
|
||||
add_definitions(-DQET_ALLOW_OVERRIDE_DD_OPTION)
|
||||
|
||||
#comment the line below to disable the project database export
|
||||
#add_definitions(-DQET_EXPORT_PROJECT_DB) #error Todo
|
||||
@@ -11,7 +11,6 @@ DiagramImageItem + 1007
|
||||
QetShapItem + 1008
|
||||
crossRefItem + 1009
|
||||
DynamiqueElementTextItem + 1010
|
||||
TerminalStripItem +1011
|
||||
ElementPrimitiveDecorator + 2200
|
||||
|
||||
###ELEMENT EDITOR###
|
||||
|
||||
1
elements
1
elements
Submodule elements deleted from 6e1e2471fe
@@ -0,0 +1,24 @@
|
||||
<definition width="70" version="0.3" hotspot_x="49" hotspot_y="15" height="30" type="element" ic="true" orientation="dyyy"
|
||||
link_type="previous_report">
|
||||
<uuid uuid="{F549BEFB-F0CF-44ED-A948-F6F796BFB421}"/><names>
|
||||
<name lang="ru">Предыдущая страница</name>
|
||||
<name lang="ar">الصفحة السابقة</name>
|
||||
<name lang="de">Vorherige Folie</name>
|
||||
<name lang="el">Προηγούμενη σελίδα</name>
|
||||
<name lang="en">Coming arrow</name>
|
||||
<name lang="it">Foglio precedente</name>
|
||||
<name lang="fr">Folio précédent</name>
|
||||
<name lang="pl">Wejście adresowe</name>
|
||||
<name lang="es">folio anterior</name>
|
||||
<name lang="cs">Předchozí list</name>
|
||||
<name lang="nl">Referentie Vorig</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<polygon x4="-1" antialias="true" style="line-style:normal;line-weight:normal;filling:black;color:black" closed="false" y1="-4" x1="-1" y2="4" x2="-1" y3="0" x3="9" y4="-4"/>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="9" y2="0" x2="12"/>
|
||||
<input x="-44" y="0" size="9" rotate="true" text="/"/>
|
||||
<terminal x="13" y="0" nameHidden="0" number="" name="" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,24 @@
|
||||
<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>
|
||||
<name lang="ar">الصفحة التالية</name>
|
||||
<name lang="de">Nächste Folie</name>
|
||||
<name lang="el">Επόμενη σελίδα</name>
|
||||
<name lang="en">Going arrow</name>
|
||||
<name lang="it">Foglio successivo</name>
|
||||
<name lang="fr">Folio suivant</name>
|
||||
<name lang="pl">Wyjście adresowe</name>
|
||||
<name lang="es">Folio siguiente</name>
|
||||
<name lang="cs">Další list</name>
|
||||
<name lang="nl">Referentie volgend</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<polygon x4="-9" antialias="true" style="line-style:normal;line-weight:normal;filling:black;color:black" closed="false" y1="-4" x1="-9" y2="4" x2="-9" y3="0" x3="2" y4="-4"/>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="-9" y2="0" x2="-12"/>
|
||||
<input x="6" y="0" size="9" rotate="true" text="/"/>
|
||||
<terminal x="-13" y="0" nameHidden="0" number="" name="" orientation="w"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,17 @@
|
||||
<qet-directory>
|
||||
<names>
|
||||
<name lang="ru">Точки разрыва</name>
|
||||
<name lang="ar">إحالات</name>
|
||||
<name lang="cs">Výstupy</name>
|
||||
<name lang="de">Folienverweise</name>
|
||||
<name lang="el">Αναφορές σελίδας</name>
|
||||
<name lang="en">Folio referencing</name>
|
||||
<name lang="fr">Reports de folio</name>
|
||||
<name lang="it">Riferimenti</name>
|
||||
<name lang="pl">Odsyłacze</name>
|
||||
<name lang="es">Referencias</name>
|
||||
<name lang="nl">Referenties</name>
|
||||
<name lang="da">Ark henvisninger</name>
|
||||
<name lang="ja">フォリオ参照</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
@@ -0,0 +1,37 @@
|
||||
<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>
|
||||
<name lang="el">Τριφασικό + PEN</name>
|
||||
<name lang="es">Fuente tripolar + PEN</name>
|
||||
<name lang="nl">driefasen + aardenul</name>
|
||||
<name lang="pl">Linia trójfazowa (PEN)</name>
|
||||
<name lang="it">Sorgente tripolare + PEN</name>
|
||||
<name lang="de">Drehstrom + PEN</name>
|
||||
<name lang="ru">Трёхполюсный + PEN</name>
|
||||
<name lang="fr">Source tripolaire + PEN</name>
|
||||
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
|
||||
<name lang="cs">3 fáze + PEN pravý</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<dynamic_text z="1" Valignment="AlignTop" x="-7" text_from="ElementInfo" font="Sans Serif,9,-1,5,50,0,0,0,0,0" rotation="0" uuid="{7c68cf51-b979-4e89-97b2-a93b5ad61f95}" y="-60.45" Halignment="AlignLeft" frame="false" text_width="-1">
|
||||
<text></text>
|
||||
<info_name>label</info_name>
|
||||
</dynamic_text>
|
||||
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="33" text="PEN" color="#000000"/>
|
||||
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="13" text="L3" color="#000000"/>
|
||||
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="-7" text="L2" color="#000000"/>
|
||||
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="-27" text="L1" color="#000000"/>
|
||||
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="-30" end1="none" y1="-30" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
|
||||
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="-10" end1="none" y1="-10" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
|
||||
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="10" end1="none" y1="10" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
|
||||
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-14" y2="30" end1="none" y1="30" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
|
||||
<terminal orientation="w" x="-15" y="-30"/>
|
||||
<terminal orientation="w" x="-15" y="-10"/>
|
||||
<terminal orientation="w" x="-15" y="30"/>
|
||||
<terminal orientation="w" x="-15" y="10"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,40 @@
|
||||
<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>
|
||||
<name lang="el">Τριφασικό + PEN</name>
|
||||
<name lang="es">Fuente tripolar + PEN</name>
|
||||
<name lang="nl">driefasen + aardenul</name>
|
||||
<name lang="pl">Linia trójfazowa (PEN)</name>
|
||||
<name lang="it">Sorgente tripolare + PEN</name>
|
||||
<name lang="de">Drehstrom + PEN</name>
|
||||
<name lang="ru">Трёхполюсный + PEN</name>
|
||||
<name lang="fr">Source tripolaire + PEN</name>
|
||||
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
|
||||
<name lang="cs">3 fáze + N+PE pravý</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<dynamic_text z="1" Valignment="AlignTop" x="-7" text_from="ElementInfo" font="Sans Serif,9,-1,5,50,0,0,0,0,0" rotation="0" uuid="{1955f25e-b33b-4106-8b36-46862006122c}" y="-60.45" Halignment="AlignLeft" frame="false" text_width="-1">
|
||||
<text></text>
|
||||
<info_name>label</info_name>
|
||||
</dynamic_text>
|
||||
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="53" text="PE" color="#000000"/>
|
||||
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="33" text="N" color="#000000"/>
|
||||
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="50" end1="none" y1="50" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
|
||||
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="13" text="L3" color="#000000"/>
|
||||
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="-7" text="L2" color="#000000"/>
|
||||
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="-27" text="L1" color="#000000"/>
|
||||
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="-30" end1="none" y1="-30" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
|
||||
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="-10" end1="none" y1="-10" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
|
||||
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="10" end1="none" y1="10" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
|
||||
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="30" end1="none" y1="30" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
|
||||
<terminal orientation="w" x="-15" y="50"/>
|
||||
<terminal orientation="w" x="-15" y="-30"/>
|
||||
<terminal orientation="w" x="-15" y="-10"/>
|
||||
<terminal orientation="w" x="-15" y="30"/>
|
||||
<terminal orientation="w" x="-15" y="10"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,42 @@
|
||||
<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>
|
||||
<name lang="pt">Massa</name>
|
||||
<name lang="cs">Kostra</name>
|
||||
<name lang="it">Massa</name>
|
||||
<name lang="nl">Massa</name>
|
||||
<name lang="el">Γείωση</name>
|
||||
<name lang="ru">Шасси</name>
|
||||
<name lang="de">Masse</name>
|
||||
<name lang="en">Ground</name>
|
||||
<name lang="pl">Masa</name>
|
||||
<name lang="es">Masa</name>
|
||||
<name lang="ar">هيكل معدني</name>
|
||||
<name lang="fr">Masse</name>
|
||||
</names>
|
||||
<elementInformations>
|
||||
<elementInformation name="comment" show="1"></elementInformation>
|
||||
<elementInformation name="machine_manufacturer_reference" show="1"></elementInformation>
|
||||
<elementInformation name="manufacturer_reference" show="1"></elementInformation>
|
||||
<elementInformation name="description" show="1"></elementInformation>
|
||||
<elementInformation name="manufacturer" show="1"></elementInformation>
|
||||
<elementInformation name="designation" show="1"></elementInformation>
|
||||
<elementInformation name="quantity" show="1"></elementInformation>
|
||||
<elementInformation name="unity" show="1"></elementInformation>
|
||||
<elementInformation name="supplier" show="1"></elementInformation>
|
||||
<elementInformation name="plant" show="1"></elementInformation>
|
||||
<elementInformation name="label" show="1"></elementInformation>
|
||||
</elementInformations>
|
||||
<informations>titus
|
||||
titus0818@yahoo.com</informations>
|
||||
<description>
|
||||
<line y1="-16" x1="0" style="line-style:normal;line-weight:hight;filling:none;color:black" end2="none" y2="13" length2="1.5" length1="1.5" x2="0" end1="none" antialias="false"/>
|
||||
<line y1="14" x1="-13.6493" style="line-style:normal;line-weight:hight;filling:none;color:black" end2="none" y2="14" length2="1.5" length1="1.5" x2="12.62" end1="none" antialias="false"/>
|
||||
<dynamic_text uuid="{7f02ce13-533d-4501-980d-6cb67bd1110d}" Halignment="AlignLeft" frame="false" x="8" Valignment="AlignTop" text_from="ElementInfo" y="-9" font="Sans Serif,9,-1,5,50,0,0,0,0,0" z="3" rotation="0" text_width="-1">
|
||||
<text></text>
|
||||
<info_name>label</info_name>
|
||||
</dynamic_text>
|
||||
<terminal x="0" y="-20" orientation="n"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,30 @@
|
||||
<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>
|
||||
<name lang="es">Masa</name>
|
||||
<name lang="nl">Massa</name>
|
||||
<name lang="el">Σασί</name>
|
||||
<name lang="de">Masse</name>
|
||||
<name lang="cs">Kostra</name>
|
||||
<name lang="pl">Masa</name>
|
||||
<name lang="it">Massa</name>
|
||||
<name lang="ar">هيكل معدني</name>
|
||||
<name lang="en">Chassis</name>
|
||||
<name lang="fr">Masse</name>
|
||||
<name lang="ru">Шасси</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="3" y="-12.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="5" end2="none" x1="7.5" end1="none" y2="3" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0.5"/>
|
||||
<line antialias="false" length1="1.5" x2="1.5" end2="none" x1="-1" end1="none" y2="0.5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3"/>
|
||||
<line antialias="false" length1="1.5" x2="-4.5" end2="none" x1="-7" end1="none" y2="0.5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3"/>
|
||||
<line antialias="false" length1="1.5" x2="4.5" end2="none" x1="2" end1="none" y2="0.5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3"/>
|
||||
<line antialias="false" length1="1.5" x2="-1.5" end2="none" x1="-4" end1="none" y2="0.5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3"/>
|
||||
<line antialias="false" length1="1.5" x2="8" end2="none" x1="-7" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<line antialias="false" length1="1.5" x2="0" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<terminal x="0" y="-11" orientation="n"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,16 @@
|
||||
<qet-directory>
|
||||
<names>
|
||||
<name lang="ru">Подвод питания, сеть</name>
|
||||
<name lang="en">Network sources</name>
|
||||
<name lang="fr">Sources réseau</name>
|
||||
<name lang="it">Alimentazione da rete</name>
|
||||
<name lang="pl">Sieć elektroenergetyczna</name>
|
||||
<name lang="de">Netzquellen</name>
|
||||
<name lang="el">Παροχές δικτύου</name>
|
||||
<name lang="nl">Netvoedingen</name>
|
||||
<name lang="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>
|
||||
@@ -0,0 +1,30 @@
|
||||
<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>
|
||||
<name lang="nl">1 fase + aarde + nul</name>
|
||||
<name lang="el">Μονοφασικό +N +PE</name>
|
||||
<name lang="de">Wechselstrom + PE +N</name>
|
||||
<name lang="cs">1 fáze + PE +N</name>
|
||||
<name lang="pl">Linia jednofazowa (trójprzewodowa)</name>
|
||||
<name lang="it">Sorgente unipolare + PE +N</name>
|
||||
<name lang="ar">مصدر وحيد القطبية + أرضي PE + محايد N</name>
|
||||
<name lang="en">Single-pole source + PE +N</name>
|
||||
<name lang="fr">Source unipolaire + PE +N</name>
|
||||
<name lang="ru">Однополюсный + PE +N</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-12" y="-34.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="20"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20"/>
|
||||
<text x="-12" y="23" size="5" text="PE"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<text x="-12" y="3" size="5" text="N"/>
|
||||
<text x="-12" y="-17" size="5" text="L"/>
|
||||
<terminal x="10" y="0" orientation="e"/>
|
||||
<terminal x="10" y="20" orientation="e"/>
|
||||
<terminal x="10" y="-20" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,27 @@
|
||||
<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>
|
||||
<name lang="nl">1 fase + aardenul</name>
|
||||
<name lang="el">Μονοφασικό +PEN</name>
|
||||
<name lang="de">Wechselstrom + PEN</name>
|
||||
<name lang="cs">1 fáze + PEN</name>
|
||||
<name lang="pl">Linia jednofazowa (TN-C)</name>
|
||||
<name lang="it">Sorgente unipolare + PEN</name>
|
||||
<name lang="ar">مصدر وحيد القطبية +PEN</name>
|
||||
<name lang="en">Single-pole source +PEN</name>
|
||||
<name lang="fr">Source unipolaire + PEN</name>
|
||||
<name lang="ru">Однополюсный + PEN</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-7" y="-23.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<text x="-16" y="12" size="5" text="PEN"/>
|
||||
<text x="-15" y="-7" size="5" text="L"/>
|
||||
<terminal x="10" y="-10" orientation="e"/>
|
||||
<terminal x="10" y="10" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,28 @@
|
||||
<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>
|
||||
<name lang="es">Fuente unipolo + neutro</name>
|
||||
<name lang="nl">Wisselspanning L + nul N</name>
|
||||
<name lang="el">Μονοφασικό + Ουδέτερος</name>
|
||||
<name lang="de">Wechselstrom L + N</name>
|
||||
<name lang="cs">Jednopólový zdroj + nulový</name>
|
||||
<name lang="pl">Linia jednofazowa (dwuprzewodowa)</name>
|
||||
<name lang="it">Sorgente unipolare + neutro</name>
|
||||
<name lang="ar">مصدر وحيد القطبية + محايد N</name>
|
||||
<name lang="en">Single-pole source + neutral</name>
|
||||
<name lang="fr">Source unipolaire + neutre</name>
|
||||
<name lang="ru">Однополюсный + нейтраль</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-5" y="-25.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<text x="-12" y="13" size="5" text="N"/>
|
||||
<text x="-12" y="-7" size="5" text="L"/>
|
||||
<terminal x="10" y="-10" orientation="e"/>
|
||||
<terminal x="10" y="10" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,31 @@
|
||||
<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>
|
||||
<name lang="es">Fuente tripolar</name>
|
||||
<name lang="nl">3fasen</name>
|
||||
<name lang="el">Τριφασικό</name>
|
||||
<name lang="de">Drehstrom</name>
|
||||
<name lang="cs">Třípólový zdroj</name>
|
||||
<name lang="pl">Linia trójfazowa (trójprzewodowa)</name>
|
||||
<name lang="it">Sorgente tripolare</name>
|
||||
<name lang="ar">مصدر ثلاثي القطبيّة</name>
|
||||
<name lang="en">Three-pole source</name>
|
||||
<name lang="fr">Source tripolaire</name>
|
||||
<name lang="ru">Трёхполюсный</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-2" y="-34.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="20"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<text x="-12" y="23" size="5" text="L3"/>
|
||||
<text x="-12" y="3" size="5" text="L2"/>
|
||||
<text x="-12" y="-17" size="5" text="L1"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20"/>
|
||||
<terminal x="10" y="-20" orientation="e"/>
|
||||
<terminal x="10" y="0" orientation="e"/>
|
||||
<terminal x="10" y="20" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,36 @@
|
||||
<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>
|
||||
<name lang="nl">driefase + aarde + nul</name>
|
||||
<name lang="el">Τριφασικό +N +PE</name>
|
||||
<name lang="de">Drehstrom + PE +N</name>
|
||||
<name lang="cs">3 fáze + PE +N</name>
|
||||
<name lang="pl">Linia trójfazowa (pięcioprzewodowa)</name>
|
||||
<name lang="it">Sorgente tripolare +PE + N</name>
|
||||
<name lang="ar">مصدر ثلاثي القطبية + PE + N</name>
|
||||
<name lang="en">Three-pole source + PE +N</name>
|
||||
<name lang="fr">Source tripolaire + PE +N</name>
|
||||
<name lang="ru">Трёхполюсный + PE +N</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="3" y="-59.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="40"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<text x="-12" y="43" size="5" text="PE"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="20"/>
|
||||
<text x="-12" y="23" size="5" text="N"/>
|
||||
<text x="-12" y="3" size="5" text="L3"/>
|
||||
<text x="-12" y="-17" size="5" text="L2"/>
|
||||
<text x="-12" y="-37" size="5" text="L1"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-40"/>
|
||||
<terminal x="10" y="-20" orientation="e"/>
|
||||
<terminal x="10" y="-40" orientation="e"/>
|
||||
<terminal x="10" y="0" orientation="e"/>
|
||||
<terminal x="10" y="20" orientation="e"/>
|
||||
<terminal x="10" y="40" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,33 @@
|
||||
<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>
|
||||
<name lang="nl">driefasen + aardenul</name>
|
||||
<name lang="el">Τριφασικό + PEN</name>
|
||||
<name lang="de">Drehstrom + PEN</name>
|
||||
<name lang="cs">3 fáze + PEN</name>
|
||||
<name lang="pl">Linia trójfazowa (PEN)</name>
|
||||
<name lang="it">Sorgente tripolare + PEN</name>
|
||||
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
|
||||
<name lang="en">Three-pole source + PEN</name>
|
||||
<name lang="fr">Source tripolaire + PEN</name>
|
||||
<name lang="ru">Трёхполюсный + PEN</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-7" y="-49.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
|
||||
<text x="-18" y="32" size="5" text="PEN"/>
|
||||
<text x="-18" y="12" size="5" text="L3"/>
|
||||
<text x="-18" y="-8" size="5" text="L2"/>
|
||||
<text x="-18" y="-28" size="5" text="L1"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
|
||||
<terminal x="10" y="-30" orientation="e"/>
|
||||
<terminal x="10" y="-10" orientation="e"/>
|
||||
<terminal x="10" y="10" orientation="e"/>
|
||||
<terminal x="10" y="30" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,34 @@
|
||||
<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>
|
||||
<name lang="es">Fuente tripolar + neutro</name>
|
||||
<name lang="nl">Driefasen + nul</name>
|
||||
<name lang="el">Τριφασικό + Ουδέτερος</name>
|
||||
<name lang="de">Dreiphasig + Neutral</name>
|
||||
<name lang="cs">Třípólový zdroj + nulový</name>
|
||||
<name lang="pl">Linia trójfazowa (czteroprzewodowa)</name>
|
||||
<name lang="it">Sorgente tripolare + neutro</name>
|
||||
<name lang="ar">مصدر ثلاثي القطبيّة + محايد</name>
|
||||
<name lang="en">Three-pole source + neutral</name>
|
||||
<name lang="fr">Source tripolaire + neutre</name>
|
||||
<name lang="ru">Трёхполюсный + нейтраль</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-7" y="-44.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
|
||||
<text x="-12" y="33" size="5" text="N"/>
|
||||
<text x="-12" y="13" size="5" text="L3"/>
|
||||
<text x="-12" y="-7" size="5" text="L2"/>
|
||||
<text x="-12" y="-27" size="5" text="L1"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
|
||||
<terminal x="10" y="10" orientation="e"/>
|
||||
<terminal x="10" y="30" orientation="e"/>
|
||||
<terminal x="10" y="-30" orientation="e"/>
|
||||
<terminal x="10" y="-10" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,25 @@
|
||||
<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>
|
||||
<name lang="es">Fuente neutro</name>
|
||||
<name lang="nl">Nul voeding</name>
|
||||
<name lang="el">Ουδέτερος</name>
|
||||
<name lang="de">Neutralleiter</name>
|
||||
<name lang="cs">Nulový zdroj</name>
|
||||
<name lang="pl">Przewód neutralny</name>
|
||||
<name lang="it">Sorgente neutro</name>
|
||||
<name lang="ar">مصدر محايد</name>
|
||||
<name lang="en">Neutral source</name>
|
||||
<name lang="fr">Source neutre</name>
|
||||
<name lang="ru">Нейтраль</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<input x="-5" y="-14.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<text x="-12" y="3" size="5" text="N"/>
|
||||
<terminal x="10" y="0" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,25 @@
|
||||
<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>
|
||||
<name lang="es">Fuente fase</name>
|
||||
<name lang="nl">Fase</name>
|
||||
<name lang="el">Φάση</name>
|
||||
<name lang="de">Phase</name>
|
||||
<name lang="cs">Fázový zdroj</name>
|
||||
<name lang="pl">Przewód liniowy</name>
|
||||
<name lang="it">Sorgente fase</name>
|
||||
<name lang="ar">مصدر وجه</name>
|
||||
<name lang="en">Phase source</name>
|
||||
<name lang="fr">Source phase</name>
|
||||
<name lang="ru">Фаза</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<input x="-6" y="-14.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<text x="-12" y="3" size="5" text="L"/>
|
||||
<terminal x="10" y="0" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,48 @@
|
||||
<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>
|
||||
<name lang="nl">Net TN-C > TN-S</name>
|
||||
<name lang="de">Netz TNC > TNS</name>
|
||||
<name lang="cs">Bod rozdělení TN-C > TN-S</name>
|
||||
<name lang="pl">Linia trójfazowa (TN-C-S)</name>
|
||||
<name lang="it">Punto di distribuzione TN-C</name>
|
||||
<name lang="ar">نقطة توزيع TN-C < TN-S </name>
|
||||
<name lang="en">Distribution point TN-C >TN-S</name>
|
||||
<name lang="fr">Point de distribution TN-C >TN-S</name>
|
||||
<name lang="ru">Распределительный пункт TN-C >TN-S</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
|
||||
<input x="-17" y="-49.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
|
||||
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
|
||||
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<line antialias="false" length1="1.5" x2="-4" end2="none" x1="-6" end1="none" y2="54" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="54"/>
|
||||
<line antialias="false" length1="1.5" x2="-2" end2="none" x1="-8" end1="none" y2="52" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="52"/>
|
||||
<line antialias="false" length1="1.5" x2="0" end2="none" x1="-10" end1="none" y2="50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
|
||||
<text x="13" y="53" size="5" text="PE"/>
|
||||
<text x="13" y="33" size="5" text="N"/>
|
||||
<text x="13" y="13" size="5" text="L3"/>
|
||||
<text x="13" y="-7" size="5" text="L2"/>
|
||||
<text x="13" y="-27" size="5" text="L1"/>
|
||||
<line antialias="false" length1="1.5" x2="12" end2="none" x1="-13" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
|
||||
<line antialias="false" length1="1.5" x2="12" end2="none" x1="7" end1="none" y2="50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
|
||||
<line antialias="false" length1="1.5" x2="12" end2="none" x1="-13" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
|
||||
<line antialias="false" length1="1.5" x2="12" end2="none" x1="-13" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
|
||||
<text x="-30" y="33" size="5" text="PEN"/>
|
||||
<text x="-30" y="13" size="5" text="L3"/>
|
||||
<text x="-30" y="-7" size="5" text="L2"/>
|
||||
<text x="-30" y="-27" size="5" text="L1"/>
|
||||
<line antialias="false" length1="1.5" x2="12" end2="none" x1="-13" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
|
||||
<polygon antialias="true" x2="-5" x1="7" x3="-5" y2="30" y3="49" closed="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
|
||||
<terminal x="30" y="-10" orientation="e"/>
|
||||
<terminal x="30" y="10" orientation="e"/>
|
||||
<terminal x="30" y="30" orientation="e"/>
|
||||
<terminal x="30" y="50" orientation="e"/>
|
||||
<terminal x="30" y="-30" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,43 @@
|
||||
<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>
|
||||
<name lang="cs">Země</name>
|
||||
<name lang="it">Terra</name>
|
||||
<name lang="el">Γείωση</name>
|
||||
<name lang="nl">Aarde</name>
|
||||
<name lang="ru">Земля</name>
|
||||
<name lang="de">Erde</name>
|
||||
<name lang="en">Ground</name>
|
||||
<name lang="pl">Uziemienie</name>
|
||||
<name lang="es">Tierra</name>
|
||||
<name lang="ar">تأريض</name>
|
||||
<name lang="fr">Terre</name>
|
||||
</names>
|
||||
<elementInformations>
|
||||
<elementInformation name="comment" show="1"></elementInformation>
|
||||
<elementInformation name="machine_manufacturer_reference" show="1"></elementInformation>
|
||||
<elementInformation name="manufacturer_reference" show="1"></elementInformation>
|
||||
<elementInformation name="description" show="1"></elementInformation>
|
||||
<elementInformation name="manufacturer" show="1"></elementInformation>
|
||||
<elementInformation name="designation" show="1"></elementInformation>
|
||||
<elementInformation name="quantity" show="1"></elementInformation>
|
||||
<elementInformation name="unity" show="1"></elementInformation>
|
||||
<elementInformation name="supplier" show="1"></elementInformation>
|
||||
<elementInformation name="plant" show="1"></elementInformation>
|
||||
<elementInformation name="label" show="1"></elementInformation>
|
||||
</elementInformations>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<dynamic_text uuid="{0af57a27-1887-4576-8b51-200ca996e582}" Halignment="AlignLeft" frame="false" x="2" Valignment="AlignTop" text_from="ElementInfo" y="-22.5" font="Sans Serif,9,-1,5,50,0,0,0,0,0" z="1" rotation="0" text_width="-1">
|
||||
<text></text>
|
||||
<info_name>label</info_name>
|
||||
</dynamic_text>
|
||||
<line y1="4" x1="-3" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" y2="4" length2="1.5" length1="1.5" x2="3" end1="none" antialias="false"/>
|
||||
<line y1="2" x1="-5" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" y2="2" length2="1.5" length1="1.5" x2="5" end1="none" antialias="false"/>
|
||||
<line y1="0" x1="-7" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" y2="0" length2="1.5" length1="1.5" x2="7" end1="none" antialias="false"/>
|
||||
<line y1="-10" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" y2="0" length2="1.5" length1="1.5" x2="0" end1="none" antialias="false"/>
|
||||
<terminal x="0" y="-11" orientation="n"/>
|
||||
</description>
|
||||
</definition>
|
||||
15
elements/10_electric/10_allpole/114_connections/bod.elmt
Normal file
15
elements/10_electric/10_allpole/114_connections/bod.elmt
Normal 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>
|
||||
25
elements/10_electric/10_allpole/114_connections/combine.elmt
Normal file
25
elements/10_electric/10_allpole/114_connections/combine.elmt
Normal file
@@ -0,0 +1,25 @@
|
||||
<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>
|
||||
<name lang="fr">Jonction</name>
|
||||
<name lang="es">Unión</name>
|
||||
<name lang="it">Collegamento</name>
|
||||
<name lang="pl">Połączenie 1</name>
|
||||
<name lang="ar">وصلة</name>
|
||||
<name lang="ru">Соединение</name>
|
||||
<name lang="cs">Spoj</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<line end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" antialias="false" x1="7" length1="1.5" x2="1" y2="0" length2="1.5" end1="none"/>
|
||||
<dynamic_text text_from="UserText" y="8.5" uuid="{43af2b14-2822-4ba2-988b-bda2005f69fd}" x="2" frame="false" z="2" rotation="0" text_width="-1" font_size="1">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<line end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="6" antialias="false" x1="0" length1="1.5" x2="6" y2="0" length2="1.5" end1="none"/>
|
||||
<terminal y="0" x="-4" orientation="w"/>
|
||||
<terminal y="10" x="0" orientation="s"/>
|
||||
<terminal y="0" x="10" orientation="e"/>
|
||||
</description>
|
||||
</definition>
|
||||
22
elements/10_electric/10_allpole/114_connections/corner.elmt
Normal file
22
elements/10_electric/10_allpole/114_connections/corner.elmt
Normal file
@@ -0,0 +1,22 @@
|
||||
<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>
|
||||
<name lang="en">Corner</name>
|
||||
<name lang="cs">Roh</name>
|
||||
<name lang="fr">Coin</name>
|
||||
<name lang="ru">Угол</name>
|
||||
<name lang="pl">Narożnik</name>
|
||||
<name lang="ar">ركن</name>
|
||||
<name lang="it">Angolo</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<dynamic_text rotation="0" x="-0.5" y="-5.45" uuid="{9b8dd22d-096a-4989-b6f7-1de9e0339f53}" font_size="1" z="1" frame="false" text_from="UserText" text_width="-1">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<terminal x="0" y="4" orientation="s"/>
|
||||
<terminal x="-4" y="0" orientation="w"/>
|
||||
</description>
|
||||
</definition>
|
||||
25
elements/10_electric/10_allpole/114_connections/cross.elmt
Normal file
25
elements/10_electric/10_allpole/114_connections/cross.elmt
Normal file
@@ -0,0 +1,25 @@
|
||||
<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>
|
||||
<name lang="cs">Kříž</name>
|
||||
<name lang="pl">Połączenie 2</name>
|
||||
<name lang="it">Croce</name>
|
||||
<name lang="es">Cruzar</name>
|
||||
<name lang="en">Cross</name>
|
||||
<name lang="ar">صليب</name>
|
||||
<name lang="fr">Croix</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<circle y="-1" style="line-style:normal;line-weight:normal;filling:black;color:black" x="-1" antialias="true" diameter="2"/>
|
||||
<dynamic_text uuid="{fc5c039b-1fca-40d9-a6ff-a9e1775de38b}" text_width="-1" frame="false" y="-9.45" font_size="1" x="-0.5" z="2" rotation="0" text_from="UserText">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<terminal y="0" orientation="e" x="4"/>
|
||||
<terminal y="4" orientation="s" x="0"/>
|
||||
<terminal y="-4" orientation="n" x="0"/>
|
||||
<terminal y="0" orientation="w" x="-4"/>
|
||||
</description>
|
||||
</definition>
|
||||
23
elements/10_electric/10_allpole/114_connections/jump.elmt
Normal file
23
elements/10_electric/10_allpole/114_connections/jump.elmt
Normal file
@@ -0,0 +1,23 @@
|
||||
<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>
|
||||
<name lang="fr">Saut</name>
|
||||
<name lang="ar">قفز</name>
|
||||
<name lang="cs">Skok</name>
|
||||
<name lang="it">Salto</name>
|
||||
<name lang="pl">Brak połączenia</name>
|
||||
<name lang="ru">Перемычка</name>
|
||||
<name lang="es">Puente</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<arc x="-3" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" width="6" start="90" y="-3" height="6" angle="-180"/>
|
||||
<dynamic_text font_size="1" x="1.5" text_from="UserText" z="2" y="-11.45" rotation="0" uuid="{1a3e4d91-15cc-424b-99d0-25930d779fb6}" frame="false" text_width="-1">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<terminal x="0" y="-7" orientation="n"/>
|
||||
<terminal x="0" y="7" orientation="s"/>
|
||||
</description>
|
||||
</definition>
|
||||
19
elements/10_electric/10_allpole/114_connections/lphd.elmt
Normal file
19
elements/10_electric/10_allpole/114_connections/lphd.elmt
Normal 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>
|
||||
17
elements/10_electric/10_allpole/114_connections/pokus.elmt
Normal file
17
elements/10_electric/10_allpole/114_connections/pokus.elmt
Normal 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>
|
||||
@@ -0,0 +1,16 @@
|
||||
<qet-directory>
|
||||
<names>
|
||||
<name lang="ru">Соединения</name>
|
||||
<name lang="de">Verbindungen</name>
|
||||
<name lang="en">Connections</name>
|
||||
<name lang="fr">Connections</name>
|
||||
<name lang="it">Collegamenti</name>
|
||||
<name lang="pl">Połączenia</name>
|
||||
<name lang="cs">Spojení</name>
|
||||
<name lang="el">Ενώσεις</name>
|
||||
<name lang="nl">Verbindingen</name>
|
||||
<name lang="es">Conexiones</name>
|
||||
<name lang="da">Forbindelser</name>
|
||||
<name lang="ja">接続</name>
|
||||
</names>
|
||||
</qet-directory>
|
||||
25
elements/10_electric/10_allpole/114_connections/splice.elmt
Normal file
25
elements/10_electric/10_allpole/114_connections/splice.elmt
Normal file
@@ -0,0 +1,25 @@
|
||||
<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>
|
||||
<name lang="pl">Połączenie 3</name>
|
||||
<name lang="cs">Spojka</name>
|
||||
<name lang="en">Splice</name>
|
||||
<name lang="it">Spaziatura</name>
|
||||
<name lang="ru">Сращивание</name>
|
||||
<name lang="es">Empalme</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<dynamic_text text_width="-1" x="1.5" rotation="0" frame="false" uuid="{b653b162-d4c8-4660-a5ca-e6ca05a56de9}" font_size="1" z="1" text_from="ElementInfo" y="-1.45">
|
||||
<text></text>
|
||||
<info_name>label</info_name>
|
||||
</dynamic_text>
|
||||
<line x2="-6" antialias="false" x1="0" end2="none" y2="0" end1="none" length2="1.5" length1="1.5" y1="6" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line x2="-5" antialias="false" x1="1" end2="none" y2="0" end1="none" length2="1.5" length1="1.5" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<terminal x="0" orientation="s" y="10"/>
|
||||
<terminal x="-10" orientation="w" y="0"/>
|
||||
<terminal x="4" orientation="e" y="0"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,25 @@
|
||||
<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>
|
||||
<name lang="ru">Справа налево</name>
|
||||
<name lang="fr">Liaison gauche</name>
|
||||
<name lang="en">Thru left</name>
|
||||
<name lang="ar">ربط يسار</name>
|
||||
<name lang="it">Collegamento sinistro</name>
|
||||
<name lang="pl">Połączenie 4</name>
|
||||
<name lang="es">A la izquierda</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<dynamic_text font_size="1" rotation="0" uuid="{5ff9bef8-b6a8-4cf8-ba82-4dabe7b1820f}" text_width="-1" frame="false" text_from="UserText" z="1" x="1.5" y="-1.45">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<line x1="0" length1="1.5" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="6" y2="0" end1="none" antialias="false" x2="-6"/>
|
||||
<line x1="0" length1="1.5" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" y2="5" end1="none" antialias="false" x2="0"/>
|
||||
<terminal x="4" orientation="e" y="0"/>
|
||||
<terminal x="-10" orientation="w" y="0"/>
|
||||
<terminal x="0" orientation="s" y="10"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,26 @@
|
||||
<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>
|
||||
<name lang="ru">Слева направо</name>
|
||||
<name lang="cs">Pravé spojení</name>
|
||||
<name lang="fr">Liaison droite</name>
|
||||
<name lang="it">Collegamento destro</name>
|
||||
<name lang="es">A la derecha</name>
|
||||
<name lang="ar">ربط يمين</name>
|
||||
<name lang="pl">Połączenie 5</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<dynamic_text text_width="-1" y="-0.45" rotation="0" uuid="{ab829572-e7d6-4e5c-9c6e-a0852fea788e}" x="5.5" frame="false" text_from="UserText" font_size="1" z="1">
|
||||
<text>_</text>
|
||||
</dynamic_text>
|
||||
<line antialias="false" x1="0" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" end2="none" end1="none" y2="0" length2="1.5" x2="-6"/>
|
||||
<line antialias="false" x1="0" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" end2="none" end1="none" y2="5" length2="1.5" x2="0"/>
|
||||
<line antialias="false" x1="6" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" end2="none" end1="none" y2="6" length2="1.5" x2="0"/>
|
||||
<terminal orientation="s" y="10" x="0"/>
|
||||
<terminal orientation="w" y="0" x="-10"/>
|
||||
<terminal orientation="e" y="0" x="10"/>
|
||||
</description>
|
||||
</definition>
|
||||
25
elements/10_electric/10_allpole/120_cables&wiring/cable.elmt
Normal file
25
elements/10_electric/10_allpole/120_cables&wiring/cable.elmt
Normal file
@@ -0,0 +1,25 @@
|
||||
<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>
|
||||
<name lang="ru">Кабель 2 жилы + PE</name>
|
||||
<name lang="it">Cavo 2 fasi + terra</name>
|
||||
<name lang="fr">Cable 2 phases+terre</name>
|
||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||
<name lang="es">Cable 2 fases+tierra</name>
|
||||
<name lang="cs">Označení drátového propojení - 2 fáze + země</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<text x="12" y="9" size="4" text="2"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="26.95" y2="11.95" x2="30.95"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="8" y2="12" x2="12"/>
|
||||
<text x="30.5" y="8.55" size="4" text="GNYE"/>
|
||||
<input x="-68" y="17" size="3" rotate="true" text="210007
4G1,5 mm²
 4m"/>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="-39.9373" y2="10" x2="37.932"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="-32" y2="12" x2="-28"/>
|
||||
<text x="-28" y="9" size="4" text="1"/>
|
||||
<input x="-61" y="1" size="5" rotate="true" text="+"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,27 @@
|
||||
<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>
|
||||
<name lang="ru">Кабель 3 жилы + PE</name>
|
||||
<name lang="it">Cavo 3 fasi + terra</name>
|
||||
<name lang="fr">Cable 3 phases+terre</name>
|
||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||
<name lang="es">Cable 3 fases+tierra</name>
|
||||
<name lang="cs">Označení drátového propojení - 3 fáze + země</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-12.05" y2="11.95" x2="-8.05"/>
|
||||
<text x="-9" y="9" size="4" text="2"/>
|
||||
<text x="12" y="9" size="4" text="3"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="26.95" y2="11.95" x2="30.95"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="8" y2="12" x2="12"/>
|
||||
<text x="32" y="9" size="4" text="GNYE"/>
|
||||
<input x="-68" y="17" size="3" rotate="true" text="210007
4G1,5 mm²
 4m"/>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="-39.9373" y2="10" x2="37.932"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="-32" y2="12" x2="-28"/>
|
||||
<text x="-28" y="9" size="4" text="1"/>
|
||||
<input x="-61" y="1" size="5" rotate="true" text="+"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,25 @@
|
||||
<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>
|
||||
<name lang="ru">Кабель 2 жилы + PE</name>
|
||||
<name lang="it">Cavo 2 fasi + terra</name>
|
||||
<name lang="fr">Cable 2 phases+terre</name>
|
||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||
<name lang="es">Cable 2 fases+tierra</name>
|
||||
<name lang="cs">Označení drátového propojení - 2 fáze + země</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="17.95" y2="11.95" x2="21.95"/>
|
||||
<text x="2" y="9" size="4" text="2"/>
|
||||
<text x="23" y="9" size="4" text="GNYE"/>
|
||||
<input x="-58" y="17" size="3" rotate="true" text="210007
4G1,5 mm²
 4m"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-2.05" y2="11.95" x2="1.95"/>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="-30.2509" y2="10" x2="27.2717"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="-22" y2="12" x2="-18"/>
|
||||
<text x="-18" y="9" size="4" text="1"/>
|
||||
<input x="-51" y="1" size="5" rotate="true" text="+"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,24 @@
|
||||
<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>
|
||||
<name lang="fr">Cable 4G</name>
|
||||
<name lang="pl">Przewód czterożyłowy</name>
|
||||
<name lang="es">Cable 4G</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-33.05" y2="11.95" x2="-29.05"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-13.05" y2="11.95" x2="-9.05"/>
|
||||
<text x="31" y="9" size="4" text="3"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="27" y2="12" x2="31"/>
|
||||
<text x="-10" y="9" size="4" text="1"/>
|
||||
<text x="11" y="9" size="4" text="2"/>
|
||||
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="7" y2="12" x2="11"/>
|
||||
<input x="-82" y="2.5" size="6" rotate="true" text="type?
4G_ mm²"/>
|
||||
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="-31" y2="10" x2="29"/>
|
||||
<text x="-31" y="9" size="4" text="GNYE"/>
|
||||
<input x="-62" y="1" size="5" rotate="true" text=""/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,26 @@
|
||||
<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>
|
||||
<name lang="it">Cavo Type 5G</name>
|
||||
<name lang="es">Cable 5G</name>
|
||||
<name lang="pl">Przewód pięciożyłowy</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line end1="none" x1="-42.05" y1="7.95" x2="-38.05" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line end1="none" x1="-22.05" y1="7.95" x2="-18.05" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="2" size="4" y="9" x="22"/>
|
||||
<line end1="none" x1="18" y1="8" x2="22" length1="1.5" y2="12" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="BL" size="4" y="9" x="-19"/>
|
||||
<text text="1" size="4" y="9" x="2"/>
|
||||
<line end1="none" x1="37.95" y1="7.95" x2="41.95" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line end1="none" x1="-2" y1="8" x2="2" length1="1.5" y2="12" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="3" size="4" y="9" x="43"/>
|
||||
<input text="Type?
5G_ mm²" size="6" rotate="true" y="2" x="-85" tagg="label"/>
|
||||
<line end1="none" x1="-40" y1="10" x2="40" length1="1.5" y2="10" antialias="false" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="GNYE" size="4" y="9" x="-40"/>
|
||||
<input text="" size="5" rotate="true" y="1" x="-71" tagg="none"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,22 @@
|
||||
<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>
|
||||
<name lang="fr">Cable 3G</name>
|
||||
<name lang="es">Cable 3G</name>
|
||||
<name lang="pl">Przewód trójżyłowy</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line end1="none" x1="-23.05" y1="7.95" x2="-19.05" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<line end1="none" x1="-3.05" y1="7.95" x2="0.95" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="1" size="4" y="9" x="0"/>
|
||||
<text text="2" size="4" y="9" x="21"/>
|
||||
<line end1="none" x1="17" y1="8" x2="21" length1="1.5" y2="12" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<input text="type?
3G_ mm²" size="6" rotate="true" y="2.5" x="-72" tagg="label"/>
|
||||
<line end1="none" x1="-21" y1="10" x2="20" length1="1.5" y2="10" antialias="false" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
||||
<text text="GNYE" size="4" y="9" x="-21"/>
|
||||
<input text="" size="5" rotate="true" y="1" x="-52" tagg="none"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,25 @@
|
||||
<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>
|
||||
<name lang="cs">Označení drátového propojení 3 vodiče</name>
|
||||
<name lang="pl">Oznaczenie przewodu trójżyłowego</name>
|
||||
<name lang="it">Cavo a 3 conduttori</name>
|
||||
<name lang="en">Cable 3 wires</name>
|
||||
<name lang="es">Cable 3 alambres</name>
|
||||
<name lang="fr">Cable 3 brins</name>
|
||||
<name lang="ru">Кабель 3 жилы</name>
|
||||
</names>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<line antialias="false" length1="1.5" x2="50" end2="none" x1="-10" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<input x="-36" y="-6" tagg="label" size="7" rotate="true" text="-W?"/>
|
||||
<input x="-56" y="4.5" tagg="none" size="5" rotate="true" text="ÖLFLEX 100"/>
|
||||
<terminal x="0" y="-5" orientation="n"/>
|
||||
<terminal x="20" y="-5" orientation="n"/>
|
||||
<terminal x="40" y="-5" orientation="n"/>
|
||||
<terminal x="0" y="5" orientation="s"/>
|
||||
<terminal x="20" y="5" orientation="s"/>
|
||||
<terminal x="40" y="5" orientation="s"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,23 @@
|
||||
<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>
|
||||
<name lang="el">Πλέγμα</name>
|
||||
<name lang="de">Schirm</name>
|
||||
<name lang="cs">Obrazovka</name>
|
||||
<name lang="pl">Ekran 3</name>
|
||||
<name lang="it">Schermo</name>
|
||||
<name lang="ar">شاشة</name>
|
||||
<name lang="en">Screen</name>
|
||||
<name lang="es">Pantalla</name>
|
||||
<name lang="fr">Ecran</name>
|
||||
<name lang="ru">Экран</name>
|
||||
</names>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<ellipse width="50" x="-15" antialias="true" y="7.5" height="5" style="line-style:dotted;line-weight:normal;filling:none;color:black"/>
|
||||
<input x="-9" y="-2.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<terminal x="-15" y="10" orientation="w"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,21 @@
|
||||
<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>
|
||||
<name lang="cs">Vedení kabelu</name>
|
||||
<name lang="pl">Połączenie przewodu</name>
|
||||
<name lang="it">Conduttore di un cavo</name>
|
||||
<name lang="en">Wire of cable</name>
|
||||
<name lang="es">Alambre del cable</name>
|
||||
<name lang="fr">Fil de cable</name>
|
||||
<name lang="ru">Жила кабеля</name>
|
||||
</names>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<line antialias="false" length1="1.5" x2="9.82672" end2="none" x1="-9.76313" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
|
||||
<input x="1" y="-11.5" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="0" end2="none" x1="0" end1="none" y2="4.11304" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-4.10435"/>
|
||||
<terminal x="0" y="5" orientation="s"/>
|
||||
<terminal x="0" y="-5" orientation="n"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,20 @@
|
||||
<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>
|
||||
<name lang="cs">Drátové propojení</name>
|
||||
<name lang="pl">Oznaczenie przewodu</name>
|
||||
<name lang="it">Conduttura</name>
|
||||
<name lang="en">Wiring</name>
|
||||
<name lang="es">Alambrado</name>
|
||||
<name lang="fr">Filerie</name>
|
||||
</names>
|
||||
<informations></informations>
|
||||
<description>
|
||||
<line antialias="false" length1="1.5" x2="-5" end2="none" x1="5" end1="none" y2="5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-5"/>
|
||||
<input x="0" y="-2.5" tagg="label" size="9" rotate="true" text="_"/>
|
||||
<line antialias="false" length1="1.5" x2="0" end2="none" x1="0" end1="none" y2="5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-5"/>
|
||||
<terminal x="0" y="-5" orientation="n"/>
|
||||
<terminal x="0" y="5" orientation="s"/>
|
||||
</description>
|
||||
</definition>
|
||||
@@ -0,0 +1,33 @@
|
||||
<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>
|
||||
<name lang="fr">Cable 3G</name>
|
||||
<name lang="cs">Kabel 3G</name>
|
||||
</names>
|
||||
<elementInformations/>
|
||||
<informations>Author: The QElectroTech team
|
||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||
<description>
|
||||
<line x2="1.95" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2.05" length2="1.5" antialias="true" y2="1.95" end2="none" x1="-2.05" length1="1.5"/>
|
||||
<line x2="22" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2" length2="1.5" antialias="true" y2="2" end2="none" x1="18" length1="1.5"/>
|
||||
<dynamic_text text_width="-1" font="Sans Serif,7,-1,5,50,0,0,0,0,0" Halignment="AlignLeft" z="3" Valignment="AlignTop" frame="false" x="-50" uuid="{fe752adf-2e2b-4005-a272-42dd6976c493}" y="0.5" text_from="UserText" rotation="0">
|
||||
<text>3G</text>
|
||||
</dynamic_text>
|
||||
<line x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" length2="1.5" antialias="false" y2="0" end2="none" x1="-29.9373" length1="1.5"/>
|
||||
<line x2="-18" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2" length2="1.5" antialias="true" y2="2" end2="none" x1="-22" length1="1.5"/>
|
||||
<dynamic_text text_width="-1" font="Sans Serif,7,-1,5,50,0,0,0,0,0" Halignment="AlignLeft" z="6" Valignment="AlignTop" frame="false" x="-51" uuid="{65bfd07e-7af5-4193-a5ba-b3dc967da121}" y="-18.5" text_from="ElementInfo" rotation="0">
|
||||
<text></text>
|
||||
<info_name>label</info_name>
|
||||
</dynamic_text>
|
||||
<dynamic_text text_width="-1" font="Sans Serif,4,-1,5,25,0,0,0,0,0" Halignment="AlignLeft" z="7" Valignment="AlignTop" frame="false" x="-22" uuid="{df01c7dd-b2e7-4b24-9057-b8bc3478ff67}" y="-11" text_from="UserText" rotation="0">
|
||||
<text>1</text>
|
||||
</dynamic_text>
|
||||
<dynamic_text text_width="-1" font="Sans Serif,4,-1,5,25,0,0,0,0,0" Halignment="AlignLeft" z="8" Valignment="AlignTop" frame="false" x="-2" uuid="{ce5a0030-5247-47ab-a975-63256db0d2bd}" y="-11" text_from="UserText" rotation="0">
|
||||
<text>2</text>
|
||||
</dynamic_text>
|
||||
<dynamic_text text_width="-1" font="Sans Serif,4,-1,5,25,0,0,0,0,0" Halignment="AlignLeft" z="9" Valignment="AlignTop" frame="false" x="18" uuid="{e0a00f86-dd76-48fe-be8b-8ff6f510e651}" y="-11" text_from="UserText" rotation="0">
|
||||
<text>PE</text>
|
||||
</dynamic_text>
|
||||
</description>
|
||||
</definition>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user