• R/O
  • HTTP
  • SSH
  • HTTPS

Katie: Repository summary

C++ toolkit derived from the Qt 4.8 framework


Recent Commits RSS

Rev. Time Author Message
7d1dd87 2023-09-08 15:29:22 Ivailo Monev master update tables data to CLDR v43 Signed-off-by: Ivailo Mon...
b26ee7e 2023-09-08 15:21:15 Ivailo Monev update exported classes references Signed-off-by: Ivailo...
d3e6be4 2023-09-08 15:04:03 Ivailo Monev update URL TLDs table data Signed-off-by: Ivailo Monev <...
40662d3 2023-09-02 06:08:43 Ivailo Monev warn when library fails to load and QT_DEBUG_PLUGINS envi...
565423a 2023-09-01 10:40:20 Ivailo Monev drop config support with QGuiPlatformPlugin and the QApp...
dda478c 2023-08-31 12:03:50 Ivailo Monev add note about platforms that are not open-source Signed...
b3e52cd 2023-08-30 00:48:34 Ivailo Monev fix DnD retrieval of some image formats with the introdu...
47b262c 2023-08-29 08:17:48 Ivailo Monev QStatInfo optimization Signed-off-by: Ivailo Monev <xake...
4795a57 2023-08-29 02:31:28 Ivailo Monev new QFileSystemWatcher methods to get and set the poll in...
baeeb19 2023-08-28 02:50:45 Ivailo Monev pass the source text length to QString::fromUtf8() from Q...

Recently edited Tags

Name Rev. Time Author
4.13.0 0f6a337 2023-08-08 17:34:18 Ivailo Monev
4.12.0 46c3b81 2022-12-02 01:27:21 Ivailo Monev

Branches

Name Rev. Time Author Message
master 7d1dd87 2023-09-08 15:29:22 Ivailo Monev update tables data to CLDR ...
qurl 3c00cca 2023-06-22 19:12:10 Ivailo Monev QUrl rewrite unlocked and ...
nativesettings 9362daf 2023-05-31 09:34:05 Ivailo Monev use QDataStream for QSettin...
spng ecaf45f 2023-05-24 12:13:20 Ivailo Monev implement size option for Q...
webp 34f98b1 2022-10-27 06:49:30 Ivailo Monev WebP image handler trades ...

README

Katie is continuation of the Qt4 C++ toolkit with the goal to keep it alive,
clean it up, fix some bugs and backport some features from Qt5. It is based
on the latest Git revision of Qt v4.8.

There are several things you should be aware before considering Katie:

 - some components and tools have been removed:
  - QMake, Linguist, Assistant, checksdk, macdeployqt, pixeltool, qconfig,
    qdoc, qev, qvfb, runonphone, designer and other non-essential
  - Qt3Support, QtWebKit, QtHelp, QtXmlPatterns, QtOpenGL, ActiveQt, Phonon,
    QtMultimedia, QtSql, QtDesigner, QtDesignerComponents and QtScriptTtools

 - some things have changed:
  - QMake build system replaced with CMake
  - Jansson, Freetype, ICU, X11 and libpng are required for building
  - D-Bus and CUPS must be linked to during build
  - QtUiTools is build as shared library by default
  - moc, uic, etc. are linked to components
  - updated bundled Harfbuzz from upstream (not Harfbuzz-NG)
  - versioned and extended classes have been merged into the base class,
    e.g. QIconEngineV2 into QIconEngine and QKeyEventEx into QKeyEvent
  - QGuiPlatformPlugin class is public
  - updated localizations data from Common Locale Data Repository v42
  - QTranslator uses gettext for translations
  - OpenVG is no longer supported graphics output
  - Blitter is no longer supported painting engine
  - native graphics system is no more, rasterizer is faster than native
  - QPicture, QPictureIO and plugins for it are no longer supported
  - QML debugger and inspector have been removed, potentially dangerous
  - no SIMD, zero performance impact with decent compiler
  - state machine is no more
  - removed 3rd party sources that are very common nowdays
  - dropped non-open source and discontinued platforms support
  - dropped dnotify filesystem watcher support
  - dropped Glib2 event dispatcher support
  - dropped support for a.out format
  - dropped Motif Drag-And-Drop (DND) support
  - dropped LPR support
  - dropped static plugins support
  - dropped XBM, PGM, MNG, BMP, ICO, TGA, JPEG, TIFF and GIF image format support
  - dropped obscure (24-bit) and indexed (8-bit) image formats support
  - dropped Valgrind support
  - dropped recursive mutex and lock support
  - dropped wide character and string support
  - dropped network interfaces management support
  - dropped no-op touch devices support
  - dropped bitmap fonts support
  - dropped accessibility support

 - some additions have been made:
  - custom image format
  - custom translations format
  - custom hash algorithm
  - JSON document handler
  - standard directories handler
  - building with LTO is possible and supported, if the toolchain can handle it
  - alternative libc implementations support
  - additional text codecs via ICU converter
  - Unicode v5.0+ characters and partial scripts support
  - support for AArch64 architecture
  - support for locale aliases
  - support for generating SHA-256 and SHA-512 hash sums (SHA-2)
  - qCompress() and qUncompress() use libdeflate which is much faster
  - stack backtrace on assert, crash or warning via execinfo
  - brief manual pages for all command-line tools
  - desktop files, Shell profile and dynamic linker/loader config
  - more reliable qrand(), seeded per thread
  - improved signal/slot template arguments handling
  - improved namespaces support and introduced QT_NAMESPACE_COMPAT
  - improved cross-compilation support
  - improved POSIX, XSI, SUSv2, etc. requirements build checks
  - script component uses QRegExp instead of internal PCRE copy
  - tests and benchmarks can be run without prior installation

Bugs fixed in Katie, some of which in Qt5 too:
QTBUG-23502, QTBUG-37115, QTBUG-15052, QTBUG-23522, QTBUG-6139, QTBUG-26889,
QTBUG-21548, QTBUG-6133, QTBUG-18188, QTBUG-36767, QTBUG-35387, QTBUG-37035,
QTBUG-28321, QTBUG-21993, QTBUG-26590, QTBUG-2124, QTBUG-20482, QTBUG-41361,
QTBUG-40153, QTBUG-35479, QTBUG-1628, QTBUG-42989, QTBUG-34861, QTBUG-46767,
QTBUG-25114, QTBUG-24672, QTBUG-23524 (WIP), QTBUG-56088, QTBUG-42189,
QTBUG-39285, QTBUG-18173, QTBUG-28968, QTBUG-34336, QTBUG-40974, QTBUG-44286,
QTBUG-12564, QTBUG-20028, QTBUG-71967, QTBUG-70956, QTBUG-71446, QTBUG-61307,
QTBUG-27287, QTBUG-25143, QTBUG-22833, QTBUG-57399, QTBUG-59159, QTBUG-15773,
QTBUG-70506, QTBUG-46054, QTBUG-11223, QTBUG-63108, QTBUG-6932, QTBUG-42365,
QTBUG-83817, QTBUG-4341, QTBUG-36933, QTBUG-49113, QTBUG-69920, QTBUG-40015,
QTBUG-54942, QTBUG-91261, QTBUG-73445, QTBUG-21098, QTBUG-59966, QTBUG-85520

Unless you use QMake and QDoc porting to Katie or even supporting it along with
Qt4 in the same codebase is trivial and requires only minor changes because
Katie is mostly source compatible with Qt 4.8.x, compatibility with releases
earlier than that is not a goal. Do note that using libraries that
are linked to Qt4 from applications linked to Katie will trigger undefined
behavior.
Show on old repository browser