A Matrix client for old devices — a NeoChat rewrite with the goal of being runnable on old devices and, in the end, also more feature rich.
- License: GPL-3.0-only (
LICENSE, SPDX headers). - Authors: https://progressive.chat contributors.
- Upstream: NeoChat (KDE),
via Spectral
(
spectral-im/spectral, first commit Feb 2018). - Base commit: Spectral tag 464
(
8c29382b3eb7a24c5abe3196c78a546329bb75d9, 2018-10-25, "Update org.eu.encom.spectral.appdata.xml").
At the start, this codebase had the name Spectral and it worked on Qt 5.10 – Qt 5.11 (qmake, C++14, Qt Quick Controls 2).
This port starts from Spectral tag 464
(8c29382, Oct 2018, still named Spectral,
still Qt 5.10+ per BUILD.md) and rebrands the client to
Progressive Chat.
Our first difference vs upstream is that the client targets Qt 5.6, so it is runnable on Android 4.0 and older, down to 2.3:
| Upstream (Spectral 464) | Progressive Chat Qt | |
|---|---|---|
| Qt | 5.10+ | 5.6 (5.6.3 recommended) |
| QML imports | QtQuick 2.9, Controls 2.2, Layouts 1.3 | QtQuick 2.6, Controls 1.4, Layouts 1.2 |
labs.platform (Qt ≥ 5.8 only) |
used directly (tray icon, StandardPaths) | isolated: tray via lazy Loader (Progressive.Compat.TrayIcon), cache dir via C++ QStandardPaths |
| C++ | C++14, Qt-5.10-only invokeMethod path |
keeps the Qt < 5.10 fallback (src/imageprovider.cpp), C++14 with C++11 fallback note in progressive-qt.pro |
| Android | — | android/AndroidManifest.xml: minSdk 9 (2.3) → target 14 (4.0) |
| Branding | Spectral / ENCOM | Progressive Chat, chat.progressive.qt, https://progressive.chat contributors |
Changes that exist only in this fork (not in upstream Spectral/NeoChat):
- Back button in Settings (
imports/Progressive/Page/SettingForm.ui.qml): upstream has no way back from the Settings page except tapping an account avatar — with zero accounts configured that is a dead end. The fork adds an explicit Back row returning to the room view.
Details and remaining work (Controls 2 backport on stock Qt 5.6, NDK notes):
COMPAT/Qt56.md.
Desktop (Qt 5.6.3):
qmake progressive-qt.pro
makeAndroid (Qt 5.6 androiddeployqt, NDK r10e):
qmake progressive-qt.pro ANDROID_PACKAGE_SOURCE_DIR=$$PWD/android
make
make install INSTALL_ROOT=android-build
androiddeployqt --input android-libprogressive-chat.so-deployment-settings.json \
--output android-build --deployment bundledVendored 2018-era deps (no submodule fetch needed):
include/libqmatrixclient (Oct 2018), include/SortFilterProxyModel
(Oct 2018). Pass USE_SYSTEM_QMATRIXCLIENT=true /
USE_SYSTEM_SORTFILTERPROXYMODEL=true to use system copies.
- Authors: https://progressive.chat contributors.
- This program is licensed under GNU General Public License, Version 3 only
(GPL-3.0-only). See
LICENSEandAUTHORS.
Upstream credits: Spectral / Matrique by Black Hat and contributors (GPL-3.0), libQMatrixClient (now libQuotient), Quaternion models, SortFilterProxyModel.