Skip to content
Ivailo Monev edited this page Jul 31, 2023 · 64 revisions

Here are a few ideas:

  • use Freetype2 rasterizer and remove QRasterizer
  • reimplement classes with STL alternatives
    • QMap with std::map
    • QReadLocker/QReadWriteLock with std::shared_lock/std::shared_mutex
    • QWriteLocker/QReadWriteLock with std::unique_lock/std::shared_mutex
    • QTextStream/QDatastream with std::stringstream
    • etc.
  • use libvips for image operations
  • Q_NO_RESERVE compile time definition to disable reserving space for elements in containers, e.g. QHash, for memory constrained systems
  • tunnable QCache alternative, e.g. associated with a key in the toolkit or per-application config
  • tune QFile I/O with posix_fadvise
  • optionally lock QFile I/O with flock
  • QFileRollback to rollback changes on write failure
  • optionally encrypt QTemporaryFile content
  • write script to shuffle struct members and find most optimal order to reduce the struct size
  • use QErrorMessage to report warnings, errors and fatal conditions
  • gdb-like tool for the GUI component, to be done on the repaintengine branch via Cairo scripting feature
  • tune quality of images saved via QImageWriter based on its width, height and the desktop resolution
  • fuzz tool for applications
    • set random writable QObject/QWidget property to random value
    • process events
    • trigger random public signal
    • process events
    • repeat

And some patches that should be considered:

Tag commits with TODO, FIXME, BUGFIX and other keywords that may be used to:

  • generate release notes
  • generate obvious TODO list
  • make it easier to find for package maintainers that backport fixes
  • do something fancy