doc/TODO: update

This commit is contained in:
mappu 2024-08-11 16:37:26 +12:00
parent 3419c8c0dc
commit 8de91463f5

27
TODO
View File

@ -13,29 +13,43 @@ Phase 1
- [X] Prevent calling ctor of abstract class - [X] Prevent calling ctor of abstract class
- [X] ~~Destructors~~ We only need .Delete() - [X] ~~Destructors~~ We only need .Delete()
- [X] Copy-constructors - [X] Copy-constructors
- [ ] Move-constructors (Qt6) - [ ] Move-constructors (e.g. QWidgetData)
- [X] Operator overloading - [X] Operator overloading
- [X] Class inheritance - [X] Class inheritance
- [X] Detect in AST - [X] Detect in AST
- [X] ~~Downcast helper methods~~ Direct type available - [X] ~~Downcast helper methods~~ Direct type available
- [ ] Member variables - [ ] Member variables
- [ ] Static methods - [ ] Static methods (e.g. QWidget::setTabOrder)
- [X] Return of class types passed by pointer - [X] Return of class types passed by pointer
- [ ] Return of class types passed by value (e.g. `_Icon()`) - [X] 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 - ~~want to copy-construct into Go-provided memory~~ Go can't allocate a C++ type
- Return as a heap pointer instead - Return as a heap pointer instead
- [X] Class parameters passed by pointer (want to call `cPointer()`) - [X] Class parameters passed by pointer (want to call `cPointer()`)
- [X] Class parameters passed by value (need to dereference) e.g. `_SetIcon()` - [X] Class parameters passed by value (need to dereference) e.g. `_SetIcon()`
- [X] QString type conversion - [X] QString type conversion
- [X] For parameters
- [X] For return types
- [ ] Bypass malloc/free for zero-length strings - [ ] Bypass malloc/free for zero-length strings
- [ ] QList, QVector, QByteArray type conversion(?) - [X] QList type conversion (e.g. QWidget::Actions())
- [X] For parameters
- [X] For return types
- [ ] Bypass malloc/free for zero-length arrays
- [ ] QVector type conversion
- [ ] QByteArray type conversion(?)
- [X] Hide private methods - [X] Hide private methods
- [X] Method overloads / optional parameters - [X] Optional parameters
- [ ] Overloaded methods
- [ ] Qt:: namespace enums/const values - [ ] Qt:: namespace enums/const values
- e.g. Qt::WindowFlags (global)
- e.g. QWidget::RenderFlag (per-class)
- [ ] Free functions - [ ] Free functions
- [ ] QtCore - [ ] QtCore
- [ ] QtGui - [ ] QtGui
- [ ] QtWidgets - [ ] QtWidgets
- [ ] Minimal example
- [ ] Calling connect
- [ ] Exercising QString interop
- [ ] Exercising QList interop
- [X] Pick a name for the package - [X] Pick a name for the package
- [ ] Make github repo, rename module - [ ] Make github repo, rename module
- [ ] v0 Public release - [ ] v0 Public release
@ -46,7 +60,7 @@ Phase 2
- [ ] QString helper functions - [ ] QString helper functions
- [ ] QList, QVector, QByteArray helper functions - [ ] QList, QVector, QByteArray helper functions
- [ ] `connect` - [ ] `connect`
- [ ] Other Qt packages - [ ] Document comparison with other Qt binding packages
- [ ] Document use for Windows/macOS/Linux - [ ] Document use for Windows/macOS/Linux
Wishlist Wishlist
@ -57,3 +71,4 @@ Wishlist
- [ ] Use clang ast's `mangledName` to make a dlsym/LazyDLL cgo-free version - [ ] 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 - [ ] 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 - [ ] Reuse CABI to generate Qt bindings for other non-Go languages
- [ ] Reduce necessary memory copies around ABI boundaries