You are not logged in. Please login or register.
Active topics Unanswered topics
Search options (Page 1 of 303)
https://github.com/qelectrotech/qelectr … r/pull/443
Feature: Auto-select active diagram in the elements panel tree
Kellermorph wrote:Description
This PR improves the UX when navigating between different diagrams in a project.
Previously, the ElementsPanel (the project tree on the left) only highlighted a diagram if it was explicitly clicked with the mouse. If the user switched tabs via the central ProjectView (e.g., clicking the tabs directly or using PageUp/PageDown), the tree selection remained static and lost sync with the currently active view.
This patch connects the diagramActivated signal from the ProjectView to the ElementsPanel, ensuring the tree automatically highlights the currently active diagram whenever the view changes.
Technical Changes
To allow the QetDiagramEditor to update the tree selection:
Changed elements_panel in ElementsPanelWidget from private to public.
Changed getItemForDiagram() in GenericPanel from protected to public.
Added a lambda connection in qetdiagrameditor.cpp (right after the ProjectView creation) to retrieve the QTreeWidgetItem for the activated diagram and call setCurrentItem().
Testing
Compiled and tested locally.
Verified that switching tabs with the mouse updates the tree.
Verified that switching tabs via keyboard shortcuts (PageUp/PageDown) correctly updates the tree selection.
https://github.com/qelectrotech/qelectr … r/pull/447
Add RAM-based wiring list export
Kellermorph wrote:Hi team,
I added a new feature to export a wiring list directly to CSV.
It uses the toXml() method to grab the project data directly from RAM, so no manual autosave is required before exporting.
Features:
Exports Folio, Element labels, Terminals, and conductor properties.
Resolves links across folios.
Removes duplicates.
Best regards!
https://github.com/qelectrotech/qelectr … r/pull/449
Automatic Terminal Numbering Tool
Kellermorph wrote:This Pull Request introduces a new feature for the automatic numbering of terminals across an entire project. This tool significantly speeds up the workflow when dealing with large terminal blocks, replacing manual labeling or external scripts.
Integrated GUI: A new dialog (TerminalNumberingDialog) allows users to choose between X-axis or Y-axis priority for sorting.
Smart Sorting: Terminals are sorted by their prefix, then by folio index, and finally by their physical coordinates on the diagram (with a 1px tolerance for alignment).
Alphanumeric Support: Users can choose to include or exclude alphanumeric suffixes.
Preservation of Special Terminals: Standard terminal labels like "N", "PE", or "L1" are preserved to maintain electrical correctness, while still being counted in the sequence to ensure correct numbering for subsequent terminals.
Full Undo/Redo Support: The numbering process is encapsulated in a QUndoCommand macro, allowing users to revert all changes with a single "Undo" action.
https://github.com/qelectrotech/qelectr … r/pull/451
Draft: Feature - Introduce User Templates Collection and Dedicated UI Tab
Kellermorph wrote:This PR introduces a new feature to QElectroTech: Templates (user-defined reusable component groups/snippets). To provide a clean user experience, a dedicated "Templates" tab has been added to the element collection widget alongside the existing collections.
Currently, this is a Draft / WIP to gather early feedback on the architectural integration and the general concept before polishing the remaining features.
I would love to get your thoughts on the general approach and the UI/Model integration so far. Are there any specific architectural guidelines I should keep in mind before proceeding with the remaining To-Dos?
https://github.com/qelectrotech/qelectr … r/pull/452
Fix losing Focus on moving diagram position with keyboard
ChuckNr11 wrote:Hi Laurent,
I hope this solves the problem.
https://github.com/qelectrotech/qelectr … r/pull/459
Fix and Improve Multi-selection for Diagram Operations
Kellermorph wrote:Safe List Iteration: Implemented safeDiagrams (a local copy of the selection) in QETDiagramEditor to prevent iterator invalidation while the project tree structure changes during bulk operations.
UI Stability & Database Sync: Added QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents) within move loops. This ensures the database and UI remain synchronized, preventing the application from freezing or throwing SQL errors during bulk moves.
Directional Logic for Moves: Fixed move order logic (Forward loop for "Up", Backward loop for "Down" and "UpTop") to preserve the relative order of selected items.
Fixed Large Moves (x10 / x100): Repaired the logic for moving blocks over 10 and 100 pages. Applied the same safety loops and corrected boundary checks (using >= instead of >) to allow moves when exactly 10 or 100 pages are available.
Multi-Delete Support: Integrated and stabilized the ability to delete multiple selected diagrams at once, ensuring the UI updates correctly and the internal project model remains consistent.
Selection Persistence: Updated ElementsPanelWidget to clear and restore the selection after an operation. This prevents the tree view from incorrectly expanding the selection to unselected items between moved or deleted blocks.
Enhanced Safety & Validation:
Updated updateButtons() to calculate the boundary (min/max index) of the entire selection. Actions (including Delete and all Move types) are now correctly disabled if any part of the selection reaches the project boundaries.
Updated keyPressEvent() to respect these enabled/disabled states, preventing illegal move or delete operations via keyboard shortcuts (Delete, F3-F9).
https://github.com/qelectrotech/qelectr … ts/pull/37
feat(i18n): Deep translation based on directory-semantic mapping - Supported by Yingkou Lingbao New Materials
mx80286 wrote:This project provides a systematic Chinese localization enhancement for the QElectroTech element library.
[Core Feature: Directory-as-Context]
Driven by the Yingkou Lingbao New Materials technical team, this localization employs "path-context-aware" logic:
Semantic Alignment: By modeling filenames based on their directory hierarchy, we ensure high accuracy for technical terms within their specific engineering domains.
Full Coverage: Both .elmt and qet_directory files have been synchronized, enabling seamless Chinese navigation.
[Disclaimer & Feedback]
Given the vast scale of the library, there may still be room for optimization in certain niche terms. We welcome any corrections or feedback from the open-source community.
Contributor: 营口菱宝新材料有限公司 (Yingkou Lingbao New Materials Co., Ltd.)
MSI installer
https://www.virustotal.com/gui/file/d53 … ?nocache=1
No security vendors flagged this file as malicious
Installer.exe
https://www.virustotal.com/gui/file/fde … ?nocache=1
1/60 security vendor flagged this file as malicious
ReadyTouse
https://www.virustotal.com/gui/file/8df … ?nocache=1
1/52 security vendor flagged this file as malicious
Enjoy!
macOS ARM64 DMG Build & Notarization — Fixed Workflow
After a lot of trial and error, here is the working process to build, sign, notarize and distribute QElectroTech as a proper macOS DMG for Apple Silicon (arm64).
Problems encountered
1. Gatekeeper blocking the app when downloaded via Chrome
The original script used ditto --sequesterRsrc to create the final ZIP. This flag places resource forks in a hidden __MACOSX/ folder which breaks extended attribute extraction in Chrome / Archive Utility, causing Gatekeeper to block the app with "Apple could not verify that this app is free of malware". Safari worked fine because it handles ZIP extraction differently.
2. All MacPorts dylibs were unsigned
macdeployqt copies third-party libraries (libsqlite3, libpng, libssl, libharfbuzz, etc.) from MacPorts into Contents/Frameworks/ without signing them. Using codesign --deep (now deprecated) missed these flat .dylib files. Apple's notarization service rejected the submission with "The binary is not signed with a valid Developer ID certificate" for every single one of them.
Fix: sign every binary explicitly in the correct order — all .dylib files in Frameworks/ first, then .framework bundles, then plugins, then the main executable, and finally the bundle itself.
3. hdiutil invalidating the bundle signature during DMG creation
After the .app was correctly signed and notarized, creating a DMG with hdiutil create copies the bundle and recalculates checksums, which invalidates the Sealed Resources signature. Submitting this DMG to notarytool resulted in "The signature of the binary is invalid".
Fix: create a writable DMG (UDRW format), mount it, re-sign all binaries inside the mounted volume, detach it, then convert to the final compressed read-only DMG (UDZO). This ensures the signature is valid after the conversion.
Final workflow
1. Build with qmake + macdeployqt
2. Copy elements, titleblocks, translations, fonts, lang, examples into the bundle
3. Sign all binaries (dylibs → frameworks → plugins → executable → bundle)
4. Submit a temporary ZIP to notarytool → wait for Apple approval
5. Staple the notarization ticket onto the .app
6. Create a staging folder with the .app + a symlink to /Applications
7. Create a writable UDRW DMG from the staging folder
8. Mount the UDRW DMG and re-sign all binaries inside
9. Detach and convert UDRW → UDZO (final compressed DMG)
10. Sign the DMG with codesign
11. Submit the DMG to notarytool → staple the ticket onto the DMG
12. Verify: spctl -a -vv → "accepted / Notarized Developer ID"
Result
The DMG now passes Gatekeeper correctly whether downloaded via Chrome or Safari. It includes a drag-and-drop Applications shortcut and is fully notarized and stapled.
Enjoy!
Every Monday at 2 am (UTC) (cron) or manually
↓
windows-build.yml
├── build-windows → generates an exe file(installer) + zip(ReadyToUse) + portable artefact for MSI builder
└── deploy-pages → clears old files, uploads the exe file + zip to the ‘release nightly’ repository
↓ (workflow_run: completed + successful)
windows-msi.yml
├── uploads the portable artefact
├── builds the MSI with WiX v7
├── deletes the old .msi, uploads the MSI to the nightly version
└── generates and deploys GitHub Pages ← the 3 URLs are known here
The GitHub Pages page is no longer generated by windows-build.yml but by windows-msi.yml once the MSI is in the release
Bonjour us195,
Nuri stopped developing the new site in 2018 due to a lack of free time; no one has had the time to take up the baton since then, as we were too busy with the progress of the code, etc.
Now we have an Windows MSI installer.
It was a real struggle with WiX v7 — between the EULA, namespaces, !(bind.Variable.) vs $(var.), WixVariable refusing to be a child of WixUI, and the non-embedded cab1.cab. But the result is clean and robust.
To summarise what we now have in the repository:
windows-build.yml — full MSYS2/UCRT64 build with NSIS, ccache, portable artefacts + installer, triggered manually
windows-msi.yml — generates a standalone MSI with WiX v7, embedded GPL-2 licence, QET.bat launcher adapted for Program Files
test-vs2026.yml — validates compatibility with the VS 2026 image prior to the 8 June migration
QElectroTech.wxs — complete WiX v7 definition with automatic harvesting, shortcuts, .qet file association
https://github.com/qelectrotech/qelectr … -win64.msi
Hello us195,
you add these informations -> https://github.com/qelectrotech/qelectr … /README.md
Edit : Addded Nuri work. (not finished, yet)
Hello us195,
I 'm waiting for some screenshots to see.
PS: My personal request: for everyone’s safety—and my own—I’ll ensure that the HTML, CSS and other code is sourced from code that is accessible to everyone on GitHub, thanks.
Best regards,
Laurent
Enjoy!
Now we have:
✅ A robust Windows CI/CD pipeline using ccache, NSIS and 7-Zip for zipping Windows "Ready-to-use" portable versions
✅ A public GitHub Pages site with direct downloads
✅ An automatic nightly Windows build triggered by every push to the master branch
✅ The SignPath Foundation application ready to submit
https://lobehub.com/skills/r2d2helm-cla … tech-skill
Summary
The QElectroTech agent manages the creation, administration and manipulation of electrical diagrams for QElectroTech 0.100.x. It automates the creation of multi-sheet projects (.qet, UTF-8 XML), the merging and analysis of files, export (PDF via GUI, CSV parts list) and versioned backups. For sheets, it offers addition, extraction, renaming, reorganisation and listing; for elements, creation of .elmt files, searching in libraries (elements/, titleblocks/, examples/) and management of title blocks (.titleblock). Designed for residential single-line and multi-line diagrams and tables compliant with NF C 15-100 and IEC 60617, it facilitates standardised production, symbol reuse, batch workflows and the integration of collections (common://, custom://, embed://) via CLI flags. Ideal for electricians, design offices and integrators seeking quality, traceability and time savings.
https://lobehub.com/skills/r2d2helm-cla … eTab=skill
I used the Claude AI tool as part of a Windows-based CI/CD pipeline using GitHub Actions. It wasn’t easy—neither for me nor for the AI—but we’ll soon have a CI/CD pipeline that can be signed by the SignPath Foundation.
Excellent! Well done for your perseverance — that was a massive undertaking!
To summarise everything we’ve achieved together:
Build
CMake + Ninja with -j$(nproc) for parallelisation
SQLite3 hints for FindSQLite3
QET_EXPORT_PROJECT_DB passed to the compiler
ccache with GitHub Actions cache
Packaging
Clean and maintainable patch_nsi.py in build-aux/windows/
Correct Windows absolute paths with backslashes in the .nsi
3-pass ldd scan for all transitive DLLs
libsqlite3, libharfbuzz, libbrotli, libpcre2, libicuXX... everything’s there
Compiled .qm files copied to lang/
Version in the format 0.100.1-r8821-abc1234_x86_64-win64 consistent with the official packaging
CI/CD
MSYS2_ARG_CONV_EXCL for NSIS arguments
git in MSYS2, fetch-depth: 0 for the revision
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 for actions
All the best with QElectroTech!
You’re welcome! It was a real technical challenge — between the quirks of MSYS2, Windows/POSIX paths, NSIS, CMake vs qmake, and hidden SQLite dependencies, there was plenty to get to grips with.
The result is clean and robust — a complete Windows CI/CD pipeline for a high-quality open-source project. All the best with QElectroTech, and feel free to get in touch if you have any other topics you’d like to explore
The installer isn't ready for production yet; it still needs some finishing polished. OK ->Done.
I reckon I’ll put it on the YouTube channel, I think people will love having it included in future builds.
I’d noticed Achim’s work on one of his development branches, but unfortunately it’s since disappeared, which is a shame because the video he’s just presented would have interested a lot of people, myself included. I’m currently working on a major electrical securty retrofit project on a big installation at my workplace.
Although there’s still a lot of work to be done on cable management afterwards but this first draft seem very great. ;-)
Renew web hosting for €157 before the price goes up significantly...
Thank you to all those who support us with their donations. ;-)
Librerias QElectroTech para sistemas Victron Energy
Bonjour,
mets ton projet sur ce fil et ou un exemple et explique mieux ce que tu aimerais faire avec ces données!
laurent@debian:~$ wget https://download.qelectrotech.org/qet/builds/Flatpak/public.pgp
--2026-04-10 11:40:58-- https://download.qelectrotech.org/qet/builds/Flatpak/public.pgp
Résolution de download.qelectrotech.org (download.qelectrotech.org)… 46.105.204.26
Connexion à download.qelectrotech.org (download.qelectrotech.org)|46.105.204.26|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 3175 (3,1K) [application/pgp-encrypted]
Sauvegarde en : « public.pgp »
public.pgp 100%[=========================================>] 3,10K --.-KB/s ds 0s
2026-04-10 11:40:58 (59,5 MB/s) — « public.pgp » sauvegardé [3175/3175]
laurent@debian:~$ flatpak remote-add --gpg-import=public.pgp qet-devel https://download.qelectrotech.org/qet/builds/Flatpak/
Note that the directories
'/var/lib/flatpak/exports/share'
'/home/laurent/.local/share/flatpak/exports/share'
are not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.
laurent@debian:~$ flatpak install https://download.qelectrotech.org/qet/builds/Flatpak/org.qelectrotech.QElectroTech.flatpakref
Note that the directories
'/var/lib/flatpak/exports/share'
'/home/laurent/.local/share/flatpak/exports/share'
are not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.
The application org.qelectrotech.QElectroTech depends on runtimes from:
https://dl.flathub.org/repo/
Configure this as new remote 'flathub' [Y/n]: y
Required runtime for org.qelectrotech.QElectroTech/x86_64/master (runtime/org.kde.Platform/x86_64/5.15-25.08) found in remote flathub
Do you want to install it? [Y/n]: y
org.qelectrotech.QElectroTech permissions:
ipc network cups fallback-x11 wayland
x11 dri file access [1] dbus access [2]
[1] host, xdg-config/kdeglobals:ro
[2] com.canonical.AppMenu.Registrar, org.kde.KGlobalSettings, org.kde.kconfig.notify
ID Branch Op Remote Download
1. [✓] org.freedesktop.Platform.GL.default 25.08 i flathub 140,4 Mo / 141,4 Mo
2. [✓] org.freedesktop.Platform.GL.default 25.08-extra i flathub 25,2 Mo / 141,4 Mo
3. [✓] org.freedesktop.Platform.codecs-extra 25.08-extra i flathub 14,2 Mo / 14,4 Mo
4. [✓] org.gtk.Gtk3theme.Breeze 3.22 i flathub 114,6 Ko / 192,4 Ko
5. [✓] org.kde.Platform.Locale 5.15-25.08 i flathub 5,6 Mo / 400,3 Mo
6. [✓] org.kde.Platform 5.15-25.08 i flathub 297,0 Mo / 367,4 Mo
7. [✓] org.qelectrotech.QElectroTech master i qet-devel 21,2 Mo / 31,0 Mo
Installation complete.
Posts found: 1 to 25 of 7,567
Generated in 0.118 seconds (20% PHP - 80% DB) with 5 queries