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 QStringXQModel
ein QStandardItemModel mit ZQItemsXQItem
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 ViewItemsXQNodeManager
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.xmlXQModelHub
Datenmanager-Klasse, hier läuft alles zusammenclass 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
- Create or upload files
- Add files using the command line or push an existing Git repository with the following command:
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
- Invite team members and collaborators
- Create a new merge request
- Automatically close issues from merge requests
- Enable merge request approvals
- Automatically merge when pipeline succeeds
Test and Deploy
Use the built-in continuous integration in GitLab.
- Get started with GitLab CI/CD
- Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)
- Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy
- Use pull-based deployments for improved Kubernetes management
- Set up protected environments
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.