2025-10-16 07:43:46 +02:00
2025-08-22 22:57:06 +02:00
2025-09-23 08:50:31 +02:00
2025-10-04 12:21:30 +02:00
2025-10-05 14:50:45 +02:00
2025-10-16 07:43:46 +02:00
2025-09-21 12:50:15 +02:00
...
2025-09-23 11:26:07 +02:00

xtree

Bla blu moo!

...

Build

git clone https://gitea.sourceworx.org/chris/xtree.git
cd xtree/src
qmake xtree.pro
make

Verzeichnisstruktur

deprecated/
doc/
qml/
src/
xml/

keys

  • Widgetset für XML Daten
  • experimenteller qml support
  • docs erzeugen

experimenelle

Also, noch mal von vorn:

  • Es geht um das Editieren von XML Daten in einer baumartigen Darstellung am Bildschirm.

  • Es handelt sich vorwiegend um technische Daten: Strom, Spannung, unterschiedliche Betriebsparameter und sowas.

  • Die Qt Viewerklassen arbeiten feldbasiert, die Datenfelder heissen 'Items', die Basisklasse zu einem Datenfeld heisst bei uns XQItem

  • Unser Darstellung der Datenfelder ist im Prinzip erstmal tabellenartig, bla blu

  • Die QtLib unterscheidet zwischen 'rendering' und 'editing'

  • bla blub

Also: itemtypes werden einfach beschrieben, mit properties, wie die properties intern implementiert werden, ist erstmal egal: ein type sheet

pattern: model-view-controller qt: model-view wir: modelhub only

--

ein ItemType aggregiert gemeinsame Eigenschaften von Items, z.b. UnitType, EditorType, RenderTypezusammen, die ein Gruppe von Items gemeinsam

Old stuff:

Getting started

Das working directory muss aufs source directory zeigen, da liegen unter xml/ die Testfiles.

Wo ich hinwill

  • Alle models, menus etc. sollen in XML beschrieben werden, siehe xml/modelsheet.xml
  • Es gibt nur eine Modelklasse: XQModel (ist ein QStandardItemModel)
  • Datenlogik und Anwendungslogik sollen getrennt sein
  • Dazu werden die Datenknoten (composites) in einen Wrapper verpackt und in den Items 'versteckt'
  • Für jede Editorklasse XyzEditor.cpp gibt es eine Klasse XyzHub.cpp
  • Im XyzHub wird die Anwendungslogik implementiert, d.h. die SIGNALs der UI werden mit Operationen auf das Model verbunden
  • Operationen auf Datenknoten werden für die Anwendung transparent von der Datenschicht ausgeführt
  • Die genaue Implementierung dafür ist mir noch unklar:
  • ZQNode::nodeManager.applyCommand( ZQCommand( ZQ::PasteNode, ZQNode& ) ) ???

Basisklassen

  • znode::zbasic_node<string_type> Knotenabstraction, vgl. std::basic_string<char_t>
  • ZQNode template-Instanziierung von zbasic_node mit QString
  • XQModel ein QStandardItemModel mit ZQItems
  • XQItem ein QStandardItem mit einem XQNodeWrapper
  • (Sauberer wäre ein eigenes Model aus einem QAbstractItemModel, aber das ist dann wirklich Arbeit ...)
  • XQNodeWrapper verpackt einen ZQNode* und vermittelt dessen Attributes an die ViewItems
  • XQNodeManager operations on nodes, gibts noch nicht.
  • Eigentlich znode::znode_manager<zbasic_node<string_type>...> ... für alle Anwendungsfälle
  • XQModelReader erzeugt QModels aus XML, siehe XML/modelsheet.xml
  • XQModelHub Datenmanager-Klasse, hier läuft alles zusammen
  • class XQModelHub : public XQModel, public XQModelReader: etwas fragwürdig, spart aber leidige Verpointerungen

libPiGPIO

libPiGPIO: Eine C++ Softwarebibliothek für den Pi4 zur Einbindung elektronischer Steuerelemente

Getting started

To make it easy for you to get started with GitLab, here's a list of recommended next steps.

Already a pro? Just edit this README.md and make it your own. Want to make it easy? Use the template at the bottom!

Add your files

mkdir existing_repo
git remote add origin http://sourceworx.org:9099/opensource/libpigpio.git
git branch -M main
git push -uf origin main

Integrate with your tools

Collaborate with your team

Test and Deploy

Use the built-in continuous integration in GitLab.


Editing this README

When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to makeareadme.com for this template.

Suggestions for a good README

Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.

Description
No description provided
Readme 6.9 MiB
Languages
C++ 99.2%
QMake 0.4%
QML 0.4%