Merge remote-tracking branch 'upstream/master' into wiring-manager
Conflicts resolved in 24 files. Notable decisions: - ico/icon-themes.qrc: upstream's icon folder restructure kept; the 36 cable icon entries re-added under the new qet/qet-dark path scheme (XML valid, every referenced file exists). - Toolbar system: upstream's DiagramToolbarSettings now owns the toolbar filling. The cable tool is registered as diagrameditor.add_cable (generic group loop) and listed on the "diagram" toolbar right after the auto-break conductor action, separated by a divider, exactly like before the merge. - Paste: the cable lines of a copy are handed to PasteNumberingImport::push() as extra commands, so paste + cable lines + the numbering question stay ONE undo step on both paste paths (DiagramView::paste and DiagramEventAddPaste::commit). - PDF links: upstream's deterministic link sorting kept together with the cable cross-reference injector (injectLinkTo -> links list). - Element renumbering: upstream's ElementAutoNumSchemeCommand::renumber replaces the old formula-based body of QETProject::renumberElementsBySchemeTitle; the cable numbering rule API (cableAutoNum, axis priority, rule name) is kept in full. - Auto-numbering pages: upstream's scheme management kept, the Câbles tab added as index 4 (changeToCableTab), both entry points changeToCable() and changeToElement() kept side by side. - SelectAutonumW: dirty tracking and the contextEdited signal moved into upstream's insertPartRow() row API, so single-rule mode, the rule-removable button and "confirm without change leaves the project alone" keep working. - xrefpropertieswidget: upstream's offset clamping kept; the cable branch (Texte field, Police button, hidden display options) kept; the stack-overlapping checkbox is hidden for cables. Verified after the merge: build green (515/515, no errors), ctest 85/86 (only the pre-existing headless tst_menubarkeyboard failure), offscreen smoke exit 124.
@@ -136,6 +136,32 @@ jobs:
|
||||
echo "=== ccache statistics ==="
|
||||
/ucrt64/bin/ccache -s
|
||||
|
||||
- name: Run the unit tests
|
||||
shell: msys2 {0}
|
||||
env:
|
||||
QT_QPA_PLATFORM: offscreen
|
||||
run: |
|
||||
set -euo pipefail
|
||||
cd "$GITHUB_WORKSPACE/build"
|
||||
ctest --output-on-failure --timeout 300 && exit 0
|
||||
# ctest shows no output for failed tests in this shell, so run each
|
||||
# failed test again with QtTest writing its log to a file, and print it.
|
||||
set +e
|
||||
while IFS=: read -r _ name; do
|
||||
name=${name%$'\r'}
|
||||
exe=$(find tests -name "$name.exe" | head -1)
|
||||
echo "::group::$name"
|
||||
if [ -n "$exe" ]; then
|
||||
QT_QPA_PLATFORM=offscreen "$exe" -o "$name.txt,txt"
|
||||
echo "exit code $?"
|
||||
cat "$name.txt" 2>/dev/null
|
||||
else
|
||||
echo "no executable for $name"
|
||||
fi
|
||||
echo "::endgroup::"
|
||||
done < Testing/Temporary/LastTestsFailed.log
|
||||
exit 1
|
||||
|
||||
- name: Verify exe was built
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
@@ -373,6 +399,15 @@ jobs:
|
||||
echo "=== Contents of nsis_root/files/ ==="
|
||||
ls "$GITHUB_WORKSPACE/nsis_root/files/"
|
||||
|
||||
- name: Diagnose NSIS plugins
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
pacman -Q mingw-w64-ucrt-x86_64-nsis || true
|
||||
echo "=== nsDialogs.dll ==="
|
||||
find "$MSYSTEM_PREFIX/share/nsis" -iname 'nsDialogs.dll' || true
|
||||
echo "=== Plugins tree ==="
|
||||
find "$MSYSTEM_PREFIX/share/nsis/Plugins" -maxdepth 2 | head -60 || true
|
||||
|
||||
- name: Build NSIS installer
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
@@ -380,8 +415,28 @@ jobs:
|
||||
NSIS_ROOT="$GITHUB_WORKSPACE/nsis_root"
|
||||
cd "$NSIS_ROOT"
|
||||
echo "=== CWD : $(pwd) ==="
|
||||
MSYS2_ARG_CONV_EXCL="*" makensis /V4 QET64.nsi
|
||||
RC=$?
|
||||
echo "=== Unicode/Target directives in QET64.nsi ==="
|
||||
grep -niE '^[[:space:]]*(unicode|target)[[:space:]]' QET64.nsi || echo "(none)"
|
||||
|
||||
# Fallback: if makensis does not register its plugin dir, point it
|
||||
# at the folder that actually contains nsDialogs.dll.
|
||||
EXTRA=()
|
||||
DLL=$(find "$MSYSTEM_PREFIX/share/nsis" -iname 'nsDialogs.dll' | head -1 || true)
|
||||
if [ -n "$DLL" ]; then
|
||||
PLUGDIR_WIN=$(cygpath -w "$(dirname "$DLL")")
|
||||
echo "nsDialogs.dll found in: $PLUGDIR_WIN"
|
||||
# Plugin dirs are per target in NSIS: declare it for all of them so
|
||||
# it applies whatever Unicode/Target directive QET64.nsi uses.
|
||||
EXTRA=(-X"!addplugindir /x86-ansi $PLUGDIR_WIN"
|
||||
-X"!addplugindir /x86-unicode $PLUGDIR_WIN"
|
||||
-X"!addplugindir /amd64-unicode $PLUGDIR_WIN")
|
||||
else
|
||||
echo "::error::nsDialogs.dll not found in the MSYS2 NSIS package"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RC=0
|
||||
MSYS2_ARG_CONV_EXCL="*" makensis /V4 "${EXTRA[@]}" QET64.nsi || RC=$?
|
||||
echo "=== Contents of nsis_root after makensis ==="
|
||||
ls "$NSIS_ROOT/"
|
||||
[ $RC -eq 0 ] || { echo "ERROR: makensis failed (exit $RC)"; exit 1; }
|
||||
@@ -407,6 +462,7 @@ jobs:
|
||||
name: build-logs-qt6
|
||||
path: |
|
||||
build/CMakeFiles/*.log
|
||||
build/Testing/Temporary/LastTest*.log
|
||||
nsis_root/files/bin/
|
||||
if-no-files-found: warn
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
@@ -159,6 +159,18 @@ if(WIN32)
|
||||
${QET_DIR}/qelectrotech.qrc
|
||||
${QET_DIR}/ico/icon-themes.qrc
|
||||
)
|
||||
# Our own manifest (it declares longPathAware). MSVC merges a .manifest
|
||||
# listed as a source; MinGW needs it embedded through a resource file,
|
||||
# and ld then keeps it ahead of the toolchain's default manifest.
|
||||
set(QET_MANIFEST_FILE ${QET_DIR}/build-aux/windows/qelectrotech.exe.manifest)
|
||||
if(MSVC)
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${QET_MANIFEST_FILE})
|
||||
else()
|
||||
configure_file(${QET_DIR}/build-aux/windows/qelectrotech-manifest.rc.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/qelectrotech-manifest.rc @ONLY)
|
||||
target_sources(${PROJECT_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_BINARY_DIR}/qelectrotech-manifest.rc)
|
||||
endif()
|
||||
else()
|
||||
add_executable(
|
||||
${PROJECT_NAME}
|
||||
|
||||
@@ -12,6 +12,157 @@ Here are some important resources:
|
||||
|
||||
## Testing
|
||||
|
||||
### Build the tests
|
||||
|
||||
Start with the dependencies and platform-specific setup in
|
||||
[INSTALL.md](INSTALL.md). Tests additionally require the Qt6 Test module.
|
||||
The commands below use CMake/CTest 3.20 or newer (`--test-dir` needs 3.20),
|
||||
a C++17 compiler, and the Qt6 development packages, including GuiPrivate,
|
||||
Svg and LinguistTools. Configuration may download dependencies with
|
||||
FetchContent, including Catch2, so an initial build needs network access.
|
||||
|
||||
Run the following commands from the repository root. Keep build products in
|
||||
a separate directory and use Debug for the regression tests:
|
||||
|
||||
```sh
|
||||
git submodule update --init --recursive
|
||||
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DPACKAGE_TESTS=ON
|
||||
cmake --build build --config Debug --parallel
|
||||
```
|
||||
|
||||
`PACKAGE_TESTS` defaults to `ON`; specify it explicitly when reusing a build
|
||||
directory that previously disabled tests. `BUILD_WITH_KF` defaults to `ON`.
|
||||
If KDE Frameworks are unavailable, add `-DBUILD_WITH_KF=OFF` to the configure
|
||||
command, as described in INSTALL.md. Use a separate build directory when
|
||||
changing compiler, Qt kit, or generator.
|
||||
|
||||
### Run the tests with CTest
|
||||
|
||||
After a successful build, list the registered tests, run them, or select a
|
||||
test by name with `-R`:
|
||||
|
||||
```sh
|
||||
ctest --test-dir build -C Debug -N
|
||||
ctest --test-dir build -C Debug --output-on-failure
|
||||
ctest --test-dir build -C Debug -R '^tst_qetstrings$' --output-on-failure
|
||||
```
|
||||
|
||||
`-N` only lists tests; it does not execute them. `-C Debug` selects the
|
||||
configuration for multi-configuration generators such as Visual Studio.
|
||||
For single-configuration generators such as Ninja and Unix Makefiles,
|
||||
`CMAKE_BUILD_TYPE=Debug` selects it at configure time. CTest runs the tests
|
||||
registered by CMake; it does not build their executables.
|
||||
|
||||
Some tests create Qt widgets and need a graphical environment. On a Linux
|
||||
machine without a display, use Xvfb as the Linux CI does:
|
||||
|
||||
```sh
|
||||
xvfb-run -a ctest --test-dir build -C Debug --output-on-failure
|
||||
```
|
||||
|
||||
Tests that depend on optional features may not be registered. In particular,
|
||||
several scripting tests require the Qt6 Qml module at configure time.
|
||||
Review the test list and any skipped tests before reporting what was covered.
|
||||
|
||||
### Windows
|
||||
|
||||
Follow INSTALL.md for SQLite3 and the MSVC or MinGW toolchain. The compiler
|
||||
and Qt kit must match. For MSVC, use a Visual Studio developer PowerShell;
|
||||
the example below assumes Visual Studio 2022 and a 64-bit MSVC Qt kit.
|
||||
Replace the example Qt path with your installation, and supply any SQLite3
|
||||
paths or toolchain file required by your setup:
|
||||
|
||||
```powershell
|
||||
$qtPrefix = 'C:/Qt/6.x.x/msvc2022_64'
|
||||
cmake -S . -B build-msvc -G 'Visual Studio 17 2022' -A x64 `
|
||||
"-DCMAKE_PREFIX_PATH=$qtPrefix" -DBUILD_WITH_KF=OFF -DPACKAGE_TESTS=ON
|
||||
cmake --build build-msvc --config Debug --parallel
|
||||
$env:Path = "$qtPrefix/bin;$env:Path"
|
||||
ctest --test-dir build-msvc -C Debug --output-on-failure
|
||||
```
|
||||
|
||||
Putting the matching Qt `bin` directory on `PATH` lets test executables find
|
||||
Qt DLLs. Other shared dependencies must also be available on `PATH`.
|
||||
For MinGW with Ninja, use the matching MinGW Qt kit and compiler environment,
|
||||
omit `-A x64`, select `-G Ninja`, and set `-DCMAKE_BUILD_TYPE=Debug`.
|
||||
The Linux shell regression scripts below do not run natively on Windows.
|
||||
|
||||
### Tests outside the CTest suite
|
||||
|
||||
The Catch2 executable `C_unittests` is built with `PACKAGE_TESTS=ON`, but is
|
||||
currently not registered with CTest. Run it separately from the repository
|
||||
root after building:
|
||||
|
||||
```sh
|
||||
./build/tests/catch/C_unittests
|
||||
```
|
||||
|
||||
This executable creates a Qt GUI application too. On headless Linux, use:
|
||||
|
||||
```sh
|
||||
xvfb-run -a ./build/tests/catch/C_unittests
|
||||
```
|
||||
|
||||
For the Visual Studio example above, use this PowerShell command after
|
||||
setting up `PATH`:
|
||||
|
||||
```powershell
|
||||
& ./build-msvc/tests/catch/Debug/C_unittests.exe
|
||||
```
|
||||
|
||||
The Python MCP suite is also separate from CTest. Its unit and protocol
|
||||
tests can be run without a QElectroTech binary. Some fixtures launch POSIX
|
||||
shell scripts, so use a Unix-like environment for this suite:
|
||||
|
||||
```sh
|
||||
python3 misc/qet-mcp/test_qet_mcp.py
|
||||
```
|
||||
|
||||
Use `python` instead of `python3` if that is your interpreter's command.
|
||||
Integration tests need a built QElectroTech and the environment variables
|
||||
documented in [the MCP testing guide](misc/qet-mcp/README.md#testing),
|
||||
including `QET_ENABLE_SCRIPTING=1` for script-driven tests. Missing integration
|
||||
prerequisites cause tests to be skipped, so a successful unit run alone does
|
||||
not establish integration coverage.
|
||||
|
||||
### Linux regression prerequisites
|
||||
|
||||
In addition to the build dependencies in INSTALL.md, headless widget tests
|
||||
need `xvfb-run`, Xvfb and `xauth`. The existing
|
||||
[Linux workflow](.github/workflows/linux-build.yml) lists the packages used
|
||||
by CI, including the QtSvg development package and SQLite driver for QtSql.
|
||||
Package names vary by distribution.
|
||||
|
||||
The IPC open-forwarding regression requires Bash, Xvfb, Openbox and xdotool.
|
||||
Use a Qt6 Debug build; the documented reproduction used Qt 6.10.2. It uses
|
||||
`examples/industrial.qet` by default and starts its own display, so run it
|
||||
directly rather than wrapping it in `xvfb-run`:
|
||||
|
||||
```sh
|
||||
tests/ipc-regression/run.sh --binary build/qelectrotech
|
||||
```
|
||||
|
||||
This test is separate from CTest. Exit code `0` means the scenario survived,
|
||||
`1` means a crash, and `2` means inconclusive or unusable input. An inconclusive
|
||||
run is not a pass. See [the IPC guide](tests/ipc-regression/README.md).
|
||||
|
||||
The quit-during-modal regression needs gdb with Python support and a binary
|
||||
with the symbols used by the test (use an unstripped Debug build). It uses
|
||||
Qt's offscreen platform and needs no X server. It is registered with CTest
|
||||
on Linux and can be selected with:
|
||||
|
||||
```sh
|
||||
ctest --test-dir build -C Debug -R '^modal_quit_regression$' --output-on-failure
|
||||
```
|
||||
|
||||
Missing gdb, missing Python support in gdb, or a stripped binary can result
|
||||
in exit code `77`, which CTest treats as skipped. See
|
||||
[the modal-quit guide](tests/modal-quit-regression/README.md).
|
||||
|
||||
When submitting changes, state the build configuration, commands actually
|
||||
run, results, and any skipped or unavailable tests. If commands were only
|
||||
checked against the build files or documentation, say so explicitly.
|
||||
|
||||
## Submitting changes
|
||||
|
||||
Always write a clear log message for your commits.
|
||||
|
||||
@@ -58,6 +58,36 @@ Thanks to Elbert from the NL for packaging OS/2
|
||||
Thanks to zloidemon from for packaging FreeBsd (port GCC)
|
||||
Thanks to Mrbit for ebuild Gentoo packaging.
|
||||
|
||||
[de]
|
||||
Dank an Qt Software für die Qt-Bibliothek (http://www.qtsoftware.com/), lizenziert unter der GNU/GPL.
|
||||
Dank an das KDE-Projekt (http://www.kde.org/).
|
||||
Dank an Loic für seine mathematischen Erläuterungen.
|
||||
Dank an Remi Collet für die Fedora-Paketierung.
|
||||
Dank an Laurent Trinques für die Debian-Paketierung.
|
||||
Dank an „trem“ für die Mandriva-Paketierung.
|
||||
Dank an TuxFamily (http://tuxfamily.org/) für das Hosting des Projekts.
|
||||
Dank an „Nishiki“ für seine Elemente und seine Unterstützung.
|
||||
Dank an qtcentre.org für die „SingleApplication“-Klasse.
|
||||
Dank an Alfredo Carreto für seine spanischen Übersetzungen und die Korrektur der spanischen Übersetzungen (http://electronicosmx.net)
|
||||
Dank an „Dr.Slump“ und Sivio für ihre Übersetzungen ins Italienische.
|
||||
Dank an Jose Carlos Martins für seine Übersetzungen ins Portugiesische.
|
||||
Dank an Pavel Fric für seine Übersetzungen ins Tschechische.
|
||||
Dank an Pawel Smiech für seine polnischen Übersetzungen.
|
||||
Dank an Yuriy Litkevich für seine Übersetzungen ins Russische.
|
||||
Dank an Youssef Ouamalkran für seine Übersetzungen ins Katalanische.
|
||||
Dank an Gabi Mandoc für seine Übersetzungen ins Rumänische.
|
||||
Dank an Markus Budde, Jonas Stein und Noah Braden für ihre Übersetzungen ins Deutsche.
|
||||
Dank an Mohamed Souabni für seine Übersetzungen ins Arabische.
|
||||
Dank an Uroš Platiše für seine Übersetzungen ins Slowenische.
|
||||
Dank an Antun Marakovic für seine Übersetzungen ins Kroatische.
|
||||
Dank an Nikos Papadopoylos und Yannis Gyftomitros für ihre griechischen Übersetzungen.
|
||||
Dank an Markos Chandras für die Gentoo-Paketierung.
|
||||
Dank an David für die Paketierung von Slackware.
|
||||
Dank an Chipsterjulien für die Paketierung der Archlinux-AUR-Pakete.
|
||||
Dank an Elbert aus den Niederlanden für die Paketierung von OS/2.
|
||||
Dank an zloidemon für die Paketierung von FreeBSD (GCC-Port).
|
||||
Dank an Mrbit für die ebuild-Paketierung für Gentoo.
|
||||
|
||||
[fr]
|
||||
Merci à Qt Software pour la bibliothèque Qt ( http://www.qtsoftware.com/ ), sous licence GNU/GPL.
|
||||
Merci au projet KDE ( http://www.kde.org/ ).
|
||||
|
||||
@@ -363,3 +363,20 @@ and running it concurrently with the normal `lrelease` compilation step (as
|
||||
would happen under `-j`/parallel builds) can corrupt a `.ts` file mid-write,
|
||||
causing `lrelease` to fail with "Premature end of document". Run it on its
|
||||
own, review the diff, and commit the updated `.ts` files separately.
|
||||
|
||||
The strings in the code are French, so `lang/qet_fr.ts` is the source
|
||||
language's own file. After `update_translations`, run
|
||||
|
||||
```sh
|
||||
python3 misc/i18n/mirror_source_language.py lang/qet_fr.ts
|
||||
```
|
||||
|
||||
before committing: it copies every new French source string into its own
|
||||
translation, so `qet_fr.qm` stays complete and French wording can later be
|
||||
corrected in the `.ts` alone, without changing the key that the other
|
||||
languages are attached to. Forgetting it breaks nothing (an empty entry
|
||||
falls back to the code text); `--check` reports whether a run is needed.
|
||||
A French correction typed into `qet_fr.ts` is lost like any other
|
||||
translation when the code string is reworded; the vanished entry keeps the
|
||||
old text for recovery. Never add `-removeidentical` to the `lrelease`
|
||||
options: it would strip these entries again.
|
||||
|
||||
@@ -43,8 +43,8 @@ Here are the technical choices made for the software development:
|
||||
* Libraries: Qt 6.x
|
||||
* [KF6 Framework](https://github.com/KDE)
|
||||
[Cmake](https://cmake.org/install/)
|
||||
[kcoreaddons](https://github.com/KDE/kcoreaddons/tree/kf6)
|
||||
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons/tree/kf6).
|
||||
[kcoreaddons](https://invent.kde.org/frameworks/kcoreaddons)
|
||||
[kwidgetsaddons](https://invent.kde.org/frameworks/kwidgetsaddons).
|
||||
* Coding language: [C++](https://en.wikipedia.org/wiki/C%2B%2B)
|
||||
* GUI translations: [Qt Linguist](http://doc.qt.io/qt-6/qtlinguist-index.html)
|
||||
* Version control: [GIT](https://github.com/qelectrotech/qelectrotech-source-mirror.git)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; this file is part of installer for QElectroTech
|
||||
; 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
|
||||
@@ -34,7 +34,7 @@
|
||||
;--------------------------------
|
||||
; NSIS 3 requires SetCompressor BEFORE any Section or Function
|
||||
SetCompressor /FINAL /SOLID lzma
|
||||
|
||||
Unicode true
|
||||
;--------------------------------
|
||||
; Includes
|
||||
!include x64.nsh
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
LangString installed ${LANG_ENGLISH} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
LangString installed ${LANG_ENGLISH} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
LangString wrongArch ${LANG_ENGLISH} "This distribution is for 64 bits computers only."
|
||||
LangString Elements ${LANG_ENGLISH} "Elements"
|
||||
LangString Electric ${LANG_ENGLISH} "Electric"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
LangString wrongArch ${LANG_FRENCH} "Ce programme est pour Windows 64 bits seulement."
|
||||
LangString wrongArch ${LANG_FRENCH} "Ce programme est pour Windows 64 bits seulement."
|
||||
LangString installed ${LANG_FRENCH} "${SOFT_NAME} est déja installé. $\n$\nCliquer sur `OK` pour désinstaller l'ancienne version `Annuler` pour annuler cet upgrade."
|
||||
LangString Elements ${LANG_FRENCH} "Eléments"
|
||||
LangString Electric ${LANG_FRENCH} "Electrique"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
; Missing language translations for QElectroTech installer
|
||||
; Missing language translations for QElectroTech installer
|
||||
; Languages added: hu, ja, mn, nb, nl_BE, nl_NL, pt_BR, rs/sr, sk, sl, sv, tr, uk, zh
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// Embeds qelectrotech.exe.manifest as the program's manifest
|
||||
// (resource id 1 = CREATEPROCESS_MANIFEST_RESOURCE_ID, type 24 = RT_MANIFEST).
|
||||
1 24 "@QET_MANIFEST_FILE@"
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!-- SPDX-License-Identifier: GPL-2.0-or-later -->
|
||||
<!--
|
||||
Application manifest for QElectroTech.exe, embedded by CMake on Windows.
|
||||
It replaces the toolchain's default manifest, so it repeats what that one
|
||||
declares (supported Windows versions, run as the invoking user) and adds
|
||||
longPathAware: with LongPathsEnabled set in the registry, Windows then
|
||||
lets the program open files whose full path is 260 characters or more.
|
||||
-->
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Windows 10 and 11 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
||||
<!-- Windows 8.1 -->
|
||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||
<!-- Windows 8 -->
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||
<!-- Windows 7 -->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||
</application>
|
||||
</compatibility>
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
</assembly>
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
message(
|
||||
"_____________________________________________________________________"
|
||||
"\nCopyright 2006 The QElectroTech Team"
|
||||
"\nCopyright 2006-2026 The QElectroTech Team"
|
||||
"\nThis file is part of QElectroTech."
|
||||
|
||||
"\n\nQElectroTech is free software: you can redistribute it and/or modify"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
@@ -179,6 +179,10 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/wiringlistexport.cpp
|
||||
${QET_DIR}/sources/wirehops.h
|
||||
${QET_DIR}/sources/wirehops.cpp
|
||||
${QET_DIR}/sources/wiringrules.h
|
||||
${QET_DIR}/sources/wiringrules.cpp
|
||||
${QET_DIR}/sources/conductorrouter.h
|
||||
${QET_DIR}/sources/conductorrouter.cpp
|
||||
${QET_DIR}/sources/ui/wiringlistdialog.h
|
||||
${QET_DIR}/sources/ui/wiringlistdialog.cpp
|
||||
${QET_DIR}/sources/conductornumexport.h
|
||||
@@ -188,6 +192,7 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/conductorprofile.h
|
||||
${QET_DIR}/sources/conductorproperties.cpp
|
||||
${QET_DIR}/sources/conductorproperties.h
|
||||
${QET_DIR}/sources/conductormultiedit.h
|
||||
${QET_DIR}/sources/conductorsegment.cpp
|
||||
${QET_DIR}/sources/conductorsegment.h
|
||||
${QET_DIR}/sources/conductorsegmentprofile.h
|
||||
@@ -239,6 +244,8 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/genericpanel.h
|
||||
${QET_DIR}/sources/itemgroups.cpp
|
||||
${QET_DIR}/sources/itemgroups.h
|
||||
${QET_DIR}/sources/shownkinds.cpp
|
||||
${QET_DIR}/sources/shownkinds.h
|
||||
${QET_DIR}/sources/lastusedstyle.cpp
|
||||
${QET_DIR}/sources/lastusedstyle.h
|
||||
${QET_DIR}/sources/machine_info.cpp
|
||||
@@ -294,10 +301,16 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/shortcutmanager.h
|
||||
${QET_DIR}/sources/shortcutbarsettings.cpp
|
||||
${QET_DIR}/sources/shortcutbarsettings.h
|
||||
${QET_DIR}/sources/diagramtoolbarsettings.cpp
|
||||
${QET_DIR}/sources/diagramtoolbarsettings.h
|
||||
${QET_DIR}/sources/toolbarsettings.cpp
|
||||
${QET_DIR}/sources/toolbarsettings.h
|
||||
${QET_DIR}/sources/diagramcontexttoolbar.cpp
|
||||
${QET_DIR}/sources/diagramcontexttoolbar.h
|
||||
${QET_DIR}/sources/diagramgestureoverlay.cpp
|
||||
${QET_DIR}/sources/diagramgestureoverlay.h
|
||||
${QET_DIR}/sources/gesturesettings.cpp
|
||||
${QET_DIR}/sources/gesturesettings.h
|
||||
${QET_DIR}/sources/commandsearchpopup.cpp
|
||||
${QET_DIR}/sources/commandsearchpopup.h
|
||||
${QET_DIR}/sources/titleblockcell.cpp
|
||||
@@ -317,6 +330,18 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/autoNum/numerotationcontext.h
|
||||
${QET_DIR}/sources/autoNum/renumberelementscommand.cpp
|
||||
${QET_DIR}/sources/autoNum/renumberelementscommand.h
|
||||
${QET_DIR}/sources/autoNum/autonumschemecommand.cpp
|
||||
${QET_DIR}/sources/autoNum/autonumschemecommand.h
|
||||
${QET_DIR}/sources/autoNum/elementautonumschemecommand.cpp
|
||||
${QET_DIR}/sources/autoNum/elementautonumschemecommand.h
|
||||
${QET_DIR}/sources/autoNum/ui/counterwarning.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/counterwarning.h
|
||||
${QET_DIR}/sources/autoNum/ui/pastenumberingimport.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/pastenumberingimport.h
|
||||
${QET_DIR}/sources/autoNum/ui/renumberpreviewdialog.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/renumberpreviewdialog.h
|
||||
${QET_DIR}/sources/undocommand/freezeelementlabelcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/freezeelementlabelcommand.h
|
||||
${QET_DIR}/sources/autoNum/ui/autonumberingdockwidget.cpp
|
||||
${QET_DIR}/sources/autoNum/ui/autonumberingdockwidget.h
|
||||
${QET_DIR}/sources/autoNum/ui/autonumberingmanagementw.cpp
|
||||
@@ -352,6 +377,8 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddimage.h
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddshape.cpp
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddshape.h
|
||||
${QET_DIR}/sources/diagramevent/diagrameventfillet.cpp
|
||||
${QET_DIR}/sources/diagramevent/diagrameventfillet.h
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddpath.cpp
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddpath.h
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddcable.cpp
|
||||
@@ -445,6 +472,8 @@ set(QET_SRC_FILES
|
||||
${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/scaleelementdialog.cpp
|
||||
${QET_DIR}/sources/editor/ui/scaleelementdialog.h
|
||||
${QET_DIR}/sources/editor/ui/terminaleditor.cpp
|
||||
${QET_DIR}/sources/editor/ui/terminaleditor.h
|
||||
${QET_DIR}/sources/editor/ui/texteditor.cpp
|
||||
@@ -595,6 +624,8 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandleritem.h
|
||||
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandlerutility.cpp
|
||||
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandlerutility.h
|
||||
${QET_DIR}/sources/QetGraphicsItemModeler/textresizehandles.cpp
|
||||
${QET_DIR}/sources/QetGraphicsItemModeler/textresizehandles.h
|
||||
|
||||
${QET_DIR}/sources/QPropertyUndoCommand/qpropertyundocommand.cpp
|
||||
${QET_DIR}/sources/QPropertyUndoCommand/qpropertyundocommand.h
|
||||
@@ -794,6 +825,8 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/ui/importelementtextpatterndialog.h
|
||||
${QET_DIR}/sources/ui/jumptoelementdialog.cpp
|
||||
${QET_DIR}/sources/ui/jumptoelementdialog.h
|
||||
${QET_DIR}/sources/ui/wiringruleswarning.cpp
|
||||
${QET_DIR}/sources/ui/wiringruleswarning.h
|
||||
${QET_DIR}/sources/ui/inditextpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/inditextpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/linksingleelementwidget.cpp
|
||||
@@ -835,6 +868,14 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/ui/configpage/shortcutsconfigpage.h
|
||||
${QET_DIR}/sources/ui/configpage/shortcutbarconfigpage.cpp
|
||||
${QET_DIR}/sources/ui/configpage/shortcutbarconfigpage.h
|
||||
${QET_DIR}/sources/ui/customizedialog.cpp
|
||||
${QET_DIR}/sources/ui/customizedialog.h
|
||||
${QET_DIR}/sources/ui/configpage/toolbarcommandsconfigpage.cpp
|
||||
${QET_DIR}/sources/ui/configpage/toolbarcommandsconfigpage.h
|
||||
${QET_DIR}/sources/ui/configpage/toolbarsconfigpage.cpp
|
||||
${QET_DIR}/sources/ui/configpage/toolbarsconfigpage.h
|
||||
${QET_DIR}/sources/ui/configpage/gesturesconfigpage.cpp
|
||||
${QET_DIR}/sources/ui/configpage/gesturesconfigpage.h
|
||||
|
||||
${QET_DIR}/sources/undocommand/addelementtextcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/addelementtextcommand.h
|
||||
@@ -864,6 +905,8 @@ set(QET_SRC_FILES
|
||||
${QET_DIR}/sources/undocommand/groupitemscommand.h
|
||||
${QET_DIR}/sources/undocommand/alignselectioncommand.cpp
|
||||
${QET_DIR}/sources/undocommand/alignselectioncommand.h
|
||||
${QET_DIR}/sources/undocommand/mirrorselectioncommand.cpp
|
||||
${QET_DIR}/sources/undocommand/mirrorselectioncommand.h
|
||||
${QET_DIR}/sources/undocommand/rotateselectioncommand.cpp
|
||||
${QET_DIR}/sources/undocommand/rotateselectioncommand.h
|
||||
${QET_DIR}/sources/undocommand/promoteshapecommand.cpp
|
||||
@@ -965,6 +1008,17 @@ list(APPEND QET_SRC_FILES
|
||||
${QET_DIR}/sources/scripting/qetscriptapi.h
|
||||
${QET_DIR}/sources/scripting/qetscripting.cpp
|
||||
${QET_DIR}/sources/scripting/qetscripting.h
|
||||
${QET_DIR}/sources/scripting/scriptheader.h
|
||||
${QET_DIR}/sources/scripting/scriptlibrary.cpp
|
||||
${QET_DIR}/sources/scripting/scriptlibrary.h
|
||||
${QET_DIR}/sources/scripting/scriptmanagerdialog.cpp
|
||||
${QET_DIR}/sources/scripting/scriptmanagerdialog.h
|
||||
${QET_DIR}/sources/scripting/liveserver.cpp
|
||||
${QET_DIR}/sources/scripting/liveserver.h
|
||||
${QET_DIR}/sources/scripting/macrorecorder.cpp
|
||||
${QET_DIR}/sources/scripting/macrorecorder.h
|
||||
${QET_DIR}/sources/scripting/assistantinfo.cpp
|
||||
${QET_DIR}/sources/scripting/assistantinfo.h
|
||||
)
|
||||
|
||||
if(QET_SPACEMOUSE_ENABLED)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2006 The QElectroTech Team
|
||||
# Copyright 2006-2026 The QElectroTech Team
|
||||
# This file is part of QElectroTech.
|
||||
#
|
||||
# QElectroTech is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -42,10 +42,18 @@ unit conventions and decimal quantities are not changed implicitly.
|
||||
|
||||
## BOM Policy
|
||||
|
||||
The default BOM query exports one row per Simple or Master element. Slave
|
||||
contacts, terminal-strip elements, reports, thumbnails, and conductor
|
||||
definitions are excluded. A Master device is counted once and PLC I/O entries
|
||||
are not expanded. The existing `exclude_from_bom` property is honored by the
|
||||
The default BOM query exports one row per Simple, Master, Slave or Terminal
|
||||
element: an auxiliary contact block and a terminal block are parts of their
|
||||
own (discussion #847). Reports, thumbnails and conductor definitions are
|
||||
excluded. A Master device is counted once and PLC I/O entries are not
|
||||
expanded.
|
||||
|
||||
Two options leave rows out (#1178). Contact blocks: uncheck **Contacts
|
||||
esclaves** in the dialog, or pass `--no-slaves`. Junctions, the
|
||||
terminal-type symbols drawn where wires branch (`114_connections`), which
|
||||
have no label, designation, manufacturer or manufacturer reference: check
|
||||
**Laisser de côté les jonctions**, or pass `--no-junctions`. A terminal block
|
||||
with a label or a part number is kept. The existing `exclude_from_bom` property is honored by the
|
||||
SQL view, including common true representations (`true`, `1`, `yes`, `on`).
|
||||
|
||||
The default columns are:
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
@@ -1,48 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
|
||||
<!-- DIN rail -->
|
||||
<rect x="6" y="86" width="116" height="18" rx="3" fill="#7f8c8d"/>
|
||||
<rect x="6" y="92" width="116" height="6" fill="#4d4d4d"/>
|
||||
<!-- six terminal blocks: L, L, N, PE, L, spare -->
|
||||
<g fill="#eff0f1">
|
||||
<rect x="12" y="26" width="16" height="66" rx="2"/>
|
||||
<rect x="30" y="26" width="16" height="66" rx="2"/>
|
||||
<rect x="48" y="26" width="16" height="66" rx="2"/>
|
||||
<rect x="66" y="26" width="16" height="66" rx="2"/>
|
||||
<rect x="84" y="26" width="16" height="66" rx="2"/>
|
||||
<rect x="102" y="26" width="16" height="66" rx="2"/>
|
||||
</g>
|
||||
<!-- right-hand shading of each block -->
|
||||
<g fill="#bdc3c7">
|
||||
<rect x="24" y="28" width="4" height="62"/>
|
||||
<rect x="42" y="28" width="4" height="62"/>
|
||||
<rect x="60" y="28" width="4" height="62"/>
|
||||
<rect x="78" y="28" width="4" height="62"/>
|
||||
<rect x="96" y="28" width="4" height="62"/>
|
||||
<rect x="114" y="28" width="4" height="62"/>
|
||||
</g>
|
||||
<!-- colored marker bands -->
|
||||
<rect x="12" y="26" width="16" height="10" rx="2" fill="#7f8c8d"/>
|
||||
<rect x="30" y="26" width="16" height="10" rx="2" fill="#7f8c8d"/>
|
||||
<rect x="48" y="26" width="16" height="10" rx="2" fill="#3daee9"/>
|
||||
<rect x="66" y="26" width="16" height="10" rx="2" fill="#27ae60"/>
|
||||
<rect x="70" y="26" width="8" height="10" fill="#fdbc4b"/>
|
||||
<rect x="84" y="26" width="16" height="10" rx="2" fill="#7f8c8d"/>
|
||||
<rect x="102" y="26" width="16" height="10" rx="2" fill="#da4453"/>
|
||||
<!-- screws -->
|
||||
<g fill="#31363b">
|
||||
<circle cx="20" cy="50" r="4.5"/><circle cx="20" cy="74" r="4.5"/>
|
||||
<circle cx="38" cy="50" r="4.5"/><circle cx="38" cy="74" r="4.5"/>
|
||||
<circle cx="56" cy="50" r="4.5"/><circle cx="56" cy="74" r="4.5"/>
|
||||
<circle cx="74" cy="50" r="4.5"/><circle cx="74" cy="74" r="4.5"/>
|
||||
<circle cx="92" cy="50" r="4.5"/><circle cx="92" cy="74" r="4.5"/>
|
||||
<circle cx="110" cy="50" r="4.5"/><circle cx="110" cy="74" r="4.5"/>
|
||||
</g>
|
||||
<g fill="#eff0f1">
|
||||
<rect x="16" y="49" width="8" height="2"/><rect x="16" y="73" width="8" height="2"/>
|
||||
<rect x="34" y="49" width="8" height="2"/><rect x="34" y="73" width="8" height="2"/>
|
||||
<rect x="52" y="49" width="8" height="2"/><rect x="52" y="73" width="8" height="2"/>
|
||||
<rect x="70" y="49" width="8" height="2"/><rect x="70" y="73" width="8" height="2"/>
|
||||
<rect x="88" y="49" width="8" height="2"/><rect x="88" y="73" width="8" height="2"/>
|
||||
<rect x="106" y="49" width="8" height="2"/><rect x="106" y="73" width="8" height="2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 199 B |
|
Before Width: | Height: | Size: 362 B |
|
Before Width: | Height: | Size: 368 B |
|
Before Width: | Height: | Size: 425 B |
|
Before Width: | Height: | Size: 197 B |
|
Before Width: | Height: | Size: 296 B |
|
Before Width: | Height: | Size: 198 B |
|
Before Width: | Height: | Size: 447 B |
|
Before Width: | Height: | Size: 375 B |
|
Before Width: | Height: | Size: 296 B |
|
Before Width: | Height: | Size: 274 B |
|
Before Width: | Height: | Size: 277 B |
|
Before Width: | Height: | Size: 207 B |
|
Before Width: | Height: | Size: 365 B |
|
Before Width: | Height: | Size: 243 B |
|
Before Width: | Height: | Size: 219 B |
|
Before Width: | Height: | Size: 219 B |
|
Before Width: | Height: | Size: 299 B |
|
Before Width: | Height: | Size: 358 B |
|
Before Width: | Height: | Size: 275 B |
|
Before Width: | Height: | Size: 316 B |
|
Before Width: | Height: | Size: 325 B |
|
Before Width: | Height: | Size: 373 B |
|
Before Width: | Height: | Size: 227 B |
|
Before Width: | Height: | Size: 410 B |
|
Before Width: | Height: | Size: 195 B |
|
Before Width: | Height: | Size: 339 B |
|
Before Width: | Height: | Size: 201 B |
|
Before Width: | Height: | Size: 397 B |
|
Before Width: | Height: | Size: 401 B |
|
Before Width: | Height: | Size: 210 B |
|
Before Width: | Height: | Size: 336 B |
|
Before Width: | Height: | Size: 328 B |
|
Before Width: | Height: | Size: 247 B |
|
Before Width: | Height: | Size: 300 B |
|
Before Width: | Height: | Size: 320 B |
|
Before Width: | Height: | Size: 268 B |
|
Before Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 293 B |
|
Before Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 404 B |
|
Before Width: | Height: | Size: 516 B |
|
Before Width: | Height: | Size: 295 B |
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 227 B |
|
Before Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 242 B |
|
Before Width: | Height: | Size: 223 B |
|
Before Width: | Height: | Size: 248 B |
|
Before Width: | Height: | Size: 230 B |
|
Before Width: | Height: | Size: 370 B |
|
Before Width: | Height: | Size: 429 B |
|
Before Width: | Height: | Size: 352 B |
|
Before Width: | Height: | Size: 433 B |
|
Before Width: | Height: | Size: 371 B |
|
Before Width: | Height: | Size: 417 B |
|
Before Width: | Height: | Size: 356 B |
|
Before Width: | Height: | Size: 167 B |
|
Before Width: | Height: | Size: 542 B |
|
Before Width: | Height: | Size: 418 B |
|
Before Width: | Height: | Size: 447 B |
|
Before Width: | Height: | Size: 227 B |
|
Before Width: | Height: | Size: 305 B |
|
Before Width: | Height: | Size: 251 B |
|
Before Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 192 B |
|
Before Width: | Height: | Size: 166 B |