Deprecated QT-based UI for Cwtch: For the new Flutter UI go to: https://git.openprivacy.ca/cwtch.im/cwtch-ui https://cwtch.im
This repository has been archived on 2021-06-24. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Sarah Jamie Lewis 12a6cb4610
the build was successful Details
Merge pull request 'Profile Manager user incokePopup for 0 profiles loaded error; fix lock image to icon in profileAddEdit' (#462) from dan/ui:oprofile-fix into master
Reviewed-on: #462
2020-12-17 16:57:30 -08:00
android extend build.gradle to have seperate paths for arm7 and arm64 and perform the appropriate link/rename so androiddeployqt and therecipeqt can pick up as tho it was not a splits build 2020-12-15 00:06:46 -08:00
assets add missing assets 2020-12-08 20:21:12 -08:00
go Profile Manager user incokePopup for 0 profiles loaded error; fix lock image to icon in profileAddEdit 2020-12-17 14:14:28 -08:00
i18n Profile Manager user incokePopup for 0 profiles loaded error; fix lock image to icon in profileAddEdit 2020-12-17 14:14:28 -08:00
linux linux build can now access assets in various */share/cwtch/assets folders. linux installer installs multiple sized icons 2020-12-11 18:53:43 -08:00
nsis update nsis script to make installed start menu link use icon 2020-11-27 18:20:19 -08:00
qml Profile Manager user incokePopup for 0 profiles loaded error; fix lock image to icon in profileAddEdit 2020-12-17 14:14:28 -08:00
windows upgrade packaged tors to 0.4.4.6 2020-11-30 18:32:32 -08:00
.drone.yml drone: android auto increment AndroidManifest versionCode for second android build (arm64) - fix: don't overwrite file while reading 2020-12-15 17:58:17 -08:00
.gitignore migrate to stand alone log and connectivity packages 2020-02-11 19:40:01 -05:00
.gitmodules move widgets into the Opaque submodule project 2020-05-19 17:03:08 -07:00
ANDROID_DEBUGGING.md updated splash screen and app icon for android 2020-11-25 09:46:33 -08:00
LICENSE Update 'LICENSE' 2020-11-26 23:46:56 -08:00
Makefile fix makefile 2020-12-01 16:02:39 -08:00
QML_DEBUG_NOTES.md gcd.firstTime + SettingsList scrolls 2020-11-23 13:12:00 -08:00
README.md ACN Process Management (#345) 2020-10-21 16:58:57 -07:00
get-therecipe-qt-dockers-imgs.sh get therecipe-qt-docker-imgs sh 2020-03-25 18:21:01 -07:00
go.mod Group Creation 2020-12-16 22:15:47 -08:00
go.sum Group Creation 2020-12-16 22:15:47 -08:00
main.go linux build can now access assets in various */share/cwtch/assets folders. linux installer installs multiple sized icons 2020-12-11 18:53:43 -08:00
qml.qrc new spanish and italian translations 2020-12-11 14:15:23 -08:00
quality.sh move qmlfmt to serpeate standalone openprivacy repo 2020-05-20 14:48:37 -07:00
ui.pro new spanish and italian translations 2020-12-11 14:15:23 -08:00

README.md

Cwtch - UI

This codebase provides a graphical user interface for Desktop and Android for Cwtch: Privacy Preserving Infrastructure for Asynchronous, Decentralized and Metadata Resistant Applications

Security

Cwtch is an experimental concept and prototype. We do not recommend you use Cwtch today if you require secure communication. At least, not yet.

If you discover a security issue, please log an issue above, or email team@cwtch.im.

Running

Compiling

The UI is built using QT so you will need the development libraries and tools for your OS. Currently we are using QT 5.13.0

This code relies on therecipe/qt before getting started consult the Installation and Getting Started documentation to get that up and running. It will make building this much easier.

Cwtch UI uses the Go module system for dependancies, and git submodules for includin QML components

git submodule init
git submodule update

Linux

go mod vendor
qtdeploy build linux
./deploy/linux/ui -local -debug 2>&1 | grep -v 'Detected anchors on an item that is managed by a layout.'

The -debug flag increases the logging level.

The -local flag means the binary should use the local copies of QML files instead of the compiled ones allowing for more rapid UI development.

The grep statement filters out some QML noise.

Android

We supply an arm-pie version of tor in android/libs/armeabi-v7a with the name libtor.so

go mod vendor
qtdeploy -docker build android
adb install deploy/android/build-debug.apk

Windows

  • Download and install QT Open Source edition
  • Go to My Computer - Right Click on This PC - Advanced System Settings - Environment Variables
    • New - QT_DIR = C:\Qt (or wherever you have it installed)
    • New - QT_VERSION = 5.12.1 (because I picked 5.12.1)
    • Edit the Path Variable and Add C:\Qt\Tools\mingw530_32\bin
  • Install MSYS2 (Bash shell for windows)
  • Install Go and make sure it's in the PATH, and add your GOPATH/bin to the PATH
  • Setup therecipe/qt (instructions https://github.com/therecipe/qt/wiki/Installation-on-Windows)
    • go get -u -v github.com/therecipe/qt/cmd/...
    • qtsetup (Can take around an hour?)

If all that is done, then check out cwtch.im/ui

go mod vendor
qtdeploy
deploy/windows/ui

Currently if you do not have Tor running Cwtch will start tor for you, which will open a dos console window. We are working to hide this in the future.

Contributing

Translations

(If you'd like to add a new translation, feel free to open an issue and we can generate the .ts file for you to edit by hand, or in QT Linguist!)

Add new translation

  1. Install the language tools if you have not already (on linux: sudo apt-get install qttools5-dev qttools-dev-tools)

  2. Edit ui.pro and add a new line in the variable definition for TRANSLATIONS like:

    TRANSLATIONS = i18n/translation_en.ts
    i18n/translation_de.ts

  3. Edit qml.qrc and add a new line near the other translation files like:

    <file>i18n/translation_de.qm</file>

  4. To update and generate your new translation file, run lupdate ui.pro and you will find your new file in the i18n/ directory.

Updating translations

Run lupdate ui.pro to update all the translation files in the i18n/ directory, then edit your languages' .ts file to make the appropriate changes. It is recommended to use QT Linguist (linguist) to edit the files.

When done, run lrelease ui.pro to compile all the translations from their .ts files into .qm files for use in the program. Then you can compile the ui program.