Author SHA1 Message Date
torsten 882a9d57e9 b18844a20 (HEAD -> feature/migrate-lts-projects-and-application) 2026-09-25 11:43:24 +00:00
torsten 001f95695c Adds submod HEAD: Fix: Add BUILD_GROUP7-11 default initializations 2026-09-25 08:47:28 +00:00
torsten a47d5f3aa4 Merge branch 'main' of devel:lifemaps/qt6-migration-pipeline into feature/migrate-lts-projects-and-application 2026-09-25 08:45:37 +00:00
torsten ea90652fd4 Adds migration for lts/projects and lts/application (tbc)
Entire-Checkpoint: 01M3BV674BDGYRJJJCMHP5ZBCF
2026-09-25 08:33:54 +00:00
torstenandCopilot 5f59c0e5df Update qt6-migrated-legatus submodule with GROUP10/11 build groups
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M3BS0RSZTDARGS72H96NEY8K
2026-09-25 07:55:59 +00:00
torsten b12eae9b6a Add Group 9 (R,S,T,V,W) LTS Tools migration support 2026-09-24 16:47:13 +00:00
torsten c8efdeb092 Group 8 migration: Add build script support and CTest infrastructure 2026-09-24 16:37:16 +00:00
torsten 4c30e54972 Qt6 migration: Group 7 tools (A,B,C,E,I directories) 2026-09-24 16:28:43 +00:00
torstenandCopilot 337e7533e3 Update qt-migration-legatus submodule to Group 6 migration commit
- Includes --group6 build support
- Adds CTest tests for 11 LTS Tools
- Fixes Qt6 migration bugs in DBAdministration and DBUpdate
- 3 tools (DBAdministration, DBOperatorSettingsRemover, DBUpdate) build successfully
- 8 tools blocked by pre-existing Group 3 (ExerciseManagement) errors

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M37DQ5D9Q6860KK1AT0FWNE0
2026-09-23 15:21:32 +00:00
torsten 3e6a83285f Adds new HEAD in this developing branch feature/migrate-lts-tools-d-and-l 2026-09-23 13:20:33 +00:00
3802 changed files with 784 additions and 2149671 deletions

No files matched your search

-1
View File
@@ -84,4 +84,3 @@ build-qt6-old
build-qt6-new
fix_*.py
.*
rpms
-41
View File
@@ -1,41 +0,0 @@
# Bake PostgreSQL 18 (server + pre-seeded app roles/databases) into the Legatus Qt6
# build image, so any container from legatus-qt6-prebuilt:latest has a local DB ready.
#
# build : docker build -f Dockerfile.legatus-db -t legatus-qt6-prebuilt:latest .
# start : legatus-db-up # maps EXCDBS01/EXCADB01 -> 127.0.0.1 and starts pg
#
# Notes:
# - The cluster + roles/dbs live in the image's /var/lib/postgresql/18/main; each new
# container gets a fresh copy (in its writable layer). Start with `legatus-db-up`.
# - /etc/hosts is docker-managed, so EXCDBS01/EXCADB01 are added by legatus-db-up (or
# pass --add-host EXCDBS01:127.0.0.1 --add-host EXCADB01:127.0.0.1 at docker run).
FROM legatus-qt6-prebuilt:orig
ENV DEBIAN_FRONTEND=noninteractive
# Install the server; init the cluster with the credentials the DB tools use:
# dbUpdate -> postgres / postgres
# dbAdministration -> ctc_sv / postgres
RUN apt-get update \
&& apt-get install -y postgresql-18 \
&& rm -rf /var/lib/apt/lists/* \
&& pg_ctlcluster 18 main start \
&& sleep 2 \
&& su postgres -c "psql -v ON_ERROR_STOP=1 -c \"ALTER USER postgres PASSWORD 'postgres'\"" \
&& su postgres -c "psql -v ON_ERROR_STOP=1 -c \"CREATE ROLE ctc_sv LOGIN PASSWORD 'postgres' CREATEDB\"" \
&& su postgres -c "createdb -O postgres lts_ets_pro" \
&& su postgres -c "createdb -O postgres dbAdmin" \
&& pg_ctlcluster 18 main stop
# Convenience one-shot: map the hostnames + start the cluster (idempotent).
RUN printf '%s\n' \
'#!/usr/bin/env bash' \
'# Map the DB hostnames to the local server and start PostgreSQL 18.' \
'set -uo pipefail' \
'grep -qE "EXCDBS01" /etc/hosts || echo "127.0.0.1 EXCDBS01 EXCADB01" >> /etc/hosts' \
'pg_ctlcluster 18 main start || true' \
'sleep 1' \
'pg_isready -h 127.0.0.1 -p 5432' \
> /usr/local/bin/legatus-db-up \
&& chmod +x /usr/local/bin/legatus-db-up
-436
View File
@@ -1,436 +0,0 @@
# Qt6 Migration Branches Summary Report
## Executive Summary
**Status:** ✅ **ALL MIGRATION BRANCHES INTEGRATED AND VALIDATED**
**Target Branch:** `feature/qt6-migration-projects-app-tools-viewer-validation` (`593c221d2`)
**Qt Version:** 6.10.2 (`/opt/Qt/6.10.2/gcc_64`)
**Report Date:** 2026-09-28
The Qt5 → Qt6 migration of the Legatus codebase was executed as a **branch pipeline**:
~14 independent per-module/per-area migration branches (Phase 1) were developed in parallel
by Torsten Wierschin / twi-devel and berrux_dev, and were then consolidated through a
four-stage integration chain (Phase 2) into the final branch
`feature/qt6-migration-projects-app-tools-viewer-validation` (`593c221d2`, 257 commits beyond `main`).
All work was validated with **three full Docker build/test runs** (`new_docker_build.sh`,
prebuilt image `legatus-qt6-prebuilt:latest`, cmake 4.2.3):
| Run | Configuration | Build Result | ctest Result |
|-----|---------------|--------------|--------------|
| 1 | `BUILD_RTI=ON BUILD_GRANTLEE=ON`, Groups 1–3 | 100 % | 614 tests: 584 Passed / 30 Not Run / 0 Failed / 0 Timeout |
| 2 | `+ BUILD_ARCGIS=ON BUILD_CODIFICATION=ON`, Groups 4–11 + codification, `BUILD_WLS=ON` | Groups 1–4 100 % green; Groups 5–11 built except documented base-state failures | 615 tests: 577 Passed / 34 Not Run / 2 Failed / 2 Timeout — **exactly the 4 documented base-state failures, no new regressions** |
| 3 | `--build-viewer-only` | Viewer group 100 % (situationMapCommon, advancedSymbologyXML, LtsDataView, LtsDataViewTest, LtsReportDisplay) | 34 tests: **LtsDataViewTest PASSED (1.04 s)** / 33 Not Run / 0 Failed / 0 Timeout |
**Bottom line:** The merge introduced **zero ctest regressions** and **zero new build
failures** — every observed failure was proven pre-existing (base-state) via per-file
git provenance checks. Remaining failures are classified base-state blockers
(see [Remaining Work](#remaining-work)). All commits are GPG-signed (`git verify-commit` = Good).
The result is **not pushed** (per task instruction).
---
## Migration Scope
- **Source (read-only legacy tree):** `qt5-before/qt5-legatus-legacy`
- **Target (migrated tree):** `qt6-after/qt6-migrated-legatus` (repo `qt-migration-legatus`, a git submodule of the pipeline repo)
- **Toolchain:** Qt 6.10.2, rtiddsgen 7.7.0 (code generation for DDS/RTI types), cmake 4.2.3,
KDReports-qt6 2.3.95, ArcGIS Maps SDK for Qt 300.0.0
- **Migrated areas covered by the branch set:**
- Core/Z module (NGL core libraries)
- DDS core + generated DDS/RTI targets (rtiddsgen 7.7.0 code generation)
- Lts/Proxies, Lts/Services (incl. residual sources ported to the generated API)
- Lts/Viewer (SituationMap, Symbology, DataView, ReportDisplay) incl. ArcGIS-dependent targets
- LTS Tools (Groups 6–9, incl. Group 9 R/S/T/V/W)
- LTS Projects (GROUP10, 9 project plugins) and LTS Application (GROUP11)
- Test infrastructure: per-service unit tests, integration tests, ctest integration
- **Out of scope / blockers:** ArcGIS `TaskWatcher` API redesign (SDK 300 removed the class),
`LtsSession` full implementation (currently an empty stub), base-state Qt6 API debt in a
handful of tool sources, base-state `apps.json` IID checker failures.
---
## Branch Inventory
Commit counts are `git rev-list --count main..head` with `main` = `99136e946` (2026-08-13, initial commit).
### Phase 1 — Independent migration branches
| Branch | Head | Date | Author | Scope | Commits | In final branch |
|--------|------|------|--------|-------|---------|-----------------|
| `origin/feature/migrate-module-z-only` | `882f783bc` | 2026-09-17 | Torsten Wierschin | Core/Z module (NGL core libs, Group 1) | 184 | ✅ ancestor |
| `origin/showcase/unittest-and-validate-step-integration-in-lts-svc-s` | `82da99b41` | 2026-09-17 | Torsten Wierschin | Lts Svc (S) migration + unit-test step integration | 182 | ✅ ancestor |
| `origin/features/migrate-modules-in-lts-proxies` | `a1914cb7d` | 2026-09-19 | Torsten Wierschin | Lts/Proxies migration + test suite | 186 | ✅ ancestor |
| `origin/feature/migrate-and-test-DDS-targets` | `7cd3e4395` | 2026-09-21 | twi-devel | DDS targets migration + tests (merged at `ab29b7b2d`) | 186 | ✅ ancestor |
| `origin/bugfix/dds-fix-pre-existing-errors` | `5501d1e50` | 2026-09-22 | Torsten Wierschin | Stub-header updates fixing pre-existing DDS errors | 193 | ⤵ **cherry-picked** as `b2e787a70` (patch-id-identical; `Co-authored-by: Copilot` line dropped) |
| `origin/feature/migrate-lts-viewer.md` (= `origin/feature/qt6-migration-basis-modules`) | `ed9fc51e7` | 2026-09-23 | twi-devel | Lts/Viewer migrated to Qt6 | 194 | ✅ ancestor |
| `origin/feature/migrate-lts-tools-d-and-l` | `2b8f3f02c` | 2026-09-24 | Torsten Wierschin | LTS Tools migration incl. Group 9 (R,S,T,V,W) | 199 | ✅ ancestor (contained in the projects branch — no separate merge needed) |
| `origin/feature/lts-viewer-validation-testing-phase` | `c664611b8` | 2026-09-24 | twi-devel | Viewer validation/testing phase; PDM MOC exclusion, record_replay fixes | 197 | ✅ ancestor (merged at `9c1ac7cbe`) |
| `origin/feature/migrate-lts-projects-and-application` | `b18844a20` | 2026-09-25 | Torsten Wierschin | LTS Projects (GROUP10) + LTS Application (GROUP11); GROUP10 validation documented | 203 | ✅ ancestor (**base side of the final merge**) |
### Phase 2 — Integration / merge chain (berrux_dev)
| Branch | Head | Date | Author | Role |
|--------|------|------|--------|------|
| `feature/qt6-migration-basis-modules-services` | `881d44f4d` | 2026-09-23 | berrux_dev | Residual Lts service sources migrated to generated rtiddsgen API |
| `feature/qt6-migration-basis-modules-merge` | `36f077bce` | 2026-09-26 | berrux_dev | First integration: merged `migrate-and-test-DDS-targets` (`ab29b7b2d`) and `…-services` (`5381c65fe`); record_replay/fromQVariant + PPM MOC doc (`36f077bce`) |
| `feature/qt6-migration-basis-modules-merge-viewer-validation` | `9c1ac7cbe` | 2026-09-27 | berrux_dev | Merged `lts-viewer-validation-testing-phase` into the integration branch (`9c1ac7cbe`) |
| **`feature/qt6-migration-projects-app-tools-viewer-validation`** | **`593c221d2`** | **2026-09-28** | berrux_dev | **FINAL:** cherry-pick `5501d1e50` → `b2e787a70`; merged `…-viewer-validation` into `migrate-lts-projects-and-application` (`593c221d2`); resolves 1 content + 24 modify/delete conflicts; 257 commits beyond `main` |
### Historical / parallel branches (heads **not** ancestors of the final branch)
| Branch | Head | Date | Author | Notes |
|--------|------|------|--------|-------|
| `origin/feature/qt6-migration-signed` | `5da24495a` | 2026-08-21 | twi-devel | Early setup: added `qt5-legatus-legacy` submodule, signed-commit workflow |
| `origin/feature/qt6-migration-2026-08-21` | `5ee324f9e` | 2026-08-22 | twi-devel | Initial migration kickoff (superseded by later branches) |
| `origin/session-030-build-rti-schutz` | `d76c54614` | 2026-08-28 | twi-devel | SIGNAL/SLOT completion + QTextCodec removal (RTI build guard) |
| `origin/entire/checkpoints/v1` | `2f591c850` | 2026-09-12 | berrux_dev | Entire-graph code-graph checkpoint (not migration content) |
| `origin/feature/qt6-migration-basis-modules-berrux` | `ba212f9dc` | 2026-09-12 | berrux_dev | TetraIF migration + unit tests (parallel work line; superseded by the integration chain) |
---
## Merge Lineage
```
main (99136e946, 2026-08-13)
│
├─ Historical (Aug): qt6-migration-signed · qt6-migration-2026-08-21 · session-030-build-rti-schutz
│ · entire/checkpoints/v1 · qt6-migration-basis-modules-berrux
│
├─ Phase 1 (independent module migrations, parallel)
│ ├─ migrate-module-z-only (Z core)
│ ├─ showcase/…-lts-svc-s (Svc S + unittest step)
│ ├─ features/migrate-modules-in-lts-proxies
│ ├─ migrate-and-test-DDS-targets ──────────────┐
│ ├─ bugfix/dds-fix-pre-existing-errors ──(cherry-pick b2e787a70)──┐
│ ├─ migrate-lts-viewer.md ≡ qt6-migration-basis-modules (Viewer) │
│ ├─ migrate-lts-tools-d-and-l (Tools; contained in projects branch)│
│ ├─ lts-viewer-validation-testing-phase ────────┐ │
│ └─ migrate-lts-projects-and-application (Projects+App) ─────────┐│
│ ││
└─ Phase 2 (integration chain) ││
qt6-migration-basis-modules-services ││
└─> qt6-migration-basis-modules-merge ││
[ab29b7b2d: +DDS-targets] [5381c65fe: +services] ││
└─> qt6-migration-basis-modules-merge-viewer-validation ││
[9c1ac7cbe: +lts-viewer-validation-testing-phase] ││
└─> feature/qt6-migration-projects-app-tools-viewer-validation
[593c221d2: merge into projects+app base; parents b2e787a70 + 9c1ac7cbe]
★ FINAL RESULT BRANCH (257 commits beyond main)
```
Merge structure of the final branch (newest first):
1. `593c221d2` — **Merge** `feature/qt6-migration-basis-modules-merge-viewer-validation` into
`feature/migrate-lts-projects-and-application` (parents `b2e787a70` + `9c1ac7cbe`);
signed; 2-line message; sole author/committer.
2. `b2e787a70` — **Cherry-pick** of `5501d1e50` (stub-header updates; original author
Torsten Wierschin preserved; `Co-authored-by: Copilot` line dropped; signed).
3. `9c1ac7cbe` — **Merge** `feature/lts-viewer-validation-testing-phase` into
`feature/qt6-migration-basis-modules-merge`.
4. `5381c65fe` — **Merge** `feature/qt6-migration-basis-modules-services` into
`feature/qt6-migration-basis-modules`.
5. `ab29b7b2d` — **Merge** `origin/feature/migrate-and-test-DDS-targets` into
`feature/qt6-migration-basis-modules`.
---
## Changes Made (Aggregate, by Area)
Per-area detail lives in the in-tree reports; this summary aggregates the changes that
landed in the final branch through the branch set:
1. **Core/Z module** — NGL core libraries (nglcoreapplication, nglDB, nglTools, nglSettings,
NGLLogger, LtsUtilsCore, LtsCoordTrans, LtsCommandLineParser, codegen_base) migrated to
Qt6 (`Qt6::` targets, no `Qt5::` references). Report: `BUILD_STATUS_REPORT.md`.
2. **DDS / RTI code generation** — migration to rtiddsgen 7.7.0 generated API; residual Lts
service sources completed against the generated API; stub headers updated to include
generated files (cherry-picked `5501d1e50`); record_replay `fromQVariant` for plain
enums; PPM MOC exclusion documented. Report: `DDS_MIGRATION_REPORT.md`,
`DDS_MIGRATION_STATUS.md`, `DDS_MIGRATION_SUMMARY.md`.
3. **Lts/Proxies** — full proxies migration with test suite. Reports:
`LTS_PROXIES_MIGRATION_REPORT.md`, `PROXIES_MIGRATION_REPORT.md`.
4. **Lts/Viewer** — SituationMap/Symbology/DataView/ReportDisplay migrated;
ArcGIS-dependent targets (situationMapCommon, advancedSymbology, advancedSymbologyXML)
adapted to ArcGIS Maps SDK for Qt 300.0.0; PDM migration cleared the `svcPdmClient`
MOC blocker. Report: `VIEWER_MIGRATION_STATUS.md`.
5. **LTS Tools (Groups 6–9)** — Qt6 migration of all tool groups incl. Group 9 (R,S,T,V,W);
9 base-state mechanical fixes folded in during validation (FindArcGIS `APPEND`,
`QUuid` ×3, ArcGIS SDK include, logger init, Qt5-isms ×4).
6. **LTS Projects / Application (Groups 10–11)** — 9 project plugins and application
targets migrated; GROUP10 validation documented. Report:
`GROUP10_VALIDATION_RESULTS.md`.
7. **Merge engineering (final merge)** — resolved **1 content conflict**
(`new_docker_build.sh`, 3 hunks, union strategy — Group-6 log line kept, text-only)
and **24 modify/delete conflicts** (resolved as deletions; 24/24 verified by content
match against the deleting side's blob).
8. **Test infrastructure** — ctest integration across groups; per-service unit tests;
`LtsDataViewTest` viewer hard-requirement test (passes).
Report: `CTEST-INTEGRATION-STATUS.md`, `INTEGRATION_TEST_REPORT.md`.
---
## Test Results
### Run 1 — basic (BUILD_RTI=ON BUILD_GRANTLEE=ON, Groups 1–3)
- ✅ Build 100 % for Groups 1–3.
- ✅ ctest: **614 = 584 Passed + 30 Not Run + 0 Failed + 0 Timeout.**
- ✅ `svcPdmClient` now builds (MOC blocker cleared by the viewer-validation PDM migration).
### Run 2 — ArcGIS + Tools + codification (Groups 4–11, +BUILD_WLS=ON)
- ✅ Groups 1–4: 100 % green.
- ⚠️ `advancedSymbology`: 9 base-state mechanical fixes folded in (see Changes Made §5);
final base-state blocker: **`TaskWatcher` removed from ArcGIS SDK 300.0.0**
(semantic redesign required — reported, not fixed; out of merge scope).
- ✅ Continuation (Groups 5–11 minus advancedSymbology) built; ctest **615 =
577 Passed + 34 Not Run + 2 Failed + 2 Timeout**.
- ✅ The 2 Failed + 2 Timeout are **exactly** the 4 documented base-state failures:
`bld_vwm_test` (Failed), `bld_vwm_xml_test` (Failed), `bld_bsm_test` (Timeout),
`taboc_serialtest` (Timeout). **No new ctest regressions from the merge.**
- ✅ `LtsDataViewTest` built and PASSED (not in the Not-Run list).
- ✅ All 34 Not-Run tests are pre-existing classes (e.g. duplicate `dds*_smoke`/`dds*_gtest`
placeholder registrations from `DdsUnitTestsPlaceholder`).
### Run 3 — viewer-only (`--build-viewer-only`)
- ✅ Viewer group 100 %: situationMapCommon, advancedSymbologyXML, LtsDataView,
LtsDataViewTest, LtsReportDisplay.
- ✅ ctest 34 = **1 PASSED (`LtsDataViewTest`, 1.04 s — hard requirement met)** +
33 Not Run (pre-existing viewer-only class) + 0 Failed + 0 Timeout.
- ✅ Script exit code 8 = ctest "Not Run present" status (expected, not a failure).
### Base-state build failures (all proven pre-existing via per-file git provenance)
| # | Area | Failing targets | Root cause (all pre-merge) |
|---|------|-----------------|----------------------------|
| a | LtsSession | `LtsSession.so` link fail → cascades Splash, OperatorApplication, LtsFileDialog, LtsFileDialogTest (no own errors) | Empty-namespace stub `lts_session_lock_handler.cpp` (commit `b1ff11043`, pre-merge) + `Core::Interface::Ftc::create` not linked. Legacy tree has a 290-line implementation. |
| b | Qt6 API debt (tools) | LogViewer, ProjectSettingsEditor, AdlerWebSocketSimulator, qledline → cascades displayPanelSimulator | Base-state Qt6 API debt (`Qt::TextColorRole`, `QtWidgets/QAction` misuse, `QString::SkipEmptyParts`, `setMargin`) |
| c | Stale generated-DDS naming | ddsview, aarApp, ParticipantDataGenerator, tDataSampleGenerator/Receiver | Sources use pre-regeneration DDS accessor naming; `omg::types::optional` misuse |
| d | CnrProxyTester | CnrProxyTester | `mainwindow.ui` missing (autouic) |
| e | Apps.json IID checker | Ets / Ahtc / Qatar / L400P2 plugins | PRE_BUILD `LtsAppDescriptorChecker` fails: `apps.json` IIDs (e.g. `tln.view`) have no matching `*_gui_plugin.h`; `EventTimelineClassic` removed pre-merge (`92ad7d468`) |
| f | 16 missing make targets | 5 project plugins, thp_viewer, videoimport, AsmWorkstationCertifier, 8 GROUP7/9 array entries | (f1) `NGL_COMPILE_RESOURCES` contains a `return()` inside the macro → silently skips the following `NGL_ADD_LIBRARY` (verified via `cmake --trace-source`); (f2) thp_viewer disabled (VLC unavailable, pre-merge comment); (f3) videoimport commented out (pre-merge); (f4) AsmWorkstationCertifier skipped (no botan2 in prebuilt image); (f5) 8 CMake array entries use class names instead of actual target names (`QLedLine`→`qledline`, `QLedMatrix`→`qledmatrix`, `Times`→`ctime`/`stime`, `TopicDiscover`→`topicdiscover`, `VapixConfig`→`vapixconfig`, `SqlBrowser`→`sqlbrowser`, `TextEditorTest`→`textEditorTest`, `TrajectoryWidget`→`TrajectoryShader`) — the real targets exist and build |
**Merge-regression check: all failing files have zero diff against the merge base
(`fd3e5e838`) from either parent branch — i.e. none of them were touched by either side
of the merge. The merge introduced no regressions.**
---
## Technical Challenges & Solutions
### Challenge 1: 25 merge conflicts (1 content + 24 modify/delete)
**Problem:** The two merge sides diverged heavily on the tooling build script and
deleted/restructured many files.
**Solution:** Dry run in a throwaway worktree first; `new_docker_build.sh` resolved with a
union strategy across 3 hunks (both sides' additions kept, text-only, script checks
re-run: `bash -n`, `--help`, unknown-option handling, target sets); the 24 modify/delete
conflicts resolved as deletions with a **24/24 content-match verification** against the
deleting side's blob before staging.
### Challenge 2: `CMAKE_PREFIX_PATH` semicolons mangled by docker `bash -c`
**Problem:** Unquoted `;` separators were split by the shell, poisoning the build cache
(32 configure errors `Target "Qt6::Location" not found`).
**Solution:** Quote the prefix in the docker command. A fresh build dir with the exact
script flags configured cleanly (0 errors), proving cache poisoning was the sole cause.
Harmless in practice because the script does `rm -rf build4` at every run start.
### Challenge 3: `NGL_COMPILE_RESOURCES` silently drops targets
**Problem:** 5 project plugins reported "No rule to make target" although their
CMakeLists looked complete.
**Solution:** `cmake --trace-source` proved the macro's internal `return()` (intended as
"macro done") is treated by CMake as return-from-CMakeLists, skipping the subsequent
`NGL_ADD_LIBRARY`. Documented as a base-state blocker (working plugins use
`NGL_ADD_BIG_RESOURCES`); not fixed in this merge (out of scope).
### Challenge 4: ArcGIS `TaskWatcher` removed in SDK 300.0.0
**Problem:** `advancedSymbology` uses `TaskWatcher`; the SDK removed the class with a
semantic `QFuture` redesign.
**Solution:** 9 base-state mechanical fixes folded in (FindArcGIS include-path `APPEND`,
`QUuid` ×3, SDK include, logger init, Qt5-isms ×4); the `TaskWatcher` redesign itself is
reported as a base-state blocker — a semantic port, not a mechanical fix.
### Challenge 5: `LtsSession` link failure cascade
**Problem:** `LtsSession.so` fails to link (empty stub `lts_session_lock_handler.cpp`,
pre-merge commit `b1ff11043`), cascading to Splash/OperatorApplication/LtsFileDialog targets.
**Solution:** Reported as a base-state blocker. Fix = porting the 290-line legacy
Qt5 implementation and wiring the Core client — out of merge scope; silently stubbing
would hide real behavior.
### Challenge 6: ctest exit-code semantics and duplicate placeholder tests
**Problem:** Exit code 8 ("Not Run present") looks like a failure; 34 Not-Run tests
include duplicate same-named `dds*_smoke`/`dds*_gtest` registrations against never-built
executables (`DdsUnitTestsPlaceholder`).
**Solution:** Verified the Not-Run set is exactly the pre-existing class (base-state);
exit 8 treated as expected status, not a regression signal. Regression criterion =
**new** Failed/Timeout beyond the documented base-state class.
### Challenge 7: GPG signing in a submodule with worktree-relative signers file
**Problem:** `gpg.ssh.allowedsignersfile` points at `ci/allowed_signers` (worktree-relative);
signing/verification had to be proven end-to-end before committing.
**Solution:** Verified `git verify-commit` = Good on the cherry-pick (`b2e787a70`) and the
merge commit (`593c221d2`, ED25519). A pre-existing 8-U signature-gate blocker on the
projects side is documented (see Remaining Work).
### Challenge 8: Non-incremental build directory
**Problem:** Diagnostic configure runs polluted the `build4` cache.
**Solution:** Confirmed the script deletes and recreates `build4` on every run start
(line 1196), so each run is fresh; contamination could not affect run results.
---
## Build Instructions
All runs use `qt6-after/qt6-migrated-legatus/new_docker_build.sh` with the prebuilt image
`legatus-qt6-prebuilt:latest` (mounts the pipeline repo at `/workspace`,
`rti_license.dat`, and `external/` read-only).
```bash
cd /home/nkana/repo/qt6-migration-pipeline/qt-migration-legatus/qt6-after/qt6-migrated-legatus
# Run 1 — basic (Groups 1-3), RTI + Grantlee
./new_docker_build.sh ON --grantlee --group1 --group2 --group3 --docker-image legatus-qt6-prebuilt:latest
# Run 2 — ArcGIS + Tools + codification (Groups 4-11), RTI + Grantlee + ArcGIS + Codification + WLS
./new_docker_build.sh ON --grantlee --arcgis --codification \
--group4 --group5 --group6 --group7 --group8 --group9 --group10 --group11 \
--cmake_build_flags "-DBUILD_WLS=ON" \
--docker-image legatus-qt6-prebuilt:latest
# Run 3 — viewer only (skips Groups 1-4, implies --group5 --codification; ctest runs)
./new_docker_build.sh ON --grantlee --arcgis --build-viewer-only \
--docker-image legatus-qt6-prebuilt:latest
```
Useful variants: `--no-ctest` (skip tests), `--tests-only` (ctest only),
`--integration-test` (integration tests only: `test_z_*`, `bld_*`, `tab_*`, `wls_*`),
`--build-prebuilt-image` (rebuild the image).
In-container configure is:
`cmake .. -DBUILD_TESTING=ON -DBUILD_ALL=ON -DBUILD_SV=ON -DBUILD_WS=ON -DBUILD_AAR=ON -DBUILD_RTI=ON -DBUILD_GRANTLEE=ON -DBUILD_ARCGIS=<run> -DBUILD_CODIFICATION=<run> -DBUILD_VIEWER_ONLY=<run 3> -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="/opt/Qt/6.10.2/gcc_64;<ArcGIS SDK>;/usr/local"`.
---
## Dependencies
### Qt 6.10.2 (required)
Core, Widgets, Gui, Network, Sql, Xml, Test, Location, Network, Sensors (cmake configs
present in the prebuilt image), plus KTextTemplate/Grantlee replacement (`BUILD_GRANTLEE`).
### External
| Dependency | Version / Note |
|------------|----------------|
| rtiddsgen (RTI DDS) | 7.7.0 — generated code for DDS/RTI types; `rti_license.dat` mounted |
| ArcGIS Maps SDK for Qt | 300.0.0 — `BUILD_ARCGIS=ON` (run 2, run 3) |
| KDReports-qt6 | 2.3.95 — required for `BUILD_CODIFICATION=ON` |
| cmake | 4.2.3 (prebuilt image) |
| botan2 | **absent** in prebuilt image → AsmWorkstationCertifier skipped (base-state) |
| VLC | unavailable → `thp_viewer` disabled (pre-merge decision) |
---
## Remaining Work
### High priority
1. **ArcGIS `TaskWatcher` redesign** in `advancedSymbology` — semantic port to the
SDK 300.0.0 `QFuture`-based API (reported base-state blocker).
2. **`LtsSession` implementation** — port the 290-line legacy implementation of
`lts_session_lock_handler.cpp` and wire `Core::Interface::Ftc::create`; unblocks the
Splash/OperatorApplication/LtsFileDialog cascade.
3. **Merge-regression-free integration is done, but the final branch is NOT pushed**
(per task instruction) — pushing + the pre-existing 8-U signature-gate fix on the
projects side are the next integration steps.
### Medium priority
4. Qt6 API debt in tool sources (LogViewer, ProjectSettingsEditor,
AdlerWebSocketSimulator, qledline).
5. Stale generated-DDS accessor naming (ddsview, aarApp, ParticipantDataGenerator,
tDataSampleGenerator/Receiver) — regenerate or adapt to the rtiddsgen 7.7.0 API.
6. `apps.json` IID consistency (`LtsAppDescriptorChecker`): re-add matching
`*_gui_plugin.h` or drop the stale IIDs for Ets/Ahtc/Qatar/L400P2.
7. `CnrProxyTester` — restore missing `mainwindow.ui`.
### Low priority
8. Fix the 8 CMake array entries using class names instead of target names (GROUP7/9) —
real targets already build.
9. Decide whether `NGL_COMPILE_RESOURCES`' `return()` is a macro bug (5 plugins silently
not built) vs. intended — align with `NGL_ADD_BIG_RESOURCES`.
10. Clean up `DdsUnitTestsPlaceholder` duplicate test registrations; provide botan2 /
VLC in the prebuilt image if AsmWorkstationCertifier / thp_viewer should build.
11. `mainwindow.ui`-style autouic gaps and the `ddsview`/`aarApp` naming follow-ups.
---
## Lessons Learned
- **Prove provenance before fixing:** every base-state failure was verified with a
per-file `git diff --name-only <merge-base>..<branch>` check — 0 files touched by
either side. This turned "the build is red" into a precise, defensible blocker list
instead of speculative merge fixes.
- **Dry-run merges in a worktree:** the 1 content + 24 modify/delete conflicts were fully
mapped (with 24/24 content-match verification) before the real merge was started.
- **`return()` inside a CMake macro is CMakeLists-level control flow** — a classic
silent-target-drop trap; `cmake --trace-source` is the definitive diagnostic.
- **Quote `CMAKE_PREFIX_PATH` in docker `bash -c`** — unquoted semicolons are shell
word separators, not cmake list separators.
- **Non-incremental build dirs remove an entire class of cache-poisoning bugs** — but
only if diagnostics use separate build dirs (the script's `rm -rf build4` saved the runs).
- **Cherry-pick equivalence is checkable:** identical `git patch-id --stable` proved
`b2e787a70` ≡ `5501d1e50` content-wise while allowing attribution-line cleanup.
- **Signed commits in a submodule** need the worktree-relative `allowed_signers` file in
place; verify with `git verify-commit` before trusting the pipeline.
- **ctest "Not Run" (exit 8) is a status, not a failure** — regression criteria must be
defined as *new* Failed/Timeout beyond the documented base-state class.
---
## Recommendations
### For Future Migrations
- Define the **base-state failure class** (Failed/Timeout/Not-Run inventory) *before*
merging; it becomes the objective regression gate.
- Keep **one validation Docker image + one build script** as the single source of truth;
per-run variation only via documented flags (`--arcgis`, `--codification`,
`--build-viewer-only`, `--cmake_build_flags`).
- **Freeze the legacy tree as read-only** and record it in every report — it is the
reference for provenance checks and stub ports (e.g. LtsSession).
- Record **per-branch FINAL-REPORTs** at the pipeline root (as done for each merge
prompt) — they make the aggregate summary trivial to compile.
- Prefer **GPG-signed commits from the start** of each branch; retrofitting the signers
file mid-pipeline creates gate friction (the 8-U blocker).
### For the Legatus Merge Specifically
- Land the final branch (`593c221d2`) only after (a) the 8-U signature-gate is resolved
on the projects side and (b) the two high-priority blockers (TaskWatcher, LtsSession)
have an owner or are accepted as known-red with documentation.
- Add a **regression-gate job** to CI that re-runs Runs 1–3 on every push and fails only
on *new* Failed/Timeout beyond the documented base-state class.
- Track the 16 missing make targets as a single follow-up ticket (they are all
mechanical: name fixes + macro fix + two disabled subdirs).
---
## Conclusion
**✅ The Qt5 → Qt6 6.10.2 migration pipeline is complete at branch level.** All 14
independent migration branches were integrated through a 4-stage merge chain into the
final branch `feature/qt6-migration-projects-app-tools-viewer-validation` (`593c221d2`,
257 commits beyond `main`, GPG-signed throughout). Three full Docker validation runs
(basic, ArcGIS/Tools/codification, viewer-only) confirm that the merge introduced
**zero build regressions and zero ctest regressions**: every red target and every
Failed/Timeout test is a documented, git-proven base-state issue. The hard viewer
requirement (`LtsDataViewTest`) passes. The two semantic blockers (ArcGIS `TaskWatcher`
redesign, `LtsSession` implementation) are reported with root cause and fix scope, and
the remaining work is tracked by priority above.
**Next steps:** push the final branch (currently withheld per task instruction),
resolve the 8-U signature gate on the projects side, then assign owners for the two
high-priority blockers.
---
*Report generated: 2026-09-28*
*Final branch: `feature/qt6-migration-projects-app-tools-viewer-validation` @ `593c221d2` (257 commits beyond `main`)*
*Build: `new_docker_build.sh` + `legatus-qt6-prebuilt:latest` (3 validation runs, all green within the base-state class)*
*Qt Version: 6.10.2*
*Test Pass Rate: Run 1 584/584 active Passed · Run 2 577/579 active Passed (2 Failed/2 Timeout = base-state) · Run 3 LtsDataViewTest Passed (hard requirement)*
-56
View File
@@ -1,56 +0,0 @@
4272808a5e03e6b83ae4734b08b7f1907259d75f2aab0d31191fe8ca10db78ed AVS/bin/AVS_Export
76a09d18e88be654eb8bc32810ee7af60f64a55c62eb19479c416ef15647af3b AVS/bin/AVS_Workstation
05409e885c4d004171328381213fd2376f993126442246b33c7cf1462488b4a2 AVS/bin/controller
7fa5be65cdec62cd88cd40b5b960e3b3877445a269d6839717c6132c6b597b7a AVS/lib/libavswidgets.so.1.0.0
d3eef5f88514cc2b02eee5058551d809436e641d2a4ffa4280cd99e92de628ed AVS/lib/libavcodec_AVS.so.58.35.100
7b6dee310f82b4aa718834ae6454c71104995fad57ef16c8c57187fd59a3a78e AVS/lib/libAVS_VideoPresentation.so.1.0.0
ba1f96039098001657e473cd62186efcb58b1daa9f2bbf91dde9c2c703cb9c68 AVS/lib/libAVS_Mixer.so.1.0.0
5da1a5dd3cd97a80fa257ff77188643d41fd035f5cde23d07c7e06b3804cc27d AVS/lib/libswscale_AVS.so.5.3.100
a6d0ffdbd3a6ba9fb6f266d254068bb7b13c7497ba1bee59ea53e9095a370261 AVS/lib/libswresample_AVS.so.3.3.100
9151b269590eb276d7e946eb6ff527ff4ac06256b2a10fcad0b00fbdadb21303 AVS/lib/libavdevice_AVS.so.58.5.100
59c8e416c5e25b161b53056b648f5b9a6a9ea5c0039663c29a35aea815be7117 AVS/lib/libQtSolutions_Service_2.6.so.1.0.0
cd2b1238ef4f2840498a8634ade4de016024c68cddd8013c493997da69701743 AVS/lib/libAVS_Streaming.so.1.0.0
f1ee0fd979a28b60ccb7e314c14ac48327978c43274bcf05955fb0124bf4183e AVS/lib/libAVS_OnvifWrapper.so.1.0.0
f52f083cf25f10147298d6f1d818f2ed16e6002bf32b2244557bff99256c6a03 AVS/lib/libavformat_AVS.so.58.20.100
7980e0d0bce508f198673e68bb8b2b428e77ceb5056ec1393097e9b572cd010c AVS/lib/libAVS_Util.so.1.0.0
f31e88c9ad8203baf390879802038c68ca33a5591b33313eb5fc39aa874c9684 AVS/lib/libAVS_Export.so.1.0.0
a3eb031d6b190529609c16979d2ec4a5e70d0a2c7a0b9cee0de47d659fd2097c AVS/lib/libAVS_Import.so.1.0.0
ff5c64e3a45038d6627e563f33a16fe733caa0644540c961b01be6fbb38835f1 AVS/lib/libAVS_Index.so.1.0.0
bda58dee35b53def62ba20fa9b7b1170fb07c81466c5841a4363f91c4a9a2e9e AVS/lib/designer/libavswidgetsplugin.so
e1b66d64992454ad0ccd4997c1e9ca2caeb06abf6e48608eb262201a8f148e70 AVS/lib/libavutil_AVS.so.56.22.100
79b427aca29b7bf0f35adb33966d037e38d9573367c83e423368e405b5b04c9b AVS/lib/libavfilter_AVS.so.7.40.101
1e8531aa11a37c707084c1576a494e8798faae4680eb3fec8efb26c3e2d7b14e AVS/data/sounds/Die-Wildecker-Herzbuben.wav
b66233046f206022e15aa97793dee7e49f102fccedb08928fe26be7b0c78f4c4 AVS/data/sounds/IncomingCall.wav
0d52602c61cab987c557331883b1a8fa489c876bb669512d318473c7001994c9 AVS/data/sounds/INTOutgoingCall.wav
0d52602c61cab987c557331883b1a8fa489c876bb669512d318473c7001994c9 AVS/data/sounds/OutgoingCall.wav
81c5cb425767db5b962f9b22e5463bf1f8a67293e8df5eebc7128b23a92aa1d4 AVS/data/sounds/Busy.wav
804b8c446f04b5820bd6312461cc8dd48182a19620547fe89c53e8427a32818d AVS/data/sounds/RTOutgoingCall.wav
8404bd4d616bee7900025b94d28bc999252d56338209f3f37817a82485450817 AVS/data/i18n/avs_workstation_en.qm
dc745d419ec98575880534eb062ceb4a7e9bd5df3f520545e5e38fdc86458c67 AVS/data/i18n/avs_import_de_DE.qm
c5c377a9ef442b89713f646664c09f7db97ee5d82fc8bb2926fabf9cd20b3044 AVS/data/i18n/avs_import_en.qm
0843d14a5e6b014263379e5d2d7c484375110ff1cbd03ef0936b89ae10278b10 AVS/data/i18n/avs_workstation_de_DE.qm
b5df1467d8717ed5c1dd162fad75d311b503ae111d93cbe038201345e9a27e8f AVS/data/i18n/avs_widgets_en.qm
5320e9d1c491797b1b5a94b2da9b9f5590f16e7c053c95f6c87ac9688c709d8d AVS/data/i18n/avs_widgets_de_DE.qm
b57f4ac446354f9e9540f148e1d9e31d23e210d69f5511a4bb2bbbb58b267997 AVS/data/ui/intercomcontrol.ui
3ed70b3db472e000ef5d84cfb741d03844b79a8f7826735054ed8d076ad7e959 AVS/data/ui/camera.png
a94ae3f6b7a4993b38a418cad067b0735ba8d77a730caef197339f92f95bcdfa AVS/data/ui/announcementchannel.ui
d2201b1f274ca1be0e2772b93352aa0fef7155258fff526b35a67f3d2fb64028 AVS/data/ui/radiochannel.ui
fef601d7899a3dc2baffc83ee69716cf1e97a1d3a76e6d771fbaafb9c234e0c1 AVS/data/ui/announcement.ui
e69c7f0c5b99b3a54422dc82af0d8850f485ee7616e251cc358c687945a205eb AVS/data/ui/voiceradio.ui
1d586c355bcbe55782f7e446376661d8d94032806db03144268728719072c9db AVS/data/ui/videoplayer.ui
fb222aa532a98ba05463ed37eb2525b3b5bd5a81fcaf0891e72d4da510e11d6e AVS/data/ui/headset.ui
45f017467862d8091f04d342ce0aa2f20fba8d538454881c2c16917ec8596296 AVS/data/ui/intercomdirectory.ui
2e7fe4ebf474ac08891642140eca39e2211fb1e998add87f0e375d545dd10da6 AVS/data/ui/avsworkstation.ui
5f4e6f010bc892da15b91db7bc2ef5dacf49ffa95711910ada0ae3c36523e56b AVS/data/ui/volumecontrol.ui
2fd16a845121dfee87e1bb8d6c039b44a37f5b151fa90d17ea8c87ee276f5ab0 AVS/data/ui/speaker.png
61236f77ca3381e92afa47af82da7f741789fd955dad999c898307ac6c8f6806 AVS/etc/AVS_Mixer.conf
b56d28b7f7da2737567915ae5e2828905229c3fc586b62f726af1bdfaad5cb42 AVS/etc/AVS_Workstation.conf
83ada89c8bf35762d9d4da0f8ad5733810976b5cca7b83332b6e236779d10aa8 AVS/etc/AVS_Export.conf
ce29486668f1db21bf7a38cf6e00937985d7a97f38fa8c140545bf8dcfa2c10f AVS/etc/AVS_DB.conf
61236f77ca3381e92afa47af82da7f741789fd955dad999c898307ac6c8f6806 AVS/etc/AVS_Mixer.conf.distrib
83ada89c8bf35762d9d4da0f8ad5733810976b5cca7b83332b6e236779d10aa8 AVS/etc/AVS_Export.conf.distrib
689ffdaf4512e688baedcb75edcbc8b350829a4ea56232db7ab86bd4d3b4b83f AVS/etc/AVS_Config.conf
7110fc8d6672a4c63dc2cd2c221bfd09d5e6fad033a868d04507ece0eb3c7627 AVS/etc/AVS_Config.conf.distrib
482919559d7b039552b4476e662e09b33b9c3c5d736ac52d73c156a727a072e2 AVS/etc/AVS_Workstation.conf.distrib
ce29486668f1db21bf7a38cf6e00937985d7a97f38fa8c140545bf8dcfa2c10f AVS/etc/AVS_DB.conf.distrib
713f90b539b37d8e7bc23b57f69d9ffac2a6b82808a1a076b319a6f34e1ee877 AVS/etc/avs_initial_conf.sh
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-104
View File
@@ -1,104 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AnnouncementWidget</class>
<widget class="QWidget" name="AnnouncementWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>426</width>
<height>523</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="windowTitle">
<string notr="true">Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string notr="true">Durchsage</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="AnnouncementChannel" name="announcementchannel_1" native="true"/>
</item>
<item row="0" column="1">
<widget class="AnnouncementChannel" name="announcementchannel_2" native="true"/>
</item>
<item row="1" column="0">
<widget class="AnnouncementChannel" name="announcementchannel_3" native="true"/>
</item>
<item row="1" column="1">
<widget class="AnnouncementChannel" name="announcementchannel_4" native="true"/>
</item>
<item row="2" column="0">
<widget class="AnnouncementChannel" name="announcementchannel_6" native="true"/>
</item>
<item row="2" column="1">
<widget class="AnnouncementChannel" name="announcementchannel_5" native="true"/>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>65</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>AnnouncementChannel</class>
<extends>QWidget</extends>
<header>announcementchannel.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
-117
View File
@@ -1,117 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AnnouncementWidget</class>
<widget class="QWidget" name="AnnouncementWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>172</width>
<height>113</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="windowTitle">
<string notr="true">Funkkreis</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>4</number>
</property>
<item row="1" column="0">
<widget class="ColorButton" name="leftChannelButton">
<property name="font">
<font>
<pointsize>18</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">L</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="ColorButton" name="rightChannelButton">
<property name="font">
<font>
<pointsize>18</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">R</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="MenuComboBox" name="selection">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="cursor">
<cursorShape>ArrowCursor</cursorShape>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<property name="editable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ColorButton</class>
<extends>QPushButton</extends>
<header>colorbutton.h</header>
</customwidget>
<customwidget>
<class>ColorComboBox</class>
<extends>QComboBox</extends>
<header>colorcombobox.h</header>
</customwidget>
<customwidget>
<class>MenuComboBox</class>
<extends>ColorComboBox</extends>
<header>menucombobox.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
-158
View File
@@ -1,158 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AvsWorkstation</class>
<widget class="QWidget" name="AvsWorkstation">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1166</width>
<height>849</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="windowTitle">
<string notr="true">Audio Arbeitsplatz</string>
</property>
<property name="windowIcon">
<iconset resource="../app/resources/resources.qrc">
<normaloff>:/speaker.svg</normaloff>:/speaker.svg</iconset>
</property>
<layout class="QGridLayout" name="gridLayout" columnstretch="2,2,3">
<item row="0" column="0" colspan="2">
<widget class="VoiceRadio" name="voiceradio" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item row="0" column="2" rowspan="2">
<layout class="QVBoxLayout" name="verticalLayout" stretch="2,3">
<item>
<widget class="IntercomControl" name="intercomControl" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="IntercomDirectory" name="intercomDirectory" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="Headset" name="headset" native="true">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="Announcement" name="announcement" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>VoiceRadio</class>
<extends>QWidget</extends>
<header>voiceradio.h</header>
</customwidget>
<customwidget>
<class>Headset</class>
<extends>QWidget</extends>
<header>headset.h</header>
</customwidget>
<customwidget>
<class>IntercomControl</class>
<extends>QWidget</extends>
<header>intercomcontrol.h</header>
</customwidget>
<customwidget>
<class>IntercomDirectory</class>
<extends>QWidget</extends>
<header>intercomdirectory.h</header>
</customwidget>
<customwidget>
<class>Announcement</class>
<extends>QWidget</extends>
<header>announcement.h</header>
</customwidget>
</customwidgets>
<resources>
<include location="../app/resources/resources.qrc"/>
</resources>
<connections>
<connection>
<sender>headset</sender>
<signal>channelButtonClicked()</signal>
<receiver>voiceradio</receiver>
<slot>swapSumChannel()</slot>
<hints>
<hint type="sourcelabel">
<x>367</x>
<y>712</y>
</hint>
<hint type="destinationlabel">
<x>258</x>
<y>185</y>
</hint>
</hints>
</connection>
<connection>
<sender>headset</sender>
<signal>channelButtonClicked()</signal>
<receiver>announcement</receiver>
<slot>swapSumChannel()</slot>
<hints>
<hint type="sourcelabel">
<x>228</x>
<y>492</y>
</hint>
<hint type="destinationlabel">
<x>523</x>
<y>466</y>
</hint>
</hints>
</connection>
</connections>
</ui>
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

-592
View File
@@ -1,592 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>HeadsetWidget</class>
<widget class="QWidget" name="HeadsetWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>434</width>
<height>469</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="windowTitle">
<string notr="true">Form</string>
</property>
<layout class="QVBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string notr="true">Headset</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="7" column="5">
<widget class="QLabel" name="frequencyUnitLabel">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">Hz</string>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QPushButton" name="notchButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../app/resources/resources.qrc">
<normaloff>:/unchecked.png</normaloff>
<normalon>:/checked.png</normalon>:/unchecked.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="7" column="1" colspan="3">
<widget class="QSlider" name="frequencySlider">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="minimum">
<number>300</number>
</property>
<property name="maximum">
<number>3400</number>
</property>
<property name="value">
<number>500</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
</property>
<property name="tickInterval">
<number>3100</number>
</property>
</widget>
</item>
<item row="7" column="4">
<widget class="QLabel" name="frequencyValueLabel">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">500</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="notchLabel">
<property name="text">
<string notr="true">Sperrfilter</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="lowpassLabel">
<property name="text">
<string notr="true">Tiefpass</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="channelButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string notr="true">Rechts</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="volumeLabel">
<property name="text">
<string notr="true">Lautstärke</string>
</property>
</widget>
</item>
<item row="2" column="1" colspan="3">
<widget class="QSlider" name="volumeSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="minimum">
<number>-50</number>
</property>
<property name="maximum">
<number>20</number>
</property>
<property name="value">
<number>-10</number>
</property>
<property name="sliderPosition">
<number>-10</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
</property>
<property name="tickInterval">
<number>10</number>
</property>
</widget>
</item>
<item row="2" column="5">
<widget class="QLabel" name="volumeUnitLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">dB</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="channelLabel">
<property name="text">
<string notr="true">Summe</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="3">
<widget class="QSlider" name="balanceSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="minimum">
<number>-100</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
</property>
<property name="tickInterval">
<number>200</number>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QLabel" name="volumeValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">-10</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="balanceLabel">
<property name="text">
<string notr="true">Balance</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QLabel" name="balanceValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">0</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="4" column="1" rowspan="3">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>25</width>
<height>98</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="2">
<widget class="QPushButton" name="lowpassButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../app/resources/resources.qrc">
<normaloff>:/unchecked.png</normaloff>
<normalon>:/checked.png</normalon>:/unchecked.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="5">
<widget class="QLabel" name="balanceUnitLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">%</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="highpassLabel">
<property name="text">
<string notr="true">Hochpass</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QPushButton" name="highpassButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../app/resources/resources.qrc">
<normaloff>:/unchecked.png</normaloff>
<normalon>:/checked.png</normalon>:/unchecked.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="3" rowspan="3">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>25</width>
<height>118</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="volumePerChannelButton">
<property name="text">
<string notr="true">Lautst. pro Kanal...</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="pttLabel">
<property name="palette">
<palette>
<active>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
</active>
<inactive>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
</inactive>
<disabled>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>120</red>
<green>120</green>
<blue>120</blue>
</color>
</brush>
</colorrole>
</disabled>
</palette>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>155</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../app/resources/resources.qrc"/>
</resources>
<connections>
<connection>
<sender>balanceSlider</sender>
<signal>valueChanged(int)</signal>
<receiver>balanceValueLabel</receiver>
<slot>setNum(int)</slot>
<hints>
<hint type="sourcelabel">
<x>163</x>
<y>149</y>
</hint>
<hint type="destinationlabel">
<x>265</x>
<y>151</y>
</hint>
</hints>
</connection>
<connection>
<sender>frequencySlider</sender>
<signal>valueChanged(int)</signal>
<receiver>frequencyValueLabel</receiver>
<slot>setNum(int)</slot>
<hints>
<hint type="sourcelabel">
<x>174</x>
<y>295</y>
</hint>
<hint type="destinationlabel">
<x>265</x>
<y>316</y>
</hint>
</hints>
</connection>
<connection>
<sender>volumeSlider</sender>
<signal>valueChanged(int)</signal>
<receiver>volumeValueLabel</receiver>
<slot>setNum(int)</slot>
<hints>
<hint type="sourcelabel">
<x>120</x>
<y>93</y>
</hint>
<hint type="destinationlabel">
<x>265</x>
<y>112</y>
</hint>
</hints>
</connection>
<connection>
<sender>notchButton</sender>
<signal>toggled(bool)</signal>
<receiver>frequencySlider</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>138</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>151</x>
<y>302</y>
</hint>
</hints>
</connection>
<connection>
<sender>notchButton</sender>
<signal>toggled(bool)</signal>
<receiver>frequencyValueLabel</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>178</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>240</x>
<y>300</y>
</hint>
</hints>
</connection>
<connection>
<sender>notchButton</sender>
<signal>toggled(bool)</signal>
<receiver>frequencyUnitLabel</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>129</x>
<y>250</y>
</hint>
<hint type="destinationlabel">
<x>284</x>
<y>303</y>
</hint>
</hints>
</connection>
</connections>
</ui>
-110
View File
@@ -1,110 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>IntercomControlWidget</class>
<widget class="QWidget" name="IntercomControlWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="windowTitle">
<string notr="true">Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string notr="true">Interkommunikation</string>
</property>
<layout class="QGridLayout" name="gridLayout_8">
<item row="0" column="0" colspan="2">
<widget class="ColorLineEdit" name="leader">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="dialButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string notr="true">Wählen</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="hangupButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string notr="true">Auflegen</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QListWidget" name="userList">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="showDropIndicator" stdset="0">
<bool>false</bool>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::NoSelection</enum>
</property>
<property name="selectionRectVisible">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ColorLineEdit</class>
<extends>QLineEdit</extends>
<header>colorlineedit.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
-85
View File
@@ -1,85 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>IntercomDirectoryWidget</class>
<widget class="QWidget" name="IntercomDirectoryWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="windowTitle">
<string notr="true">Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="title">
<string notr="true">Telefonbuch</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item>
<widget class="QListWidget" name="userList">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::NoSelection</enum>
</property>
<property name="resizeMode">
<enum>QListView::Adjust</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
-120
View File
@@ -1,120 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>RadioCircuitWidget</class>
<widget class="QWidget" name="RadioCircuitWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>172</width>
<height>113</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="windowTitle">
<string notr="true">Funkkreis</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>4</number>
</property>
<item row="0" column="0" colspan="2">
<widget class="ColorComboBox" name="selection">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="editable">
<bool>true</bool>
</property>
<property name="minimumContentsLength">
<number>12</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="ColorButton" name="leftChannelButton">
<property name="font">
<font>
<pointsize>18</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">L</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="ColorButton" name="rightChannelButton">
<property name="font">
<font>
<pointsize>18</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string notr="true">R</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ColorButton</class>
<extends>QPushButton</extends>
<header>colorbutton.h</header>
</customwidget>
<customwidget>
<class>ColorComboBox</class>
<extends>QComboBox</extends>
<header>colorcombobox.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

-139
View File
@@ -1,139 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>videoPlayer</class>
<widget class="QWidget" name="videoPlayer">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>522</width>
<height>148</height>
</rect>
</property>
<property name="font">
<font>
<family>DejaVu Sans</family>
<pointsize>13</pointsize>
</font>
</property>
<property name="windowTitle">
<string>Import</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="4">
<widget class="QPushButton" name="autotrackingButton">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../app/resources/resources.qrc">
<normaloff>:/autotracking.svg</normaloff>
<normalon>:/noautotracking.svg</normalon>
<activeon>:/noautotracking.svg</activeon>:/autotracking.svg</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="name">
<property name="enabled">
<bool>true</bool>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="position">
<property name="enabled">
<bool>true</bool>
</property>
<property name="font">
<font>
<family>DejaVu Sans Mono</family>
<pointsize>11</pointsize>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Playback:</string>
</property>
</widget>
</item>
<item row="1" column="5">
<widget class="QPushButton" name="volumeButton">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../app/resources/resources.qrc">
<normaloff>:/unmute.svg</normaloff>
<normalon>:/mute.svg</normalon>
<activeon>:/mute.svg</activeon>:/unmute.svg</iconset>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="overlayButton">
<property name="icon">
<iconset resource="../app/resources/resources.qrc">
<normaloff>:/showoverlay.png</normaloff>
<normalon>:/dontshowoverlay.png</normalon>
<activeon>:/dontshowoverlay.png</activeon>:/showoverlay.png</iconset>
</property>
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0" colspan="6">
<widget class="VideoWidgetEx" name="videoWidget">
<property name="focusPolicy">
<enum>Qt::WheelFocus</enum>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>VideoWidgetEx</class>
<extends>QWidget</extends>
<header>videowidgetex.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="../app/resources/resources.qrc"/>
</resources>
<connections/>
</ui>
-134
View File
@@ -1,134 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>VoiceRadioWidget</class>
<widget class="QWidget" name="VoiceRadioWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>772</width>
<height>312</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string notr="true">Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string notr="true">Sprechfunk</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="RadioChannel" name="radioChannel1" native="true"/>
</item>
<item row="0" column="1">
<widget class="RadioChannel" name="radioChannel2" native="true"/>
</item>
<item row="0" column="2">
<widget class="RadioChannel" name="radioChannel3" native="true"/>
</item>
<item row="0" column="3">
<widget class="RadioChannel" name="radioChannel4" native="true"/>
</item>
<item row="1" column="0">
<widget class="RadioChannel" name="radioChannel5" native="true"/>
</item>
<item row="1" column="1">
<widget class="RadioChannel" name="radioChannel6" native="true"/>
</item>
<item row="1" column="2">
<widget class="RadioChannel" name="radioChannel7" native="true"/>
</item>
<item row="1" column="3">
<widget class="RadioChannel" name="radioChannel8" native="true"/>
</item>
<item row="2" column="0" colspan="4">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>528</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0" colspan="4">
<widget class="QLineEdit" name="status">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>RadioChannel</class>
<extends>QWidget</extends>
<header>radiochannel.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
-151
View File
@@ -1,151 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>VolumeControlWidget</class>
<widget class="QFrame" name="VolumeControlWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>407</width>
<height>57</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QSlider" name="volumeSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="minimum">
<number>-50</number>
</property>
<property name="maximum">
<number>20</number>
</property>
<property name="value">
<number>0</number>
</property>
<property name="sliderPosition">
<number>0</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
</property>
<property name="tickInterval">
<number>10</number>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="volumeValueLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>25</width>
<height>32</height>
</size>
</property>
<property name="text">
<string notr="true">0</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="volumeUnitLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>16</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>dB</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="resetButton">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../app/resources/resources.qrc">
<normaloff>:/restart.svg</normaloff>:/restart.svg</iconset>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QPushButton" name="muteButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../app/resources/resources.qrc">
<normaloff>:/unmute.svg</normaloff>
<normalon>:/mute.svg</normalon>
<activeon>:/mute.svg</activeon>:/unmute.svg</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../app/resources/resources.qrc"/>
</resources>
<connections/>
</ui>
-22
View File
@@ -1,22 +0,0 @@
[Bridge]
ServerPort=7000
ServerHost=localhost
IAmServer=false
[ConfigServer]
Port=8888
[Announcements]
DontAnnounce=true
[ConfigClient]
Server1=EXCAVS01 8888
ListenToAnnouncements=false
; 0.0.0.0 = any interface
; MulticastInterface=0.0.0.0
; AliveEnabled=true ; default false
; AliveInterval=10 ; in s
[Logging]
;Level=Fatal, Critical, Warning, Debug
Level=Fatal, Critical, Warning
-27
View File
@@ -1,27 +0,0 @@
; For redundancy there can by two AVS_Config-instances running on different hosts.
; Then, one must be configured to be server, the other as client.
; When no redundancy is used and only one instance of AVS_Config exists, it should be configured with IAmServer=false.
[Bridge]
ServerPort=7000
ServerHost=localhost
IAmServer=false
[ConfigServer]
Port=8888
; AVS_Config can advertise itself on the network using multicast announcements.
; To disable this feature, set DontAnnounce=true here and ListenToAnnouncements=false in the ConfigClient section.
[Announcements]
DontAnnounce=true
[ConfigClient]
Server1=EXCAVS01 8888
ListenToAnnouncements=false
; 0.0.0.0 = any interface
; MulticastInterface=EXCAVS01
; AliveEnabled=true ; default false
; AliveInterval=10 ; in s
[Logging]
;Level=Fatal, Critical, Warning, Debug
Level=Fatal, Critical, Warning
-9
View File
@@ -1,9 +0,0 @@
[Database]
user=ets_avm
passwd=ctc11de
;dbType=QSQLITE
dbType=QPSQL
host=EXCDBS01
dbName=lts_ets_pro
scheme=avm
prePartContext=ex_
-9
View File
@@ -1,9 +0,0 @@
[Database]
user=ets_avm
passwd=ctc11de
;dbType=QSQLITE
dbType=QPSQL
host=EXCDBS01
dbName=lts_ets_pro
scheme=avm
prePartContext=ex_
-10
View File
@@ -1,10 +0,0 @@
[%General]
;FilePath=/tmp/export
[RcpExport]
Autostart=1
OperatorTCPPort=6380
[Logging]
;Level=Fatal, Critical, Warning, Debug
Level=Fatal, Critical, Warning
-10
View File
@@ -1,10 +0,0 @@
[%General]
;FilePath=/tmp/export
[RcpExport]
Autostart=1
OperatorTCPPort=6380
[Logging]
;Level=Fatal, Critical, Warning, Debug
Level=Fatal, Critical, Warning
-22
View File
@@ -1,22 +0,0 @@
[Mixer]
input="hw:0,0"
output="hw:0,0"
Resample=0
LocalFeedback="Rear Mic"
; LocalFeedbackVolume is no longer used, we trust asound.state instead
LocalFeedbackVolume=40
CaptureDevice="Capture"
InputSource="Input Source"
MulticastInteface=0.0.0.0
; sounds are relative to datadir
[Sounds]
Busy=sounds/Busy.wav
Incoming=sounds/IncomingCall.wav
Outgoing=sounds/OutgoingCall.wav
INTOutgoing=sounds/INTOutgoingCall.wav
RTOutgoing=sounds/RTOutgoingCall.wav
[Logging]
;Level=Fatal, Critical, Warning, Debug
Level=Fatal, Critical, Warning
-22
View File
@@ -1,22 +0,0 @@
[Mixer]
input="hw:0,0"
output="hw:0,0"
Resample=0
LocalFeedback="Rear Mic"
; LocalFeedbackVolume is no longer used, we trust asound.state instead
LocalFeedbackVolume=40
CaptureDevice="Capture"
InputSource="Input Source"
MulticastInteface=0.0.0.0
; sounds are relative to datadir
[Sounds]
Busy=sounds/Busy.wav
Incoming=sounds/IncomingCall.wav
Outgoing=sounds/OutgoingCall.wav
INTOutgoing=sounds/INTOutgoingCall.wav
RTOutgoing=sounds/RTOutgoingCall.wav
[Logging]
;Level=Fatal, Critical, Warning, Debug
Level=Fatal, Critical, Warning
-320
View File
@@ -1,320 +0,0 @@
MaximumVideoDialogs=12
[%General]
windowMode=decorated
; decorated - with decoration and resizable
; normal - without decoration and fixed size
interlacingMode = verticalsmoothing
language=de_DE
;FdLimit=65000
importPath=/opt/RDE_AVS_NGL/import
[AudioWindow]
screen=0
size=@Size(1060 755)
corner=@Point(0 325)
title=Audio
windowMode=normal
visible=true
statusLine=false
; shows radio traffic in a circuit
trafficColor=#FFFF00
; show electronic warfare traffic in a circuit
ewColor=#FF0000
; blinking color for radio buttons
radioBlinkColor=#FFFF00
; blinking color for incoming intercom calls
intercomBlinkColor=#FFFF00
; color of a voice channel button while sending
airtimeColor=#00FF00
; color of a voice channel button when sending is denied
deniedColor=#FF0000
; color of an overridden button
overrideColor=#0000FF
[VideoWindows]
; After switching from overview to a single video the overview will be removed after x seconds
overviewTimeout=10
; Video Live
CTCVideo-1\screen=1
CTCVideo-1\size=@Size(1920 1080)
CTCVideo-1\corner=@Point(0 0)
CTCVideo-1\vectorColor=#FFFFFF
CTCVideo-1\backgroundColor=#202000
CTCVideo-1\videoBackgroundColor=#000080
CTCVideo-1\videoStandByColor=#000040
CTCVideo-1\liveFrameColor=#404040
CTCVideo-1\liveTextColor=#FFFFFF
CTCVideo-1\playbackFrameColor=#800080
CTCVideo-1\playbackTextColor=#FFFFFF
CTCVideo-1\importFrameColor=#808000
CTCVideo-1\importTextColor=#000000
CTCVideo-1\visible=false
CTCVideo-1\title=Video 1
CTCVideo-1\windowMode=normal
CTCVideo-1\statusLine=true
CTCVideo-1\timeFormat=dtg
; Video Playback
CTCPlayback-1\screen=2
CTCPlayback-1\size=@Size(1920 1080)
CTCPlayback-1\corner=@Point(0 0)
CTCPlayback-1\vectorColor=#FFFFFF
CTCPlayback-1\backgroundColor=#202000
CTCPlayback-1\videoBackgroundColor=#000080
CTCPlayback-1\videoStandByColor=#000040
CTCPlayback-1\liveFrameColor=#404040
CTCPlayback-1\liveTextColor=#FFFFFF
CTCPlayback-1\playbackFrameColor=#800080
CTCPlayback-1\playbackTextColor=#FFFFFF
CTCPlayback-1\importFrameColor=#808000
CTCPlayback-1\importTextColor=#000000
CTCPlayback-1\visible=false
CTCPlayback-1\title=Playback 1
CTCPlayback-1\windowMode=normal
CTCPlayback-1\statusLine=true
CTCPlayback-1\timeFormat=dtg
; CTCPlayback-2 is used for Audio Playback.
; Not configured here as it will never be visible.
; Video Playback for Presentation
CTCPresentation-1\screen=0
CTCPresentation-1\size=@Size(1920 1080)
CTCPresentation-1\corner=@Point(0 0)
CTCPresentation-1\vectorColor=#FFFFFF
CTCPresentation-1\backgroundColor=#202000
CTCPresentation-1\videoBackgroundColor=#000080
CTCPresentation-1\videoStandByColor=#000040
CTCPresentation-1\liveFrameColor=#404040
CTCPresentation-1\liveTextColor=#FFFFFF
CTCPresentation-1\playbackFrameColor=#800080
CTCPresentation-1\playbackTextColor=#FFFFFF
CTCPresentation-1\importFrameColor=#808000
CTCPresentation-1\importTextColor=#000000
CTCPresentation-1\visible=false
CTCPresentation-1\title=Playback 1
CTCPresentation-1\windowMode=normal
CTCPresentation-1\statusLine=true
CTCPresentation-1\timeFormat=dtg
; CTCPresentation-2 is used for Audio Presentation.
; Not configured here as it will never be visible.
; Video Live
CTCVideo-2\screen=0
CTCVideo-2\size=@Size(1920 325)
CTCVideo-2\corner=@Point(0 0)
CTCVideo-2\vectorColor=#FFFFFF
CTCVideo-2\backgroundColor=#202000
CTCVideo-2\videoBackgroundColor=#000080
CTCVideo-2\videoStandByColor=#000040
CTCVideo-2\liveFrameColor=#404040
CTCVideo-2\liveTextColor=#FFFFFF
CTCVideo-2\playbackFrameColor=#800080
CTCVideo-2\playbackTextColor=#FFFFFF
CTCVideo-2\importFrameColor=#808000
CTCVideo-2\importTextColor=#000000
CTCVideo-2\visible=true
CTCVideo-2\title=Video 2
CTCVideo-2\windowMode=normal
CTCVideo-2\statusLine=true
CTCVideo-2\timeFormat=dtg
; Video Live
CTCVideo-3\screen=0
CTCVideo-3\size=@Size(860 755)
CTCVideo-3\corner=@Point(1060 325)
CTCVideo-3\vectorColor=#FFFFFF
CTCVideo-3\backgroundColor=#202000
CTCVideo-3\videoBackgroundColor=#000080
CTCVideo-3\videoStandByColor=#000040
CTCVideo-3\liveFrameColor=#404040
CTCVideo-3\liveTextColor=#FFFFFF
CTCVideo-3\playbackFrameColor=#800080
CTCVideo-3\playbackTextColor=#FFFFFF
CTCVideo-3\importFrameColor=#808000
CTCVideo-3\importTextColor=#000000
CTCVideo-3\visible=true
CTCVideo-3\title=Video 3
CTCVideo-3\windowMode=normal
CTCVideo-3\statusLine=true
CTCVideo-3\timeFormat=dtg
; Video Live
CTCVideo-4\screen=0
CTCVideo-4\size=@Size(1060 755)
CTCVideo-4\corner=@Point(0 325)
CTCVideo-4\vectorColor=#FFFFFF
CTCVideo-4\backgroundColor=#202000
CTCVideo-4\videoBackgroundColor=#000080
CTCVideo-4\videoStandByColor=#000040
CTCVideo-4\liveFrameColor=#404040
CTCVideo-4\liveTextColor=#FFFFFF
CTCVideo-4\playbackFrameColor=#800080
CTCVideo-4\playbackTextColor=#FFFFFF
CTCVideo-4\importFrameColor=#808000
CTCVideo-4\importTextColor=#000000
CTCVideo-4\visible=false
CTCVideo-4\title=Video 4
CTCVideo-4\windowMode=normal
CTCVideo-4\statusLine=true
CTCVideo-4\timeFormat=dtg
; Import
CTCImport\screen=0
CTCImport\size=@Size(860 755)
CTCImport\corner=@Point(1060 325)
CTCImport\vectorColor=#FFFFFF
CTCImport\backgroundColor=#202000
CTCImport\videoBackgroundColor=#000080
CTCImport\videoStandByColor=#000040
CTCImport\liveFrameColor=#404040
CTCImport\liveTextColor=#FFFFFF
CTCImport\playbackFrameColor=#800080
CTCImport\playbackTextColor=#FFFFFF
CTCImport\importFrameColor=#808000
CTCImport\importTextColor=#000000
CTCImport\visible=false
CTCImport\title=Video Import
CTCImport\windowMode=normal
CTCImport\statusLine=true
CTCImport\timeFormat=dtg
[PedalSwitch]
interface=/dev/ttyS0
[Intercom]
port=8000
[AVS_Interface]
radioAddressType=unicast
videoAddressType=unicast
[AVS_Mixer]
;Factors for weighting the volume of these channels; range => 0.0 .. 1.0
avChannelFactor=1.0
signalToneFactor=0.5
rtChannelFactor=1.0
announcementChannelFactor=1.0
intercomFactor=1.0
[TextOverlayTemplates]
;
; topleft
;
;
; this template is called "topleft". Template names
; must not contain special characters like '";, \n\t' and so on.
topleft/initiallyVisible=true
; text will be drawn inside margin,
; margin is given in pixels
topleft/margin/top=20
topleft/margin/left=20
topleft/margin/right=20
topleft/margin/bottom=20
; normalized position coordinates are in the range [0.0-1.0]
topleft/posX=0.0
topleft/posY=0.0
topleft/width=1.0 ; entire margin
; colors are given in #aarrggbb with each of a, r, g and b are
; given as a hexadecimal digit
topleft/clrText=#ffffffff ;opaque white
topleft/clrBack=#a00a0a0a ;transparent dark grey
; break lines on word boundaries
topleft/wordbreak=true
; following alignFlags can be x-ored
; alignLeft=0x1
; alignRight=0x2
; alignHCenter=0x4
; alignTop=0x8
; alignBottom=0x10
; alignVCenter=0x20
topleft/alignFlags=0x9
; Default, Helvetica, Times, ...
topleft/font/family=Default
; possible values for weight: light, normal, demibold, bold, black
topleft/font/weight=normal
; normalized (1.0 = margin height), will be superseded
; by <template name>/font/ptSize if present
topleft/font/relHeight=0.1
; this supersedes above <template name>/font/relHeight
topleft/font/ptSize=14.0
; in pixels, for some kind of poor man's 3d-effect
topleft/font/shadowWidth=0
topleft/font/italic=false
topleft/font/underline=false
;
; bottomcenter
;
;
; this template is called "bottomcenter". Template names
; must not contain special characters like '";, \n\t' and so on.
bottomcenter/initiallyVisible=true
; text will be drawn inside margin,
; margin is given in pixels
bottomcenter/margin/top=20;
bottomcenter/margin/left=20;
bottomcenter/margin/right=20;
bottomcenter/margin/bottom=20;
; normalized position coordinates are in the range [0.0-1.0]
bottomcenter/posX=0.5
bottomcenter/posY=1.0
bottomcenter/width=1.0 ; entire margin
; colors are given in #aarrggbb with each of a, r, g and b are
; given as a hexadecimal digit
bottomcenter/clrText=#ff000000 ;opaque black
bottomcenter/clrBack=#a0ffffff ;transparent white
; break lines on word boundaries
bottomcenter/wordbreak=true
; following alignFlags can be x-ored
; alignLeft=0x1
; alignRight=0x2
; alignHCenter=0x4
; alignTop=0x8
; alignBottom=0x10
; alignVCenter=0x20
bottomcenter/alignFlags=0x14
; Default, Helvetica, Times, ...
bottomcenter/font/family=Default
; possible values for weight: light, normal, demibold, bold, black
bottomcenter/font/weight=normal
; normalized (1.0 = margin height), will be superseded
; by <template name>/font/ptSize if present
bottomcenter/font/relHeight=0.05
; this supersedes above <template name>/font/relHeight
bottomcenter/font/ptSize=14.0
; in pixels, for some kind of poor man's 3d-effect
bottomcenter/font/shadowWidth=0
bottomcenter/font/italic=false
bottomcenter/font/underline=false
[Logging]
;Level=Fatal, Critical, Warning, Debug
Level=Fatal, Critical, Warning
-222
View File
@@ -1,222 +0,0 @@
[%General]
windowMode=decorated
; decorated - with decoration and resizable
; normal - without decoration and fixed size
interlacingMode = verticalsmoothing
language=en_US
importPath=/opt/RDE_AVS_NGL/import
; Adjust the soft limit for NOFILE (max number of open file descriptors). If not given, leave the soft limit untouched.
; FdLimit=65000
;modify appearance
;styleSheet=/opt/AVS/etc/touch_scale200.qss
[AudioWindow]
screen=0
title=AVS_Workstation
size=@Size(1200 1024)
corner=@Point(0 0)
visible=true
windowMode=decorated
statusLine=true
; shows radio traffic in a circuit
trafficColor=#FFFF00
; show electronic warfare traffic in a circuit
ewColor=#FF0000
; blinking color for radio buttons
radioBlinkColor=#FFFF00
; blinking color for incoming intercom calls
intercomBlinkColor=#FFFF00
; color of a voice channel button while sending
airtimeColor=#00FF00
; color of a voice channel button when sending is denied
deniedColor=#FF0000
; color of an overridden button
overrideColor=#0000FF
[VideoWindows]
; After switching from overview to a single video the overview will be removed after x seconds
overviewTimeout=10
Video1/screen=0
Video1/size=@Size(480 360)
Video1/corner=@Point(1220 0)
Video1/vectorColor=#FFFFFF
Video1/backgroundColor=#0000FF
Video1/videoBackgroundColor=#000080
Video1/videoStandByColor=#000040
Video1/liveFrameColor=#404040
Video1/liveTextColor=#FFFFFF
Video1/playbackFrameColor=#800080
Video1/playbackTextColor=#FFFFFF
Video1/importFrameColor=#808000
Video1/importTextColor=#000000
Video1/visible=true
Video1/title=Videodialog 1
Video1/statusLine=true
;Video1/windowMode=decorated
; Possible values for timeFormat: 1) normal 2) dtg
Video1/timeFormat=normal
Video2/screen=0
Video2/size=@Size(480 360)
Video2/corner=@Point(1220 400)
Video2/vectorColor=#FFFFFF
Video2/backgroundColor=#0000FF
Video2/videoBackgroundColor=#000080
Video2/videoStandByColor=#000040
Video2/liveFrameColor=#404040
Video2/liveTextColor=#FFFFFF
Video2/playbackFrameColor=#800080
Video2/playbackTextColor=#FFFFFF
Video2/importFrameColor=#808000
Video2/importTextColor=#000000
Video2/statusLine=false
Video2/windowMode=normal
Video2/timeFormat=dtg
[PedalSwitch]
interface=/dev/ttyS0
; keycode for media player (previous track)
simulationKeyCode=0x1000082
; shift key
;simulationKeyCode=0x1000020
[Intercom]
port=8000
[AVS_Interface]
radioAddressType=unicast
videoAddressType=unicast
[AVS_Mixer]
;Factors for weighting the volume of these channels; range => 0.0 .. 1.0
avChannelFactor=1.0
signalToneFactor=0.5
rtChannelFactor=1.0
announcementChannelFactor=1.0
intercomFactor=1.0
[TextOverlayTemplates]
;
; topleft
;
;
; this template is called "topleft". Template names
; must not contain special characters like '";, \n\t' and so on.
topleft/initiallyVisible=true
; text will be drawn inside margin,
; margin is given in pixels
topleft/margin/top=20
topleft/margin/left=20
topleft/margin/right=20
topleft/margin/bottom=20
; normalized position coordinates are in the range [0.0-1.0]
topleft/posX=0.0
topleft/posY=0.0
topleft/width=1.0 ; entire margin
; colors are given in #aarrggbb with each of a, r, g and b are
; given as a hexadecimal digit
topleft/clrText=#ffffffff ;opaque white
topleft/clrBack=#a00a0a0a ;transparent dark grey
; break lines on word boundaries
topleft/wordbreak=true
; following alignFlags can be x-ored
; alignLeft=0x1
; alignRight=0x2
; alignHCenter=0x4
; alignTop=0x8
; alignBottom=0x10
; alignVCenter=0x20
topleft/alignFlags=0x9
; Default, Helvetica, Times, ...
topleft/font/family=Default
; possible values for weight: light, normal, demibold, bold, black
topleft/font/weight=normal
; normalized (1.0 = margin height), will be superseded
; by <template name>/font/ptSize if present
topleft/font/relHeight=0.1
; this supersedes above <template name>/font/relHeight
topleft/font/ptSize=14.0
; in pixels, for some kind of poor man's 3d-effect
topleft/font/shadowWidth=0
topleft/font/italic=false
topleft/font/underline=false
;
; bottomcenter
;
;
; this template is called "bottomcenter". Template names
; must not contain special characters like '";, \n\t' and so on.
bottomcenter/initiallyVisible=true
; text will be drawn inside margin,
; margin is given in pixels
bottomcenter/margin/top=20;
bottomcenter/margin/left=20;
bottomcenter/margin/right=20;
bottomcenter/margin/bottom=20;
; normalized position coordinates are in the range [0.0-1.0]
bottomcenter/posX=0.5
bottomcenter/posY=1.0
bottomcenter/width=1.0 ; entire margin
; colors are given in #aarrggbb with each of a, r, g and b are
; given as a hexadecimal digit
bottomcenter/clrText=#ff000000 ;opaque black
bottomcenter/clrBack=#a0ffffff ;transparent white
; break lines on word boundaries
bottomcenter/wordbreak=true
; following alignFlags can be x-ored
; alignLeft=0x1
; alignRight=0x2
; alignHCenter=0x4
; alignTop=0x8
; alignBottom=0x10
; alignVCenter=0x20
bottomcenter/alignFlags=0x14
; Default, Helvetica, Times, ...
bottomcenter/font/family=Default
; possible values for weight: light, normal, demibold, bold, black
bottomcenter/font/weight=normal
; normalized (1.0 = margin height), will be superseded
; by <template name>/font/ptSize if present
bottomcenter/font/relHeight=0.05
; this supersedes above <template name>/font/relHeight
bottomcenter/font/ptSize=14.0
; in pixels, for some kind of poor man's 3d-effect
bottomcenter/font/shadowWidth=0
bottomcenter/font/italic=false
bottomcenter/font/underline=false
[Logging]
;Level=Fatal, Critical, Warning, Debug
Level=Fatal, Critical, Warning
-20
View File
@@ -1,20 +0,0 @@
#!/bin/bash
#
# Helper script to create a default .conf file from the corresponding .conf.distrib.
# usage: avs_initial_conf.sh <component-name>
#
[ $# -eq 1 ] || exit 1
component_name=$1
etc_dir=/opt/AVS/etc
conf_distrib=$etc_dir/AVS_${component_name}.conf.distrib
conf=$etc_dir/AVS_${component_name}.conf
[ -f "$conf_distrib" ] || exit 1
[ -f "$conf" ] && exit 0
cp "$conf_distrib" "$conf"
chown ctc:ctc "$conf"
chmod g+w "$conf"
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libAVS_Export.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Export.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Export.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libAVS_Import.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Import.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Import.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libAVS_Index.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Index.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Index.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libAVS_Mixer.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Mixer.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Mixer.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libAVS_OnvifWrapper.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_OnvifWrapper.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_OnvifWrapper.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libAVS_Streaming.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Streaming.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Streaming.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libAVS_Util.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Util.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_Util.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libAVS_VideoPresentation.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_VideoPresentation.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libAVS_VideoPresentation.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libQtSolutions_Service_2.6.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libQtSolutions_Service_2.6.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libQtSolutions_Service_2.6.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libavcodec_AVS.so.58.35.100
-1
View File
@@ -1 +0,0 @@
libavcodec_AVS.so.58.35.100
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libavdevice_AVS.so.58.5.100
-1
View File
@@ -1 +0,0 @@
libavdevice_AVS.so.58.5.100
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libavfilter_AVS.so.7.40.101
-1
View File
@@ -1 +0,0 @@
libavfilter_AVS.so.7.40.101
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libavformat_AVS.so.58.20.100
-1
View File
@@ -1 +0,0 @@
libavformat_AVS.so.58.20.100
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libavswidgets.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libavswidgets.so.1.0.0
-1
View File
@@ -1 +0,0 @@
libavswidgets.so.1.0.0
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libavutil_AVS.so.56.22.100
-1
View File
@@ -1 +0,0 @@
libavutil_AVS.so.56.22.100
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
libswresample_AVS.so.3.3.100
-1
View File
@@ -1 +0,0 @@
libswresample_AVS.so.3.3.100
Loaded 100 of 3802 files, more files were not shown because too many files have changed in this diff. Show more