miqt/TODO
2024-08-10 10:37:12 +12:00

59 lines
1.7 KiB
Plaintext

Phase zero
- [X] Handwritten bindings
Phase 1
- [X] Parse headers
- [ ] Generate types
- [X] Convert parameter pointer types to binding types
- [X] Basic methods
- [ ] Special methods
- [ ] Constructors
- [ ] Destructors
- [ ] Copy-constructors
- [ ] Move-constructors (Qt6)
- [X] Operator overloading
- [ ] Class inheritance
- [ ] Detect in AST
- [ ] Downcast helper methods
- [ ] Member variables
- [ ] Static methods
- [X] Return of class types passed by pointer
- [ ] Return of class types passed by value (e.g. `_Icon()`)
- ~~want to copy-construct into Go-provided memory~~ Go can't allocate a C++ type
- Return as a heap pointer instead
- [X] Class parameters passed by pointer (want to call `cPointer()`)
- [X] Class parameters passed by value (need to dereference) e.g. `_SetIcon()`
- [X] QString type conversion
- [ ] Bypass malloc/free for zero-length strings
- [ ] QList, QVector, QByteArray type conversion(?)
- [X] Hide private methods
- [X] Method overloads / optional parameters
- [ ] Qt:: namespace enums/const values
- [ ] Free functions
- [ ] QtCore
- [ ] QtGui
- [ ] QtWidgets
- [X] Pick a name for the package
- [ ] Make github repo, rename module
- [ ] v0 Public release
Phase 2
- [ ] Port examples from other Go Qt bindings
- [ ] QString helper functions
- [ ] QList, QVector, QByteArray helper functions
- [ ] `connect`
- [ ] Other Qt packages
- [ ] Document use for Windows/macOS/Linux
Wishlist
- [ ] Subclassing
- [ ] Custom Q_PROPERTY support
- [ ] uic implementation
- [ ] Use clang ast's `mangledName` to make a dlsym/LazyDLL cgo-free version
- [ ] Generate bindings for all current Qt versions (Debian Qt / Qt LTS), expose as git tags
- [ ] Reuse CABI to generate Qt bindings for other non-Go languages