Go to file
miruka 2f19ff493b Rewrite media caching (old image provider)
- Doesn't use pyotherside's image provider feature, for more flexibility
  and simplicity
- Suitable for supporting matrix media events and more later
- Avoid a lot of duplicate files that the old cache created due to
  server not returning what we expect, mistakes in Python/QML code, etc
- Changed file structure
  (e.g. thumbnails/32x32/<mxc id> instead of
   thumbnails/<mxc id>.32.32.crop)

- Backend.wait_until_account_exist: start issuing warnings if the
  function runs for more than 10s, which means in most case a bad user
  ID was passed

- New HMxcImage QML component, used in H(User/Room)Avatar
2019-11-03 13:48:12 -04:00
src Rewrite media caching (old image provider) 2019-11-03 13:48:12 -04:00
submodules Big performance refactoring & various improvements 2019-08-11 08:27:53 -04:00
.gitignore gitignore tags 2019-09-04 08:27:45 -04:00
.gitmodules Big performance refactoring & various improvements 2019-08-11 08:27:53 -04:00
COPYING Initial commit 2019-03-21 23:28:14 -04:00
COPYING.LESSER Start rewriting backend with pyotherside+asyncio 2019-06-27 02:31:03 -04:00
harmonyqml.pro Add C++ Clipboard class accessible from QML 2019-10-25 08:36:24 -04:00
live-reload.sh live-reload: change part of the WM_CLASS 2019-10-29 13:35:19 -04:00
README.md Support video events, new media player 2019-09-17 16:30:04 -04:00
requirements.txt Initial upload implementation 2019-10-28 15:27:36 -04:00
TESTS.md Fix file names to respect conventions 2019-07-17 13:40:28 -04:00
TODO.md Restart sync if exception occurs 2019-10-30 11:15:35 -04:00

harmonyqml

Dependencies setup

From your distribution's package manager, install:

Qt 5.12+, including:

  • qt5-declarative-devel

  • qt5-quickcontrols

  • qt5-quickcontrols2-devel

  • qt5-svg-devel

  • qt5-graphicaleffects

  • qt5-qmake

  • qt5-devel

  • qtav

  • python3

  • python3-devel

  • olm-python3 >= 3.1

Make sure that the right version of Qt is selected and compiler flags are
correctly set:

export QT_SELECT=5
export CFLAGS="-march=native -O2 -pipe"
export CXXFLAGS="$CFLAGS"
export MAKEFLAGS="$(nproc)"

Install pyotherside:

git clone https://github.com/thp/pyotherside
cd pyotherside
qmake && make && sudo make install

After this, verify the permissions of the installed plugin files.
To ensure that they're correctly set:

sudo chmod -R 755 /usr/lib/qt5/qml/io
sudo chmod 644 /usr/lib/qt5/qml/io/thp/pyotherside/*
sudo chmod 755 /usr/lib/qt5/qml/io/thp/pyotherside/*.so

Install the Python 3 dependencies:

pip3 install --user -Ur requirements.txt

Optional dependency for performance improvements:

pip3 install --user -U uvloop==0.13.0

Building

git clone <TODO>
cd harmonyqml
qmake harmonyqml.pro && make && sudo make install

After this if no errors happened, run harmonyqml.

If you get a version mismatch error related to cffi, try:

pip3 install --user --upgrade --force-reinstall cffi