...
 
Commits (463)
AccessModifierOffset: -8
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: DontAlign
AlignOperands: true
AlignTrailingComments: true
#AllowAllArgumentsOnNextLine: false
#AllowAllConstructorInitializersOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: false
#AllowShortLambdasOnASingleLine: Empty
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
# AfterCaseLabel: false
AfterClass: true
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAfterJavaFieldAnnotations: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Linux
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
ColumnLimit: 90
CommentPragmas: ''
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 8
ContinuationIndentWidth: 8
Cpp11BracedListStyle: true
DerivePointerAlignment: false
FixNamespaceComments: true
IncludeBlocks: Preserve
IndentCaseLabels: false
#IndentPPDirectives: BeforeHash
IndentWidth: 8
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
Language: Cpp
NamespaceIndentation: All
PenaltyBreakBeforeFirstCallParameter: 90
PenaltyBreakComment: 90
PenaltyBreakFirstLessLess: 0
PenaltyBreakString: 90
PenaltyExcessCharacter: 1
PenaltyReturnTypeOnItsOwnLine: 20
PointerAlignment: Right
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: true
#SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: true
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 8
UseTab: ForContinuationAndIndentation
# EditorConfig file, https://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
charset = utf-8
# Tab indentation (no size specified)
[src/*.*]
indent_style = tab
[src/qml/**]
indent_style = tab
[utils/travis/**]
indent_style = tab
[*.py]
indent_style = tab
[*.plist]
indent_style = tab
[CMakeLists.txt]
indent_style = tab
# 4 space indentation
[src/qxmpp-exts/**]
indent_style = space
indent_size = 4
[src/singleapp/**]
indent_style = space
indent_size = 4
[misc/android/{AndroidManifest.xml,build.gradle}]
indent_style = space
indent_size = 4
[utils/build-*]
indent_style = space
indent_size = 4
[clickable.json]
indent_style = space
indent_size = 2
[*.qrc]
indent_style = space
indent_size = 4
[*.pl]
indent_style = space
indent_size = 4
################### Kaidan ####################
kaidan
kaidan_automoc.cpp
misc/ubuntu-touch/manifest.json
misc/windows/*-kaidan.png
misc/macos/kaidan.iconset
misc/android/res/mipmap-*
3rdparty/openssl
3rdparty/qxmpp
3rdparty/linuxdeployqt
################### AppImage #################
AppDir/
......@@ -101,10 +109,11 @@ moc_*.cpp
qrc_*.cpp
ui_*.h
Makefile*
*build-*
# QtCreator
misc/android/gradle.properties
misc/android/gradle.properties~
misc/android/local.properties~
*.autosave
# QtCtreator Qml
......@@ -133,3 +142,7 @@ install_manifest.txt
*.swp
.vscode/
.directory
.DS_Store
src/tags
stages:
- test
- build
- deploy
clazy:
stage: test
image: kaidan/neon-bionic
variables:
CMAKE_CXX_COMPILER: clazy
script: utils/travis/build.sh
qmllint:
stage: test
image: kaidan/neon-bionic
script: qmllint $(find . -name "*.qml")
variables:
QT_SELECT: 5
ubuntu-trusty:
stage: build
image: kaidan/ubuntu-trusty
script: utils/travis/build.sh
neon-bionic:
stage: build
image: kaidan/neon-bionic
script: utils/travis/build.sh
debian-sid:
stage: build
image: kaidan/debian-unstable
script: utils/travis/build.sh
archlinux:
stage: build
image: kaidan/archlinux
script: utils/travis/build.sh
linux-appimage:
stage: deploy
image: kaidan/ubuntu-trusty
script: utils/build-linux-appimage.sh
variables:
QXMPP_BUILD: /usr
allow_failure: true
artifacts:
paths:
- "*.AppImage"
- "*.AppImage.zsync"
expire_in: 1 week
click-xenial:
stage: deploy
image: kaidan/ubuntu-touch-xenial
script: utils/travis/build.sh
allow_failure: true
variables:
PLATFORM: ubuntu-touch
artifacts:
paths:
- "*.click"
expire_in: 1 week
windows-mxe:
stage: deploy
image: kaidan/windows-mxe
script:
- utils/build-windows-mxe.sh
- mv build/bin/kaidan.exe kaidan.exe
allow_failure: true
artifacts:
paths:
- "kaidan.exe"
expire_in: 1 week
android:
stage: deploy
image: kdeorg/android-sdk
script:
- sudo apt update
- sudo apt -y install inkscape optipng
- GIT_EXTRA="--branch ${KF5_VERSION}" /opt/helpers/build-kde-dependencies --withProject kirigami
- /opt/helpers/build-cmake qxmpp https://github.com/qxmpp-project/qxmpp.git -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF
- GIT_EXTRA="--branch ${CI_COMMIT_REF_NAME} --recursive" /opt/helpers/build-cmake ${CI_PROJECT_NAME} ${CI_REPOSITORY_URL} -DQTANDROID_EXPORTED_TARGET=kaidan -DANDROID_APK_DIR=${CI_PROJECT_DIR}/src/${CI_PROJECT_NAME}/misc/android -DI18N=1 -DUSE_KNOTIFICATIONS=OFF
- ${CI_PROJECT_DIR}/src/${CI_PROJECT_NAME}/utils/render-logos.sh
- /opt/helpers/create-apk ${CI_PROJECT_NAME}
- mv ${CI_PROJECT_DIR}/build/${CI_PROJECT_NAME}/kaidan_build_apk/build/outputs/apk/kaidan_build_apk-debug.apk ${CI_PROJECT_DIR}
variables:
KF5_VERSION: master
allow_failure: true
artifacts:
paths:
- "kaidan_build_apk-debug.apk"
expire_in: 1 week
mac-osxcross:
stage: deploy
image: kaidan/mac-osxcross
script:
- utils/build-mac-osxcross.sh
- tar -cf kaidan.tar -C build/bin/ kaidan.app
allow_failure: true
artifacts:
paths:
- "kaidan.tar"
expire_in: 1 week
variables:
GIT_SUBMODULE_STRATEGY: recursive
BUILD_SYSTEM: cmake
BUILD_TYPE: Release
[submodule "libs/kaidansf"]
path = libs/kaidansf
url = https://github.com/kaidanim/kaidansf
[submodule "3rdparty/kirigami"]
path = 3rdparty/kirigami
url = https://github.com/KDE/kirigami
[submodule "3rdparty/breeze-icons"]
path = 3rdparty/breeze-icons
url = https://github.com/kde/breeze-icons
[submodule "3rdparty/qxmpp"]
path = 3rdparty/qxmpp
url = https://github.com/qxmpp-project/qxmpp
sudo: required
language: cpp
compiler: gcc
services:
- docker
before_install:
- docker pull debian:sid-slim
cache:
ccache: true
directories:
- /var/cache/apt/archives
sudo: required
dist: trusty
install:
- ./utils/travis/dependencies.sh
script:
- docker run -v $PWD:/mnt/kaidan debian:sid-slim /bin/bash -c "cd /mnt/kaidan/utils; ./travis-dependencies.sh; ./travis-build.sh"
- . utils/travis/common.sh
- env_setup
- ./utils/travis/build.sh
matrix:
include:
- env: BUILD_SYSTEM=cmake
git:
submodules: false
- env: PLATFORM=ubuntu-touch
git:
submodules: false
# only cache apt archives
cache:
directories:
- /var/cache/apt/archives
notifications:
email: false
Subproject commit a4bc2e5f38de971aef396655e6c122ec2a8aaeac
Subproject commit a2b0da8b540186eb4d25d1ae70618f231248d4e5
Subproject commit e6eb0b78d0cb17fccd5ddb60966ba2a0a2d2b593
This diff is collapsed.
Upstream-Name: kaidan
Source: https://git.kaidan.im/kaidan/kaidan/
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Files: src/*
utils/*
misc/*
Copyright: 2016-2019, Linus Jahn <lnj@kaidan.im>
2016-2019, Jonah Brüchert <jbb@kaidan.im>
2017-2019, Ilya Bizyaev <bizyaev@zoho.com>
2018, Allan Nordhøy <epost@anotheragency.no>
2019, Xavier <xavi@delape.net>
2018, Nicolas Fella <nicolas.fella@gmx.de>
2018, Bjarne Roß <ross.b@freenet.de>
2018, SohnyBohny <sohny.bean@streber24.de>
2018, Marco Martin <notmart@gmail.com>
2017, probonopd <probonopd@users.noreply.github.com>
2016, Marzanna <MRZA-MRZA@users.noreply.github.com>
2017-2018, Eike Hein <hein@kde.org>
License: GPL-3+ with OpenSSL exception
Files: i18n/*
Copyright: 2017-2018, Linus Jahn <lnj@kaidan.im>
2017-2018, Jonah Brüchert <jbb@kaidan.im>
2017-2018, Muhammad Nur Hidayat Yasuyoshi <mnh48mail@gmail.com>
2018, Allan Nordhøy <epost@anotheragency.no>
2018, advocatux <advocatux@airpost.net>
2017-2018, Joeke de Graaf <mappack@null.net>
2017, Ilya Bizyaev <bizyaev@zoho.com>
2017, ZatroxDE <zatroxde@outlook.com>
2018, aitzol berasategi <aitzol@disroot.org>
2019, ssantos <ssantos@web.de>
2018, oiseauroch <tobias.ollive@mailoo.org>
2018, Andreas Kleinert <Andy.Kleinert@gmail.com>
2017, Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
License: GPL-3+ with OpenSSL exception
Files: src/StatusBar.cpp
src/StatusBar.h
src/singleapp/*
src/hsluv-c/*
utils/generate-license.py
Copyright: 2016, J-P Nurmi <jpnurmi@gmail.com>
2018-2019, Linus Jahn <lnj@kaidan.im>
2015-2018, Itay Grudev <itay+github.com@grudev.com>
2015, Alexei Boronine <alexei@boronine.com>
2015, Roger Tallada <info@rogertallada.com>
2017, Martin Mitas <mity@morous.org>
License: MIT
Files: src/EmojiModel.cpp
src/EmojiModel.h
qml/elements/EmojiPicker.qml
Copyright: 2017, Konstantinos Sideris <siderisk@auth.gr>
License: GPL-3+
Files: data/images/message_checkmark.svg
Copyright: 2014, Michael Kurz <betheg@bitcloner.org>
License: GPL-3+
Comment:
message_checkmark.svg: Originally from conversations, optimized using SVGO by LNJ <git@lnj.li>
Files: misc/kaidan.svg
misc/kaidan-small-margin.svg
misc/kaidan-128x128.png
data/images/banner.png
Copyright: 2016-2017, Ilya Bizyaev <bizyaev@zoho.com>
2016, MBB <mbb-mail@gmx.de>
License: CC-BY-SA-4.0
Files: data/images/chat.png
Copyright: 2013, Subtle Patterns, Toptal Designers
License: CC-BY-SA-3.0
Comment:
data/images/chat.png: From <https://www.toptal.com/designers/subtlepatterns/inspiration-geometry/>
Files: utils/convert-prl-libs-to-cmake.pl
Copyright: 2016, Konstantin Tokarev <annulen@yandex.ru>
License: MIT-Apple
License: GPL-3+ with OpenSSL exception
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.
.
In addition, as a special exception, the author of this program gives permission
to link the code of its release with the OpenSSL project's "OpenSSL" library (or
with modified versions of it that use the same license as the "OpenSSL"
library), and distribute the linked executables. You must obey the GNU General
Public License in all respects for all of the code used other than "OpenSSL".
If you modify this file, you may extend this exception to your version of the
file, but you are not obligated to do so. If you do not wish to do so, delete
this exception statement from your version.
.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License along with
this package. If not, see <http://www.gnu.org/licenses/>.
.
On Debian systems, the full text of the GNU General Public License version 3 can
be found in the file
`/usr/share/common-licenses/GPL-3'.
License: GPL-3+
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.
.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License along with
this package; if not, write to the Free Software Foundation, Inc., 51 Franklin
St, Fifth Floor, Boston, MA 02110-1301 USA
.
On Debian systems, the full text of the GNU General Public
License version 3 can be found in the file
`/usr/share/common-licenses/GPL-3'.
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License: MIT-Apple
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
Kaidan - Cross platform XMPP client
===================================
License of Kaidan source code and translations:
-----------------------------------------------
Copyright (C) 2016-2017 Kaidan developers and contributors (see source file
comments and the version control log)
Kaidan is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Kaidan is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Kaidan. If not, see <http://www.gnu.org/licenses/>.
Additional permission under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or combining
it with the OpenSSL library (or a modified version of that library),
containing parts covered by the terms of the OpenSSL License, the
licensors of this Program grant you additional permission to convey
the resulting work.
License of Kaidan media (images, sounds):
-----------------------------------------
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0):
http://creativecommons.org/licenses/by-sa/4.0/
Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0):
http://creativecommons.org/licenses/by-sa/3.0/
Copyright (C) 2016-2017 Ilya Bizyaev <bizyaev.game@yandex.ru> (CC BY-SA 4.0):
misc/kaidan.svg
misc/kaidan-128x128.png
Copyright (C) 2017 LNJ <git@lnj.li> (CC BY-SA 4.0):
data/images/fallback-avatar.svg
Copyright (C) 2016 MBB <mbb-mail@gmx.de> (CC BY-SA 4.0):
data/images/banner.png
Copyright (C) 2014 Michael Kurz <betheg@bitcloner.org> (from Conversations) (GPLv3+):
data/images/message_checkmark.svg (optimized using SVGO by LNJ)
Copyright (C) 2013 Subtle Patterns, Toptal Designers (CC BY-SA 3.0):
data/images/chat.png (source: https://www.toptal.com/designers/subtlepatterns/inspiration-geometry/)
Copyright (C) Raja Sandhu, XMPP Standards Foundation (MIT):
data/images/xmpp.svg
Copyright (C) Dandelion Developers (https://github.com/Diaspora-for-Android/dandelion) (GPLv3+):
data/images/diaspora.svg
License of all media files not listed in here:
Copyright (C) 2017 Kaidan developers (CC BY-SA 4.0)
# Kaidan - A user-friendly XMPP client for every device!
[![Build Status](https://travis-ci.org/KaidanIM/Kaidan.svg?branch=master)](https://travis-ci.org/KaidanIM/Kaidan)
[![Release](https://img.shields.io/github/release/kaidanim/kaidan.svg)](https://github.com/kaidanim/kaidan/releases)
[![Downloads](https://img.shields.io/github/downloads/kaidanim/kaidan/total.svg)](https://github.com/kaidanim/kaidan/releases)
[![Issues](https://img.shields.io/github/issues/kaidanim/kaidan.svg)](https://github.com/kaidanim/kaidan/issues)
[![Kaidan MUC](https://search.jabbercat.org/api/1.0/badge?address=kaidan@muc.kaidan.im)](https://i.kaidan.im)
[![Flatpak Build Status](https://binary-factory.kde.org/buildStatus/icon?job=Kaidan_flatpak)](https://binary-factory.kde.org/job/Kaidan_flatpak/)
[![Translation](https://hosted.weblate.org/widgets/kaidan/-/svg-badge.svg)](https://hosted.weblate.org/projects/kaidan/translations/)
[![License](https://img.shields.io/badge/License-GPLv3%2B%20%2F%20CC%20BY--SA%204.0-blue.svg)](https://raw.githubusercontent.com/kaidanim/kaidan/master/LICENSE.txt)
[![license](https://img.shields.io/badge/License-GPLv3%2B%20%2F%20CC%20BY--SA%204.0-blue.svg)](https://raw.githubusercontent.com/kaidanim/kaidan/master/LICENSE)
[![Donations](https://img.shields.io/liberapay/patrons/kaidan.svg?logo=liberapay)](https://liberapay.com/kaidan)
![](http://i.imgur.com/k1Aup3h.png)
![Kaidan screenshot](https://www.kaidan.im/images/screenshot.png)
## About
Kaidan is a simple, user-friendly Jabber/XMPP client providing a modern user-interface
using [Kirigami](https://techbase.kde.org/Kirigami) and [QtQuick](http://wiki.qt.io/Qt_Quick).
The back-end of Kaidan is completely written in C++ using the [gloox](https://camaya.net/gloox/)
XMPP client library and [Qt 5](https://www.qt.io/).
Kaidan is a simple, user-friendly Jabber/XMPP client providing a modern user
interface using [Kirigami][kg] and [QtQuick][qquick]. The back-end of Kaidan is
written in C++ using the [QXmpp][qxmpp] XMPP client library and [Qt 5][qt].
Currently Kaidan only has been tested on GNU/Linux Desktops, but because of the use of Qt we shouldn't have
any problems porting it to all other common platforms, even Android. Nevertheless we will work on another
GUI using Silica for better look & feel on Sailfish OS soon™ (See [KaidanSF](https://github.com/KaidanIM/KaidanSF)).
But if you want to get a client for Sailfish OS _now_, maybe take a look at
[Shmoose](https://github.com/geobra/harbour-shmoose), a fork by an earlier developer of Kaidan.
Kaidan runs on mobile and desktop Linux systems, including Plasma Mobile and
[Ubuntu Touch][openstore]. There are static Windows builds and macOS is also
supported, but we currently can't provide builds for it. The support for the
legacy mobile systems Android and iOS is very experimental and we currently only
provide test builds for [Android][android]. We might support SailfishOS in the
future in case the Sailfish SDK gets an update for Qt.
Kaidan is *not* finished yet, so don't expect it working as well as a finished client will do.
Kaidan is *not* finished yet, so don't expect it working as well as a finished
client will do -- Many features are still missing, many things still need to be
fixed and improved.
## Screenshots
For a list of supported XEPs, have a look at the [Wiki][supp-xeps].
![](http://i.imgur.com/Yfuf6AT.png)
## Installing Kaidan
## Installation
Instead of building Kaidan yourself, you can also just install ready-made builds. On these pages is explained
how to do that:
* [Install the Flatpak](https://invent.kde.org/kde/kaidan/wikis/install/flatpak)
* [Install from OpenStore (Ubuntu Touch)][openstore]
### Debian Stretch based systems
## Building Kaidan
Add our APT repository to your system
### Dependencies
```
sudo apt install apt-transport-https software-properties-common dirmngr gnupg
sudo apt-add-repository "deb https://raw.githubusercontent.com/kaidanim/packages/master stretch main"
sudo apt-key adv --recv-key "210EB0BCA70439F0"
sudo apt update
```
Here are the general dependencies of Kaidan listed:
* [Qt](https://doc.qt.io/qt-5/build-sources.html) (Core Qml Quick Svg Sql QuickControls2) (>= 5.8.0)
* [QXmpp][qxmpp] (>= 0.9.0)
* [Kirigami 2](https://phabricator.kde.org/source/kirigami/) (>= 5.42.0)
* [ECM (extra-cmake-modules)](https://api.kde.org/ecm/manual/ecm.7.html)
* [KNotifications][knotif] (`-DUSE_KNOTIFICATIONS=OFF` to disable)
Then you can install Kaidan
### Build instructions
```bash
sudo apt install kaidan
```
There are guides on how to build Kaidan for each supported platform (currently there are still pages missing):
* [Linux Desktop](https://invent.kde.org/kde/kaidan/wikis/building/linux-debian-based)
* [Ubuntu Touch (click package)](https://invent.kde.org/kde/kaidan/wikis/building/ubuntu-touch)
### Compile it yourself
#### Install all dependencies:
* [Qt](http://doc.qt.io/qt-5/build-sources.html) (Core Qml Quick Sql QuickControls2) (>= 5.7.0)
* [gloox](https://camaya.net/gloox/download/) (>= 1.0.10)
* [Kirigami 2](https://phabricator.kde.org/source/kirigami/) (>= 2.0.0)
Build only dependencies:
* A C++ compiler
* Qt Tools
* CMake
* Git (if you don't want to use tarballs/zips from github)
##### On debian *sid* do the following:
```bash
sudo apt install apt-transport-https git-core cmake build-essential zlib1g-dev \
libgloox-dev libnotify-bin libqt5quick5 libqt5quickcontrols2-5 libqt5quickwidgets5 \
libqt5qml5 libqt5gui5 libqt5core5a qtdeclarative5-dev qttools5-dev qt5-default \
qtquickcontrols2-5-dev kirigami2-dev
```
##### On debian *stretch* do the following:
Debian *stretch* has *no* Kirigami 2 packages, so we have to install them from external sources:
```bash
sudo apt install apt-transport-https software-properties-common dirmngr gnupg
sudo apt-add-repository "deb https://raw.githubusercontent.com/kaidanim/packages/master sid main"
sudo apt-key adv --recv-key "210EB0BCA70439F0"
sudo apt update
sudo apt install apt-transport-https git-core cmake build-essential zlib1g-dev \
libgloox-dev libnotify-bin libqt5quick5 libqt5quickcontrols2-5 libqt5quickwidgets5 \
libqt5qml5 libqt5gui5 libqt5core5a qtdeclarative5-dev qttools5-dev qt5-default \
qtquickcontrols2-5-dev kirigami2-dev
```
#### Get the source code:
```bash
git clone https://github.com/kaidanim/kaidan
```
#### Finally compile it:
```bash
mkdir kaidan/build ; cd kaidan/build
cmake .. -DI18N=1
make -j$(nproc)
```
#### Now you can run Kaidan:
```bash
./kaidan
```
#### If you like it, install it by:
```bash
sudo make install
```
----
![GPLv3](https://www.gnu.org/graphics/gplv3-127x51.png)
![CC BY-SA 4.0](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)
[kg]: https://kde.org/products/kirigami/
[qquick]: https://wiki.qt.io/Qt_Quick
[qxmpp]: http://qxmpp.org
[qt]: https://www.qt.io/
[openstore]: https://open-store.io/app/im.kaidan.kaidan
[android]: https://www.kaidan.im/download/#android
[supp-xeps]: https://invent.kde.org/kde/kaidan/wikis/Supported-XEPs
[knotif]: https://api.kde.org/frameworks/knotifications/html/index.html
# Changelog
### Version 0.4.0 (UNRELEASED)
Build system:
* Support for Android (ilyabizyaev)
* Support for Ubuntu Touch (jbb)
* Support for MacOS (ilyabizyaev)
* Support for Windows (ilyabizyaev)
* Support for iOS (ilyabizyaev)
* Add KDE Flatpak (jbb)
* Switch Android builds to CMake with ECM (ilyabizyaev)
* Improve Linux AppImage build script (ilyabizyaev)
* Add additional image formats in AppImage (jbb)
Back-end:
* Add XEP-0352: Client State Indication (gloox/QXmpp) (lnj)
* Add media/file sharing (lnj)
* Full back-end rewrite to QXmpp (lnj)
* Implement XEP-0363: HTTP File Upload and UploadManager for QXmpp (lnj)
* Use XEP-0280: Message Carbons from QXmpp (lnj)
* Use XEP-0352: Client State Indication from QXmpp (lnj)
* Check incoming messages for media links (lnj)
* Implement XEP-0308: Last Message Correction (lnj, jbb)
* Make attachments downloadable (lnj)
* Implement XEP-0382: Spoiler messages (xavi)
* Kaidan is now offline usable (lnj)
* Kaidan is able to open xmpp: URIs (lnj)
User interface:
* New logo (ilyabizyaev)
* Show presence information of contacts (lnj)
* Add EmojiPicker from Spectral (jbb)
* Highlight links in chat and make links clickable (lnj)
* New about dialog instead of the about page (ilyabizyaev)
* Add image preview in chat and before sending (lnj)
* Send messages on Enter, new line on Ctrl-Enter (ilyabizyaev)
* 'Add contact' is now the main action on the contacts page (lnj)
* Elide contact names and messages in roster (lnj)
* Chat page redesign (ilyabizyaev)
* Display passive notifications when trying to use online actions while offline (lnj)
* Automatically reconnect on connection loss (lnj)
* Contacts page: Display whether online in title (lnj)
* Add different connection error messages (jbb)
* Use QApplication when building with QWidgets (notmart)
* Ask user to approve subscription requests (lnj)
* Remove contact action: Make JIDs bold (lnj)
* Add contact sheet: Ask for optional message to contact (lnj)
* Add empty chat page with help notice to be displayed on start up (jbb)
* Redesign log in page (sohnybohny)
* Add Copy Invitaion URL action (jbb)
* Add 'press and hold' functionality for messages context menu (jbb)
* Add copy to clipboard function for messages (jbb)
* Add mobile file chooser (jbb)
* Highlight the currently opened chat on contacts page (lnj)
* Remove predefined window sizes (lnj)
* Use new Kirigami application header (nicofee)
* Make images open externally when clicked (jbb)
* Use QtQuickCompiler (jbb)
* Display upload progress bar (lnj)
* Add text+color avatars as fallback (lnj, jbb)
* Remove diaspora log in option (lnj)
Misc:
* Forget passwords on log out (lnj)
* Append four random chars to resource (lnj)
* Save passwords in base64 instead of clear text (lnj)
* Generate the LICENSE file automatically with all git authors (lnj)
* Store ubuntu touch builds as job artifacts (lnj)
* Add GitLab CI integration (jbb)
Fixes:
* Fix TLS connection bug (lnj)
* Don't send notifications when receiving own messages via. carbons (lnj)
* Fix timezone bug of message timestamps (lnj)
* Fix several message editing bugs (lnj)
* Fix black icons (jbb)
* Fix richt text labels in Plasma Mobile (lnj)
* Small Plasma Mobile fixes (jbb)
### Version 0.3.2 (released on 25.11.2017)
* Added AppImage build script (#138) (@JBBgameich)
* Use relative paths to find resource files (#143) (@LNJ2)
......
{
"template": "custom",
"build_dir": "./bin/ubuntu-touch/",
"build": "../../utils/build-linux-click.sh",
"kill": "kaidan",
"dependencies_build": [
"ninja-build",
"extra-cmake-modules"
],
"libraries": {
"qxmpp": {
"template": "cmake",
"src_dir": "3rdparty/qxmpp",
"make_jobs": 2,
"build_args": [
"-DCMAKE_BUILD_TYPE=Release",
"-DBUILD_TESTS=OFF",
"-DBUILD_EXAMPLES=OFF",
"-DCMAKE_PREFIX_PATH=../../../bin/ubuntu-touch/tmp",
"-DCMAKE_INSTALL_PREFIX=../../../bin/ubuntu-touch/tmp"
],
"postbuild": "make install"
}
}
}
# - Try to find GLOOX
# Find GLOOX headers, libraries and the answer to all questions.
#
# GLOOX_FOUND True if gloox got found
# GLOOX_INCLUDE_DIR Location of gloox headers
# GLOOX_LIBRARIES List of libaries to use gloox
#
# Copyright (c) 2009 Nigmatullin Ruslan <euroelessar@gmail.com>
#
# Redistribution and use is allowed according to the terms of the New
# BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
FIND_PATH( GLOOX_INCLUDE_DIR "gloox/gloox.h" )
FIND_LIBRARY( GLOOX_LIBRARIES gloox )
if( GLOOX_LIBRARIES AND GLOOX_INCLUDE_DIR )
message( STATUS "Found gloox: ${GLOOX_LIBRARIES}" )
set( GLOOX_FOUND 1 )
else( GLOOX_LIBRARIES AND GLOOX_INCLUDE_DIR )
message( STATUS "Could NOT find gloox" )
endif( GLOOX_LIBRARIES AND GLOOX_INCLUDE_DIR )
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 187.50293 187.50293"><circle cx="93.852" cy="93.806" r="93.678" fill="#207be6"/><path d="M37.984 37.837h113.43v112.806H37.984zm141.788 141.788h113.43V292.43h-113.43z" fill="none"/><path d="M107.337 133.213l-9.102-12.714c-2.43-3.403-4.405-6.05-4.51-6.05-.113 0-3.932 5.143-9.055 12.166a793.067 793.067 0 0 1-8.951 12.165c-.142 0-17.582-12.288-17.63-12.41-.018-.067 3.923-5.861 8.763-12.866 4.84-7.013 8.8-12.855 8.8-12.997 0-.217-1.569-.766-13.876-4.868L47.74 90.951c-.123-.048.596-2.486 3.091-10.341 1.796-5.663 3.3-10.332 3.346-10.389.048-.057 6.683 2.07 14.746 4.726 8.054 2.647 14.708 4.812 14.793 4.812.076 0 .17-.123.208-.284.029-.142.095-6.995.152-15.237.056-8.224.141-15.03.189-15.124.085-.114 2.344-.142 10.653-.142 5.804 0 10.615.038 10.681.094.095.057.255 4.585.53 14.746.434 16.694.444 16.92.708 16.92.095 0 6.485-2.136 14.189-4.754a480.141 480.141 0 0 1 14.084-4.65c.151.179 6.475 20.738 6.39 20.814-.038.047-6.466 2.24-14.274 4.887-10.747 3.648-14.216 4.868-14.244 5.019-.029.113 3.667 5.643 8.374 12.515 4.632 6.768 8.394 12.364 8.375 12.42a916.375 916.375 0 0 1-17.506 12.894c-.056 0-2.259-2.997-4.887-6.664z" fill="#fafafa"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<clipPath id="a">
<path fill="#338000" d="M0 0h256v256H0z"/>
</clipPath>
</defs>
<path fill="#338000" d="M0 0h256v256H0z"/>
<path d="M99.3 130.8l57-84.8 113.5 113.5-9.2 132.6z" clip-path="url(#a)" fill="#000007" opacity=".3"/>
<path d="M173 88.4a45 54.4 0 0 1-45 54.5 45 54.4 0 0 1-45-55 45 54.4 0 0 1 45-54 45 54.4 0 0 1 45 54.3zm61 107.2a106 45 0 0 1-106 45 106 45 0 0 1-106-45 106 45 0 0 1 106-45 106 45 0 0 1 106 45z" fill="#55d400"/>
<path d="M22 195.3h212V256H22z" fill="#55d400"/>
</svg>
<RCC>
<qresource prefix="/images/">
<file alias="banner.png">banner.png</file>
<file alias="chat.png">chat.png</file>
<file alias="message_checkmark.svg">message_checkmark.svg</file>
<file alias="kaidan.svg">kaidan.svg</file>
</qresource>
<qresource prefix="/org/kde/kirigami/icons/">
<file alias="kaidan.svg">kaidan.svg</file>
</qresource>
</RCC>
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" height="181.44" viewBox="0 0 176.486 181.437" width="176.49"><linearGradient id="a" gradientUnits="userSpaceOnUse" x2="-1807.2" gradientTransform="translate(1916)" y1="125.86" x1="-1807.2"><stop stop-color="#1b3967" offset=".011"/><stop stop-color="#13b5ea" offset=".467"/><stop stop-color="#002b5c" offset=".995"/></linearGradient><path d="M136.29 14.189c.077 1.313-1.786.968-1.786 2.293 0 38.551-44.72 96.831-89.847 108.19v1.182c59.957-5.51 126.73-66.8 128.24-125.85l-36.6 14.189z" fill="url(#a)"/><path d="M120.23 17.96c.077 1.313.121 2.633.121 3.958 0 38.551-30.7 90.497-75.827 101.86v1.637c59.065-3.823 105.81-63.023 105.81-109.2a67.1 67.1 0 0 0-.371-7.056l-29.73 8.796z" fill="#E96D1F"/><linearGradient id="b" gradientUnits="userSpaceOnUse" x2="-1073.2" gradientTransform="matrix(-1 0 0 1 -1008.2 0)" y1="126.85" x1="-1073.2"><stop stop-color="#1b3967" offset=".011"/><stop stop-color="#13b5ea" offset=".467"/><stop stop-color="#002b5c" offset=".995"/></linearGradient><path d="M36.599 14.189c-.077 1.313 1.787.968 1.787 2.293 0 38.551 46.558 97.366 91.688 108.73v1.639C70.121 121.331 1.514 59.051.004.001L36.603 14.19z" fill="url(#b)"/><path d="M54.731 18.932a68.401 68.401 0 0 0-.12 3.957c0 38.551 30.699 90.497 75.827 101.86v1.639c-59.044-2.79-105.81-63.024-105.81-109.2 0-2.375.128-4.729.371-7.056l29.73 8.798z" fill="#A0CE67"/><path d="M24.713 9.583l7.617 2.722a84.24 84.24 0 0 0-.066 3.225c0 41.219 37.271 98.204 87.272 107.12 3.245 1.088 7.538 2.077 10.932 2.931v1.638c-65.254-5.56-111.1-71.866-105.76-117.64z" fill="#439639"/><path d="M150.34 8.76l-7.833 2.625c.041.963.191 2.203.191 3.173 0 41.219-37.272 98.205-87.274 107.12-3.243 1.089-7.538 2.077-10.93 2.932v1.639c68.344-8.66 111.18-71.719 105.84-117.49z" fill="#D9541E"/><path d="M14.576 166.71L1.188 152.06h11.643l9.127 10.268 9.129-10.268H42.73l-13.387 14.646 14.401 14.728h-12.09l-9.697-10.67-9.693 10.67H.172l14.404-14.73zm32.52-14.65h13.836l10.183 18.905 10.183-18.905H95.13v29.374h-8.762v-21.096h-.08l-11.807 21.096h-6.733l-11.807-21.096h-.082v21.096h-8.764v-29.37zm54.154 0h24.546c8.559 0 10.628 4.302 10.628 10.063v2.516c0 4.381-1.908 9.41-8.275 9.41h-17.894v7.385h-9.005v-29.38zm9 14.69h13.997c2.109 0 2.924-1.377 2.924-3.123v-1.135c0-1.99-.976-3.127-3.694-3.127H110.25v7.38zm31.06-14.69h24.546c8.561 0 10.63 4.302 10.63 10.063v2.516c0 4.381-1.907 9.41-8.275 9.41h-17.893v7.385h-9.008v-29.38zm9.01 14.69h13.996c2.11 0 2.922-1.377 2.922-3.123v-1.135c0-1.99-.974-3.127-3.693-3.127H150.32v7.38z"/></svg>
\ No newline at end of file
# Kaidan QML API documentation
This is the documentation of all functions and classes accessible from the
QML-side of the XMPP client Kaidan. This can be helpful, if you want to write a
new GUI for it as [KaidanSF](https://github.com/kaidanim/kaidansf).
## Main QML library - `io.github.kaidanim`
Use this to import the main Kaidan QML-library:
```qml
import io.github.kaidanim 1.0
```
This will be needed to use all registered QML types of Kaidan.
## Kaidan
These are the global functions and variables of the main Kaidan class.
### `kaidan.addContact(jid, name)`
This will send a new request to add a new contact to the roster.
* `jid = string`: The bare JID of the new contact.
* `name = string`: The preferred nickname of the contact in the roster, can be
empty ("").
### `kaidan.avatarStorage = AvatarFileStorage`
An AvatarStorage object to load automatically updating avatars.
### `kaidan.connectionState = bool`
Is true, when connected to a server.
### `kaidan.chatPartner = string`
The current recipient JID. When changed, a filter will be added to the message DB.
### `kaidan.jid = string`
The JID to use for the connection. It will be saved and restored in the settings.
### `kaidan.jidResource = string`
The XMPP resource to use for the connection. It will be saved and restored in
the settings.
### `kaidan.password = string`
The password to use for the connection. It will be saved and restored in the settings.
### `kaidan.mainConnect()`
Connects to the XMPP server of the set account and initialises all subcontrollers.
### `kaidan.mainDisconnect()`
Disconnect from XMPP server.
### `kaidan.messageModel = MessageModel`
This is the model needed to display the messages from the SQLite database. It
can be used as model in ListViews.
### `kaidan.newLoginNeeded()`
Will return true, if there is no account data to use for connecting.
### `kaidan.removeContact(jid)`
This will send a request to remove the contact that has the given `jid`.
* `jid = string`: The bare JID of the contact to remove.
### `kaidan.removeNewLinesFromString(input)`
This will use the QString::simplify function to remove all unneeded spaces, new lines, etc.
Will return the simplified string.
### `kaidan.rosterModel = RosterModel`
The model for displaying the roster contacts from the SQLite database. It can be
used in ListViews.
### `kaidan.sendMessage(recipient, message)`
This will send the `message` to the `recipient`.
* `recipient = string`: The bare JID of the recipient; for example:
"bob@jabber.aserver.org".
* `message = string`: The message to be sent.
### `kaidan.getResourcePath(resourceName)`
Get an absolute path of a data file; returns a file:// path
* `resourceName = string`: the relative path in the data folder of Kaidan; for example:
"images/banner.png"
### `kaidan.getVersionString()`
Get the full version string of this Kaidan build; returns a string, for example
"0.1.0" or "0.2.0-dev"
### `kaidan.connectionStateConnected()`
Signal, emitted when Kaidan has connected to a XMPP server.
### `kaidan.connectionStateDisconnected()`
Signal, emitted when Kaidan was disconnected or a try to connect wasn't successful.
## AvatarFileStorage
This is a simple storage to cache avatars. They will be updated automatically, whenever
an avatar has been changed.
### `getHashOfJid(jid)`
Will return a SHA3-256 hex hash string or an empty string if no avatar set for this JID.
### `getAvatarUrl(jid)`
Will return a file:// url to the local file of the JID's avatar.
## MessageModel
This is a QSqlTableModel. The table contains the following rows:
### `author = string`
The JID of author of the message.
### `author_resource = string`
The JID resource of the author of the message.
### `recipient = string`
The JID of the recipient of the message.
### `recipient_resource = string`
The JID resource of the recipient of the message.
### `timestamp = string`
The timestamp when the message was sent.
### `message = string`
The message body.
### `id = string`
The message id.
### `isDelivered = bool`
Is true, if the a delivery confirmation has arrived from the recipient's client.
## RosterModel
This is a QSqlTableModel. The table contains the following rows:
### `jid = string`
The JID of the contact.
### `name = string`
The nick name for this contact.
### `lastExchanged = string`
The date on which the last time a message was exchanged. (You can use this for
sorting)
### `unreadMessages = int`
The number of unread messages from this contact.
###### Copyright (C) 2017 LNJ <<git@lnj.li>>; GNU General Public License, Version 3.0 or later
<RCC>
<qresource prefix="/i18n">
<file>kaidan_de.qm</file>
<file>kaidan_fr.qm</file>
<file>kaidan_ja.qm</file>
<file>kaidan_ru.qm</file>
<file>kaidan_ms.qm</file>
<file>ca.qm</file>
<file>cs.qm</file>
<file>de.qm</file>
<file>de_AT.qm</file>
<file>es.qm</file>
<file>eu.qm</file>
<file>fr.qm</file>
<file>it.qm</file>
<file>ja.qm</file>
<file>ms.qm</file>
<file>nb.qm</file>
<file>nl.qm</file>
<file>pl.qm</file>
<file>pt.qm</file>
<file>ru.qm</file>
</qresource>
</RCC>
......@@ -5,6 +5,8 @@ find_package(Qt5LinguistTools)
file(GLOB FILES_TO_TRANSLATE
${CMAKE_SOURCE_DIR}/src/*.cpp
${CMAKE_SOURCE_DIR}/src/qml/*.qml
${CMAKE_SOURCE_DIR}/src/qml/elements/*.qml
${CMAKE_SOURCE_DIR}/src/qml/settings/*.qml
)
file(GLOB TS_FILES
${CMAKE_CURRENT_LIST_DIR}/*.ts
......@@ -47,7 +49,7 @@ set(LRELEASE_ARGS -compress -nounfinished -removeidentical -silent)
foreach(TS_FILE ${TS_FILES})
get_filename_component(FILENAME ${TS_FILE} NAME_WE) # only name without extension
set(QM_FILE "${PROJECT_NAME}_${FILENAME}.qm") # name for the generated qm file
set(QM_FILE "${FILENAME}.qm") # name for the generated qm file
set(QM_FILES ${QM_FILES} "${CMAKE_CURRENT_BINARY_DIR}/${QM_FILE}")
add_custom_command(
......@@ -69,6 +71,7 @@ set(I18N_QRC_NAME 0_i18n)
set(I18N_QRC_INPUT ${CMAKE_CURRENT_LIST_DIR}/${I18N_QRC_NAME}.qrc)
set(I18N_QRC_COPY ${CMAKE_CURRENT_BINARY_DIR}/kaidan_i18n.qrc)
set(I18N_QRC_CPP ${CMAKE_CURRENT_BINARY_DIR}/qrc_kaidan_i18n.cpp)
set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/qrc_kaidan_i18n.cpp PROPERTY SKIP_AUTOGEN ON)
# Copy the QRC file to the output directory, because the files listed in the
# qrc file are relative to that directory.
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -2,16 +2,34 @@
<qresource prefix="/">
<file alias="qml/main.qml">src/qml/main.qml</file>
<file alias="qml/RosterPage.qml">src/qml/RosterPage.qml</file>
<file alias="qml/RosterAddContactSheet.qml">src/qml/RosterAddContactSheet.qml</file>
<file alias="qml/RosterRemoveContactSheet.qml">src/qml/RosterRemoveContactSheet.qml</file>
<file alias="qml/LoginPage.qml">src/qml/LoginPage.qml</file>
<file alias="qml/ChatPage.qml">src/qml/ChatPage.qml</file>
<file alias="qml/AboutPage.qml">src/qml/AboutPage.qml</file>
<file alias="qml/AboutDialog.qml">src/qml/AboutDialog.qml</file>
<file alias="qml/GlobalDrawer.qml">src/qml/GlobalDrawer.qml</file>
<file alias="qml/EmptyChatPage.qml">src/qml/EmptyChatPage.qml</file>
<file alias="qml/elements/SubRequestAcceptSheet.qml">src/qml/elements/SubRequestAcceptSheet.qml</file>
<file alias="qml/elements/RosterAddContactSheet.qml">src/qml/elements/RosterAddContactSheet.qml</file>
<file alias="qml/elements/RosterRemoveContactSheet.qml">src/qml/elements/RosterRemoveContactSheet.qml</file>
<file alias="qml/elements/RosterListItem.qml">src/qml/elements/RosterListItem.qml</file>
<file alias="qml/elements/MessageCounter.qml">src/qml/elements/MessageCounter.qml</file>
<file alias="qml/elements/ChatMessage.qml">src/qml/elements/ChatMessage.qml</file>
<file alias="qml/elements/ChatMessageImage.qml">src/qml/elements/ChatMessageImage.qml</file>
<file alias="qml/elements/RoundImage.qml">src/qml/elements/RoundImage.qml</file>
<file alias="qml/elements/IconButton.qml">src/qml/elements/IconButton.qml</file>
<file alias="qml/elements/FileChooser.qml">src/qml/elements/FileChooser.qml</file>
<file alias="qml/elements/FileChooserDesktop.qml">src/qml/elements/FileChooserDesktop.qml</file>
<file alias="qml/elements/FileChooserMobile.qml">src/qml/elements/FileChooserMobile.qml</file>
<file alias="qml/elements/SendMediaSheet.qml">src/qml/elements/SendMediaSheet.qml</file>
<file alias="qml/elements/MediaPreviewImage.qml">src/qml/elements/MediaPreviewImage.qml</file>
<file alias="qml/elements/MediaPreviewOther.qml">src/qml/elements/MediaPreviewOther.qml</file>
<file alias="qml/elements/EmojiPicker.qml">src/qml/elements/EmojiPicker.qml</file>
<file alias="qml/elements/TextAvatar.qml">src/qml/elements/TextAvatar.qml</file>
<file alias="qml/settings/SettingsItem.qml">src/qml/settings/SettingsItem.qml</file>
<file alias="qml/settings/SettingsPage.qml">src/qml/settings/SettingsPage.qml</file>
<file alias="qml/settings/SettingsSheet.qml">src/qml/settings/SettingsSheet.qml</file>
<file alias="qml/settings/ChangePassword.qml">src/qml/settings/ChangePassword.qml</file>
<file alias="qtquickcontrols2.conf">misc/qtquickcontrols2.conf</file>
</qresource>
......
<RCC>
<qresource prefix="/icons/breeze">
<file alias="index.theme">3rdparty/breeze-icons/icons/index.theme</file>
</qresource>
<qresource prefix="/icons/breeze/actions/22">
<file alias="application-menu.svg">3rdparty/breeze-icons/icons/actions/22/application-menu.svg</file>
<file alias="bookmark-remove.svg">3rdparty/breeze-icons/icons/actions/22/bookmark-remove.svg</file>
<file alias="document-decrypt.svg">3rdparty/breeze-icons/icons/actions/22/document-decrypt.svg</file>
<file alias="contact-new.svg">3rdparty/breeze-icons/icons/actions/22/contact-new.svg</file>
<file alias="dialog-close.svg">3rdparty/breeze-icons/icons/actions/22/dialog-close.svg</file>
<file alias="folder-sync.svg">3rdparty/breeze-icons/icons/actions/22/folder-sync.svg</file>
<file alias="go-next.svg">3rdparty/breeze-icons/icons/actions/22/go-next.svg</file>
<file alias="go-previous.svg">3rdparty/breeze-icons/icons/actions/22/go-previous.svg</file>
<file alias="go-up.svg">3rdparty/breeze-icons/icons/actions/22/go-up.svg</file>
<file alias="handle-left.svg">3rdparty/breeze-icons/icons/actions/22/handle-left.svg</file>
<file alias="handle-right.svg">3rdparty/breeze-icons/icons/actions/22/handle-right.svg</file>
<file alias="help-about.svg">3rdparty/breeze-icons/icons/actions/22/help-about.svg</file>
<file alias="mail-invitation.svg">3rdparty/breeze-icons/icons/actions/22/mail-invitation.svg</file>
<file alias="overflow-menu.svg">3rdparty/breeze-icons/icons/actions/22/overflow-menu.svg</file>
<file alias="system-shutdown.svg">3rdparty/breeze-icons/icons/actions/22/system-shutdown.svg</file>
<file alias="view-list-icons.svg">3rdparty/breeze-icons/icons/actions/22/view-list-icons.svg</file>
<file alias="go-parent-folder.svg">3rdparty/breeze-icons/icons/actions/22/go-parent-folder.svg</file>
<file alias="folder.svg">3rdparty/breeze-icons/icons/places/22/folder.svg</file>
<file alias="text-x-plain.svg">3rdparty/breeze-icons/icons/mimetypes/22/text-x-plain.svg</file>
<file alias="tab-close.svg">3rdparty/breeze-icons/icons/actions/22/tab-close.svg</file>
<file alias="password-show-on.svg">3rdparty/breeze-icons/icons/actions/22/password-show-on.svg</file>
<file alias="password-show-off.svg">3rdparty/breeze-icons/icons/actions/22/password-show-off.svg</file>
<file alias="settings-configure.svg">3rdparty/breeze-icons/icons/actions/22/settings-configure.svg</file>
<file alias="lock.svg">3rdparty/breeze-icons/icons/actions/22/lock.svg</file>
</qresource>
<qresource prefix="/icons/breeze/actions/16">
<file alias="document-send.svg">3rdparty/breeze-icons/icons/actions/16/document-send.svg</file>
</qresource>
<qresource prefix="/icons/breeze/actions/symbolic">
<file alias="document-send-symbolic.svg">3rdparty/breeze-icons/icons/actions/symbolic/document-send-symbolic.svg</file>
<file alias="go-next-symbolic.svg">3rdparty/breeze-icons/icons/actions/symbolic/go-next-symbolic.svg</file>
<file alias="go-previous-symbolic.svg">3rdparty/breeze-icons/icons/actions/symbolic/go-previous-symbolic.svg</file>
<file alias="edit-symbolic.svg">3rdparty/breeze-icons/icons/actions/symbolic/edit-symbolic.svg</file>
</qresource>
<qresource prefix="/icons/breeze/mimetypes/64">
<file alias="image-jpeg.svg">3rdparty/breeze-icons/icons/mimetypes/64/image-jpeg.svg</file>
<file alias="video-mp4.svg">3rdparty/breeze-icons/icons/mimetypes/64/video-mp4.svg</file>
<file alias="x-office-document.svg">3rdparty/breeze-icons/icons/mimetypes/64/x-office-document.svg</file>
<file alias="audio-mp3.svg">3rdparty/breeze-icons/icons/mimetypes/64/audio-mp3.svg</file>
</qresource>
<qresource prefix="/icons/breeze/mimetypes/22">
<file alias="text-x-plain.svg">3rdparty/breeze-icons/icons/mimetypes/22/text-x-plain.svg</file>
</qresource>
<qresource prefix="icons/breeze/preferences/32">
<file alias="preferences-desktop-emoticons.svg">3rdparty/breeze-icons/icons/preferences/32/preferences-desktop-emoticons.svg</file>
</qresource>
</RCC>
Subproject commit fc485b72086a390ce640847ccd4dbab823b87bac
<?xml version="1.0"?>
<manifest package="@APPLICATION_ID@" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="@VERSION_STRING@" android:versionCode="@ANDROID_VERSION_CODE@" android:installLocation="auto">
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="@APPLICATION_DISPLAY_NAME@" android:icon="@mipmap/icon">
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="Kaidan" android:screenOrientation="unspecified" android:launchMode="singleTop" android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- Application arguments -->
<!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ -->
<!-- Application arguments -->
<meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
<meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
<meta-data android:name="android.app.repository" android:value="default"/>
<meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
<meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
<!-- Deploy Qt libs as part of package -->
<meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
<meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
<meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
<!-- Run with local libs -->
<meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
<meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
<meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
<meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
<meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
<!-- Used to specify custom system library path to run with local system libs -->
<!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> -->
<!-- Messages maps -->
<meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
<meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
<meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
<!-- Messages maps -->
<!-- Splash screen -->
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash"/>
<meta-data android:name="android.app.splash_screen_sticky" android:value="true"/>
<!-- Splash screen -->
<!-- Background running -->
<!-- Warning: changing this value to true may cause unexpected crashes if the
application still try to draw after
"applicationStateChanged(Qt::ApplicationSuspended)"
signal is sent! -->
<meta-data android:name="android.app.background_running" android:value="false"/>
<!-- Background running -->
<!-- auto screen scale factor -->
<meta-data android:name="android.app.auto_screen_scale_factor" android:value="true"/>
<!-- auto screen scale factor -->
<!-- extract android style -->
<!-- available android:values :
* full - useful QWidget & Quick Controls 1 apps
* minimal - useful for Quick Controls 2 apps, it is much faster than "full"
* none - useful for apps that don't use any of the above Qt modules
-->
<meta-data android:name="android.app.extract_android_style" android:value="minimal"/>
<!-- extract android style -->
</activity>
<!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
</application>
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="21"/>
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
Remove the comment if you do not require these default permissions. -->
<!-- %%INSERT_PERMISSIONS -->
<!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
Remove the comment if you do not require these default features. -->
<!-- %%INSERT_FEATURES -->
</manifest>
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
}
allprojects {
repositories {
jcenter()
}
}
apply plugin: 'com.android.application'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
android {
/*******************************************************
* The following variables:
* - androidBuildToolsVersion,
* - androidCompileSdkVersion
* - qt5AndroidDir - holds the path to qt android files
* needed to build any Qt application
* on Android.
*
* are defined in gradle.properties file. This file is
* updated by QtCreator and androiddeployqt tools.
* Changing them manually might break the compilation!
*******************************************************/
compileSdkVersion androidCompileSdkVersion.toInteger()
buildToolsVersion androidBuildToolsVersion
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
res.srcDirs = [qt5AndroidDir + '/res', 'res']
resources.srcDirs = ['src']
renderscript.srcDirs = ['src']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
}
lintOptions {
abortOnError false
}
}
#Mon Feb 20 10:43:22 EST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.4-bin.zip
This diff is collapsed.