Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-71036

Qt Core Changes in Qt 6

    XMLWordPrintable

    Details

    • Epic Name:
      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)
      • streamline the Qt object model and type system
      • 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

          For Gerrit Dashboard: QTBUG-71036
          # Subject Branch Project Status CR V

            Activity

              People

              Assignee:
              thiago Thiago Macieira
              Reporter:
              kkohne Kai Köhne
              PM Owner:
              Maurice Kalinowski
              RnD Owner:
              Alex Blasche
              Votes:
              0 Vote for this issue
              Watchers:
              38 Start watching this issue

                Dates

                Created:
                Updated:

                  Gerrit Reviews

                  There are no open Gerrit changes