Compare commits
115 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 75fafd5acc | |||
| 3394c1246c | |||
| 3e34a6d55f | |||
| 50792ba1ad | |||
| 6404612014 | |||
| eaf15faaa3 | |||
| b8c9e670c4 | |||
| 85dc638a42 | |||
| dfe56cddbd | |||
| ef1fbd79b4 | |||
| eb7abdfbc6 | |||
| f574d28340 | |||
| 31f90e2c46 | |||
| 45bd8256b3 | |||
| 4e43cde063 | |||
| aef56fe41d | |||
| 0395f90f75 | |||
| a4d5b7a12a | |||
| ba29dc45a0 | |||
| d06c7be606 | |||
| 56cbd6e23d | |||
| 8bbc2da5c7 | |||
| 4b8db6be0e | |||
| a6b4c3c673 | |||
| 8f0ee06a4f | |||
| 70599c4ae1 | |||
| e42ebdc861 | |||
| 3c1fb2fe72 | |||
| 2da516667e | |||
| b62b118d45 | |||
| b0b7814015 | |||
| c9a63b5bce | |||
| 059d179d9b | |||
| fa52aab149 | |||
| 54e61d482d | |||
| 800ddfbcbe | |||
| 0258d1a74f | |||
| dd0c194a3c | |||
| 3ba7de3284 | |||
| 0067ba1dca | |||
| 16220af012 | |||
| f8c1b5206a | |||
| 4d800de26a | |||
| d3c8544fd9 | |||
| eea939c31c | |||
| 599228fe6e | |||
| 3ff02e528d | |||
| 520f4245b3 | |||
| 918756a91a | |||
| 7a73e8075f | |||
| 53a0f07ca3 | |||
| 864e651966 | |||
| 26285373a3 | |||
| b4fcef1829 | |||
| 9519b70826 | |||
| 218e70c759 | |||
| 26c0fc9812 | |||
| 8c135a009d | |||
| 261b0f9e12 | |||
| 1183849ce2 | |||
| 2b30083193 | |||
| 863ac5f0ae | |||
| 8623dd4c6f | |||
| 6a84ada6a6 | |||
| b7f516d485 | |||
| 0646f9ca4f | |||
| 8ef130a59d | |||
| c3b0e6725e | |||
| 3f8e6418d0 | |||
| a86fe2a46b | |||
| 206edcbb7d | |||
| 0a7ea032d9 | |||
| 52713704bc | |||
| 923723a9de | |||
| ff3c2e0916 | |||
| adca07f26f | |||
| 12ecf6b28f | |||
| 1ee828da5b | |||
| 837e1e7f09 | |||
| 25962118a2 | |||
| 35275de4cc | |||
| d641b964bd | |||
| e90dddbbc6 | |||
| ce8884394a | |||
| 8606cc5328 | |||
| 60d9299d45 | |||
| c71839a291 | |||
| d9a2539702 | |||
| 22c1ec9321 | |||
| 4300a655bc | |||
| e7e2864641 | |||
| 2ed85f6fc7 | |||
| e62d43d024 | |||
| 6562498ca2 | |||
| 38e504fb7e | |||
| 4aef4d17d2 | |||
| c89243a36f | |||
| 4a83521306 | |||
| a7f406cd44 | |||
| dad6206386 | |||
| b208a4f131 | |||
| 1c8e7ed052 | |||
| e6ffc8b622 | |||
| 9004db1d99 | |||
| 7a85e2592c | |||
| 7183ed3d99 | |||
| 0920e82188 | |||
| eba258f6cd | |||
| abd5e8978a | |||
| 43d27a9563 | |||
| c2f405c32d | |||
| a106395679 | |||
| 9bfe18807f | |||
| 00e75604b0 | |||
| 72c8008218 |
@@ -0,0 +1,79 @@
|
|||||||
|
# Linux build, unit tests, and the IPC open-forwarding regression gate.
|
||||||
|
#
|
||||||
|
# The existing workflows build Windows and generate documentation; nothing
|
||||||
|
# builds QElectroTech on Linux or runs tests/ in CI. This does both.
|
||||||
|
#
|
||||||
|
# It runs inside an ubuntu:26.04 container rather than directly on the runner
|
||||||
|
# because the IPC gate below needs Qt 6.10.2. The ubuntu-latest image ships
|
||||||
|
# Qt 6.4, and whether the crash that gate covers reproduces on 6.4 has never
|
||||||
|
# been checked -- a gate that cannot go red is worse than no gate.
|
||||||
|
name: Linux build and tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
linux:
|
||||||
|
name: Build and test (Qt 6, Debug)
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: ubuntu:26.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install build and test dependencies
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates build-essential cmake ninja-build git pkg-config \
|
||||||
|
qt6-base-dev qt6-base-private-dev qt6-tools-dev qt6-tools-dev-tools \
|
||||||
|
libqt6svg6-dev libqt6sql6-sqlite libsqlite3-dev libcups2-dev \
|
||||||
|
libxkbcommon-x11-0 \
|
||||||
|
xvfb openbox xdotool x11-utils
|
||||||
|
# extra-cmake-modules and the KF6 libraries are installed rather than
|
||||||
|
# left to FetchContent: without them CMake builds extra-cmake-modules
|
||||||
|
# from source, and its Qt Help documentation target then demands
|
||||||
|
# Qt6{Core,Gui,Widgets,DBus}Tools, failing the configure with an error
|
||||||
|
# that appears to be about QElectroTech and is not.
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||||
|
extra-cmake-modules libkf6coreaddons-dev libkf6widgetsaddons-dev \
|
||||||
|
qt6-svg-plugins
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
# Debug, not Release. Whether a use-after-free faults depends on what
|
||||||
|
# the allocator does with the freed block: the commit before #868
|
||||||
|
# crashes every time built Debug and survives every time built
|
||||||
|
# -O3 -DNDEBUG, so a Release job would never catch a regression here.
|
||||||
|
run: |
|
||||||
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||||
|
cmake -B build -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Debug \
|
||||||
|
-DQT_VERSION_MAJOR=6
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: cmake --build build --parallel $(nproc)
|
||||||
|
|
||||||
|
- name: Unit tests
|
||||||
|
run: xvfb-run -a ctest --test-dir build --output-on-failure
|
||||||
|
|
||||||
|
- name: IPC open-forwarding regression (#868)
|
||||||
|
# Fails the job only on an actual crash. An inconclusive run means the
|
||||||
|
# crash path was not exercised -- it proves nothing, which is not the
|
||||||
|
# same as a regression, and failing on it would make this job flaky
|
||||||
|
# rather than informative.
|
||||||
|
run: |
|
||||||
|
set +e
|
||||||
|
tests/ipc-regression/run.sh --binary build/qelectrotech
|
||||||
|
status=$?
|
||||||
|
set -e
|
||||||
|
case $status in
|
||||||
|
0) echo "::notice::IPC gate passed" ;;
|
||||||
|
2) echo "::warning::IPC gate inconclusive -- the crash path was not exercised, nothing was proven" ;;
|
||||||
|
*) echo "::error::IPC gate failed -- forwarded files are being opened inside the socket handler again"
|
||||||
|
exit 1 ;;
|
||||||
|
esac
|
||||||
@@ -56,6 +56,7 @@ jobs:
|
|||||||
mingw-w64-ucrt-x86_64-extra-cmake-modules
|
mingw-w64-ucrt-x86_64-extra-cmake-modules
|
||||||
mingw-w64-ucrt-x86_64-nsis
|
mingw-w64-ucrt-x86_64-nsis
|
||||||
mingw-w64-ucrt-x86_64-angleproject
|
mingw-w64-ucrt-x86_64-angleproject
|
||||||
|
mingw-w64-ucrt-x86_64-qt6-declarative
|
||||||
|
|
||||||
- name: Cache ccache
|
- name: Cache ccache
|
||||||
uses: actions/cache@v5
|
uses: actions/cache@v5
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ jobs:
|
|||||||
pages: write
|
pages: write
|
||||||
id-token: write # Required by SignPath
|
id-token: write # Required by SignPath
|
||||||
|
|
||||||
|
env:
|
||||||
|
SIGNPATH_API_TOKEN: ${{ secrets.SIGNPATH_API_TOKEN }}
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
qt6_msi: ${{ steps.export.outputs.msi_name_qt6 }}
|
qt6_msi: ${{ steps.export.outputs.msi_name_qt6 }}
|
||||||
|
|
||||||
@@ -289,8 +292,15 @@ jobs:
|
|||||||
# check: forks never have the SignPath secrets, and a fork-originated
|
# check: forks never have the SignPath secrets, and a fork-originated
|
||||||
# PR/run must never attempt a signing request.
|
# PR/run must never attempt a signing request.
|
||||||
# (cf. DieterMayerOSS:fix/msi-signing-fork-guard, d3f60c88)
|
# (cf. DieterMayerOSS:fix/msi-signing-fork-guard, d3f60c88)
|
||||||
|
# continue-on-error: SignPath's certificate is still pending validation
|
||||||
|
# (Sept 2026) — the signing request currently fails with a 500 on the
|
||||||
|
# SignPath side. Kept non-blocking so the nightly MSI still ships
|
||||||
|
# (unsigned) while the certificate is pending. Remove
|
||||||
|
# continue-on-error once the certificate is confirmed active.
|
||||||
- name: Sign MSI via SignPath
|
- name: Sign MSI via SignPath
|
||||||
if: github.repository == 'qelectrotech/qelectrotech-source-mirror'
|
id: sign
|
||||||
|
if: github.repository == 'qelectrotech/qelectrotech-source-mirror' && env.SIGNPATH_API_TOKEN != ''
|
||||||
|
continue-on-error: true
|
||||||
uses: signpath/github-action-submit-signing-request@v2
|
uses: signpath/github-action-submit-signing-request@v2
|
||||||
with:
|
with:
|
||||||
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
|
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
|
||||||
@@ -302,7 +312,22 @@ jobs:
|
|||||||
wait-for-completion: true
|
wait-for-completion: true
|
||||||
output-artifact-directory: 'dist\'
|
output-artifact-directory: 'dist\'
|
||||||
|
|
||||||
|
# If signing succeeded, SignPath already overwrote dist\*.msi with the
|
||||||
|
# signed copy (output-artifact-directory above) — nothing to do here.
|
||||||
|
# If it failed/was skipped, dist\*.msi is still the unsigned MSI from
|
||||||
|
# the "Build MSI" step, so the rest of the pipeline just ships that.
|
||||||
|
- name: Report signing status
|
||||||
|
if: always()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
if ("${{ steps.sign.outcome }}" -eq "success") {
|
||||||
|
Write-Host "MSI signed successfully via SignPath."
|
||||||
|
} else {
|
||||||
|
Write-Warning "MSI signing skipped or failed (outcome: ${{ steps.sign.outcome }}) — shipping UNSIGNED MSI. Likely cause: SignPath certificate still pending validation."
|
||||||
|
}
|
||||||
|
|
||||||
- name: Upload signed MSI artifact
|
- name: Upload signed MSI artifact
|
||||||
|
if: always()
|
||||||
uses: actions/upload-artifact@v7
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
name: qelectrotech-windows-msi-${{ matrix.flavor }}
|
name: qelectrotech-windows-msi-${{ matrix.flavor }}
|
||||||
@@ -311,6 +336,7 @@ jobs:
|
|||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
- name: Delete old nightly .msi asset
|
- name: Delete old nightly .msi asset
|
||||||
|
if: always()
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
REPO: ${{ github.repository }}
|
REPO: ${{ github.repository }}
|
||||||
@@ -324,6 +350,7 @@ jobs:
|
|||||||
shell: pwsh
|
shell: pwsh
|
||||||
|
|
||||||
- name: Upload MSI to nightly release
|
- name: Upload MSI to nightly release
|
||||||
|
if: always()
|
||||||
uses: softprops/action-gh-release@v3
|
uses: softprops/action-gh-release@v3
|
||||||
with:
|
with:
|
||||||
tag_name: nightly
|
tag_name: nightly
|
||||||
@@ -345,7 +372,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
Write-Host "=== MSI build summary (${{ matrix.flavor }}) ==="
|
Write-Host "=== MSI build summary (${{ matrix.flavor }}) ==="
|
||||||
Write-Host "Version : ${{ steps.version.outputs.VERSION_DISPLAY }}"
|
Write-Host "Version : ${{ steps.version.outputs.VERSION_DISPLAY }}"
|
||||||
Write-Host "Signed : true"
|
Write-Host "Signed : ${{ steps.sign.outcome == 'success' }}"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Job 2 : Génère et déploie la page GitHub Pages une fois le MSI publié,
|
# Job 2 : Génère et déploie la page GitHub Pages une fois le MSI publié,
|
||||||
|
|||||||
@@ -8,3 +8,11 @@ doc/*
|
|||||||
QElectroTech.tag
|
QElectroTech.tag
|
||||||
!doc/doc-utils
|
!doc/doc-utils
|
||||||
lang/*.qm
|
lang/*.qm
|
||||||
|
|
||||||
|
# -- IDE settings/intermediate files --
|
||||||
|
# zed
|
||||||
|
.zed
|
||||||
|
.cache
|
||||||
|
|
||||||
|
# VS Code
|
||||||
|
.vscode
|
||||||
|
|||||||
@@ -28,25 +28,6 @@ include(cmake/copyright_message.cmake)
|
|||||||
|
|
||||||
set(QET_DIR ${PROJECT_SOURCE_DIR})
|
set(QET_DIR ${PROJECT_SOURCE_DIR})
|
||||||
|
|
||||||
# QT_VERSION_MAJOR is chosen explicitly by whoever configures the build,
|
|
||||||
# via -DQT_VERSION_MAJOR=5 or -DQT_VERSION_MAJOR=6.
|
|
||||||
# Default to Qt5 (current stable) when not specified, so existing
|
|
||||||
# CI/scripts that don't pass this option keep working unchanged.
|
|
||||||
# This must happen BEFORE add_subdirectory(tests) and the fetch_*.cmake
|
|
||||||
# includes below, so every subdirectory and every FetchContent dependency
|
|
||||||
# sees a consistent, already-defined value.
|
|
||||||
if(NOT DEFINED QT_VERSION_MAJOR)
|
|
||||||
set(QT_VERSION_MAJOR 6)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Some third-party CMake projects we pull in via FetchContent (e.g.
|
|
||||||
# SingleApplication) don't know about QET_VERSION_MAJOR: they follow Qt's
|
|
||||||
# own "QT_DEFAULT_MAJOR_VERSION" convention instead, and silently default
|
|
||||||
# to Qt5 if it isn't set. Propagate our choice so they stay in sync,
|
|
||||||
# otherwise they can end up linked against a different Qt major version
|
|
||||||
# than the rest of QET, which breaks AUTOMOC with an
|
|
||||||
# INTERFACE_QT_MAJOR_VERSION mismatch at generate time.
|
|
||||||
set(QT_DEFAULT_MAJOR_VERSION ${QT_VERSION_MAJOR} CACHE STRING "Qt version to use (5 or 6)" FORCE)
|
|
||||||
|
|
||||||
include(cmake/paths_compilation_installation.cmake)
|
include(cmake/paths_compilation_installation.cmake)
|
||||||
include(cmake/start_options.cmake)
|
include(cmake/start_options.cmake)
|
||||||
@@ -65,7 +46,7 @@ SET(CMAKE_CXX_STANDARD 17)
|
|||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
find_package(
|
find_package(
|
||||||
Qt${QT_VERSION_MAJOR}
|
Qt6
|
||||||
COMPONENTS
|
COMPONENTS
|
||||||
${QET_COMPONENTS}
|
${QET_COMPONENTS}
|
||||||
REQUIRED)
|
REQUIRED)
|
||||||
@@ -76,12 +57,9 @@ find_package(
|
|||||||
# and only provide the implicit Qt6::GuiPrivate target created alongside
|
# and only provide the implicit Qt6::GuiPrivate target created alongside
|
||||||
# Qt6::Gui. Try the component quietly, then verify the target below so a
|
# Qt6::Gui. Try the component quietly, then verify the target below so a
|
||||||
# missing private-headers package fails here instead of at compile time.
|
# missing private-headers package fails here instead of at compile time.
|
||||||
# Qt5 has no such component as its GuiPrivate target always exists once Gui is found.
|
find_package(Qt6 QUIET COMPONENTS GuiPrivate)
|
||||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
|
|
||||||
find_package(Qt6 QUIET COMPONENTS GuiPrivate)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6 AND NOT TARGET Qt6::GuiPrivate)
|
if(NOT TARGET Qt6::GuiPrivate)
|
||||||
message(FATAL_ERROR
|
message(FATAL_ERROR
|
||||||
"Qt6::GuiPrivate was not found. It is required for PDF hyperlink "
|
"Qt6::GuiPrivate was not found. It is required for PDF hyperlink "
|
||||||
"support (<private/qpdf_p.h>). Install the Qt6 private headers "
|
"support (<private/qpdf_p.h>). Install the Qt6 private headers "
|
||||||
@@ -98,15 +76,44 @@ endif()
|
|||||||
# see the QT_VERSION_CHECK / QET_HAS_QTPDF guards in diagrameventaddpdf.*
|
# see the QT_VERSION_CHECK / QET_HAS_QTPDF guards in diagrameventaddpdf.*
|
||||||
# and pdfpagesdialog.*.
|
# and pdfpagesdialog.*.
|
||||||
set(QET_HAS_QTPDF FALSE)
|
set(QET_HAS_QTPDF FALSE)
|
||||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
|
find_package(Qt6 QUIET COMPONENTS Pdf)
|
||||||
find_package(Qt6 QUIET COMPONENTS Pdf)
|
if(TARGET Qt6::Pdf AND NOT Qt6_VERSION VERSION_LESS 6.4.0)
|
||||||
if(TARGET Qt6::Pdf AND NOT Qt6_VERSION VERSION_LESS 6.4.0)
|
set(QET_HAS_QTPDF TRUE)
|
||||||
set(QET_HAS_QTPDF TRUE)
|
list(APPEND QET_PRIVATE_LIBRARIES Qt::Pdf)
|
||||||
list(APPEND QET_PRIVATE_LIBRARIES Qt::Pdf)
|
add_compile_definitions(QET_HAS_QTPDF)
|
||||||
add_compile_definitions(QET_HAS_QTPDF)
|
else()
|
||||||
else()
|
message(STATUS "QtPdf module not available (or Qt < 6.4): PDF page import feature disabled")
|
||||||
message(STATUS "QtPdf module not available (or Qt < 6.4): PDF page import feature disabled")
|
endif()
|
||||||
endif()
|
|
||||||
|
# JavaScript scripting (bugtracker #162: `--run script.js`, and later a
|
||||||
|
# "Run Script..." menu action) needs QJSEngine, in the Qml module. As with
|
||||||
|
# QtPdf above, this is not fatal when missing: some minimal Qt6 packagings
|
||||||
|
# may not ship it, and scripting is optional functionality nothing else in
|
||||||
|
# the application depends on. When it's missing the feature is silently
|
||||||
|
# disabled - see the QET_HAS_SCRIPTING guard in qetscripting.*.
|
||||||
|
set(QET_HAS_SCRIPTING FALSE)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} QUIET COMPONENTS Qml)
|
||||||
|
if(TARGET Qt${QT_VERSION_MAJOR}::Qml)
|
||||||
|
set(QET_HAS_SCRIPTING TRUE)
|
||||||
|
list(APPEND QET_PRIVATE_LIBRARIES Qt::Qml)
|
||||||
|
add_compile_definitions(QET_HAS_SCRIPTING)
|
||||||
|
else()
|
||||||
|
message(STATUS "Qt Qml module not available: JavaScript scripting (--run) disabled")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# The crash handler writes a backtrace into the dump. Detecting this with
|
||||||
|
# __has_include(<execinfo.h>) is not enough: the header is present on FreeBSD
|
||||||
|
# too, but backtrace() lives in a separate libexecinfo there, so the compile
|
||||||
|
# succeeds and the link fails. FindBacktrace resolves both the header and
|
||||||
|
# whichever library actually provides the symbol, so gate on it instead - see
|
||||||
|
# the QET_CRASH_BACKTRACE guard in sources/logging/crashhandler.cpp.
|
||||||
|
find_package(Backtrace QUIET)
|
||||||
|
if(Backtrace_FOUND)
|
||||||
|
list(APPEND QET_PRIVATE_LIBRARIES ${Backtrace_LIBRARIES})
|
||||||
|
include_directories(${Backtrace_INCLUDE_DIRS})
|
||||||
|
add_compile_definitions(QET_CRASH_BACKTRACE)
|
||||||
|
else()
|
||||||
|
message(STATUS "backtrace() not available: crash dumps will carry the log ring without a backtrace")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(SQLite3 REQUIRED)
|
find_package(SQLite3 REQUIRED)
|
||||||
@@ -123,11 +130,6 @@ endif()
|
|||||||
|
|
||||||
set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui)
|
set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui)
|
||||||
|
|
||||||
if(QT_VERSION_MAJOR EQUAL 6)
|
|
||||||
set(KF_MAJOR_VERSION 6)
|
|
||||||
else()
|
|
||||||
set(KF_MAJOR_VERSION 5)
|
|
||||||
endif()
|
|
||||||
include(cmake/fetch_kdeaddons.cmake)
|
include(cmake/fetch_kdeaddons.cmake)
|
||||||
|
|
||||||
# Add sub directories
|
# Add sub directories
|
||||||
@@ -152,6 +154,7 @@ if(WIN32)
|
|||||||
${QET_SRC_FILES}
|
${QET_SRC_FILES}
|
||||||
${QM_FILES}
|
${QM_FILES}
|
||||||
${QET_DIR}/qelectrotech.qrc
|
${QET_DIR}/qelectrotech.qrc
|
||||||
|
${QET_DIR}/ico/icon-themes.qrc
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
add_executable(
|
add_executable(
|
||||||
@@ -160,6 +163,7 @@ else()
|
|||||||
${QET_SRC_FILES}
|
${QET_SRC_FILES}
|
||||||
${QM_FILES}
|
${QM_FILES}
|
||||||
${QET_DIR}/qelectrotech.qrc
|
${QET_DIR}/qelectrotech.qrc
|
||||||
|
${QET_DIR}/ico/icon-themes.qrc
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -192,71 +196,19 @@ set_source_files_properties(
|
|||||||
${TS_FILES}
|
${TS_FILES}
|
||||||
PROPERTIES OUTPUT_LOCATION "lang"
|
PROPERTIES OUTPUT_LOCATION "lang"
|
||||||
)
|
)
|
||||||
if(QT_VERSION_MAJOR EQUAL 6)
|
if(Qt6_VERSION VERSION_LESS "6.2")
|
||||||
if(Qt6_VERSION VERSION_LESS "6.2")
|
# Qt 6.0–6.1
|
||||||
# Qt 6.0–6.1
|
qt6_add_translation(QM_FILES ${TS_FILES})
|
||||||
qt6_add_translation(QM_FILES ${TS_FILES})
|
|
||||||
|
|
||||||
# qt6_add_translation() only creates custom commands. Something must
|
# qt6_add_translation() only creates custom commands. Something must
|
||||||
# depend on their outputs for them to run during the default build.
|
# depend on their outputs for them to run during the default build.
|
||||||
add_custom_target(${PROJECT_NAME}_lrelease ALL
|
|
||||||
DEPENDS ${QM_FILES}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_target(update_translations
|
|
||||||
COMMAND
|
|
||||||
$<TARGET_FILE:Qt6::lupdate>
|
|
||||||
"${CMAKE_SOURCE_DIR}/sources"
|
|
||||||
-ts ${TS_FILES}
|
|
||||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
|
||||||
COMMENT
|
|
||||||
"Updating .ts files from sources/ (lupdate) - developer target"
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
|
|
||||||
elseif(Qt6_VERSION VERSION_LESS "6.7")
|
|
||||||
# Qt 6.2–6.6: old target-based signature
|
|
||||||
qt_add_lrelease(
|
|
||||||
${PROJECT_NAME}
|
|
||||||
TS_FILES ${TS_FILES}
|
|
||||||
QM_FILES_OUTPUT_VARIABLE QM_FILES
|
|
||||||
)
|
|
||||||
|
|
||||||
# Automatically creates the update_translations umbrella target.
|
|
||||||
qt_add_lupdate(
|
|
||||||
${PROJECT_NAME}
|
|
||||||
TS_FILES ${TS_FILES}
|
|
||||||
)
|
|
||||||
|
|
||||||
else()
|
|
||||||
# Qt 6.7+: new signature
|
|
||||||
qt_add_lrelease(
|
|
||||||
TS_FILES ${TS_FILES}
|
|
||||||
LRELEASE_TARGET ${PROJECT_NAME}_lrelease
|
|
||||||
QM_FILES_OUTPUT_VARIABLE QM_FILES
|
|
||||||
)
|
|
||||||
|
|
||||||
qt_add_lupdate(
|
|
||||||
SOURCE_TARGETS ${PROJECT_NAME}
|
|
||||||
TS_FILES ${TS_FILES}
|
|
||||||
LUPDATE_TARGET update_translations
|
|
||||||
NO_GLOBAL_TARGET
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
else()
|
|
||||||
# Qt 5
|
|
||||||
qt5_add_translation(QM_FILES ${TS_FILES})
|
|
||||||
|
|
||||||
# Likewise, qt5_add_translation() needs a target depending on its outputs,
|
|
||||||
# unless QM_FILES are already consumed elsewhere.
|
|
||||||
add_custom_target(${PROJECT_NAME}_lrelease ALL
|
add_custom_target(${PROJECT_NAME}_lrelease ALL
|
||||||
DEPENDS ${QM_FILES}
|
DEPENDS ${QM_FILES}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(update_translations
|
add_custom_target(update_translations
|
||||||
COMMAND
|
COMMAND
|
||||||
$<TARGET_FILE:Qt5::lupdate>
|
$<TARGET_FILE:Qt6::lupdate>
|
||||||
"${CMAKE_SOURCE_DIR}/sources"
|
"${CMAKE_SOURCE_DIR}/sources"
|
||||||
-ts ${TS_FILES}
|
-ts ${TS_FILES}
|
||||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
@@ -264,8 +216,38 @@ else()
|
|||||||
"Updating .ts files from sources/ (lupdate) - developer target"
|
"Updating .ts files from sources/ (lupdate) - developer target"
|
||||||
VERBATIM
|
VERBATIM
|
||||||
)
|
)
|
||||||
|
|
||||||
|
elseif(Qt6_VERSION VERSION_LESS "6.7")
|
||||||
|
# Qt 6.2–6.6: old target-based signature
|
||||||
|
qt_add_lrelease(
|
||||||
|
${PROJECT_NAME}
|
||||||
|
TS_FILES ${TS_FILES}
|
||||||
|
QM_FILES_OUTPUT_VARIABLE QM_FILES
|
||||||
|
)
|
||||||
|
|
||||||
|
# Automatically creates the update_translations umbrella target.
|
||||||
|
qt_add_lupdate(
|
||||||
|
${PROJECT_NAME}
|
||||||
|
TS_FILES ${TS_FILES}
|
||||||
|
)
|
||||||
|
|
||||||
|
else()
|
||||||
|
# Qt 6.7+: new signature
|
||||||
|
qt_add_lrelease(
|
||||||
|
TS_FILES ${TS_FILES}
|
||||||
|
LRELEASE_TARGET ${PROJECT_NAME}_lrelease
|
||||||
|
QM_FILES_OUTPUT_VARIABLE QM_FILES
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_add_lupdate(
|
||||||
|
SOURCE_TARGETS ${PROJECT_NAME}
|
||||||
|
TS_FILES ${TS_FILES}
|
||||||
|
LUPDATE_TARGET update_translations
|
||||||
|
NO_GLOBAL_TARGET
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# Optional precompiled headers -- see QET_ENABLE_PCH in
|
# Optional precompiled headers -- see QET_ENABLE_PCH in
|
||||||
# cmake/developer_options.cmake for what this trades away.
|
# cmake/developer_options.cmake for what this trades away.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,179 +0,0 @@
|
|||||||
[Qt6 / CMake]
|
|
||||||
Building the Qt6 line with CMake additionally requires the private
|
|
||||||
development headers of QtGui. On Debian/Ubuntu these live in a separate
|
|
||||||
package that is NOT pulled in by qt6-base-dev:
|
|
||||||
|
|
||||||
apt install qt6-base-private-dev
|
|
||||||
|
|
||||||
(other distributions: install your Qt 6 "private headers" development
|
|
||||||
package, e.g. qt6-qtbase-private-devel on Fedora)
|
|
||||||
|
|
||||||
QET needs the private QtGui API (QPdfEngine) for clickable hyperlinks in
|
|
||||||
the PDF export. Without the package, find_package(Qt6 ... GuiPrivate)
|
|
||||||
succeeds but CMake later fails at generate time with:
|
|
||||||
"Imported target Qt6::GuiPrivate includes non-existent path".
|
|
||||||
|
|
||||||
[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*)
|
|
||||||
cupsys-bsd for printing
|
|
||||||
|
|
||||||
Howto compile :
|
|
||||||
$ qmake (qmake-qt5 for Debian-based systems)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[fr]
|
|
||||||
Pré-requis :
|
|
||||||
libQt5 (paquets libqt5*)
|
|
||||||
cupsys-bsd pour l'impression
|
|
||||||
|
|
||||||
Comment compiler :
|
|
||||||
$ qmake (qmake-qt5 pour les systèmes basés sur Debian)
|
|
||||||
$ 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*)
|
|
||||||
cupsys-bsd для печати
|
|
||||||
|
|
||||||
Как компилировать?:
|
|
||||||
$ qmake (qmake-qt5 для систем основанных на Debian)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[pt]
|
|
||||||
Dependências:
|
|
||||||
libQt5 (ver pacotes libqt5*)
|
|
||||||
cupsys-bsd para impressão
|
|
||||||
|
|
||||||
Como compilar:
|
|
||||||
$ qmake (qmake-qt5 para sistemas baseados em Debian)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[es]
|
|
||||||
Dependencias:
|
|
||||||
libQt5 (paquetes libqt5*)
|
|
||||||
cupsys-bsd para imprimir
|
|
||||||
|
|
||||||
Cómo compilar:
|
|
||||||
$ qmake (qmake-qt5 para los sistemas basados en Debian)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[cs]
|
|
||||||
Požadavky :
|
|
||||||
libQt5 (viz balíček libqt5*)
|
|
||||||
cupsys-bsd kvůli tisku
|
|
||||||
|
|
||||||
Jak program sestavit :
|
|
||||||
$ qmake (qmake-qt5 u systémů založených na Debianu)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[pl]
|
|
||||||
Zależności:
|
|
||||||
libQt5 (pakiety libqt5 *)
|
|
||||||
cupsys-bsd do druku
|
|
||||||
|
|
||||||
Sposób kompilacji:
|
|
||||||
$ qmake (qmake-qt5 dla systemów opartych na Debianie)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[it]
|
|
||||||
Dipendenze:
|
|
||||||
libQt5 (vedi pacchetti libqt5*)
|
|
||||||
cupsys-bsd per la stampa
|
|
||||||
|
|
||||||
Come compilare:
|
|
||||||
$ qmake (qmake-qt5 per sistemi basati su Debian)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[el]
|
|
||||||
Απαιτήσεις:
|
|
||||||
libQt5 (δείτε για πακέτα libqt5*)
|
|
||||||
cupsys-bsd για εκτύπωση
|
|
||||||
|
|
||||||
Πως να το μεταγλωττίσετε:
|
|
||||||
$ qmake (qmake-qt5 για συστήματα βασισμένα σε Debian)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[nl]
|
|
||||||
vereisten:
|
|
||||||
libqt5 (zie pakketten libqt5 *)
|
|
||||||
cupsys-bsd om af te drukken
|
|
||||||
|
|
||||||
Hoe te compileren:
|
|
||||||
$ Qmake (qmake-qt5 voor Debian-gebaseerde systemen)
|
|
||||||
$ make
|
|
||||||
# Umask 0022
|
|
||||||
# Make install
|
|
||||||
|
|
||||||
[be]
|
|
||||||
Vereisten:
|
|
||||||
libQt5 (pakketten libqt5*)
|
|
||||||
cupsys-bsd voor het afdrukken
|
|
||||||
|
|
||||||
Hoe te compileren :
|
|
||||||
$ qmake (qmake-qt5 voor systemen op basis van Debian)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[da]
|
|
||||||
Krav:
|
|
||||||
libQt5 (se pakke libqt5*)
|
|
||||||
cupsys-bsd til udskrivning
|
|
||||||
|
|
||||||
Hvordan man kompilerer:
|
|
||||||
$ qmake (qmake-qt5 for Debian baserede systemer)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
|
|
||||||
[ja]
|
|
||||||
必要条件 :
|
|
||||||
libQt5 (パッケージ libqt5* を参照)
|
|
||||||
cupsys-bsd 印刷用
|
|
||||||
|
|
||||||
コンパイルの方法 :
|
|
||||||
$ qmake (Debian ベースのシステムでは qmake-qt5)
|
|
||||||
$ make
|
|
||||||
# umask 0022
|
|
||||||
# make install
|
|
||||||
@@ -0,0 +1,349 @@
|
|||||||
|
# Building QElectroTech from source
|
||||||
|
|
||||||
|
QElectroTech is built with **CMake** and requires the **current Qt6 only**; Qt5 and the
|
||||||
|
old `qmake`-based build described in earlier versions of this file have
|
||||||
|
been retired.
|
||||||
|
|
||||||
|
## 1. Getting the source
|
||||||
|
|
||||||
|
QET uses git submodules, so clone recursively:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone --recursive https://github.com/qelectrotech/qelectrotech-source-mirror.git
|
||||||
|
cd qelectrotech-source-mirror
|
||||||
|
```
|
||||||
|
|
||||||
|
If you already have a non-recursive clone:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git submodule update --init --recursive
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2. Requirements
|
||||||
|
|
||||||
|
| Component | Status | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| CMake ≥ 3.5 | required | CMake 4.3+ is also fine, see note below |
|
||||||
|
| C++17 compiler | required | GCC or Clang on Unix-like platforms; MSVC or MinGW-w64 g++ on Windows — see [Choosing a compiler](#3-choosing-a-compiler-unix) / [Building on Windows](#6-building-on-windows-msvc--mingw) |
|
||||||
|
| Qt6 base + widgets | required | |
|
||||||
|
| Qt6 **GuiPrivate** headers | required | needed for clickable PDF hyperlinks; **hard build failure** at CMake generate time if missing, see below |
|
||||||
|
| SQLite3 | required | used by the nomenclature/summary database |
|
||||||
|
| Qt Linguist tools (`lrelease`) | required | compiles the tracked `.ts` files into `.qm` as part of every normal build |
|
||||||
|
| pugixml | handled automatically | fetched and built via CMake FetchContent if not already present on the system — see [pugixml](#8-pugixml) below |
|
||||||
|
| Qt Test module | required if building tests | `PACKAGE_TESTS` is `ON` by default; QtTest ships as part of the base Qt6 dev packages listed below on every platform, no extra package needed |
|
||||||
|
| KDE Frameworks (KF6) | optional | see [Building without KDE Frameworks](#9-building-without-kde-frameworks) |
|
||||||
|
| QtPdf module | optional | see [PDF page import](#7-pdf-page-import-qtpdf) |
|
||||||
|
|
||||||
|
A note on CMake versions: the project declares a minimum of 3.5 but is
|
||||||
|
routinely built with much newer releases; if your CMake is older than 4.3 it
|
||||||
|
simply won't have the newer `SQLite3::SQLite3` target name, which the build
|
||||||
|
script compensates for automatically. There is nothing you need to do either
|
||||||
|
way.
|
||||||
|
|
||||||
|
## 3. Building (out-of-source build)
|
||||||
|
|
||||||
|
Always build in a separate directory from the source tree — in-source builds
|
||||||
|
are not supported.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
cmake --build . --parallel
|
||||||
|
```
|
||||||
|
|
||||||
|
For a Unix-like platform you'll usually also want an explicit build type,
|
||||||
|
since CMake's default (empty) build type means no optimization and no
|
||||||
|
debug info either:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cmake .. -DCMAKE_BUILD_TYPE=Release
|
||||||
|
```
|
||||||
|
|
||||||
|
To install (default prefix is `/usr/local`; adjust with
|
||||||
|
`-DCMAKE_INSTALL_PREFIX=...` at the configure step if needed):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo cmake --install .
|
||||||
|
```
|
||||||
|
|
||||||
|
Useful configure-time options (pass as `-D<OPTION>=ON/OFF`):
|
||||||
|
|
||||||
|
| Option | Default | Effect |
|
||||||
|
|---|---|---|
|
||||||
|
| `PACKAGE_TESTS` | `ON` | build the test suite (needs the Qt Test module) |
|
||||||
|
| `BUILD_WITH_KF` | distro-dependent | build against KDE Frameworks; see below |
|
||||||
|
| `QET_ENABLE_PCH` | `OFF` | precompiled headers for faster rebuilds (needs CMake ≥ 3.16) |
|
||||||
|
|
||||||
|
## 3.1 Choosing a compiler (Unix)
|
||||||
|
|
||||||
|
Both **GCC** and **Clang** are supported on Unix-like platforms; any
|
||||||
|
reasonably recent release with solid C++17 support works. Neither is
|
||||||
|
hard-coded — CMake picks up whichever `cc`/`c++` (or `CC`/`CXX` environment
|
||||||
|
variables) resolve to by default, and you can force one explicitly at
|
||||||
|
configure time:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cmake .. -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
|
||||||
|
# or
|
||||||
|
cmake .. -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
|
||||||
|
```
|
||||||
|
|
||||||
|
or equivalently, by exporting `CC`/`CXX` before calling `cmake`. The
|
||||||
|
per-distro package lists below install GCC by default (via
|
||||||
|
`build-essential`/`gcc-c++`/the base toolchain); see each section for the
|
||||||
|
Clang alternative.
|
||||||
|
|
||||||
|
## 4. Distribution packages
|
||||||
|
|
||||||
|
Exact package names vary by release/branch; if a name below doesn't resolve,
|
||||||
|
search your package manager (`apt search`, `pkg search`, `brew search`) for
|
||||||
|
the closest match.
|
||||||
|
|
||||||
|
### Debian / Ubuntu
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo apt install \
|
||||||
|
build-essential cmake ninja-build git \
|
||||||
|
qt6-base-dev qt6-base-private-dev qt6-tools-dev qt6-tools-dev-tools \
|
||||||
|
libsqlite3-dev \
|
||||||
|
libkf6coreaddons-dev libkf6widgetsaddons-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
`qt6-base-private-dev` is **not** pulled in automatically by `qt6-base-dev`
|
||||||
|
but is mandatory for the build (see
|
||||||
|
[Qt6 private headers](#6-qt6-private-headers-mandatory) below).
|
||||||
|
|
||||||
|
For Clang instead of GCC:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo apt install clang
|
||||||
|
```
|
||||||
|
|
||||||
|
Optional, for PDF page import:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo apt install libqt6pdf6-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Optional, to use a system pugixml instead of letting CMake fetch it:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo apt install libpugixml-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fedora / RHEL
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo dnf install \
|
||||||
|
cmake gcc-c++ git \
|
||||||
|
qt6-qtbase-devel qt6-qtbase-private-devel qt6-qttools-devel \
|
||||||
|
sqlite-devel \
|
||||||
|
kf6-kcoreaddons-devel kf6-kwidgetsaddons-devel
|
||||||
|
```
|
||||||
|
|
||||||
|
For Clang instead of GCC: `sudo dnf install clang`.
|
||||||
|
|
||||||
|
Optional, for PDF page import: `qt6-qtwebengine-devel` provides `QtPdf` on
|
||||||
|
some Fedora releases — check `dnf provides '*/QPdfDocument'` if unsure.
|
||||||
|
|
||||||
|
Optional, for a system pugixml: `sudo dnf install pugixml-devel`.
|
||||||
|
|
||||||
|
### FreeBSD
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pkg install \
|
||||||
|
cmake git \
|
||||||
|
qt6-base qt6-tools \
|
||||||
|
sqlite3 \
|
||||||
|
kf6-kcoreaddons kf6-kwidgetsaddons
|
||||||
|
```
|
||||||
|
|
||||||
|
(from ports: `devel/qt6-base`, `devel/qt6-tools`, `databases/sqlite3`,
|
||||||
|
`devel/kf6-kcoreaddons`, `x11-toolkits/kf6-kwidgetsaddons`.) Qt6's
|
||||||
|
`GuiPrivate` headers ship as part of `qt6-base` on FreeBSD, no separate
|
||||||
|
package is needed. `QtPdf` is not packaged on FreeBSD at the time of writing
|
||||||
|
— PDF page import will simply be disabled (see below).
|
||||||
|
|
||||||
|
Clang is the FreeBSD base system compiler and needs nothing extra; GCC is
|
||||||
|
available via `pkg install gcc` if you'd rather use it.
|
||||||
|
|
||||||
|
Optional, for a system pugixml: `pkg install pugixml` (`devel/pugixml`).
|
||||||
|
|
||||||
|
### macOS
|
||||||
|
|
||||||
|
Using [Homebrew](https://brew.sh):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
brew install cmake qt sqlite ninja
|
||||||
|
```
|
||||||
|
|
||||||
|
Homebrew's `qt` formula is Qt6 and includes the private headers, so no
|
||||||
|
extra package is required there. KDE Frameworks are not practically
|
||||||
|
available via Homebrew, so macOS builds are normally done **without KF**
|
||||||
|
(`-DBUILD_WITH_KF=OFF`) — see the caveat below.
|
||||||
|
|
||||||
|
Apple's Clang (from the Xcode Command Line Tools, `xcode-select --install`)
|
||||||
|
is the default and needs no extra package; GCC is available via
|
||||||
|
`brew install gcc` if you specifically want it instead.
|
||||||
|
|
||||||
|
Optional, for a system pugixml: `brew install pugixml`.
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
See [Building on Windows](#6-building-on-windows-msvc--mingw) below — the
|
||||||
|
package sources differ enough from the Unix-like platforms above (no system
|
||||||
|
package manager, SQLite3 and Qt aren't provided the same way) that it gets
|
||||||
|
its own section.
|
||||||
|
|
||||||
|
## 5. pugixml
|
||||||
|
|
||||||
|
QET links against [pugixml](https://pugixml.org) for XML parsing.
|
||||||
|
`cmake/fetch_pugixml.cmake` handles this automatically: if a suitable
|
||||||
|
pugixml isn't already available on the system, CMake fetches and builds it
|
||||||
|
from source via `FetchContent` as part of the normal configure step — you
|
||||||
|
don't need to do anything to get a working build.
|
||||||
|
|
||||||
|
If you'd rather avoid that network fetch and use your distribution's own
|
||||||
|
pugixml package instead, install it before running `cmake ..` (package
|
||||||
|
names are listed per platform in the [Distribution
|
||||||
|
packages](#4-distribution-packages) section above — e.g. `libpugixml-dev`
|
||||||
|
on Debian/Ubuntu, `pugixml-devel` on Fedora).
|
||||||
|
|
||||||
|
## 6. Building on Windows (MSVC / MinGW)
|
||||||
|
|
||||||
|
Both toolchains QET's CMake build targets on Windows are covered here:
|
||||||
|
**MSVC** (Visual Studio 2019/2022) and **MinGW-w64** (gcc). Unlike the
|
||||||
|
Unix-like platforms above, there's no single system package manager, so
|
||||||
|
Qt, SQLite3 and (optionally) KDE Frameworks each need to be sourced
|
||||||
|
separately per toolchain.
|
||||||
|
|
||||||
|
One piece of good news either way: unlike Debian/Fedora, the official Qt
|
||||||
|
Windows kits (both MSVC and MinGW) **already include the GuiPrivate private
|
||||||
|
headers** — there's no separate "private headers" package to remember on
|
||||||
|
Windows (see [Qt6 private headers](#7-qt6-private-headers-mandatory) below
|
||||||
|
for why this matters).
|
||||||
|
|
||||||
|
`QtPdf` is available as an optional component in the Qt Online Installer
|
||||||
|
(look for "Qt PDF" under the Qt 6.4+ node); if you skip it, PDF page import
|
||||||
|
is silently disabled exactly as on the other platforms. KDE Frameworks are
|
||||||
|
not prebuilt for Windows by any of the routes below, so Windows builds
|
||||||
|
normally use `-DBUILD_WITH_KF=OFF` (see the
|
||||||
|
[autosave caveat](#9-building-without-kde-frameworks)).
|
||||||
|
|
||||||
|
### MSVC (Visual Studio 2019 / 2022)
|
||||||
|
|
||||||
|
1. Install Visual Studio with the "Desktop development with C++" workload,
|
||||||
|
and install Qt6 for MSVC (e.g. the `msvc2019_64` or `msvc2022_64` kit)
|
||||||
|
via the [Qt Online Installer](https://www.qt.io/download-qt-installer).
|
||||||
|
2. Get SQLite3 — the simplest route is [vcpkg](https://vcpkg.io):
|
||||||
|
```bat
|
||||||
|
vcpkg install sqlite3:x64-windows
|
||||||
|
```
|
||||||
|
3. Configure and build from an "x64 Native Tools Command Prompt for VS":
|
||||||
|
```bat
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -G "Visual Studio 17 2022" -A x64 ^
|
||||||
|
-DCMAKE_PREFIX_PATH="C:\Qt\6.x.x\msvc2022_64" ^
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE="C:\vcpkg\scripts\buildsystems\vcpkg.cmake" ^
|
||||||
|
-DBUILD_WITH_KF=OFF
|
||||||
|
cmake --build . --config Release --parallel
|
||||||
|
```
|
||||||
|
Ninja works too, in place of the Visual Studio generator, if you prefer
|
||||||
|
(`-G Ninja -DCMAKE_BUILD_TYPE=Release`, run from the same VS developer
|
||||||
|
prompt so `cl.exe` is on `PATH`).
|
||||||
|
|
||||||
|
### MinGW-w64 (gcc)
|
||||||
|
|
||||||
|
Two common ways to get a MinGW toolchain that matches a Qt6 MinGW kit: Qt's
|
||||||
|
own bundled MinGW (installed alongside a `mingw_64` Qt kit via the Qt
|
||||||
|
Online Installer), or [MSYS2](https://www.msys2.org).
|
||||||
|
|
||||||
|
Using MSYS2, from a **MINGW64** shell:
|
||||||
|
```sh
|
||||||
|
pacman -S --needed \
|
||||||
|
mingw-w64-x86_64-toolchain \
|
||||||
|
mingw-w64-x86_64-qt6-base mingw-w64-x86_64-qt6-tools \
|
||||||
|
mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja \
|
||||||
|
mingw-w64-x86_64-sqlite3
|
||||||
|
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -G Ninja -DBUILD_WITH_KF=OFF -DCMAKE_BUILD_TYPE=Release
|
||||||
|
cmake --build .
|
||||||
|
```
|
||||||
|
(KF6 isn't packaged in MSYS2 either, hence `-DBUILD_WITH_KF=OFF` again.)
|
||||||
|
|
||||||
|
Using the Qt Online Installer's bundled MinGW kit instead: point
|
||||||
|
`CMAKE_PREFIX_PATH` at that kit (e.g. `C:\Qt\6.x.x\mingw_64`) and make sure
|
||||||
|
its bundled `g++.exe` comes first on `PATH`, or pass
|
||||||
|
`-DCMAKE_C_COMPILER`/`-DCMAKE_CXX_COMPILER` explicitly so CMake doesn't pick
|
||||||
|
up a different MinGW installation. SQLite3 still has to come from elsewhere
|
||||||
|
in this path — vcpkg with a `mingw`-flavoured triplet, or MSYS2's package as
|
||||||
|
above.
|
||||||
|
|
||||||
|
## 7. Qt6 private headers (mandatory)
|
||||||
|
|
||||||
|
QET uses the private `QPdfEngine` API (`<private/qpdf_p.h>`) to produce
|
||||||
|
clickable hyperlinks in PDF export. This requires Qt's `GuiPrivate` target,
|
||||||
|
which on several distributions (notably Debian/Ubuntu) is shipped in a
|
||||||
|
separate "private headers" package rather than the normal `-dev` package —
|
||||||
|
e.g. `qt6-base-private-dev` on Debian/Ubuntu, or
|
||||||
|
`qt6-qtbase-private-devel` on Fedora. Without it, CMake's `find_package`
|
||||||
|
step succeeds but configuration later fails at generate time with:
|
||||||
|
|
||||||
|
```
|
||||||
|
Imported target "Qt6::GuiPrivate" includes non-existent path
|
||||||
|
```
|
||||||
|
|
||||||
|
If you hit this, install your distribution's Qt6 private-headers package
|
||||||
|
(on Windows this is a non-issue — see [Building on
|
||||||
|
Windows](#6-building-on-windows-msvc--mingw) above).
|
||||||
|
|
||||||
|
## 8. PDF page import (QtPdf)
|
||||||
|
|
||||||
|
The toolbar's "Add a PDF" feature (`QPdfDocument::pagePointSize()`) needs
|
||||||
|
the separate `QtPdf` Qt module, available since Qt 6.4.
|
||||||
|
|
||||||
|
**This is optional and soft-fails**: if `QtPdf` isn't found, or is present
|
||||||
|
but older than 6.4, CMake prints a status message and simply disables the
|
||||||
|
feature (`QET_HAS_QTPDF` stays `FALSE`) — it does **not** stop the build.
|
||||||
|
Some Qt6 distributions don't ship `QtPdf` at all (it lives outside Qt's
|
||||||
|
core module set, alongside QtWebEngine), so this is expected on several
|
||||||
|
platforms, including FreeBSD as of this writing.
|
||||||
|
|
||||||
|
## 9. Building without KDE Frameworks
|
||||||
|
|
||||||
|
`BUILD_WITH_KF=OFF` builds QET against a bundled fallback UI layer instead
|
||||||
|
of KDE Frameworks (`kcoreaddons`/`kwidgetsaddons`). This is a fully
|
||||||
|
supported configuration and is, in practice, the default on platforms where
|
||||||
|
KF6 isn't readily packaged (macOS and Windows in particular).
|
||||||
|
|
||||||
|
Almost everything works identically either way. The one known caveat:
|
||||||
|
**autosave behavior is not as polished without KF**, since QET relies on
|
||||||
|
KCoreAddons' autosave/backup-file handling when it's available. Expect
|
||||||
|
autosave to work, but less robustly than on a KF-enabled build.
|
||||||
|
|
||||||
|
## 10. Translations (developer operation)
|
||||||
|
|
||||||
|
Everything in this section is a **maintainer/translator task**, not
|
||||||
|
something a normal build or a packager needs to touch.
|
||||||
|
|
||||||
|
The `.qm` files shipped with the application are compiled from the tracked
|
||||||
|
`.ts` files automatically as part of every normal build (via `lrelease`) —
|
||||||
|
regular builds and packages get up-to-date translated UI strings for free,
|
||||||
|
with no developer action needed.
|
||||||
|
|
||||||
|
Refreshing the `.ts` files themselves from the source code (`lupdate`) is
|
||||||
|
the actual developer operation: it's exposed as its own opt-in build
|
||||||
|
target, separate from the normal build:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cmake --build . --target update_translations
|
||||||
|
```
|
||||||
|
|
||||||
|
This is **not** run automatically and should not be added to routine or
|
||||||
|
parallel CI builds: it rewrites the tracked `.ts` files as a side effect,
|
||||||
|
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.
|
||||||
@@ -1,60 +1,60 @@
|
|||||||
[ca]
|
[ca]
|
||||||
QElectroTech és una aplicació Qt5 per crear esquemes elèctrics.
|
QElectroTech és una aplicació Qt6 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.
|
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]
|
[en]
|
||||||
QElectroTech is a Qt5 application to design electric diagrams.
|
QElectroTech is a Qt6 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.
|
It uses XML files for elements and diagrams, and includes both a diagram editor, a element editor, and an titleblock editor.
|
||||||
|
|
||||||
[fr]
|
[fr]
|
||||||
QElectroTech est une application Qt5 pour réaliser des schémas électriques.
|
QElectroTech est une application Qt6 pour réaliser des schémas électriques.
|
||||||
QET utilise le format XML pour ses éléments et ses schémas et inclut un éditeur de schémas, un éditeur d'élément, ainsi qu'un editeur de cartouche.
|
QET utilise le format XML pour ses éléments et ses schémas et inclut un éditeur de schémas, un éditeur d'élément, ainsi qu'un editeur de cartouche.
|
||||||
|
|
||||||
[de]
|
[de]
|
||||||
QElectroTech ist eine Qt5 Software, um Schaltpläne zu erstellen.
|
QElectroTech ist eine Qt6 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 Schriftfeldeditor.
|
||||||
|
|
||||||
|
|
||||||
[ru]
|
[ru]
|
||||||
QElectroTech - приложение написанное на Qt5 и предназначенное для разработки электрических схем.
|
QElectroTech - приложение написанное на Qt6 и предназначенное для разработки электрических схем.
|
||||||
Оно использует XML-файлы для элементов и схем, и включает, как редактор схем, так и редактор элементов.
|
Оно использует XML-файлы для элементов и схем, и включает, как редактор схем, так и редактор элементов.
|
||||||
|
|
||||||
[pt]
|
[pt]
|
||||||
QElectroTech é uma aplicação baseada em Qt5 para desenhar esquemas eléctricos.
|
QElectroTech é uma aplicação baseada em Qt6 para desenhar esquemas eléctricos.
|
||||||
QET utiliza ficheiros XML para os elementos e para os esquemas e inclui um editor de esquemas e um editor de elementos.
|
QET utiliza ficheiros XML para os elementos e para os esquemas e inclui um editor de esquemas e um editor de elementos.
|
||||||
|
|
||||||
[es]
|
[es]
|
||||||
QElectroTech es una aplicación Qt5 para diseñar esquemas eléctricos.
|
QElectroTech es una aplicación Qt6 para diseñar esquemas eléctricos.
|
||||||
Utiliza archivos XML para los elementos y esquemas, e incluye un editor de esquemas y un editor de elementos.
|
Utiliza archivos XML para los elementos y esquemas, e incluye un editor de esquemas y un editor de elementos.
|
||||||
|
|
||||||
[cs]
|
[cs]
|
||||||
QElectroTech je aplikací Qt5 určenou pro návrh nákresů elektrických obvodů.
|
QElectroTech je aplikací Qt6 určenou pro návrh nákresů elektrických obvodů.
|
||||||
Pro prvky a nákresy používá soubory XML, a zahrnuje v sobě jak editor nákresů, tak editor prvků.
|
Pro prvky a nákresy používá soubory XML, a zahrnuje v sobě jak editor nákresů, tak editor prvků.
|
||||||
|
|
||||||
[pl]
|
[pl]
|
||||||
QElectroTech to aplikacja napisana w Qt5, przeznaczona do tworzenia schematów elektrycznych.
|
QElectroTech to aplikacja napisana w Qt6, przeznaczona do tworzenia schematów elektrycznych.
|
||||||
Wykorzystuje XML do zapisywania plików elementów i projektów. Posiada edytor schematów i elementów.
|
Wykorzystuje XML do zapisywania plików elementów i projektów. Posiada edytor schematów i elementów.
|
||||||
|
|
||||||
[it]
|
[it]
|
||||||
QElectroTech è una applicazione fatta in Qt5 per disegnare schemi elettrici.
|
QElectroTech è una applicazione fatta in Qt6 per disegnare schemi elettrici.
|
||||||
QET usa il formato XML per i suoi elementi e schemi, includendo anche un editor per gli stessi.
|
QET usa il formato XML per i suoi elementi e schemi, includendo anche un editor per gli stessi.
|
||||||
|
|
||||||
[el]
|
[el]
|
||||||
Το QElectroTech είναι μια εφαρμογή Qt5 για σχεδίαση ηλεκτρικών διαγραμμάτων.
|
Το QElectroTech είναι μια εφαρμογή Qt6 για σχεδίαση ηλεκτρικών διαγραμμάτων.
|
||||||
Χρησιμοποιεί αρχεία XML για στοιχεία και διαγράμματα, και περιλαμβάνει επεξεργαστή διαγραμμάτων καθώς και επεξεργαστή στοιχείων.
|
Χρησιμοποιεί αρχεία XML για στοιχεία και διαγράμματα, και περιλαμβάνει επεξεργαστή διαγραμμάτων καθώς και επεξεργαστή στοιχείων.
|
||||||
|
|
||||||
[nl]
|
[nl]
|
||||||
QElectroTech is een Qt5 applicatie om elektrische schema's te ontwerpen.
|
QElectroTech is een Qt6 applicatie om elektrische schema's te ontwerpen.
|
||||||
Het maakt gebruik van XML-bestanden voor elementen en diagrammen, en omvat zowel een diagram bewerker, een element bewerker, en een bloksjabloon bewerker.
|
Het maakt gebruik van XML-bestanden voor elementen en diagrammen, en omvat zowel een diagram bewerker, een element bewerker, en een bloksjabloon bewerker.
|
||||||
|
|
||||||
[be]
|
[be]
|
||||||
QElectroTech is een Qt5 toepassing voor het maken en beheren van elektrische schema's.
|
QElectroTech is een Qt6 toepassing voor het maken en beheren van elektrische schema's.
|
||||||
QET gebruikt XML voor de elementen en schema's en omvat een schematische editor, itemeditor, en een titel sjabloon editor.
|
QET gebruikt XML voor de elementen en schema's en omvat een schematische editor, itemeditor, en een titel sjabloon editor.
|
||||||
|
|
||||||
[da]
|
[da]
|
||||||
QElectroTech er et Qt5 program til at redigere elektriske diagrammer.
|
QElectroTech er et Qt6 program til at redigere elektriske diagrammer.
|
||||||
Det bruger XML filer for symboler og diagrammer og inkluderer diagram, symbol og titelblok redigering.
|
Det bruger XML filer for symboler og diagrammer og inkluderer diagram, symbol og titelblok redigering.
|
||||||
|
|
||||||
[ja]
|
[ja]
|
||||||
QElectroTech は電気回路図を作成する Qt5 アプリケーションです。
|
QElectroTech は電気回路図を作成する Qt6 アプリケーションです。
|
||||||
QET は要素と回路図に XML 形式を利用し、回路図エディタ、要素エディタ、表題欄エディタを含みます。
|
QET は要素と回路図に XML 形式を利用し、回路図エディタ、要素エディタ、表題欄エディタを含みます。
|
||||||
|
|||||||
@@ -40,13 +40,13 @@ git clone --recursive https://github.com/qelectrotech/qelectrotech-source-mirror
|
|||||||
Here are the technical choices made for the software development:
|
Here are the technical choices made for the software development:
|
||||||
|
|
||||||
* Integrated development environment: [Qt Framework](https://www.qt.io/ide/)
|
* Integrated development environment: [Qt Framework](https://www.qt.io/ide/)
|
||||||
* Libraries: Qt 5.x
|
* Libraries: Qt 6.x
|
||||||
* [KF5 Framework](https://github.com/KDE)
|
* [KF6 Framework](https://github.com/KDE)
|
||||||
[Cmake](https://cmake.org/install/)
|
[Cmake](https://cmake.org/install/)
|
||||||
[kcoreaddons](https://github.com/KDE/kcoreaddons/tree/kf5)
|
[kcoreaddons](https://github.com/KDE/kcoreaddons/tree/kf6)
|
||||||
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons/tree/kf5).
|
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons/tree/kf6).
|
||||||
* Coding language: [C++](https://en.wikipedia.org/wiki/C%2B%2B)
|
* Coding language: [C++](https://en.wikipedia.org/wiki/C%2B%2B)
|
||||||
* GUI translations: [Qt Linguist](http://doc.qt.io/qt-5/qtlinguist-index.html)
|
* GUI translations: [Qt Linguist](http://doc.qt.io/qt-6/qtlinguist-index.html)
|
||||||
* Version control: [GIT](https://github.com/qelectrotech/qelectrotech-source-mirror.git)
|
* Version control: [GIT](https://github.com/qelectrotech/qelectrotech-source-mirror.git)
|
||||||
* Doxygen documentation :[Doxygen](https://download.qelectrotech.org/qet/doxygen/html/)
|
* Doxygen documentation :[Doxygen](https://download.qelectrotech.org/qet/doxygen/html/)
|
||||||
* QtCreator qch doxygen :[QElectroTech.qch](https://download.qelectrotech.org/qet/doxygen/QElectroTech.qch)
|
* QtCreator qch doxygen :[QElectroTech.qch](https://download.qelectrotech.org/qet/doxygen/QElectroTech.qch)
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ parts:
|
|||||||
- git
|
- git
|
||||||
- sqlite3
|
- sqlite3
|
||||||
- xdg-user-dirs
|
- xdg-user-dirs
|
||||||
|
- libqt6qml6
|
||||||
# libxcb-cursor0 workaround was needed against the Qt5/KF5 core22 content
|
# libxcb-cursor0 workaround was needed against the Qt5/KF5 core22 content
|
||||||
# snap (issue #373). Not yet re-verified against kf6-core24 — remove this
|
# snap (issue #373). Not yet re-verified against kf6-core24 — remove this
|
||||||
# if the Qt6 xcb platform plugin loads cleanly without it.
|
# if the Qt6 xcb platform plugin loads cleanly without it.
|
||||||
@@ -84,6 +85,7 @@ parts:
|
|||||||
- libsqlite3-dev
|
- libsqlite3-dev
|
||||||
- qt6-tools-dev
|
- qt6-tools-dev
|
||||||
- qt6-base-private-dev
|
- qt6-base-private-dev
|
||||||
|
- qt6-declarative-dev
|
||||||
- pkgconf
|
- pkgconf
|
||||||
# Qt6 PrintSupport records Cups::Cups as a third-party dependency
|
# Qt6 PrintSupport records Cups::Cups as a third-party dependency
|
||||||
# (qprint_p.h includes <cups/ppd.h>), so find_package(Qt6 PrintSupport)
|
# (qprint_p.h includes <cups/ppd.h>), so find_package(Qt6 PrintSupport)
|
||||||
|
|||||||
@@ -68,4 +68,3 @@ else()
|
|||||||
add_definitions(-DBUILD_WITHOUT_KF)
|
add_definitions(-DBUILD_WITHOUT_KF)
|
||||||
endif()
|
endif()
|
||||||
message("QET_COMPONENTS :" ${QET_COMPONENTS})
|
message("QET_COMPONENTS :" ${QET_COMPONENTS})
|
||||||
message("QT_VERSION_MAJOR :" ${QT_VERSION_MAJOR})
|
|
||||||
|
|||||||
@@ -31,10 +31,7 @@ add_definitions(-DQT_MESSAGELOGCONTEXT)
|
|||||||
# In order to do so, uncomment the following line.
|
# In order to do so, uncomment the following line.
|
||||||
#add_definitions(-DTODO_LIST)
|
#add_definitions(-DTODO_LIST)
|
||||||
|
|
||||||
# Build with KDE Frameworks. The major version (KF5/KF6) is derived
|
# Build with KDE Frameworks.
|
||||||
# automatically from QT_VERSION_MAJOR -- KDE Frameworks deliberately
|
|
||||||
# mirrors Qt's own major version numbering, so there is no independent
|
|
||||||
# choice to make here. See cmake/fetch_kdeaddons.cmake.
|
|
||||||
option(BUILD_WITH_KF "Build with KDE Frameworks" ON)
|
option(BUILD_WITH_KF "Build with KDE Frameworks" ON)
|
||||||
|
|
||||||
# Precompiled headers for the Qt umbrella headers.
|
# Precompiled headers for the Qt umbrella headers.
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
message(" - fetch_kdeaddons")
|
message(" - fetch_kdeaddons")
|
||||||
|
|
||||||
# TODO remove path as soon as Qt5 gets retired
|
|
||||||
if(BUILD_WITH_KF)
|
if(BUILD_WITH_KF)
|
||||||
Include(FetchContent)
|
Include(FetchContent)
|
||||||
|
|
||||||
@@ -24,16 +23,9 @@ if(BUILD_WITH_KF)
|
|||||||
|
|
||||||
if(BUILD_KF)
|
if(BUILD_KF)
|
||||||
|
|
||||||
if(KF_MAJOR_VERSION EQUAL 5)
|
if(NOT DEFINED KF_GIT_TAG)
|
||||||
if(NOT DEFINED KF_GIT_TAG)
|
# this is a more or less random version, taken as an conservative approach
|
||||||
#https://qelectrotech.org/forum/viewtopic.php?pid=13924#p13924
|
set(KF_GIT_TAG v6.10.0)
|
||||||
set(KF_GIT_TAG v5.77.0)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
if(NOT DEFINED KF_GIT_TAG)
|
|
||||||
# this is a more or less random version, taken as an conservative approach
|
|
||||||
set(KF_GIT_TAG v6.10.0)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
# using a function in order to limit the scope of the variables
|
# using a function in order to limit the scope of the variables
|
||||||
# with CMake >=3.25 we could use a block()
|
# with CMake >=3.25 we could use a block()
|
||||||
@@ -78,12 +70,12 @@ if(BUILD_WITH_KF)
|
|||||||
endfunction()
|
endfunction()
|
||||||
qet_make_kf_available()
|
qet_make_kf_available()
|
||||||
else()
|
else()
|
||||||
find_package(KF${KF_MAJOR_VERSION}CoreAddons REQUIRED)
|
find_package(KF6CoreAddons REQUIRED)
|
||||||
find_package(KF${KF_MAJOR_VERSION}WidgetsAddons REQUIRED)
|
find_package(KF6WidgetsAddons REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(KF_PRIVATE_LIBRARIES
|
set(KF_PRIVATE_LIBRARIES
|
||||||
KF${KF_MAJOR_VERSION}::WidgetsAddons
|
KF6::WidgetsAddons
|
||||||
KF${KF_MAJOR_VERSION}::CoreAddons
|
KF6::CoreAddons
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -35,5 +35,5 @@ FetchContent_Declare(
|
|||||||
SingleApplication
|
SingleApplication
|
||||||
GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git
|
GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git
|
||||||
GIT_TAG v3.2.0)
|
GIT_TAG v3.2.0)
|
||||||
|
set(QT_DEFAULT_MAJOR_VERSION 6)
|
||||||
FetchContent_MakeAvailable(SingleApplication)
|
FetchContent_MakeAvailable(SingleApplication)
|
||||||
|
|||||||
@@ -16,12 +16,11 @@
|
|||||||
|
|
||||||
message(" - qet_compilation_vars")
|
message(" - qet_compilation_vars")
|
||||||
|
|
||||||
# Note: GuiPrivate is intentionally NOT in this list. Qt6's CMake config only
|
# Note: GuiPrivate is intentionally NOT in this list.
|
||||||
# creates the Qt::GuiPrivate target when "GuiPrivate" is explicitly requested
|
# Qt >= 6.7 ships it as a proper find_package component, but some distro
|
||||||
# as a component, but Qt5 has no Qt5GuiPrivate package at all (the target is
|
# packages (e.g. Ubuntu's qt6-base-private-dev) omit Qt6GuiPrivateConfig.cmake
|
||||||
# created implicitly with Gui), so requesting it as a component breaks the
|
# and only provide the implicit Qt6::GuiPrivate target created alongside
|
||||||
# whole Qt5 configure. It is requested separately, guarded by
|
# Qt6::Gui. Checks are done in the main CMakeLists.txt
|
||||||
# QT_VERSION_MAJOR, after the main find_package.
|
|
||||||
# (Needed for QPdfEngine::drawHyperlink, the PDF internal links.)
|
# (Needed for QPdfEngine::drawHyperlink, the PDF internal links.)
|
||||||
set(QET_COMPONENTS
|
set(QET_COMPONENTS
|
||||||
LinguistTools
|
LinguistTools
|
||||||
@@ -249,6 +248,10 @@ set(QET_SRC_FILES
|
|||||||
${QET_DIR}/sources/qet.h
|
${QET_DIR}/sources/qet.h
|
||||||
${QET_DIR}/sources/qeticons.cpp
|
${QET_DIR}/sources/qeticons.cpp
|
||||||
${QET_DIR}/sources/qeticons.h
|
${QET_DIR}/sources/qeticons.h
|
||||||
|
${QET_DIR}/sources/qetpalette.cpp
|
||||||
|
${QET_DIR}/sources/qetpalette.h
|
||||||
|
${QET_DIR}/sources/qetstyle.cpp
|
||||||
|
${QET_DIR}/sources/qetstyle.h
|
||||||
${QET_DIR}/sources/qetinformation.cpp
|
${QET_DIR}/sources/qetinformation.cpp
|
||||||
${QET_DIR}/sources/qetinformation.h
|
${QET_DIR}/sources/qetinformation.h
|
||||||
${QET_DIR}/sources/qetmainwindow.cpp
|
${QET_DIR}/sources/qetmainwindow.cpp
|
||||||
@@ -433,6 +436,8 @@ set(QET_SRC_FILES
|
|||||||
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.h
|
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.h
|
||||||
${QET_DIR}/sources/ElementsCollection/elementcollectionitem.cpp
|
${QET_DIR}/sources/ElementsCollection/elementcollectionitem.cpp
|
||||||
${QET_DIR}/sources/ElementsCollection/elementcollectionitem.h
|
${QET_DIR}/sources/ElementsCollection/elementcollectionitem.h
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementpreviewdelegate.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementpreviewdelegate.h
|
||||||
${QET_DIR}/sources/ElementsCollection/elementscollectionmodel.cpp
|
${QET_DIR}/sources/ElementsCollection/elementscollectionmodel.cpp
|
||||||
${QET_DIR}/sources/ElementsCollection/elementscollectionmodel.h
|
${QET_DIR}/sources/ElementsCollection/elementscollectionmodel.h
|
||||||
${QET_DIR}/sources/ElementsCollection/elementscollectionwidget.cpp
|
${QET_DIR}/sources/ElementsCollection/elementscollectionwidget.cpp
|
||||||
@@ -698,6 +703,8 @@ set(QET_SRC_FILES
|
|||||||
${QET_DIR}/sources/ui/contactgroupselectiondialog.h
|
${QET_DIR}/sources/ui/contactgroupselectiondialog.h
|
||||||
${QET_DIR}/sources/ui/conductorpropertiesdialog.cpp
|
${QET_DIR}/sources/ui/conductorpropertiesdialog.cpp
|
||||||
${QET_DIR}/sources/ui/conductorpropertiesdialog.h
|
${QET_DIR}/sources/ui/conductorpropertiesdialog.h
|
||||||
|
${QET_DIR}/sources/ui/conductorcolortoolbutton.cpp
|
||||||
|
${QET_DIR}/sources/ui/conductorcolortoolbutton.h
|
||||||
${QET_DIR}/sources/ui/conductorpropertieswidget.cpp
|
${QET_DIR}/sources/ui/conductorpropertieswidget.cpp
|
||||||
${QET_DIR}/sources/ui/conductorpropertieswidget.h
|
${QET_DIR}/sources/ui/conductorpropertieswidget.h
|
||||||
${QET_DIR}/sources/ui/configsaveloaderwidget.cpp
|
${QET_DIR}/sources/ui/configsaveloaderwidget.cpp
|
||||||
@@ -839,15 +846,26 @@ if(NOT BUILD_WITH_KF)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Qt6-only: PDF page import files
|
list(APPEND QET_SRC_FILES
|
||||||
if(QT_VERSION_MAJOR GREATER_EQUAL 6)
|
|
||||||
list(APPEND QET_SRC_FILES
|
|
||||||
${QET_DIR}/sources/diagramevent/diagrameventaddpdf.cpp
|
${QET_DIR}/sources/diagramevent/diagrameventaddpdf.cpp
|
||||||
${QET_DIR}/sources/diagramevent/diagrameventaddpdf.h
|
${QET_DIR}/sources/diagramevent/diagrameventaddpdf.h
|
||||||
${QET_DIR}/sources/ui/pdfpagesdialog.cpp
|
${QET_DIR}/sources/ui/pdfpagesdialog.cpp
|
||||||
${QET_DIR}/sources/ui/pdfpagesdialog.h
|
${QET_DIR}/sources/ui/pdfpagesdialog.h
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
# JavaScript scripting (bugtracker #162). Unconditionally in the source
|
||||||
|
# list, like the QtPdf files above: this file is included before the
|
||||||
|
# QET_HAS_SCRIPTING probe runs in the top-level CMakeLists.txt, so the
|
||||||
|
# variable isn't set yet here. Same pattern as QtPdf: always compiled, the
|
||||||
|
# actual Qt::Qml dependent code is behind #ifdef QET_HAS_SCRIPTING inside
|
||||||
|
# qetscripting.cpp/qetscriptapi.cpp themselves, compiling to a harmless
|
||||||
|
# stub when the module wasn't found.
|
||||||
|
list(APPEND QET_SRC_FILES
|
||||||
|
${QET_DIR}/sources/scripting/qetscriptapi.cpp
|
||||||
|
${QET_DIR}/sources/scripting/qetscriptapi.h
|
||||||
|
${QET_DIR}/sources/scripting/qetscripting.cpp
|
||||||
|
${QET_DIR}/sources/scripting/qetscripting.h
|
||||||
|
)
|
||||||
|
|
||||||
set(TS_FILES
|
set(TS_FILES
|
||||||
${QET_DIR}/lang/qet_ar.ts
|
${QET_DIR}/lang/qet_ar.ts
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 262 B |
|
Before Width: | Height: | Size: 247 B |
|
Before Width: | Height: | Size: 271 B |
|
Before Width: | Height: | Size: 233 B |
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -216,6 +216,8 @@ Clarification:
|
|||||||
ico/128x128/diagram.png by the QElectroTech team (License CC BY-ND 3.0)
|
ico/128x128/diagram.png by the QElectroTech team (License CC BY-ND 3.0)
|
||||||
ico/128x128/document-export.png by the QElectroTech team (License CC BY-ND 3.0)
|
ico/128x128/document-export.png by the QElectroTech team (License CC BY-ND 3.0)
|
||||||
ico/128x128/project.png by the QElectroTech team (License CC BY-ND 3.0)
|
ico/128x128/project.png by the QElectroTech team (License CC BY-ND 3.0)
|
||||||
|
ico/scalable/pdf-import.svg by Jeff Patterson from the QElectroTech team (License CC BY-ND 3.0), laid out like ico/22x22/insert-image.png
|
||||||
|
ico/scalable/diagram.svg, folio-new.svg, folio-delete.svg, folio-properties.svg, label.svg by Jeff Patterson from the QElectroTech team (License CC BY-ND 3.0), the folio icons redrawn in the same style
|
||||||
ico/256x256/* by Nuri from the QElectroTech team (License CC BY-ND 3.0)
|
ico/256x256/* by Nuri from the QElectroTech team (License CC BY-ND 3.0)
|
||||||
ico/breeze-icons/* by Nuri from the QElectroTech team (License CC BY-ND 3.0)
|
ico/breeze-icons/* by Nuri from the QElectroTech team (License CC BY-ND 3.0)
|
||||||
ico/diagram.png by Nuri from the QElectroTech team (License CC BY-ND 3.0)
|
ico/diagram.png by Nuri from the QElectroTech team (License CC BY-ND 3.0)
|
||||||
|
|||||||
@@ -0,0 +1,473 @@
|
|||||||
|
<!DOCTYPE RCC>
|
||||||
|
<!-- Generated by misc/make_icon_themes.py. Do not edit. -->
|
||||||
|
<RCC version="1.0">
|
||||||
|
<qresource prefix="/ico">
|
||||||
|
<file>themes/qet/index.theme</file>
|
||||||
|
<file>themes/qet-dark/index.theme</file>
|
||||||
|
<file alias="themes/qet/16x16/application-exit.png">16x16/application-exit.png</file>
|
||||||
|
<file alias="themes/qet/16x16/arrow-left-double.png">16x16/arrow-left-double.png</file>
|
||||||
|
<file alias="themes/qet/16x16/arrow-left.png">16x16/arrow-left.png</file>
|
||||||
|
<file alias="themes/qet/16x16/arrow-right-double.png">16x16/arrow-right-double.png</file>
|
||||||
|
<file alias="themes/qet/16x16/arrow-right.png">16x16/arrow-right.png</file>
|
||||||
|
<file alias="themes/qet/16x16/circle.png">16x16/circle.png</file>
|
||||||
|
<file alias="themes/qet/16x16/conductor-edit.png">16x16/conductor-edit.png</file>
|
||||||
|
<file alias="themes/qet/16x16/conductor-reset.png">16x16/conductor-reset.png</file>
|
||||||
|
<file alias="themes/qet/16x16/conductor.png">16x16/conductor.png</file>
|
||||||
|
<file alias="themes/qet/16x16/configure-toolbars.png">16x16/configure-toolbars.png</file>
|
||||||
|
<file alias="themes/qet/16x16/configure.png">16x16/configure.png</file>
|
||||||
|
<file alias="themes/qet/16x16/diagram.png">16x16/diagram.png</file>
|
||||||
|
<file alias="themes/qet/16x16/dialog-cancel.png">16x16/dialog-cancel.png</file>
|
||||||
|
<file alias="themes/qet/16x16/dialog-ok.png">16x16/dialog-ok.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-close.png">16x16/document-close.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-export.png">16x16/document-export.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-import.png">16x16/document-import.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-new.png">16x16/document-new.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-open-recent.png">16x16/document-open-recent.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-open.png">16x16/document-open.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-print-frame.png">16x16/document-print-frame.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-print.png">16x16/document-print.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-save-all.png">16x16/document-save-all.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-save-as.png">16x16/document-save-as.png</file>
|
||||||
|
<file alias="themes/qet/16x16/document-save.png">16x16/document-save.png</file>
|
||||||
|
<file alias="themes/qet/16x16/east.png">16x16/east.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-clear-locationbar-ltr.png">16x16/edit-clear-locationbar-ltr.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-clear-locationbar-rtl.png">16x16/edit-clear-locationbar-rtl.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-clear.png">16x16/edit-clear.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-copy.png">16x16/edit-copy.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-cut.png">16x16/edit-cut.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-delete.png">16x16/edit-delete.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-download.png">16x16/edit-download.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-paste.png">16x16/edit-paste.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-redo.png">16x16/edit-redo.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-rename.png">16x16/edit-rename.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-select-all.png">16x16/edit-select-all.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-select-invert.png">16x16/edit-select-invert.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-select-none.png">16x16/edit-select-none.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-table-cell-merge.png">16x16/edit-table-cell-merge.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-table-cell-split.png">16x16/edit-table-cell-split.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-table-delete-column.png">16x16/edit-table-delete-column.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-table-delete-row.png">16x16/edit-table-delete-row.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-table-insert-column-left.png">16x16/edit-table-insert-column-left.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-table-insert-column-right.png">16x16/edit-table-insert-column-right.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-table-insert-row-above.png">16x16/edit-table-insert-row-above.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-table-insert-row-under.png">16x16/edit-table-insert-row-under.png</file>
|
||||||
|
<file alias="themes/qet/16x16/edit-undo.png">16x16/edit-undo.png</file>
|
||||||
|
<file alias="themes/qet/16x16/element-delete.png">16x16/element-delete.png</file>
|
||||||
|
<file alias="themes/qet/16x16/element-edit.png">16x16/element-edit.png</file>
|
||||||
|
<file alias="themes/qet/16x16/element-master.png">16x16/element-master.png</file>
|
||||||
|
<file alias="themes/qet/16x16/element-new.png">16x16/element-new.png</file>
|
||||||
|
<file alias="themes/qet/16x16/element-slave.png">16x16/element-slave.png</file>
|
||||||
|
<file alias="themes/qet/16x16/element.png">16x16/element.png</file>
|
||||||
|
<file alias="themes/qet/16x16/endline-circle.png">16x16/endline-circle.png</file>
|
||||||
|
<file alias="themes/qet/16x16/endline-diamond.png">16x16/endline-diamond.png</file>
|
||||||
|
<file alias="themes/qet/16x16/endline-none.png">16x16/endline-none.png</file>
|
||||||
|
<file alias="themes/qet/16x16/endline-simple.png">16x16/endline-simple.png</file>
|
||||||
|
<file alias="themes/qet/16x16/endline-triangle.png">16x16/endline-triangle.png</file>
|
||||||
|
<file alias="themes/qet/16x16/export-csv.png">16x16/export-csv.png</file>
|
||||||
|
<file alias="themes/qet/16x16/flip.png">16x16/flip.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folder-delete.png">16x16/folder-delete.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folder-edit.png">16x16/folder-edit.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folder-new.png">16x16/folder-new.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folder-only-this.png">16x16/folder-only-this.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folder-open.png">16x16/folder-open.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folder-properties.png">16x16/folder-properties.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folder-show-all.png">16x16/folder-show-all.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folder.png">16x16/folder.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folio-delete.png">16x16/folio-delete.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folio-new.png">16x16/folio-new.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folio-properties.png">16x16/folio-properties.png</file>
|
||||||
|
<file alias="themes/qet/16x16/folio-ref-coming.png">16x16/folio-ref-coming.png</file>
|
||||||
|
<file alias="themes/qet/16x16/go-bottom.png">16x16/go-bottom.png</file>
|
||||||
|
<file alias="themes/qet/16x16/go-company.png">16x16/go-company.png</file>
|
||||||
|
<file alias="themes/qet/16x16/go-down-double.png">16x16/go-down-double.png</file>
|
||||||
|
<file alias="themes/qet/16x16/go-down.png">16x16/go-down.png</file>
|
||||||
|
<file alias="themes/qet/16x16/go-home.png">16x16/go-home.png</file>
|
||||||
|
<file alias="themes/qet/16x16/go-top.png">16x16/go-top.png</file>
|
||||||
|
<file alias="themes/qet/16x16/go-up-double.png">16x16/go-up-double.png</file>
|
||||||
|
<file alias="themes/qet/16x16/go-up.png">16x16/go-up.png</file>
|
||||||
|
<file alias="themes/qet/16x16/grid.png">16x16/grid.png</file>
|
||||||
|
<file alias="themes/qet/16x16/ground.png">16x16/ground.png</file>
|
||||||
|
<file alias="themes/qet/16x16/help-contents.png">16x16/help-contents.png</file>
|
||||||
|
<file alias="themes/qet/16x16/help-donate.png">16x16/help-donate.png</file>
|
||||||
|
<file alias="themes/qet/16x16/item-cancel.png">16x16/item-cancel.png</file>
|
||||||
|
<file alias="themes/qet/16x16/item-copy.png">16x16/item-copy.png</file>
|
||||||
|
<file alias="themes/qet/16x16/item-move.png">16x16/item-move.png</file>
|
||||||
|
<file alias="themes/qet/16x16/kdenlive-show-video.png">16x16/kdenlive-show-video.png</file>
|
||||||
|
<file alias="themes/qet/16x16/label.png">16x16/label.png</file>
|
||||||
|
<file alias="themes/qet/16x16/list-add.png">16x16/list-add.png</file>
|
||||||
|
<file alias="themes/qet/16x16/list-remove.png">16x16/list-remove.png</file>
|
||||||
|
<file alias="themes/qet/16x16/masquer.png">16x16/masquer.png</file>
|
||||||
|
<file alias="themes/qet/16x16/mirror.png">16x16/mirror.png</file>
|
||||||
|
<file alias="themes/qet/16x16/move.png">16x16/move.png</file>
|
||||||
|
<file alias="themes/qet/16x16/neutral.png">16x16/neutral.png</file>
|
||||||
|
<file alias="themes/qet/16x16/north.png">16x16/north.png</file>
|
||||||
|
<file alias="themes/qet/16x16/object-group.png">16x16/object-group.png</file>
|
||||||
|
<file alias="themes/qet/16x16/object-rotate-right.png">16x16/object-rotate-right.png</file>
|
||||||
|
<file alias="themes/qet/16x16/orientations.png">16x16/orientations.png</file>
|
||||||
|
<file alias="themes/qet/16x16/phase.png">16x16/phase.png</file>
|
||||||
|
<file alias="themes/qet/16x16/preferences-desktop-user.png">16x16/preferences-desktop-user.png</file>
|
||||||
|
<file alias="themes/qet/16x16/project-close.png">16x16/project-close.png</file>
|
||||||
|
<file alias="themes/qet/16x16/project-delete.png">16x16/project-delete.png</file>
|
||||||
|
<file alias="themes/qet/16x16/project-new.png">16x16/project-new.png</file>
|
||||||
|
<file alias="themes/qet/16x16/project-properties.png">16x16/project-properties.png</file>
|
||||||
|
<file alias="themes/qet/16x16/project.png">16x16/project.png</file>
|
||||||
|
<file alias="themes/qet/16x16/qet.png">16x16/qet.png</file>
|
||||||
|
<file alias="themes/qet/16x16/qt.png">16x16/qt.png</file>
|
||||||
|
<file alias="themes/qet/16x16/run-dxf.png">16x16/run-dxf.png</file>
|
||||||
|
<file alias="themes/qet/16x16/select.png">16x16/select.png</file>
|
||||||
|
<file alias="themes/qet/16x16/south.png">16x16/south.png</file>
|
||||||
|
<file alias="themes/qet/16x16/table-of-content.png">16x16/table-of-content.png</file>
|
||||||
|
<file alias="themes/qet/16x16/terminal.png">16x16/terminal.png</file>
|
||||||
|
<file alias="themes/qet/16x16/terminalstrip.png">16x16/terminalstrip.png</file>
|
||||||
|
<file alias="themes/qet/16x16/text-xml.png">16x16/text-xml.png</file>
|
||||||
|
<file alias="themes/qet/16x16/transform-rotate.png">16x16/transform-rotate.png</file>
|
||||||
|
<file alias="themes/qet/16x16/user-busy.png">16x16/user-busy.png</file>
|
||||||
|
<file alias="themes/qet/16x16/user-online.png">16x16/user-online.png</file>
|
||||||
|
<file alias="themes/qet/16x16/view-fullscreen.png">16x16/view-fullscreen.png</file>
|
||||||
|
<file alias="themes/qet/16x16/view-refresh.png">16x16/view-refresh.png</file>
|
||||||
|
<file alias="themes/qet/16x16/view-restore.png">16x16/view-restore.png</file>
|
||||||
|
<file alias="themes/qet/16x16/west.png">16x16/west.png</file>
|
||||||
|
<file alias="themes/qet/16x16/window-new.png">16x16/window-new.png</file>
|
||||||
|
<file alias="themes/qet/16x16/zoom-draw.png">16x16/zoom-draw.png</file>
|
||||||
|
<file alias="themes/qet/16x16/zoom-fit-best.png">16x16/zoom-fit-best.png</file>
|
||||||
|
<file alias="themes/qet/16x16/zoom-in.png">16x16/zoom-in.png</file>
|
||||||
|
<file alias="themes/qet/16x16/zoom-original.png">16x16/zoom-original.png</file>
|
||||||
|
<file alias="themes/qet/16x16/zoom-out.png">16x16/zoom-out.png</file>
|
||||||
|
<file alias="themes/qet/22x22/Actions-player-time-icon.png">22x22/Actions-player-time-icon.png</file>
|
||||||
|
<file alias="themes/qet/22x22/all_pages.png">22x22/all_pages.png</file>
|
||||||
|
<file alias="themes/qet/22x22/application-exit.png">22x22/application-exit.png</file>
|
||||||
|
<file alias="themes/qet/22x22/applications-development-translation.png">22x22/applications-development-translation.png</file>
|
||||||
|
<file alias="themes/qet/22x22/arc.png">22x22/arc.png</file>
|
||||||
|
<file alias="themes/qet/22x22/arrow-left-double.png">22x22/arrow-left-double.png</file>
|
||||||
|
<file alias="themes/qet/22x22/arrow-left.png">22x22/arrow-left.png</file>
|
||||||
|
<file alias="themes/qet/22x22/arrow-right-double.png">22x22/arrow-right-double.png</file>
|
||||||
|
<file alias="themes/qet/22x22/arrow-right.png">22x22/arrow-right.png</file>
|
||||||
|
<file alias="themes/qet/22x22/autoconnect.png">22x22/autoconnect.png</file>
|
||||||
|
<file alias="themes/qet/22x22/bring_forward.png">22x22/bring_forward.png</file>
|
||||||
|
<file alias="themes/qet/22x22/conductor2.png">22x22/conductor2.png</file>
|
||||||
|
<file alias="themes/qet/22x22/conductor-reset.png">22x22/conductor2.png</file>
|
||||||
|
<file alias="themes/qet/22x22/configure-toolbars.png">22x22/configure-toolbars.png</file>
|
||||||
|
<file alias="themes/qet/22x22/configure.png">22x22/configure.png</file>
|
||||||
|
<file alias="themes/qet/22x22/diagram_bg.png">22x22/diagram_bg.png</file>
|
||||||
|
<file alias="themes/qet/22x22/dialog-cancel.png">22x22/dialog-cancel.png</file>
|
||||||
|
<file alias="themes/qet/22x22/dialog-ok.png">22x22/dialog-ok.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-close.png">22x22/document-close.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-export.png">22x22/document-export.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-import.png">22x22/document-import.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-new.png">22x22/document-new.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-open-recent.png">22x22/document-open-recent.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-open.png">22x22/document-open.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-print-frame.png">22x22/document-print-frame.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-print.png">22x22/document-print.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-save-all.png">22x22/document-save-all.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-save-as.png">22x22/document-save-as.png</file>
|
||||||
|
<file alias="themes/qet/22x22/document-save.png">22x22/document-save.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-clear-locationbar-ltr.png">22x22/edit-clear-locationbar-ltr.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-clear-locationbar-rtl.png">22x22/edit-clear-locationbar-rtl.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-clear.png">22x22/edit-clear.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-copy.png">22x22/edit-copy.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-cut.png">22x22/edit-cut.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-delete.png">22x22/edit-delete.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-paste.png">22x22/edit-paste.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-redo.png">22x22/edit-redo.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-rename.png">22x22/edit-rename.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-select-all.png">22x22/edit-select-all.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-table-cell-merge.png">22x22/edit-table-cell-merge.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-table-cell-split.png">22x22/edit-table-cell-split.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-table-delete-column.png">22x22/edit-table-delete-column.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-table-delete-row.png">22x22/edit-table-delete-row.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-table-insert-column-left.png">22x22/edit-table-insert-column-left.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-table-insert-column-right.png">22x22/edit-table-insert-column-right.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-table-insert-row-above.png">22x22/edit-table-insert-row-above.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-table-insert-row-under.png">22x22/edit-table-insert-row-under.png</file>
|
||||||
|
<file alias="themes/qet/22x22/edit-undo.png">22x22/edit-undo.png</file>
|
||||||
|
<file alias="themes/qet/22x22/element-delete.png">22x22/element-delete.png</file>
|
||||||
|
<file alias="themes/qet/22x22/element-edit.png">22x22/element-edit.png</file>
|
||||||
|
<file alias="themes/qet/22x22/element-new.png">22x22/element-new.png</file>
|
||||||
|
<file alias="themes/qet/22x22/ellipse.png">22x22/ellipse.png</file>
|
||||||
|
<file alias="themes/qet/22x22/export-csv.png">22x22/export-csv.png</file>
|
||||||
|
<file alias="themes/qet/22x22/folder-delete.png">22x22/folder-delete.png</file>
|
||||||
|
<file alias="themes/qet/22x22/folder-edit.png">22x22/folder-edit.png</file>
|
||||||
|
<file alias="themes/qet/22x22/folder-new.png">22x22/folder-new.png</file>
|
||||||
|
<file alias="themes/qet/22x22/folder-open.png">22x22/folder-open.png</file>
|
||||||
|
<file alias="themes/qet/22x22/format-text-subscript.png">22x22/format-text-subscript.png</file>
|
||||||
|
<file alias="themes/qet/22x22/format-text-superscript.png">22x22/format-text-superscript.png</file>
|
||||||
|
<file alias="themes/qet/22x22/go-company.png">22x22/go-company.png</file>
|
||||||
|
<file alias="themes/qet/22x22/go-down.png">22x22/go-down.png</file>
|
||||||
|
<file alias="themes/qet/22x22/go-home.png">22x22/go-home.png</file>
|
||||||
|
<file alias="themes/qet/22x22/go-up.png">22x22/go-up.png</file>
|
||||||
|
<file alias="themes/qet/22x22/grid.png">22x22/grid.png</file>
|
||||||
|
<file alias="themes/qet/22x22/guides.png">22x22/guides.png</file>
|
||||||
|
<file alias="themes/qet/22x22/hotspot.png">22x22/hotspot.png</file>
|
||||||
|
<file alias="themes/qet/22x22/insert-image.png">22x22/insert-image.png</file>
|
||||||
|
<file alias="themes/qet/22x22/landscape.png">22x22/landscape.png</file>
|
||||||
|
<file alias="themes/qet/22x22/line.png">22x22/line.png</file>
|
||||||
|
<file alias="themes/qet/22x22/list-add.png">22x22/list-add.png</file>
|
||||||
|
<file alias="themes/qet/22x22/list-remove.png">22x22/list-remove.png</file>
|
||||||
|
<file alias="themes/qet/22x22/lower.png">22x22/lower.png</file>
|
||||||
|
<file alias="themes/qet/22x22/move.png">22x22/move.png</file>
|
||||||
|
<file alias="themes/qet/22x22/names.png">22x22/names.png</file>
|
||||||
|
<file alias="themes/qet/22x22/object-locked.png">22x22/object-locked.png</file>
|
||||||
|
<file alias="themes/qet/22x22/object-rotate-right.png">22x22/object-rotate-right.png</file>
|
||||||
|
<file alias="themes/qet/22x22/object-unlocked.png">22x22/object-unlocked.png</file>
|
||||||
|
<file alias="themes/qet/22x22/polygon.png">22x22/polygon.png</file>
|
||||||
|
<file alias="themes/qet/22x22/portrait.png">22x22/portrait.png</file>
|
||||||
|
<file alias="themes/qet/22x22/preferences-desktop-user.png">22x22/preferences-desktop-user.png</file>
|
||||||
|
<file alias="themes/qet/22x22/project-close.png">22x22/project-close.png</file>
|
||||||
|
<file alias="themes/qet/22x22/project-delete.png">22x22/project-delete.png</file>
|
||||||
|
<file alias="themes/qet/22x22/project-new.png">22x22/project-new.png</file>
|
||||||
|
<file alias="themes/qet/22x22/project.png">22x22/project.png</file>
|
||||||
|
<file alias="themes/qet/22x22/raise.png">22x22/raise.png</file>
|
||||||
|
<file alias="themes/qet/22x22/rectangle.png">22x22/rectangle.png</file>
|
||||||
|
<file alias="themes/qet/22x22/restaurer.png">22x22/restaurer.png</file>
|
||||||
|
<file alias="themes/qet/22x22/select.png">22x22/select.png</file>
|
||||||
|
<file alias="themes/qet/22x22/send_backward.png">22x22/send_backward.png</file>
|
||||||
|
<file alias="themes/qet/22x22/single_page.png">22x22/single_page.png</file>
|
||||||
|
<file alias="themes/qet/22x22/start.png">22x22/start.png</file>
|
||||||
|
<file alias="themes/qet/22x22/terminal.png">22x22/terminal.png</file>
|
||||||
|
<file alias="themes/qet/22x22/terminalstrip.png">22x22/terminalstrip.png</file>
|
||||||
|
<file alias="themes/qet/22x22/text-xml.png">22x22/text-xml.png</file>
|
||||||
|
<file alias="themes/qet/22x22/text.png">22x22/text.png</file>
|
||||||
|
<file alias="themes/qet/22x22/textfield.png">22x22/textfield.png</file>
|
||||||
|
<file alias="themes/qet/22x22/titleblock-bottom.png">22x22/titleblock-bottom.png</file>
|
||||||
|
<file alias="themes/qet/22x22/titleblock-right.png">22x22/titleblock-right.png</file>
|
||||||
|
<file alias="themes/qet/22x22/transform-scale.png">22x22/transform-scale.png</file>
|
||||||
|
<file alias="themes/qet/22x22/two_pages.png">22x22/two_pages.png</file>
|
||||||
|
<file alias="themes/qet/22x22/view-fit-window.png">22x22/view-fit-window.png</file>
|
||||||
|
<file alias="themes/qet/22x22/view-fullscreen.png">22x22/view-fullscreen.png</file>
|
||||||
|
<file alias="themes/qet/22x22/view-refresh.png">22x22/view-refresh.png</file>
|
||||||
|
<file alias="themes/qet/22x22/view-restore.png">22x22/view-restore.png</file>
|
||||||
|
<file alias="themes/qet/22x22/view_fit_width.png">22x22/view_fit_width.png</file>
|
||||||
|
<file alias="themes/qet/22x22/window-new.png">22x22/window-new.png</file>
|
||||||
|
<file alias="themes/qet/22x22/zoom-draw.png">22x22/zoom-draw.png</file>
|
||||||
|
<file alias="themes/qet/22x22/zoom-fit-best.png">22x22/zoom-fit-best.png</file>
|
||||||
|
<file alias="themes/qet/22x22/zoom-in.png">22x22/zoom-in.png</file>
|
||||||
|
<file alias="themes/qet/22x22/zoom-original.png">22x22/zoom-original.png</file>
|
||||||
|
<file alias="themes/qet/22x22/zoom-out.png">22x22/zoom-out.png</file>
|
||||||
|
<file alias="themes/qet/32x32/application-pdf.png">32x32/application-pdf.png</file>
|
||||||
|
<file alias="themes/qet/32x32/format-text-bold.png">32x32/format-text-bold.png</file>
|
||||||
|
<file alias="themes/qet/32x32/format-text-color.png">32x32/format-text-color.png</file>
|
||||||
|
<file alias="themes/qet/32x32/format-text-italic.png">32x32/format-text-italic.png</file>
|
||||||
|
<file alias="themes/qet/32x32/format-text-underline.png">32x32/format-text-underline.png</file>
|
||||||
|
<file alias="themes/qet/32x32/image-x-eps.png">32x32/image-x-eps.png</file>
|
||||||
|
<file alias="themes/qet/32x32/insert-link.png">32x32/insert-link.png</file>
|
||||||
|
<file alias="themes/qet/32x32/printer.png">32x32/printer.png</file>
|
||||||
|
<file alias="themes/qet/32x32/qt.png">32x32/qt.png</file>
|
||||||
|
<file alias="themes/qet/32x32/simplifyrichtext.png">32x32/simplifyrichtext.png</file>
|
||||||
|
<file alias="themes/qet/32x32/text-xml.png">32x32/text-xml.png</file>
|
||||||
|
<file alias="themes/qet/48x48/document-print-frame.png">48x48/document-print-frame.png</file>
|
||||||
|
<file alias="themes/qet/48x48/user-away-extended.png">48x48/user-away-extended.png</file>
|
||||||
|
<file alias="themes/qet/48x48/user-away.png">48x48/user-away.png</file>
|
||||||
|
<file alias="themes/qet/48x48/view-pim-journal.png">48x48/view-pim-journal.png</file>
|
||||||
|
<file alias="themes/qet/128x128/diagram.png">128x128/diagram.png</file>
|
||||||
|
<file alias="themes/qet/128x128/document-export.png">128x128/document-export.png</file>
|
||||||
|
<file alias="themes/qet/128x128/plasmagik.png">128x128/plasmagik.png</file>
|
||||||
|
<file alias="themes/qet/128x128/printer.png">128x128/printer.png</file>
|
||||||
|
<file alias="themes/qet/128x128/project.png">128x128/project.png</file>
|
||||||
|
<file alias="themes/qet/128x128/settings.png">128x128/settings.png</file>
|
||||||
|
<file alias="themes/qet/scalable/diagram.svg">scalable/diagram.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/folio-delete.svg">scalable/folio-delete.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/folio-new.svg">scalable/folio-new.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/folio-properties.svg">scalable/folio-properties.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/label.svg">scalable/label.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/pdf-import.svg">scalable/pdf-import.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/edit-opacity.svg">breeze-icons/scalable/apps/hidef/edit-opacity.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/image-flip-horizontal.svg">breeze-icons/scalable/apps/hidef/image-flip-horizontal-symbolic.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/image-flip-vertical.svg">breeze-icons/scalable/apps/hidef/image-flip-vertical-symbolic.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/draw-bezier-curves.svg">breeze-icons/scalable/apps/hidef/draw-bezier-curves.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/transform-crop.svg">breeze-icons/scalable/apps/hidef/transform-crop.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/ellipse-to-bezier.svg">generated/ellipse-to-bezier.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/rect-to-bezier.svg">generated/rect-to-bezier.svg</file>
|
||||||
|
<file alias="themes/qet/scalable/rect-to-polyline.svg">generated/rect-to-polyline.svg</file>
|
||||||
|
<file>themes/qet-dark/16x16/arrow-left-double.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/arrow-left.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/arrow-right-double.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/arrow-right.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/circle.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/conductor-edit.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/configure-toolbars.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/configure.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/dialog-cancel.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/dialog-ok.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/document-export.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/document-import.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/document-new.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/document-open-recent.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/document-print-frame.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/document-print.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/document-save-all.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/document-save-as.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/document-save.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-clear-locationbar-ltr.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-clear-locationbar-rtl.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-clear.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-copy.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-cut.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-download.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-paste.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-redo.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-rename.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-select-all.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-select-invert.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-table-cell-merge.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/edit-undo.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/element-delete.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/element-edit.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/element-new.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/element.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/endline-circle.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/endline-diamond.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/endline-none.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/endline-simple.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/endline-triangle.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/flip.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/folder-delete.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/folder-edit.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/folder-new.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/folder-open.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/folder-show-all.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/folder.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/folio-ref-coming.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/go-company.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/go-down-double.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/go-down.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/go-home.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/go-up-double.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/go-up.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/grid.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/help-contents.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/help-donate.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/item-cancel.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/item-copy.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/item-move.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/kdenlive-show-video.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/list-add.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/list-remove.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/masquer.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/mirror.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/move.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/object-group.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/object-rotate-right.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/orientations.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/preferences-desktop-user.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/select.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/table-of-content.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/terminal.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/text-xml.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/transform-rotate.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/view-fullscreen.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/view-restore.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/window-new.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/zoom-draw.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/zoom-fit-best.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/zoom-in.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/zoom-original.png</file>
|
||||||
|
<file>themes/qet-dark/16x16/zoom-out.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/Actions-player-time-icon.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/all_pages.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/applications-development-translation.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/arc.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/arrow-left-double.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/arrow-left.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/arrow-right-double.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/arrow-right.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/configure-toolbars.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/configure.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/dialog-cancel.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/dialog-ok.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/document-export.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/document-import.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/document-new.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/document-open-recent.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/document-print-frame.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/document-print.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/document-save-all.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/document-save-as.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/document-save.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-clear-locationbar-ltr.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-clear-locationbar-rtl.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-clear.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-copy.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-cut.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-paste.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-redo.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-rename.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-select-all.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-table-cell-merge.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/edit-undo.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/element-delete.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/element-edit.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/element-new.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/ellipse.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/folder-delete.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/folder-edit.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/folder-new.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/folder-open.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/go-company.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/go-down.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/go-home.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/go-up.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/grid.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/insert-image.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/landscape.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/line.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/list-add.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/list-remove.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/lower.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/move.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/names.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/object-locked.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/object-rotate-right.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/object-unlocked.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/polygon.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/portrait.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/preferences-desktop-user.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/raise.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/rectangle.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/restaurer.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/select.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/single_page.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/start.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/text-xml.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/text.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/textfield.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/transform-scale.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/two_pages.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/view-fit-window.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/view-fullscreen.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/view-restore.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/view_fit_width.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/window-new.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/zoom-draw.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/zoom-fit-best.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/zoom-in.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/zoom-original.png</file>
|
||||||
|
<file>themes/qet-dark/22x22/zoom-out.png</file>
|
||||||
|
<file>themes/qet-dark/32x32/format-text-bold.png</file>
|
||||||
|
<file>themes/qet-dark/32x32/format-text-color.png</file>
|
||||||
|
<file>themes/qet-dark/32x32/format-text-italic.png</file>
|
||||||
|
<file>themes/qet-dark/32x32/format-text-underline.png</file>
|
||||||
|
<file>themes/qet-dark/32x32/insert-link.png</file>
|
||||||
|
<file>themes/qet-dark/32x32/printer.png</file>
|
||||||
|
<file>themes/qet-dark/32x32/text-xml.png</file>
|
||||||
|
<file>themes/qet-dark/48x48/user-away-extended.png</file>
|
||||||
|
<file>themes/qet-dark/48x48/user-away.png</file>
|
||||||
|
<file>themes/qet-dark/48x48/view-pim-journal.png</file>
|
||||||
|
<file>themes/qet-dark/128x128/plasmagik.png</file>
|
||||||
|
<file>themes/qet-dark/128x128/settings.png</file>
|
||||||
|
<file>themes/qet-dark/scalable/diagram.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/folio-delete.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/folio-new.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/folio-properties.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/label.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/pdf-import.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/edit-opacity.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/image-flip-horizontal.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/image-flip-vertical.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/draw-bezier-curves.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/transform-crop.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/ellipse-to-bezier.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/rect-to-bezier.svg</file>
|
||||||
|
<file>themes/qet-dark/scalable/rect-to-polyline.svg</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
|
||||||
|
<defs id="defs3051">
|
||||||
|
<style type="text/css" id="current-color-scheme">
|
||||||
|
.ColorScheme-Text {
|
||||||
|
color:#4d4d4d;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(1,1)">
|
||||||
|
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3 5 h 1 v 1 h -1 Z M 3 6 h 1 v 1 h -1 Z M 3 7 h 1 v 1 h -1 Z M 3 8 h 1 v 1 h -1 Z M 3 9 h 1 v 1 h -1 Z M 3 10 h 1 v 1 h -1 Z M 3 11 h 1 v 1 h -1 Z M 3 12 h 1 v 1 h -1 Z M 3 13 h 1 v 1 h -1 Z M 3 14 h 1 v 1 h -1 Z M 3 15 h 1 v 1 h -1 Z M 3 16 h 1 v 1 h -1 Z M 4 5 h 1 v 1 h -1 Z M 4 13 h 1 v 1 h -1 Z M 4 16 h 1 v 1 h -1 Z M 5 5 h 1 v 1 h -1 Z M 5 13 h 1 v 1 h -1 Z M 5 16 h 1 v 1 h -1 Z M 6 5 h 1 v 1 h -1 Z M 6 13 h 1 v 1 h -1 Z M 6 16 h 1 v 1 h -1 Z M 7 5 h 1 v 1 h -1 Z M 7 13 h 1 v 1 h -1 Z M 7 16 h 1 v 1 h -1 Z M 8 5 h 1 v 1 h -1 Z M 8 13 h 1 v 1 h -1 Z M 8 16 h 1 v 1 h -1 Z M 9 5 h 1 v 1 h -1 Z M 9 13 h 1 v 1 h -1 Z M 9 16 h 1 v 1 h -1 Z M 10 5 h 1 v 1 h -1 Z M 10 13 h 1 v 1 h -1 Z M 10 16 h 1 v 1 h -1 Z M 11 5 h 1 v 1 h -1 Z M 11 13 h 1 v 1 h -1 Z M 11 14 h 1 v 1 h -1 Z M 11 15 h 1 v 1 h -1 Z M 11 16 h 1 v 1 h -1 Z M 12 5 h 1 v 1 h -1 Z M 12 13 h 1 v 1 h -1 Z M 12 16 h 1 v 1 h -1 Z M 13 5 h 1 v 1 h -1 Z M 13 13 h 1 v 1 h -1 Z M 13 16 h 1 v 1 h -1 Z M 14 5 h 1 v 1 h -1 Z M 14 13 h 1 v 1 h -1 Z M 14 16 h 1 v 1 h -1 Z M 15 5 h 1 v 1 h -1 Z M 15 13 h 1 v 1 h -1 Z M 15 16 h 1 v 1 h -1 Z M 16 5 h 1 v 1 h -1 Z M 16 13 h 1 v 1 h -1 Z M 16 16 h 1 v 1 h -1 Z M 17 5 h 1 v 1 h -1 Z M 17 13 h 1 v 1 h -1 Z M 17 16 h 1 v 1 h -1 Z M 18 5 h 1 v 1 h -1 Z M 18 6 h 1 v 1 h -1 Z M 18 7 h 1 v 1 h -1 Z M 18 8 h 1 v 1 h -1 Z M 18 9 h 1 v 1 h -1 Z M 18 10 h 1 v 1 h -1 Z M 18 11 h 1 v 1 h -1 Z M 18 12 h 1 v 1 h -1 Z M 18 13 h 1 v 1 h -1 Z M 18 14 h 1 v 1 h -1 Z M 18 15 h 1 v 1 h -1 Z M 18 16 h 1 v 1 h -1 Z" class="ColorScheme-Text"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
|
||||||
|
<defs id="defs3051">
|
||||||
|
<style type="text/css" id="current-color-scheme">
|
||||||
|
.ColorScheme-Text {
|
||||||
|
color:#4d4d4d;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(1,1)">
|
||||||
|
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3 5 h 1 v 1 h -1 Z M 3 6 h 1 v 1 h -1 Z M 3 7 h 1 v 1 h -1 Z M 3 8 h 1 v 1 h -1 Z M 3 9 h 1 v 1 h -1 Z M 3 10 h 1 v 1 h -1 Z M 3 11 h 1 v 1 h -1 Z M 3 12 h 1 v 1 h -1 Z M 3 13 h 1 v 1 h -1 Z M 3 14 h 1 v 1 h -1 Z M 3 15 h 1 v 1 h -1 Z M 3 16 h 1 v 1 h -1 Z M 4 5 h 1 v 1 h -1 Z M 4 13 h 1 v 1 h -1 Z M 4 16 h 1 v 1 h -1 Z M 5 5 h 1 v 1 h -1 Z M 5 13 h 1 v 1 h -1 Z M 5 16 h 1 v 1 h -1 Z M 6 5 h 1 v 1 h -1 Z M 6 13 h 1 v 1 h -1 Z M 6 16 h 1 v 1 h -1 Z M 7 5 h 1 v 1 h -1 Z M 7 13 h 1 v 1 h -1 Z M 7 16 h 1 v 1 h -1 Z M 8 5 h 1 v 1 h -1 Z M 8 13 h 1 v 1 h -1 Z M 8 16 h 1 v 1 h -1 Z M 9 5 h 1 v 1 h -1 Z M 9 13 h 1 v 1 h -1 Z M 9 16 h 1 v 1 h -1 Z M 10 5 h 1 v 1 h -1 Z M 10 13 h 1 v 1 h -1 Z M 10 16 h 1 v 1 h -1 Z M 11 5 h 1 v 1 h -1 Z M 11 13 h 1 v 1 h -1 Z M 11 14 h 1 v 1 h -1 Z M 11 15 h 1 v 1 h -1 Z M 11 16 h 1 v 1 h -1 Z M 12 5 h 1 v 1 h -1 Z M 12 13 h 1 v 1 h -1 Z M 12 16 h 1 v 1 h -1 Z M 13 5 h 1 v 1 h -1 Z M 14 5 h 1 v 1 h -1 Z M 14 17 h 1 v 1 h -1 Z M 15 5 h 1 v 1 h -1 Z M 15 17 h 1 v 1 h -1 Z M 16 5 h 1 v 1 h -1 Z M 16 17 h 1 v 1 h -1 Z M 17 5 h 1 v 1 h -1 Z M 17 17 h 1 v 1 h -1 Z M 18 5 h 1 v 1 h -1 Z M 18 6 h 1 v 1 h -1 Z M 18 7 h 1 v 1 h -1 Z M 18 8 h 1 v 1 h -1 Z M 18 9 h 1 v 1 h -1 Z M 18 10 h 1 v 1 h -1 Z M 18 11 h 1 v 1 h -1 Z M 18 12 h 1 v 1 h -1 Z M 18 17 h 1 v 1 h -1 Z M 19 17 h 1 v 1 h -1 Z" class="ColorScheme-Text"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,12 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
|
||||||
|
<defs id="defs3051">
|
||||||
|
<style type="text/css" id="current-color-scheme">
|
||||||
|
.ColorScheme-Text {
|
||||||
|
color:#4d4d4d;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(1,1)">
|
||||||
|
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3 5 h 1 v 1 h -1 Z M 3 6 h 1 v 1 h -1 Z M 3 7 h 1 v 1 h -1 Z M 3 8 h 1 v 1 h -1 Z M 3 9 h 1 v 1 h -1 Z M 3 10 h 1 v 1 h -1 Z M 3 11 h 1 v 1 h -1 Z M 3 12 h 1 v 1 h -1 Z M 3 13 h 1 v 1 h -1 Z M 3 14 h 1 v 1 h -1 Z M 3 15 h 1 v 1 h -1 Z M 3 16 h 1 v 1 h -1 Z M 4 5 h 1 v 1 h -1 Z M 4 13 h 1 v 1 h -1 Z M 4 16 h 1 v 1 h -1 Z M 5 5 h 1 v 1 h -1 Z M 5 13 h 1 v 1 h -1 Z M 5 16 h 1 v 1 h -1 Z M 6 5 h 1 v 1 h -1 Z M 6 13 h 1 v 1 h -1 Z M 6 16 h 1 v 1 h -1 Z M 7 5 h 1 v 1 h -1 Z M 7 13 h 1 v 1 h -1 Z M 7 16 h 1 v 1 h -1 Z M 8 5 h 1 v 1 h -1 Z M 8 13 h 1 v 1 h -1 Z M 8 16 h 1 v 1 h -1 Z M 9 5 h 1 v 1 h -1 Z M 9 13 h 1 v 1 h -1 Z M 9 16 h 1 v 1 h -1 Z M 10 5 h 1 v 1 h -1 Z M 10 13 h 1 v 1 h -1 Z M 10 16 h 1 v 1 h -1 Z M 11 5 h 1 v 1 h -1 Z M 11 13 h 1 v 1 h -1 Z M 11 14 h 1 v 1 h -1 Z M 11 15 h 1 v 1 h -1 Z M 11 16 h 1 v 1 h -1 Z M 12 5 h 1 v 1 h -1 Z M 12 13 h 1 v 1 h -1 Z M 12 16 h 1 v 1 h -1 Z M 13 5 h 1 v 1 h -1 Z M 14 5 h 1 v 1 h -1 Z M 14 17 h 1 v 1 h -1 Z M 15 5 h 1 v 1 h -1 Z M 15 17 h 1 v 1 h -1 Z M 16 5 h 1 v 1 h -1 Z M 16 17 h 1 v 1 h -1 Z M 17 5 h 1 v 1 h -1 Z M 17 14 h 1 v 1 h -1 Z M 17 15 h 1 v 1 h -1 Z M 17 16 h 1 v 1 h -1 Z M 17 17 h 1 v 1 h -1 Z M 17 18 h 1 v 1 h -1 Z M 17 19 h 1 v 1 h -1 Z M 18 5 h 1 v 1 h -1 Z M 18 6 h 1 v 1 h -1 Z M 18 7 h 1 v 1 h -1 Z M 18 8 h 1 v 1 h -1 Z M 18 9 h 1 v 1 h -1 Z M 18 10 h 1 v 1 h -1 Z M 18 11 h 1 v 1 h -1 Z M 18 12 h 1 v 1 h -1 Z M 18 17 h 1 v 1 h -1 Z M 19 17 h 1 v 1 h -1 Z" class="ColorScheme-Text"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
|
||||||
|
<defs id="defs3051">
|
||||||
|
<style type="text/css" id="current-color-scheme">
|
||||||
|
.ColorScheme-Text {
|
||||||
|
color:#4d4d4d;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(1,1)">
|
||||||
|
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3 5 h 1 v 1 h -1 Z M 3 6 h 1 v 1 h -1 Z M 3 7 h 1 v 1 h -1 Z M 3 8 h 1 v 1 h -1 Z M 3 9 h 1 v 1 h -1 Z M 3 10 h 1 v 1 h -1 Z M 3 11 h 1 v 1 h -1 Z M 3 12 h 1 v 1 h -1 Z M 3 13 h 1 v 1 h -1 Z M 3 14 h 1 v 1 h -1 Z M 3 15 h 1 v 1 h -1 Z M 3 16 h 1 v 1 h -1 Z M 4 5 h 1 v 1 h -1 Z M 4 13 h 1 v 1 h -1 Z M 4 16 h 1 v 1 h -1 Z M 5 5 h 1 v 1 h -1 Z M 5 13 h 1 v 1 h -1 Z M 5 16 h 1 v 1 h -1 Z M 6 5 h 1 v 1 h -1 Z M 6 8 h 1 v 1 h -1 Z M 6 10 h 1 v 1 h -1 Z M 6 13 h 1 v 1 h -1 Z M 6 16 h 1 v 1 h -1 Z M 7 5 h 1 v 1 h -1 Z M 7 8 h 1 v 1 h -1 Z M 7 10 h 1 v 1 h -1 Z M 7 13 h 1 v 1 h -1 Z M 7 16 h 1 v 1 h -1 Z M 8 5 h 1 v 1 h -1 Z M 8 8 h 1 v 1 h -1 Z M 8 10 h 1 v 1 h -1 Z M 8 13 h 1 v 1 h -1 Z M 8 16 h 1 v 1 h -1 Z M 9 5 h 1 v 1 h -1 Z M 9 8 h 1 v 1 h -1 Z M 9 10 h 1 v 1 h -1 Z M 9 13 h 1 v 1 h -1 Z M 9 16 h 1 v 1 h -1 Z M 10 5 h 1 v 1 h -1 Z M 10 8 h 1 v 1 h -1 Z M 10 10 h 1 v 1 h -1 Z M 10 13 h 1 v 1 h -1 Z M 10 16 h 1 v 1 h -1 Z M 11 5 h 1 v 1 h -1 Z M 11 8 h 1 v 1 h -1 Z M 11 10 h 1 v 1 h -1 Z M 11 13 h 1 v 1 h -1 Z M 11 14 h 1 v 1 h -1 Z M 11 15 h 1 v 1 h -1 Z M 11 16 h 1 v 1 h -1 Z M 12 5 h 1 v 1 h -1 Z M 12 8 h 1 v 1 h -1 Z M 12 10 h 1 v 1 h -1 Z M 12 13 h 1 v 1 h -1 Z M 12 16 h 1 v 1 h -1 Z M 13 5 h 1 v 1 h -1 Z M 13 8 h 1 v 1 h -1 Z M 13 10 h 1 v 1 h -1 Z M 13 13 h 1 v 1 h -1 Z M 13 16 h 1 v 1 h -1 Z M 14 5 h 1 v 1 h -1 Z M 14 8 h 1 v 1 h -1 Z M 14 10 h 1 v 1 h -1 Z M 14 13 h 1 v 1 h -1 Z M 14 16 h 1 v 1 h -1 Z M 15 5 h 1 v 1 h -1 Z M 15 8 h 1 v 1 h -1 Z M 15 10 h 1 v 1 h -1 Z M 15 13 h 1 v 1 h -1 Z M 15 16 h 1 v 1 h -1 Z M 16 5 h 1 v 1 h -1 Z M 16 13 h 1 v 1 h -1 Z M 16 16 h 1 v 1 h -1 Z M 17 5 h 1 v 1 h -1 Z M 17 13 h 1 v 1 h -1 Z M 17 16 h 1 v 1 h -1 Z M 18 5 h 1 v 1 h -1 Z M 18 6 h 1 v 1 h -1 Z M 18 7 h 1 v 1 h -1 Z M 18 8 h 1 v 1 h -1 Z M 18 9 h 1 v 1 h -1 Z M 18 10 h 1 v 1 h -1 Z M 18 11 h 1 v 1 h -1 Z M 18 12 h 1 v 1 h -1 Z M 18 13 h 1 v 1 h -1 Z M 18 14 h 1 v 1 h -1 Z M 18 15 h 1 v 1 h -1 Z M 18 16 h 1 v 1 h -1 Z" class="ColorScheme-Text"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,12 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
|
||||||
|
<defs id="defs3051">
|
||||||
|
<style type="text/css" id="current-color-scheme">
|
||||||
|
.ColorScheme-Text {
|
||||||
|
color:#4d4d4d;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(1,1)">
|
||||||
|
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3 5 h 1 v 1 h -1 Z M 3 6 h 1 v 1 h -1 Z M 3 7 h 1 v 1 h -1 Z M 3 8 h 1 v 1 h -1 Z M 3 9 h 1 v 1 h -1 Z M 3 10 h 1 v 1 h -1 Z M 3 11 h 1 v 1 h -1 Z M 3 12 h 1 v 1 h -1 Z M 3 13 h 1 v 1 h -1 Z M 3 14 h 1 v 1 h -1 Z M 3 15 h 1 v 1 h -1 Z M 3 16 h 1 v 1 h -1 Z M 4 5 h 1 v 1 h -1 Z M 4 13 h 1 v 1 h -1 Z M 4 14 h 1 v 1 h -1 Z M 4 15 h 1 v 1 h -1 Z M 4 16 h 1 v 1 h -1 Z M 5 5 h 1 v 1 h -1 Z M 5 13 h 1 v 1 h -1 Z M 5 14 h 1 v 1 h -1 Z M 5 15 h 1 v 1 h -1 Z M 5 16 h 1 v 1 h -1 Z M 6 5 h 1 v 1 h -1 Z M 6 13 h 1 v 1 h -1 Z M 6 14 h 1 v 1 h -1 Z M 6 15 h 1 v 1 h -1 Z M 6 16 h 1 v 1 h -1 Z M 7 5 h 1 v 1 h -1 Z M 7 13 h 1 v 1 h -1 Z M 7 14 h 1 v 1 h -1 Z M 7 15 h 1 v 1 h -1 Z M 7 16 h 1 v 1 h -1 Z M 8 5 h 1 v 1 h -1 Z M 8 13 h 1 v 1 h -1 Z M 8 14 h 1 v 1 h -1 Z M 8 15 h 1 v 1 h -1 Z M 8 16 h 1 v 1 h -1 Z M 9 5 h 1 v 1 h -1 Z M 9 13 h 1 v 1 h -1 Z M 9 14 h 1 v 1 h -1 Z M 9 15 h 1 v 1 h -1 Z M 9 16 h 1 v 1 h -1 Z M 10 5 h 1 v 1 h -1 Z M 10 13 h 1 v 1 h -1 Z M 10 14 h 1 v 1 h -1 Z M 10 15 h 1 v 1 h -1 Z M 10 16 h 1 v 1 h -1 Z M 11 5 h 1 v 1 h -1 Z M 11 13 h 1 v 1 h -1 Z M 11 14 h 1 v 1 h -1 Z M 11 15 h 1 v 1 h -1 Z M 11 16 h 1 v 1 h -1 Z M 12 5 h 1 v 1 h -1 Z M 12 13 h 1 v 1 h -1 Z M 12 14 h 1 v 1 h -1 Z M 12 15 h 1 v 1 h -1 Z M 12 16 h 1 v 1 h -1 Z M 13 5 h 1 v 1 h -1 Z M 13 13 h 1 v 1 h -1 Z M 13 14 h 1 v 1 h -1 Z M 13 15 h 1 v 1 h -1 Z M 13 16 h 1 v 1 h -1 Z M 14 5 h 1 v 1 h -1 Z M 14 13 h 1 v 1 h -1 Z M 14 14 h 1 v 1 h -1 Z M 14 15 h 1 v 1 h -1 Z M 14 16 h 1 v 1 h -1 Z M 15 5 h 1 v 1 h -1 Z M 15 13 h 1 v 1 h -1 Z M 15 14 h 1 v 1 h -1 Z M 15 15 h 1 v 1 h -1 Z M 15 16 h 1 v 1 h -1 Z M 16 5 h 1 v 1 h -1 Z M 16 13 h 1 v 1 h -1 Z M 16 14 h 1 v 1 h -1 Z M 16 15 h 1 v 1 h -1 Z M 16 16 h 1 v 1 h -1 Z M 17 5 h 1 v 1 h -1 Z M 17 13 h 1 v 1 h -1 Z M 17 14 h 1 v 1 h -1 Z M 17 15 h 1 v 1 h -1 Z M 17 16 h 1 v 1 h -1 Z M 18 5 h 1 v 1 h -1 Z M 18 6 h 1 v 1 h -1 Z M 18 7 h 1 v 1 h -1 Z M 18 8 h 1 v 1 h -1 Z M 18 9 h 1 v 1 h -1 Z M 18 10 h 1 v 1 h -1 Z M 18 11 h 1 v 1 h -1 Z M 18 12 h 1 v 1 h -1 Z M 18 13 h 1 v 1 h -1 Z M 18 14 h 1 v 1 h -1 Z M 18 15 h 1 v 1 h -1 Z M 18 16 h 1 v 1 h -1 Z" class="ColorScheme-Text"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1,13 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
|
||||||
|
<defs id="defs3051">
|
||||||
|
<style type="text/css" id="current-color-scheme">
|
||||||
|
.ColorScheme-Text {
|
||||||
|
color:#4d4d4d;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(1,1)">
|
||||||
|
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3 3 h 16 v 1 h -16 Z M 3 4 h 1 v 15 h -1 Z M 4 18 h 10 v 1 h -10 Z M 18 4 h 1 v 8 h -1 Z M 16 14 h 1 v 5 h -1 Z M 14 16 h 5 v 1 h -5 Z" class="ColorScheme-Text"/>
|
||||||
|
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 5 7 h 1 v 1 h -1 Z M 6 7 h 1 v 1 h -1 Z M 7 7 h 1 v 1 h -1 Z M 5 8 h 1 v 1 h -1 Z M 7 8 h 1 v 1 h -1 Z M 5 9 h 1 v 1 h -1 Z M 6 9 h 1 v 1 h -1 Z M 7 9 h 1 v 1 h -1 Z M 5 10 h 1 v 1 h -1 Z M 5 11 h 1 v 1 h -1 Z M 9 7 h 1 v 1 h -1 Z M 10 7 h 1 v 1 h -1 Z M 9 8 h 1 v 1 h -1 Z M 11 8 h 1 v 1 h -1 Z M 9 9 h 1 v 1 h -1 Z M 11 9 h 1 v 1 h -1 Z M 9 10 h 1 v 1 h -1 Z M 11 10 h 1 v 1 h -1 Z M 9 11 h 1 v 1 h -1 Z M 10 11 h 1 v 1 h -1 Z M 13 7 h 1 v 1 h -1 Z M 14 7 h 1 v 1 h -1 Z M 15 7 h 1 v 1 h -1 Z M 13 8 h 1 v 1 h -1 Z M 13 9 h 1 v 1 h -1 Z M 14 9 h 1 v 1 h -1 Z M 13 10 h 1 v 1 h -1 Z M 13 11 h 1 v 1 h -1 Z" class="ColorScheme-Text"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 272 B |
|
After Width: | Height: | Size: 230 B |
|
After Width: | Height: | Size: 276 B |
|
After Width: | Height: | Size: 235 B |
|
After Width: | Height: | Size: 359 B |
|
After Width: | Height: | Size: 242 B |
|
After Width: | Height: | Size: 139 B |
|
After Width: | Height: | Size: 223 B |
|
After Width: | Height: | Size: 391 B |
|
After Width: | Height: | Size: 297 B |
|
After Width: | Height: | Size: 220 B |
|
After Width: | Height: | Size: 220 B |
|
After Width: | Height: | Size: 140 B |
|
After Width: | Height: | Size: 285 B |
|
After Width: | Height: | Size: 155 B |
|
After Width: | Height: | Size: 155 B |
|
After Width: | Height: | Size: 229 B |
|
After Width: | Height: | Size: 293 B |
|
After Width: | Height: | Size: 203 B |
|
After Width: | Height: | Size: 248 B |
|
After Width: | Height: | Size: 228 B |
|
After Width: | Height: | Size: 297 B |
|
After Width: | Height: | Size: 156 B |
|
After Width: | Height: | Size: 337 B |
|
After Width: | Height: | Size: 264 B |
|
After Width: | Height: | Size: 131 B |
|
After Width: | Height: | Size: 324 B |
|
After Width: | Height: | Size: 318 B |
|
After Width: | Height: | Size: 153 B |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 329 B |
|
After Width: | Height: | Size: 409 B |
|
After Width: | Height: | Size: 453 B |
|
After Width: | Height: | Size: 430 B |
|
After Width: | Height: | Size: 453 B |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 103 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 190 B |
|
After Width: | Height: | Size: 225 B |
|
After Width: | Height: | Size: 216 B |
|
After Width: | Height: | Size: 266 B |
|
After Width: | Height: | Size: 225 B |
|
After Width: | Height: | Size: 156 B |
|
After Width: | Height: | Size: 229 B |
|
After Width: | Height: | Size: 179 B |
|
After Width: | Height: | Size: 203 B |
|
After Width: | Height: | Size: 255 B |
|
After Width: | Height: | Size: 330 B |
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 356 B |
|
After Width: | Height: | Size: 314 B |
|
After Width: | Height: | Size: 256 B |
|
After Width: | Height: | Size: 105 B |
|
After Width: | Height: | Size: 469 B |
|
After Width: | Height: | Size: 338 B |
|
After Width: | Height: | Size: 391 B |
|
After Width: | Height: | Size: 156 B |
|
After Width: | Height: | Size: 250 B |
|
After Width: | Height: | Size: 178 B |
|
After Width: | Height: | Size: 137 B |
|
After Width: | Height: | Size: 102 B |
|
After Width: | Height: | Size: 437 B |
|
After Width: | Height: | Size: 220 B |
|
After Width: | Height: | Size: 533 B |
|
After Width: | Height: | Size: 394 B |