Details
-
Epic
-
Resolution: Done
-
P2: Important
-
None
-
None
-
QtCore6
Description
This epic captures the work planned in QtCore for Qt 6, with the individual user stories and subtasks documenting the details.
The overall goal for QtCore in Qt 6 is to
- general cleanup
- get rid of legacy an deprecated code ()
- Remove 3rd party components (
QTBUG-80304) - review and remove static variables
- increase consistency and compatibility with the C++ standard library in containers and value types (
QTBUG-77477)- std API adoption (
QTBUG-77481) - build Qt with C++17 compiler mode (
QTBUG-77479) - adopt smart pointer usage to indicate ownerships (
QTBUG-80305) - consistently use View classes in Qt APIs
- API overloads for ranges (
QTBUG-80307)
- std API adoption (
- streamline the Qt object model and type system
- Compile time resolution of meta type infos (QTBUG-75668)
- Use new meta type if in meta objects (
QTBUG-75670) - new property system (
QTBUG-75672)- Revisit QObject, signals, slots and properties
- Add support for QML style bindings from C++ (e.g: https://woboq.com/blog/property-bindings-in-cpp.html)
- Improve meta object data (QTBUG-75674)
- Investigate usage of clang by moc
- cleaner abstractions for I/O and similar operating system services
Investigate a QIODevice redesign (QTBUG-76492)(Descoped for 6.0)- (Investigate a "QPA for OS services")
- Not necessarily required for 6.0
Get rid of some third-party components:
- Get rid of legacy Text Codecs (EUC-JP, EUC-KR, GBK, JIS, Shift-JIS, TSCII, Big5, Big5-HKSCS) (
QTBUG-75991) - Get rid of copy of Public Suffix List / QUrl::topLevelDomain (
QTBUG-80308)
Container improvements
- Unify QList and QVector (QList as an alias to QVector) ()
- QFlatMap (patch exists)
- using QPair = std:pair (deprecate, remove/replace) (
QTBUG-80309) - Find a fast hash implementation for QHash (std::unordered_map too slow) (
QTBUG-80311) - Use std::map to implement QMap (to be verified)
Add Qt5Compat to Qt 6 (QTBUG-80312)
- Get rid of QRegExp (implies unbootstrapping of qmake)
- Move QLinkedList out of QtCore
Move QStateMachine out of QtCore (QTBUG-80316)
Revisit Multithreading Technologies in Qt?
- Keep QThread and friends
- split QMutex into QMutex and QRecursiveMutex (done)
- Deprecate QtConcurrent?
- Fix QFuture API or deprecate and move to QtConcurrent
-> decision process (QTBUG-79283) - std::future is not considered to be complete (including ++20) and hence not an option -> no Qt 6 relevance
Make QDir and friends consistent about their handling of absolute/relative for MS-paths; this may involve some compatibility breakage. The core of the problem is that QFileSystemEntry isn't consistent with itself.
--> Discussion 18.11.2019: Move into a separate task and assign to Eddy
Other changes:
- MS absolute vs relative file path behavior change
- QByteArray changes (QTBUG-64747, )
- naked const char * pointer to be removed (except from QByteArray and string handling classes)
- Investigate usage of qsizetype by Qt containers
Attachments
Issue Links
- depends on
-
QTBUG-76375 Qt 6: Connection syntax migration
- Reported
-
QTBUG-69963 Library initialization function crashes on win when called from loading QML plugin
- Closed
- is required for
-
QTBUG-73666 Configurable Qt
- Closed
-
QTBUG-74396 Technical enhancements of the Qt framework
- Closed
- relates to
-
QTBUG-68812 A new back-end for QTimeZone based on C++20 std::chrono::tzdb
- Closed
-
QTBUG-7474 Number of weeks in a Year in QDate
- Open
-
QTBUG-80421 Use DST data even before 1970
- Closed
-
QTBUG-19345 Qt 5: aynchronous I/O for files
- Closed
-
QTBUG-77477 C++17 usage in Qt 6
- Closed
- resulted in
-
QTBUG-72974 Deprecate QRegExp
- Closed
- split to
-
QTBUG-79750 Add an optional mode argument to QDir::mkdir(name [, mode]), QFile::open(...)
- Closed
1.
|
metatype: support compile-time resolution of type-information | Open | Unassigned | |
2.
|
new meta-object data structures | Open | Lars Knoll | |
3.
|
Fix performance of QQueue | Reported | Thiago Macieira | |
4.
|
Move 3rdparty code out of qtbase | Open | Lars Knoll | |
5.
|
qvariant: Avoid dangling QObject pointers | Reported | Thiago Macieira |