1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

qTox 1.3.0 release

All:
- New and improved sound code
- New HTTPS ToxMe protocol support
- Translation updates
- Miscellaneous fixes and polishing
OSX:
- Video!
Windows:
- Updater now works better with Portable mode
This commit is contained in:
tux3 2016-03-12 00:33:16 +01:00
commit b69042ec40
No known key found for this signature in database
GPG Key ID: 7E086DD661263264
1058 changed files with 12354 additions and 8295 deletions

View File

@ -1,85 +1,13 @@
sudo: required
dist: trusty
language: cpp
compiler:
- gcc
sudo: true
before_install:
# Qt >= 5.2
- sudo add-apt-repository -y ppa:beineri/opt-qt542
# GCC >=4.8
- if [ "$CXX" == "g++" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
- if [ "$CXX" == "clang++" ]; then sudo add-apt-repository -y ppa:h-rayflood/llvm; fi
- sudo apt-get update -qq
install:
# install needed Qt stuff
- sudo apt-get install -y build-essential qt54base qt54script qt54svg qt54tools qt54xmlpatterns libopenal-dev libxss-dev qrencode libqrencode-dev libglib2.0-dev libgdk-pixbuf2.0-dev libgtk2.0-dev libtool autotools-dev automake checkinstall check libvpx-dev
# install needed GCC version and set VM to use
- if [ "$CC" == "gcc" ]; then sudo apt-get install -qq gcc-4.9; fi
- if [ "$CC" == "gcc" ]; then export CC="gcc-4.9"; fi
- if [ "$CXX" == "g++" ]; then sudo apt-get install -qq g++-4.9; fi
- if [ "$CXX" == "g++" ]; then export CXX="g++-4.9"; fi
# clang
- if [ "$CXX" == "clang++" ]; then sudo apt-get install --allow-unauthenticated -qq clang-3.4; fi
- if [ "$CXX" == "clang++" ]; then export CXX="clang++-3.4"; fi
before_script:
# libopus
- wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz > /dev/null
- tar xzf opus-1.0.3.tar.gz > /dev/null
- cd opus-1.0.3
- ./configure > /dev/null
- make -j$(nproc) > /dev/null
- sudo make install > /dev/null
- cd ..
# ffmpeg
- if [ ! -e "libs" ]; then mkdir libs; fi
- if [ ! -e "ffmpeg" ]; then mkdir ffmpeg; fi
#
- cd libs/
- export PREFIX_DIR="$PWD"
#
- cd ../ffmpeg
- wget http://ffmpeg.org/releases/ffmpeg-2.7.2.tar.bz2
- tar xf ffmpeg*
- cd ffmpeg*
- ./configure --prefix="$PREFIX_DIR" --enable-shared --disable-static --disable-programs --disable-protocols --disable-doc --disable-sdl --disable-avfilter --disable-avresample --disable-filters --disable-iconv --disable-network --disable-muxers --disable-postproc --disable-swresample --disable-swscale-alpha --disable-dct --disable-dwt --disable-lsp --disable-lzo --disable-mdct --disable-rdft --disable-fft --disable-faan --disable-vaapi --disable-vdpau --disable-zlib --disable-xlib --disable-bzlib --disable-lzma --disable-encoders --disable-yasm --enable-memalign-hack
- make -j$(nproc)
- make install
- cd ../../
# filter_audio
- git clone https://github.com/irungentoo/filter_audio
- cd filter_audio
- make -j$(nproc)
- sudo make install
- cd ..
# libsodium
- git clone git://github.com/jedisct1/libsodium.git
- cd libsodium
- git checkout tags/1.0.3
- ./autogen.sh
- ./configure && make -j$(nproc)
- sudo checkinstall --install --pkgname libsodium --pkgversion 1.0.0 --nodoc -y
- sudo ldconfig
- cd ..
# toxcore
- git clone https://github.com/irungentoo/toxcore.git
- cd toxcore
- autoreconf -if
- ./configure
- make -j$(nproc)
- sudo make install
- echo '/usr/local/lib/' | sudo tee -a /etc/ld.so.conf.d/locallib.conf
- sudo ldconfig
- cd ..
# Qt
- source /opt/qt54/bin/qt54-env.sh
os:
- linux
- osx
script:
- qmake qtox.pro QMAKE_CC="$CC" QMAKE_CXX="$CXX"
- $CC --version
- $CXX --version
- make -j10
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then bash ./.travis/build-ubuntu_14_04.sh; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then bash ./osx/qTox-Mac-Deployer-ULTIMATE.sh -i ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then bash ./osx/qTox-Mac-Deployer-ULTIMATE.sh -b ; fi

101
.travis/build-ubuntu_14_04.sh Executable file
View File

@ -0,0 +1,101 @@
#!/bin/bash
#
# Copyright © 2015-2016 by The qTox Project
#
# This program is libre 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 program. If not, see <http://www.gnu.org/licenses/>.
# Qt 5.3, since that's the lowest supported version
sudo add-apt-repository -y ppa:beineri/opt-qt532-trusty
sudo apt-get update -qq
# install needed Qt, OpenAL, opus, qrencode, GTK tray deps, sqlcipher
sudo apt-get install -y build-essential \
qt53base \
qt53script \
qt53svg \
qt53tools \
qt53xmlpatterns \
libopenal-dev \
libxss-dev qrencode \
libqrencode-dev \
libglib2.0-dev \
libgdk-pixbuf2.0-dev \
libgtk2.0-dev \
libsqlcipher-dev \
libtool \
autotools-dev \
automake \
checkinstall \
check \
libopus-dev \
libvpx-dev
# Qt
source /opt/qt53/bin/qt53-env.sh
# ffmpeg
if [ ! -e "libs" ]; then mkdir libs; fi
if [ ! -e "ffmpeg" ]; then mkdir ffmpeg; fi
#
cd libs/
export PREFIX_DIR="$PWD"
#
cd ../ffmpeg
wget http://ffmpeg.org/releases/ffmpeg-2.8.5.tar.bz2
tar xf ffmpeg*
cd ffmpeg*
./configure --prefix="$PREFIX_DIR" --enable-shared --disable-static --disable-programs --disable-protocols --disable-doc --disable-sdl --disable-avfilter --disable-avresample --disable-filters --disable-iconv --disable-network --disable-muxers --disable-postproc --disable-swresample --disable-swscale-alpha --disable-dct --disable-dwt --disable-lsp --disable-lzo --disable-mdct --disable-rdft --disable-fft --disable-faan --disable-vaapi --disable-vdpau --disable-zlib --disable-xlib --disable-bzlib --disable-lzma --disable-encoders --disable-yasm --enable-memalign-hack
make -j$(nproc)
make install
cd ../../
# filter_audio
git clone https://github.com/irungentoo/filter_audio
cd filter_audio
make -j$(nproc)
sudo make install
cd ..
# libsodium
git clone git://github.com/jedisct1/libsodium.git
cd libsodium
git checkout tags/1.0.8
./autogen.sh
./configure && make -j$(nproc)
sudo checkinstall --install --pkgname libsodium --pkgversion 1.0.8 --nodoc -y
sudo ldconfig
cd ..
# toxcore
git clone https://github.com/irungentoo/toxcore.git
cd toxcore
autoreconf -if
./configure
make -j$(nproc) > /dev/null
sudo make install
echo '/usr/local/lib/' | sudo tee -a /etc/ld.so.conf.d/locallib.conf
sudo ldconfig
cd ..
$CC --version
$CXX --version
# first build qTox without support for optional dependencies
echo '*** BUILDING "MINIMAL" VERSION ***'
qmake qtox.pro QMAKE_CC="$CC" QMAKE_CXX="$CXX" DISABLE_FILTER_AUDIO=YES ENABLE_SYSTRAY_STATUSNOTIFIER_BACKEND=NO ENABLE_SYSTRAY_GTK_BACKEND=NO DISABLE_PLATFORM_EXT=YES
# ↓ with $(nproc) fails, since travis gives 32 threads, and it leads to OOM
make -j10
# clean it up, and build normal version
make clean
echo '*** BUILDING "FULL" VERSION ***'
qmake qtox.pro QMAKE_CC="$CC" QMAKE_CXX="$CXX"
# ↓ with $(nproc) fails, since travis gives 32 threads, and it leads to OOM
make -j10

37
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,37 @@
# Filing an issue
### Must read
* If you aren't sure, you can ask on the [**IRC channel**](https://webchat.freenode.net/?channels=qtox) or read our [**wiki**](https://github.com/tux3/qTox/wiki) first.
* Do a quick **search**. Others might have already reported the issue.
* Write in **English**!
* Provide **version** information: (You can find version numbers in menu `Settings → About`)
```
qTox:
Commit hash:
toxcore:
Qt:
OS version:
```
* Provide **steps** to reproduce the problem, it will be easier to pinpoint the fault.
* **Screenshots**! A screenshot is worth a thousand words. Just upload it. [(How?)](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests)
### Good to know
* **Patience**. The dev team is small and resource limited. Devs have to find time, analyze the problem and fix the issue, it all takes time. :clock3:
* If you can code, why not become a **contributor** by fixing the issue and opening a pull request? :wink:
* Harsh words or threats won't help your situation. What's worse, your complaint will (very likely) be **ignored**. :fearful:
# Opening a pull request
### Must read
* Read our [**coding guidelines**](https://github.com/tux3/qTox/wiki/Coding).
* Keep the title **short** and provide a **clear** description about what your pull request does.
* Provide **screenshots** for UI related changes.
* Keep your git commit history **clean** and **precise**. Commits like `xxx fixup` should not appear.
* If your commit fixes a reported issue (for example #4134), add the following message to the commit `Fixes #4134.`. [Here is an example](https://github.com/tux3/qTox/commit/87160526d5bafcee7869d6741a06045e13d731d5).
### Good to know
* **Search** the pull request history! Others might have already implemented your idea and it could be waiting to be merged (or have been rejected already). Save your precious time by doing a search first.
* When resolving merge conflicts, do `git rebase <target_branch_name>`, don't do `git pull`. Then you can start fixing the conflicts. [Here is a good explanation](https://www.atlassian.com/git/tutorials/merging-vs-rebasing).

View File

@ -32,6 +32,7 @@
- [Ubuntu <15.04](#ubuntu14-toxcore)
- [Ubuntu >=15.04](#ubuntu-toxcore)
- [filter_audio](#filter_audio)
- [sqlcipher](#sqlcipher)
- [toxcore compiling](#toxcore-compiling)
- [Compile qTox](#compile-qtox)
- [OS X](#osx)
@ -42,7 +43,7 @@
| Name | Version | Modules |
|--------------|-------------|-------------------------------------------------- |
| Qt | >= 5.2.0 | core, gui, network, opengl, sql, svg, widget, xml |
| Qt | >= 5.3.0 | core, gui, network, opengl, sql, svg, widget, xml |
| GCC/MinGW | >= 4.8 | C++11 enabled |
| toxcore | most recent | core, av |
| FFmpeg | >= 2.6.0 | avformat, avdevice, avcodec, avutil, swscale |
@ -77,10 +78,10 @@ There are available generic binaries for Linux:
<a name="arch-easy" />
#### Arch
**Please note that installing toxcore/qTox from AUR is not supported**, although installing other dependencies, provided that they met requirements, should be fine, unless you are installing cryptography library from AUR, which should rise red flags by itself…
That being said, there are supported PKGBUILDs at https://github.com/Tox/arch-repo-tox
PKGBUILD is available in the `community` repo, to install:
```bash
pacman -S qtox
```
<a name="gentoo-easy" />
#### Gentoo
@ -191,16 +192,21 @@ sudo apt-get install build-essential qt5-qmake qt5-default qttools5-dev-tools li
<a name="fedora-other-deps" />
#### Fedora:
**Note that sqlcipher is not included in Fedora(!).**
**This means that you have to compile sqlcipher yourself, otherwise compiling qTox will fail.**
```bash
sudo dnf group install "Development Tools"
sudo dnf install qt-devel qt-doc qt-creator qt5-qtsvg qt5-qtsvg-devel openal-soft-devel libXScrnSaver-devel qrencode-devel ffmpeg-devel qtsingleapplication qt5-linguist gtk2-devel
```
**Go to [sqlcipher](#sqlcipher) section to compile it.**
<a name="opensuse-other-deps" />
#### openSUSE:
```bash
sudo zypper install patterns-openSUSE-devel_basis libqt5-qtbase-common-devel libqt5-qtsvg-devel libqt5-linguist libQt5Network-devel libQt5OpenGL-devel libQt5Concurrent-devel libQt5Xml-devel libQt5Sql-devel openal-soft-devel qrencode-devel libXScrnSaver-devel libQt5Sql5-sqlite libffmpeg-devel
sudo zypper install patterns-openSUSE-devel_basis libqt5-qtbase-common-devel libqt5-qtsvg-devel libqt5-linguist libQt5Network-devel libQt5OpenGL-devel libQt5Concurrent-devel libQt5Xml-devel libQt5Sql-devel openal-soft-devel qrencode-devel libXScrnSaver-devel libQt5Sql5-sqlite libffmpeg-devel sqlcipher-devel
```
<a name="slackware-other-deps" />
@ -332,7 +338,7 @@ You will need to install manually `libsodium`:
```
git clone git://github.com/jedisct1/libsodium.git
cd libsodium
git checkout tags/1.0.3
git checkout tags/1.0.8
./autogen.sh
./configure && make check
sudo checkinstall --install --pkgname libsodium --pkgversion 1.0.0 --nodoc
@ -360,15 +366,52 @@ The script will automatically download and install `toxcore` and `libfilteraudio
```
If you've used script, you can skip directly to [compiling qTox](#compile-qtox).
If you want to compile and install it manually:
```bash
```
git clone https://github.com/irungentoo/filter_audio
cd filter_audio
make -j$(nproc)
sudo make install
```
### sqlcipher
If you are not using Fedora, skip this section, and go directly to compiling [**toxcore**](#toxcore-compiling).
This method automatically detects whether to link statically or dynamically,
depending on your system configs.
```
git clone https://github.com/sqlcipher/sqlcipher
cd sqlcipher
autoreconf -if
./configure
make -j$(nproc)
sudo make install
cd ..
```
If you wish to explictly link sqlcipher statically or dynamically use:
#### Statically linked:
```
git clone https://github.com/sqlcipher/sqlcipher
cd sqlpcipher
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
LDFLAGS="/opt/local/lib/libcrypto.a"
make
sudo make install
cd ..
```
#### Dynamically linked:
```
git clone https://github.com/sqlcipher/sqlcipher
cd sqlcipher
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
LDFLAGS="-lcrypto"
make
sudo make install
cd ..
```
### toxcore compiling
@ -437,13 +480,53 @@ packages necessary for building .debs, so be prepared to type your password for
<a name="osx" />
## OS X
Compiling qTox on OS X for development requires 3 tools, [Xcode](https://developer.apple.com/xcode/) and [Qt 5.4+](http://www.qt.io/qt5-4/), and [homebrew](http://brew.sh).
### Required Libraries
### Automated Script
You can now set up your OS X system to compile qTox automatically thanks to the script in:
`./osx/qTox-Mac-Deployer-ULTIMATE.sh`
This script can be run independently of the qTox repo and is all that's needed to build from scratch on OS X.
To use this script you must launch terminal which can be found: `Applications > Utilities > Terminal.app`
If you wish to lean more you can run `./qTox-Mac-Deployer-ULTIMATE.sh -h`
#### First Run / Install
If you are running the script for the first time you will want to makesure your system is ready.
To do this simply run `./qTox-Mac-Deployer-ULTIMATE.sh -i` to run you through the automated install set up.
After running the installation setup you are now ready to build qTox from source, to do this simply run:
`./qTox-Mac-Deployer-ULTIMATE.sh -b`
If there aren't any errors then you'll find a locally working qTox application in your home folder under
`~/qTox-Mac_Build`
#### Updating
If you want to update your application for testing purposes or you want to run a nightly build setup then run:
`./qTox-Mac-Deployer-ULTIMATE.sh -u` and follow the prompts.
(NOTE: If you know you updated the repos before running this hit Y)
followed by
`./qTox-Mac-Deployer-ULTIMATE.sh -b`
to build the application once more. (NOTE: This will delete your previous build.)
#### Deploying
OS X requires an extra step to make the `qTox.app` file shareable on a system that doesn't have the required libraries installed already.
If you want to share the build you've made with your other friends who use OS X then simply run:
`./qTox-Mac-Deployer-ULTIMATE.sh -d`
### Manual Compiling
#### Required Libraries
Install homebrew if you don't have it:
```bash
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
First, let's install the dependencies available via brew.
```bash
brew install git ffmpeg qrencode
brew install git ffmpeg qrencode libtool automake autoconf check qt5 libvpx opus sqlcipher libsodium
```
Next, install [filter_audio](https://github.com/irungentoo/filter_audio) (you may delete the directory it creates afterwards):
@ -454,6 +537,8 @@ sudo make install
cd ../
```
Next, install [Toxcore](https://github.com/irungentoo/toxcore/blob/master/INSTALL.md#osx)
Then, clone qTox:
```bash
git clone https://github.com/tux3/qTox``
@ -461,38 +546,36 @@ git clone https://github.com/tux3/qTox``
Finally, copy all required files. Whenever you update your brew packages, you may skip all of the above steps and simply run the following commands:
```bash
cd qTox
cd ./git/qTox
sudo bash bootstrap-osx.sh
```
###Compiling
#### Compiling
You can build qTox with Qt Creator [seperate download](http://www.qt.io/download-open-source/#section-6) or you can hunt down the version of home brew qt5 your using in the `/usr/local/Cellar/qt5/` directory.
e.g. `/usr/local/Cellar/qt5/5.5.1_2/bin/qmake` with `5.5.1_2` being the version of Qt5 that's been installed.
Either open Qt creator and hit build or run ```qmake && make``` in your qTox folder and it'll just work™.
Note that if you use the CLI to build you'll need to add Qt5's bins to your path.
With that; in your terminal you can compile qTox in the git dir:
```bash
export PATH=$PATH:~/Qt/5.4/clang_64/bin/
/usr/local/Cellar/qt5/5.5.1_2/bin/qmake ./qtox.pro
```
### Fixing things up
The bad news is that Qt breaks our linker paths so we need to fix those. First cd in to your qtox.app directory, if you used Qt Creator it's in ```~/build-qtox-Desktop_Qt_5_4_1_clang_64bit-Release``` most likely, otherwise it's in your qTox folder.
Install qTox so we can copy its libraries and shove the following in a script somewhere:
Or a cleaner method would be to:
```bash
~macdeployqt qtox.app
cp -r /Applications/qtox.app qtox_old.app
cp qtox.app/Contents/MacOS/qtox qtox_old.app/Contents/MacOS/qtox
rm -rf qtox.app
mv qtox_old.app qtox.app
cd ./git/dir/qTox
mkdir ./build
cd build
/usr/local/Cellar/qt5/5.5.1_2/bin/qmake ../qtox.pro
```
* Give it a name like ~/deploy.qtox.sh
* cd in to the folder with qtox.app
* run ```bash ~/deploy.qtox.sh```
#### Deploying
If you compiled qTox properly you can now deploy the `qTox.app` that's created where you built qTox so you can distribute the package.
### Running qTox
Using your qt5 homebrew installation from the build directory:
```bash
/usr/local/Cellar/qt5/5.5.1_2/bin/macdeployqt ./qTox.app
```
#### Running qTox
You've got 2 choices, either click on the qTox app that suddenly exists, or do the following:
```bash
qtox.app/Contents/MacOS/qtox

18
OSX-Migrater.sh Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
# A qTox profile migrater for OSX
now=$(date +"%m_%d_%Y-%H.%M.%S")
bak="~/.Tox-Backup-$now"
echo "Figuring out if action is required ..."
if [ -d ~/Library/Preferences/tox ]; then
echo "Moving profile(s) ..."
cp -r ~/Library/Preferences/tox ~/Library/Application\ Support/
mv ~/Library/Application\ Support/tox/ ~/Library/Application\ Support/Tox
mv ~/Library/Preferences/tox ~/.Tox-Backup-$now
echo "Done! You profile(s) have been moved! A back up coppy still exists at:"
echo "$bak"
else
echo "Cannot locate old profile directory, profile migration not performed"
fi
exit 0

View File

@ -1,15 +1,17 @@
qTox [![Build Status](https://travis-ci.org/tux3/qTox.svg)](https://travis-ci.org/tux3/qTox)
qTox
======
[**Compile**](/INSTALL.md) **⦁** [**Contribute**](https://github.com/tux3/qTox/wiki#contributing) **⦁** [**Report bugs**](https://github.com/tux3/qTox/wiki/Writing-Useful-Bug-Reports) **⦁** [**Translate**](https://github.com/tux3/qTox/wiki/Translating) **⦁** [**Jenkins builds**](https://build.tox.chat/) **⦁** [**Keyboard shortcuts**](https://github.com/tux3/qTox/wiki/Keyboard-shortcuts) **⦁** [**Mailing list**](https://lists.tox.chat) **⦁** **IRC Channel:** [#qtox@freenode](https://webchat.freenode.net/?channels=qtox)
[**User Manual**](/doc/user_manual_en.md) **⦁** [**Compile**](/INSTALL.md) **⦁** [**Contribute**](https://github.com/tux3/qTox/wiki#contributing) **⦁** [**Report bugs**](https://github.com/tux3/qTox/wiki/Writing-Useful-Bug-Reports) **⦁** [**Translate**](https://github.com/tux3/qTox/wiki/Translating) **⦁** [**Jenkins builds**](https://build.tox.chat/) **⦁** [**Keyboard shortcuts**](https://github.com/tux3/qTox/wiki/Keyboard-shortcuts) **⦁** [**Mailing list**](https://lists.tox.chat) **⦁** **IRC Channel:** [#qtox@freenode](https://webchat.freenode.net/?channels=qtox)
**qTox is a powerful Tox client that follows the Tox design guidelines while running on all major platforms.**
----
* **Windows**:
- [**64 bit download**](https://build.tox.chat/view/qtox/job/qTox_pkg_windows_x86-64_stable_release/lastSuccessfulBuild/artifact/setup-qtox.exe)
- [**32 bit download**](https://build.tox.chat/view/qtox/job/qTox_pkg_windows_x86_stable_release/lastSuccessfulBuild/artifact/setup-qtox.exe)
- [**64 bit installer**](https://build.tox.chat/view/qtox/job/qTox_pkg_windows_x86-64_stable_release/lastSuccessfulBuild/artifact/setup-qtox.exe)
- [**32 bit installer**](https://build.tox.chat/view/qtox/job/qTox_pkg_windows_x86_stable_release/lastSuccessfulBuild/artifact/setup-qtox.exe)
- [**64 bit portable**](https://build.tox.chat/job/qTox_build_windows_x86-64_release/lastSuccessfulBuild/artifact/qTox_build_windows_x86-64_release.zip)
- [**32 bit portable**](https://build.tox.chat/job/qTox_build_windows_x86_release/lastSuccessfulBuild/artifact/qTox_build_windows_x86_release.zip)
* **Linux**:
- [**64 bit download**](https://build.tox.chat/view/Clients/job/qTox_build_linux_x86-64_release/lastSuccessfulBuild/artifact/qTox_build_linux_x86-64_release.tar.xz)
- [**32 bit download**](https://build.tox.chat/view/Clients/job/qTox_build_linux_x86_release/lastSuccessfulBuild/artifact/qTox_build_linux_x86_release.tar.xz)
@ -22,7 +24,7 @@ qTox [![Build Status](https://travis-ci.org/tux3/qTox.svg)](https://travis-ci.or
- [**Port**](/INSTALL.md#freebsd-easy)
<br/>
Nighly builds do not update automatically at this stage of development, so make sure you get back to this site and regularly download the latest version of qTox.
Builds other than installer/packages don't receive updates automatically, so make sure you get back to this site and regularly download the latest version of qTox.
#### Screenshots
@ -49,3 +51,5 @@ Note: The screenshots may not always be up to date, but they should give a good
- Emoticons
- Auto-updates on Windows and Mac, packages on Linux
- And many more options!
[![Build Status](https://travis-ci.org/tux3/qTox.svg)](https://travis-ci.org/tux3/qTox)

6
bootstrap-osx.sh Normal file → Executable file
View File

@ -21,21 +21,19 @@ echo Creating directories…
mkdir -p libs/lib
mkdir -p libs/include
echo Copying libraries…
cp /usr/local/lib/libtox* libs/lib
cp /usr/local/lib/libsodium* libs/lib
cp /usr/local/lib/libvpx* libs/lib
cp /usr/local/lib/libopus* libs/lib
cp /usr/local/lib/libav* libs/lib
cp /usr/local/lib/libswscale* libs/lib
cp /usr/local/lib/libqrencode* libs/lib
cp /usr/local/lib/libfilteraudio* libs/lib
cp /usr/local/include/filter_audio* libs/include
cp /usr/local/lib/libsqlcipher* libs/lib
echo Copying include files...
cp -r /usr/local/include/tox* libs/include
cp -r /usr/local/include/vpx* libs/include
cp -r /usr/local/include/sodium* libs/include
cp -r /usr/local/include/qrencode* libs/include
cp -r /usr/local/include/libav* libs/include
cp -r /usr/local/include/libswscale* libs/include
cp -r /usr/local/include/sqlcipher* libs/include
echo Done.

138
doc/user_manual_en.md Normal file
View File

@ -0,0 +1,138 @@
# qTox User Manual
## Index
* [User Profile](#user-profile)
* [Settings](#settings)
* [Groupchats](#groupchats)
* [Multi Window Mode](#multi-window-mode)
* [Keyboard Shortcuts](#keyboard-shortcuts)
## User Profile
Your User Profile contains everything you share with other people on Tox. You can open it by clicking the picture in the top left corner. It contains the following settings:
### Public Information
* _Name:_ This is your nickname which everyone who has your Tox ID can see.
* _Status:_ You can post a status message here, which again everyone on who has your Tox ID can see.
### Tox ID
The long code in hexadecimal format is your Tox ID, share this with everyone you want to talk to. Click it to copy it to your clipboard.
Your Tox ID is also shown as QR code to easily share it with friends over a smartphone.
The "Save image" button saves the QR code into a image file, while the "Copy image" button copies into your clipboard.
### Profile
qTox allows you to use multiple Tox IDs with different profiles, each of which can have different nicknames, status messages and friends.
+ _Current profile:_ Shows the filename which stores your information.
+ _Current profile location:_ Shows the path to the profile file.
+ _Rename:_ Allows you to rename your profile. Your nickname and profile name don't have to be the same.
+ _Delete:_ Deletes your profile and the corresponding chat history.
+ _Export:_ Allows you to export your profile in a format compatible with other Tox clients. You can also manually back up your \*.tox files.
+ _Logout:_ Close your current profile and show the login window.
+ _Remove password:_ Removes the existing password for your profile. If the profile already has no password, you will be notified.
+ _Change password:_ Allows you to either change an existing password, or create a new password if your profile does not have one.
## Settings
### General
#### General Settings
* _Language:_ Changes which language the qTox interface uses.
* _Autostart:_ If set, qTox will start when you login on your computer. qTox will also automatically open the profile which was active when you ticked the checkbox, but this only works if your profile isn't encrypted (has no password set).
* _Light icon:_ If set, qTox will use a different icon, which is easier to see on black backgrounds.
* _Show system tray icon:_ If set, qTox will show its icon in your system tray.
* _Start in tray:_ On start, qTox will only show its tray icon and no window.
* _Minimize to tray:_ The minimize button on the top right, will minimize qTox to its tray icon. There won't be a taskbar item.
* _Auto away after (0 to disable):_ After the specified amount of time, qTox will set your status to "Away". A setting of 0 will never change your status.
* _Default directory to save files:_ Allows you to specify the default destination for incoming file transfers.
* _Autoaccept files:_ If set, qTox will automatically accept file transfers and put them in the directory specified above.
#### Chat
* _Play sound:_ If checked, qTox will play a sound when you get a new message.
* _Open window:_ If checked, the qTox window will be opened when you receive a new message. If you use the multiple windows mode, see [Multi Window Mode](#multi-window-mode) for details.
* _Focus window:_ If checked, the qTox window will additionally be focused when you receive a new message.
* _Show contacts' status changes:_ If set, qTox will show contact status changes in your chat window.
* _Group chats always notify:_ If set, qTox will notify you on every new message in a groupchat.
* _Place groupchats at top of friend list:_ If checked, your groupchats will be at the top of the contacts list instead of being sorted with your other contacts.
* _Faux offline messaging:_ If enabled, qTox will attempt to send messages when a currently offline contact comes online again.
* _Compact contact list:_ If set, qTox will use a contact list layout which takes up less screen space.
* _Multiple windows mode:_ If enabled, the qTox user interface will be split into multiple independent windows. For details see [Multi Window Mode](#multi-window-mode).
* _Open each chat in an individual window:_ If checked, a new window will be opened for every chat you open. If you manually grouped the chat into another window, the window which hosts the chat will be focused.
#### Theme
* _Use emoticons:_ If enabled, qTox will replace smileys ( e.g. `:-)` ) with corresponding graphical emoticons.
* _Smiley Pack:_ Allows you to choose from different sets of shipped emoticon styles.
* _Emoticon size:_ Allows you to change the size of the emoticons.
* _Style:_ Changes the appearance of qTox.
* _Theme color:_ Changes the colors qTox uses.
* _Timestamp format:_ Change the format in which qTox displays message timestamps.
* _Date format:_ Same as above for the date.
#### Connection Settings
* _Enable IPv6 (recommended):_ If enabled, qTox will use IPv4 and IPv6 protocols, whichever is available. If disabled, qTox will only use IPv4.
* _Enable UDP (recommended):_ If enabled, qTox will use TCP and UDP protocols. If disabled, qTox will only use TCP, which lowers the amount of open connections and slightly decreases required bandwidth, but is also slower and puts more load on other network participants.
Most users will want both options enabled, but if qTox negatively impacts your router or connection, you can try to disable them.
* _Proxy type:_ If you want to use a proxy, set the type here. "None" disables the proxy.
* _Address:_ If you use a proxy, enter the address here.
* _Port:_ If you use a proxy, enter the port here.
* _Reconnect:_ Reconnect to the Tox network, e.g. if you changed the proxy settings.
### Privacy
* _Send typing notifications:_ If enabled, notify your chat partner when you are currently typing.
* _Keep chat history:_ If enabled, qTox will save your sent and received messages. Encrypt your profile, if you want to encrypt the chat history.
#### NoSpam
NoSpam is a feature of Tox that prevents a malicious user from spamming you with friend requests. If you get spammed, enter or generate a new NoSpam value. This will alter your Tox ID. You don't need to tell your existing contacts your new Tox ID, but you have to tell new contacts your new Tox ID. Your Tox ID can be found in your [User Profile](#user-profile).
### Audio/Video
#### Audio Settings
* _Playback device:_ Select the device qTox should use for all audio output (notifications, calls, etc).
* _Playback:_ Here you can adjust the playback volume to your needs.
* _Capture device:_ Select the device qTox should use for audio input in calls.
* _Microphone:_ Set the input volume of your microphone with this slider. When you are talking normally, the displayed volume indicator should be in the green range.
* _Filter audio:_ If enabled, qTox will try to remove noise and echo from your audio input.
#### Video Settings
* _Video device:_ Select the video device qTox should use for video calls. "None" will show a dummy picture to your chat partner. "Desktop" will stream the content of your screen.
* _Resolution:_ You can select from the available resolutions and frame rates here. Higher resolutions provide more quality, but if the bandwidth of your connection is low, the video may get choppy.
If you set up everything correctly, you should see the preview of your video device in the box below.
* _Rescan devices:_ Use this button to search for newly attached devices, e.g. you plugged in a webcam.
### Advanced
* _Make Tox portable:_ If enabled, qTox will load/save user data from the working directory, instead of ` ~/.config/tox/ `.
* _Reset to default settings:_ Use this button to revert any changes you made to the qTox settings.
### About
* _Version:_ Shows the version of qTox and the libraries it depends on. Please append this information to every bug report.
* _License:_ Shows the license under which the code of qTox is available.
* _Authors:_ Lists the people who developed this shiny piece of software.
* _Known Issues:_ Links to our list of known issues and improvements.
## Groupchats
Groupchats are a way to talk with multiple friends at the same time, like when you are standing together in a group. To create a groupchat click the groupchat icon in the bottom left corner and set a name. Now you can invite your contacts by right-clicking on the contact and selecting "Invite to group". Currently, if the last person leaves the chat, it is closed and you have to create a new one. Videochats and file transfers are currently unsupported in groupchats.
## Multi Window Mode
In this mode, qTox will separate its main window into a single contact list and one or multiple chat windows, which allows you to have multiple conversations on your screen at the same time. Additionally you can manually group chats into a window by dragging and dropping them onto each other. This mode can be activated and configured in [settings](#settings).
## Keyboard Shortcuts
The following shortcuts are currently supported:
| Shortcut | Action |
|----------|--------|
| ``Arrow up`` | Paste last sent message |
| ``CTRL`` + ``SHIFT`` + ``L`` | Clear chat |
| ``CTRL`` + ``q`` | Quit qTox |
| `CTRL` + `Page Down` | Switch to the next contact |
| `CTRL` + `Page Up` | Switch to the previous contact|
| `CTRL` + `TAB` | Switch to the next contact |
| `CTRL` + `SHIFT` + `TAB` | Switch to the previous contact|

View File

@ -1,102 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>CFBundleIconFile</key>
<string>qtox.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>qtox</string>
<key>CFBundleDisplayName</key>
<string>qTox</string>
<key>CFBundleName</key>
<string>qTox</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0-EXPERIMENTIAL</string>
<key>CFBundleIdentifier</key>
<string>chat.tox.qtox</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>Tox URL</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLSchemes</key>
<array>
<string>tox</string>
</array>
<key>CFBundleURLIconFile</key>
<string>qtox_profile.icns</string>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>tox</string>
</array>
<key>CFBundleTypeName</key>
<string>Tox profile</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleTypeIconFile</key>
<string>qtox_profile.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-tox.profile</string>
</array>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>public.tox</string>
</array>
</dict>
</array>
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeIdentifier</key>
<string>public.tox</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>TOX</string>
<key>public.filename-extension</key>
<array>
<string>tox</string>
</array>
<key>public.mime-type</key>
<string>tox/x-profile</string>
</dict>
</dict>
</array>
<key>CFBundleLocalizations</key>
<array>
<string>en_US</string>
<string>en</string>
<string>bg_BG</string>
<string>de_DE</string>
<string>fi_FI</string>
<string>fr_FR</string>
<string>it_IT</string>
<string>pl_PL</string>
<string>ru_RU</string>
<string>uk_UA</string>
<string>sv</string>
</array>
</dict>
<dict>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>CFBundleIconFile</key>
<string>qtox.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>toxq</string>
<key>CFBundleExecutable</key>
<string>qtox</string>
<key>CFBundleDisplayName</key>
<string>qTox</string>
<key>CFBundleName</key>
<string>qTox</string>
<key>CFBundleVersion</key>
<string>1.2.2</string>
<key>CFBundleShortVersionString</key>
<string>@SHORT_VERSION@</string>
<key>CFBundleIdentifier</key>
<string>chat.tox.qtox</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>Tox URL</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLSchemes</key>
<array>
<string>tox</string>
</array>
<key>CFBundleURLIconFile</key>
<string>qtox_profile</string>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>tox</string>
</array>
<key>CFBundleTypeName</key>
<string>Tox profile</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleTypeIconFile</key>
<string>qtox_profile</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-tox.profile</string>
</array>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>public.tox</string>
</array>
</dict>
</array>
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeIdentifier</key>
<string>public.tox</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>TOX</string>
<key>public.filename-extension</key>
<array>
<string>tox</string>
</array>
<key>public.mime-type</key>
<string>tox/x-profile</string>
</dict>
</dict>
</array>
<key>CFBundleLocalizations</key>
<array>
<string>en_US</string>
<string>bg_BG</string>
<string>cs</string>
<string>de_DE</string>
<string>el</string>
<string>es_MX</string>
<string>fi_FI</string>
<string>fr_FR</string>
<string>hr_HR</string>
<string>hu_HU</string>
<string>it_IT</string>
<string>lt_LT</string>
<string>nl_NL</string>
<string>nb_NO</string>
<string>pl_PL</string>
<string>pt_BR</string>
<string>ru_RU</string>
<string>sl</string>
<string>sv</string>
<string>tr_TR</string>
<string>uk_UA</string>
<string>zh_CH</string>
</array>
</dict>
</plist>

268
osx/qTox-Mac-Deployer-ULTIMATE.sh Executable file
View File

@ -0,0 +1,268 @@
#!/usr/bin/env bash
#
# Copyright © 2015 by RowenStipe
# Copyright © 2016 by The qTox Project
#
# This program is libre 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 program. If not, see <http://www.gnu.org/licenses/>.
# This uses the same process as doing it manually but with a few varients
# Use: ./qTox-Mac-Deployer-ULTIMATE.sh -h
# Your home DIR really (Most of this happens in it) {DONT USE: ~ }
if [[ $TRAVIS = true ]]; then #travis check
MAIN_DIR="${TRAVIS_BUILD_DIR}"
QTOX_DIR="${MAIN_DIR}"
else
MAIN_DIR="/Users/${USER}"
QTOX_DIR="${MAIN_DIR}/qTox"
fi
QT_DIR="/usr/local/Cellar/qt5" # Folder name of QT install
VER="${QT_DIR}/5.5.1_2" # Potential future proffing for version testing
QMAKE="${VER}/bin/qmake" # Don't change
MACDEPLOYQT="${VER}/bin/macdeployqt" # Don't change
TOXCORE_DIR="${MAIN_DIR}/toxcore" # Change to Git location
FA_DIR="${MAIN_DIR}/filter_audio"
LIB_INSTALL_PREFIX="${QTOX_DIR}/libs"
if [[ ! -e "${LIB_INSTALL_PREFIX}" ]]; then
mkdir -p "${LIB_INSTALL_PREFIX}"
fi
BUILD_DIR="${MAIN_DIR}/qTox-Mac_Build" # Change if needed
DEPLOY_DIR="${MAIN_DIR}/qTox-Mac_Deployed"
function fcho() {
local msg="$1"; shift
printf "\n$msg\n" "$@"
}
function build_toxcore() {
echo "Starting Toxcore build and install"
cd $TOXCORE_DIR
echo "Now working in: ${PWD}"
#Check if libsodium is correct version
if [[ -e /usr/local/opt/libsodium/lib/libsodium.18.dylib ]]; then
fcho " Beginnning Toxcore compile "
else
echo "Error: libsodium.18.dylib not found! Unable to build!"
echo "Please make sure your Homebrew packages are up to date before retrying."
exit 1
fi
sleep 3
autoreconf -if
#Make sure the correct version of libsodium is used
./configure --with-libsodium-headers=/usr/local/Cellar/libsodium/1.0.8/include/ --with-libsodium-libs=/usr/local/Cellar/libsodium/1.0.8/lib/ --prefix="${LIB_INSTALL_PREFIX}"
make clean &> /dev/null
fcho "Compiling toxcore."
make > /dev/null || exit 1
fcho "Installing toxcore."
make install > /dev/null || exit 1
}
function install() {
fcho "=============================="
fcho "This script will install the necessary applications and libraries needed to compile qTox properly."
fcho "Note that this is not a 100 percent automated install it just helps simplify the process for less experienced or lazy users."
if [[ $TRAVIS = true ]]; then #travis check
echo "Oh... It's just Travis...."
else
read -n1 -rsp $'Press any key to continue or Ctrl+C to exit...\n'
fi
if [[ -e /usr/local/bin/brew ]]; then
fcho "Homebrew already installed!"
else
fcho "Installing homebrew ..."
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fi
fcho "Updating brew formulas ..."
brew update
fcho "Getting home brew formulas ..."
sleep 3
if [[ $TRAVIS != true ]]; then #travis check
brew install wget libtool automake
fi
brew install git ffmpeg qrencode autoconf check qt5 libvpx opus sqlcipher libsodium
fcho "Installing x-code Command line tools ..."
xcode-select --install
fcho "Starting git repo checks ..."
cd $MAIN_DIR # just in case
# Toxcore
if [[ -e $TOX_DIR/.git/index ]]; then # Check if this exists
fcho "Toxcore git repo already in place !"
cd $TOX_DIR
git pull
else
fcho "Cloning Toxcore git ... "
git clone https://github.com/irungentoo/toxcore.git
fi
# qTox
if [[ $TRAVIS = true ]]; then #travis check
fcho "Travis... You already have qTox..."
else
if [[ -e $QTOX_DIR/.git/index ]]; then # Check if this exists
fcho "qTox git repo already in place !"
cd $QTOX_DIR
git pull
else
fcho "Cloning qTox git ... "
git clone https://github.com/tux3/qTox.git
fi
fi
# filter_audio
if [[ -e $FA_DIR/.git/index ]]; then # Check if this exists
fcho "Filter_Audio git repo already in place !"
cd $FA_DIR
git pull
else
fcho "Cloning Filter_Audio git ... "
git clone https://github.com/irungentoo/filter_audio.git
cd $FA_DIR
fi
fcho "Installing filter_audio."
make install PREFIX="${LIB_INSTALL_PREFIX}"
# toxcore build
if [[ $TRAVIS = true ]]; then #travis check
build_toxcore
else
fcho "If all went well you should now have all the tools needed to compile qTox!"
read -r -p "Would you like to install toxcore now? [y/N] " response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
build_toxcore
else
fcho "You can simply use the -u command and say [Yes/n] when prompted"
fi
fi
# put required by qTox libs/headers in `libs/`
cd "${QTOX_DIR}"
sudo ./bootstrap-osx.sh
}
function update() {
fcho "------------------------------"
fcho "Starting update process ..."
#First update Toxcore from git
cd $TOXCORE_DIR
fcho "Now in ${PWD}"
fcho "Pulling ..."
git pull
read -r -p "Did Toxcore update from git? [y/N] " response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
build_toxcore
else
fcho "Moving on!"
fi
#Now let's update qTox!
cd $QTOX_DIR
fcho "Now in ${PWD}"
fcho "Pulling ..."
git pull
read -r -p "Did qTox update from git? [y/N] " response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
fcho "Starting OSX bootstrap ..."
sudo ./bootstrap-osx.sh
else
fcho "Moving on!"
fi
}
function build() {
fcho "------------------------------"
fcho "Starting build process ..."
rm -r $BUILD_DIR
rm -r $DEPLOY_DIR
mkdir $BUILD_DIR
cd $BUILD_DIR
fcho "Now working in ${PWD}"
fcho "Starting qmake ... "
$QMAKE $QTOX_DIR/qtox.pro
make
}
function deploy() {
fcho "------------------------------"
fcho "starting deployment process ..."
cd $BUILD_DIR
if [ ! -d $BUILD_DIR ]; then
fcho "Error: Build directory not detected, please run -ubd, or -b before deploying"
exit 0
fi
mkdir $DEPLOY_DIR
cp -r $BUILD_DIR/qTox.app $DEPLOY_DIR/qTox.app
cd $DEPLOY_DIR
fcho "Now working in ${PWD}"
$MACDEPLOYQT qTox.app
}
# The commands
if [[ "$1" == "-i" ]]; then
install
exit
fi
if [[ "$1" == "-u" ]]; then
update
exit
fi
if [[ "$1" == "-b" ]]; then
build
exit
fi
if [[ "$1" == "-d" ]]; then
deploy
exit
fi
if [[ "$1" == "-ubd" ]]; then
update
build
deploy
exit
fi
if [[ "$1" == "-h" ]]; then
echo "This script was created to help ease the process of compiling and creating a distributable qTox package for OSX systems."
echo "The available commands are:"
echo "-h -- This help text."
echo "-i -- A slightly automated process for getting an OSX machine ready to build Toxcore and qTox."
echo "-u -- Check for updates and build Toxcore from git & update qTox from git."
echo "-b -- Builds qTox in: ${BUILD_DIR}"
echo "-d -- Makes a distributable qTox.app file in: ${DEPLOY_DIR}"
echo "-ubd -- Does -u, -b, and -d sequentially"
fcho "Issues with Toxcore or qTox should be reported to their respective repos: https://github.com/irungentoo/toxcore | https://github.com/tux3/qTox"
exit 0
fi
fcho "Oh dear! You seemed to of started this script improperly! Use -h to get available commands and information!"
echo " "
say -v Kathy -r 255 "Oh dear! You seemed to of started this script improperly! Use -h to get available commands and information!"
exit 0

View File

@ -160,9 +160,18 @@ win32 {
QMAKE_INFO_PLIST = osx/info.plist
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
LIBS += -L$$PWD/libs/lib/ -ltoxcore -ltoxav -ltoxencryptsave -ltoxdns -lsodium -lvpx -lopus -framework OpenAL -lavformat -lavdevice -lavcodec -lavutil -lswscale -mmacosx-version-min=10.7
LIBS += -framework AVFoundation -framework Foundation -framework CoreMedia -framework ApplicationServices
LIBS += -lqrencode -lsqlcipher
contains(DEFINES, QTOX_PLATFORM_EXT) { LIBS += -framework IOKit -framework CoreFoundation }
contains(DEFINES, QTOX_FILTER_AUDIO) { LIBS += -lfilteraudio }
#Files to be includes into the qTox.app/Contents/Resources folder
#OSX-Migrater.sh part of migrateProfiles() compatabilty code
APP_RESOURCE.files = img/icons/qtox_profile.icns OSX-Migrater.sh
APP_RESOURCE.path = Contents/Resources
QMAKE_BUNDLE_DATA += APP_RESOURCE
#Dynamic versioning for Info.plist
INFO_PLIST_PATH = $$shell_quote($${OUT_PWD}/$${TARGET}.app/Contents/Info.plist)
QMAKE_POST_LINK += /usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString $${GIT_DESCRIBE}\" $${INFO_PLIST_PATH}
} else {
android {
LIBS += -ltoxcore -ltoxav -ltoxencryptsave -ltoxdns
@ -462,7 +471,11 @@ macx {
src/platform/install_osx.cpp
HEADERS += \
src/platform/install_osx.h
src/platform/install_osx.h \
src/platform/camera/avfoundation.h
OBJECTIVE_SOURCES += \
src/platform/camera/avfoundation.mm
}
SOURCES += \

View File

@ -47,6 +47,7 @@
<file>translations/de.qm</file>
<file>translations/el.qm</file>
<file>translations/es.qm</file>
<file>translations/et.qm</file>
<file>translations/fi.qm</file>
<file>translations/fr.qm</file>
<file>translations/hr.qm</file>
@ -62,6 +63,7 @@
<file>translations/sv.qm</file>
<file>translations/tr.qm</file>
<file>translations/uk.qm</file>
<file>translations/ar.qm</file>
<file>translations/zh.qm</file>
<file>ui/fileTransferWidget/fileDone.svg</file>
<file>ui/callButton/callButton.css</file>

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 1019 B

After

Width:  |  Height:  |  Size: 1019 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 933 B

After

Width:  |  Height:  |  Size: 933 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -3,17 +3,17 @@
<!-- first emoticons (9/13/14) -->
<emoticon file="angel.png">
<string>😇</string>
<string>:angel:</string>
<string>0:)</string>
<string>O:)</string>
<string>0:-)</string>
<string>O:-)</string>
<string>😇</string>
</emoticon>
<emoticon file="beer.png">
<string>🍺</string>
<string>:beer:</string>
<string>🍺</string>
</emoticon>
<emoticon file="bored.png">
@ -29,14 +29,13 @@
</emoticon>
<emoticon file="crying.png">
<string>😢</string>
<string>:cry:</string>
<string>:'(</string>
<string>:,(</string>
<string>😢</string>
</emoticon>
<emoticon file="devil.png">
<string>😈</string>
<string>:devil:</string>
<string>:666:</string>
<string>}:-)</string>
@ -44,17 +43,16 @@
<string>]:-)</string>
<string>]:-></string>
<string>>:-></string>
<string>😈</string>
</emoticon>
<emoticon file="dho.png">
<emoticon file="doh.png">
<string>X.</string>
<string></string>
<string>Xo</string>
<string>>:.</string>
<string>>:°</string>
<string>>:o</string>
<string>:dho:</string>
<string>:d'ho:</string>
</emoticon>
<emoticon file="evil.png">
@ -75,15 +73,15 @@
</emoticon>
<emoticon file="heart.png">
<string></string>
<string>&lt;3</string>
<string>:heart:</string>
<string>:love:</string>
<string></string>
</emoticon>
<emoticon file="hi.png">
<string>🙋</string>
<string>:hi:</string>
<string>🙋</string>
</emoticon>
<emoticon file="highfive.png">
@ -99,31 +97,31 @@
</emoticon>
<emoticon file="tongue.png">
<string>😛</string>
<string>:impertinent:</string>
<string>:-P</string>
<string>:-p</string>
<string>:P</string>
<string>:p</string>
<string>😛</string>
</emoticon>
<emoticon file="inlove.png">
<string>😍</string>
<string>:inlove:</string>
<string>😍</string>
</emoticon>
<emoticon file="kiss.png">
<string>😙</string>
<string>:kiss:</string>
<string>:*</string>
<string>:-*</string>
<string>😙</string>
</emoticon>
<emoticon file="lol.png">
<string>😄</string>
<string>:lol:</string>
<string>:D</string>
<string>:-D</string>
<string>😄</string>
</emoticon>
<emoticon file="moustache.png">
@ -151,12 +149,12 @@
</emoticon>
<emoticon file="nospeak.png">
<string>🙊</string>
<string>:silence:</string>
<string>:-x</string>
<string>:-X</string>
<string>:x</string>
<string>:X</string>
<string>🙊</string>
</emoticon>
<emoticon file="oops.png">
@ -180,8 +178,8 @@
</emoticon>
<emoticon file="rain.png">
<string>🌧</string>
<string>:rain:</string>
<string>🌧</string>
</emoticon>
<emoticon file="rocknroll.png">
@ -192,10 +190,10 @@
</emoticon>
<emoticon file="sad.png">
<string>😞</string>
<string>:sad:</string>
<string>:(</string>
<string>:-(</string>
<string>😞</string>
</emoticon>
<emoticon file="shy.png">
@ -205,17 +203,17 @@
</emoticon>
<emoticon file="sleeping.png">
<string>😴</string>
<string>:sleeping:</string>
<string>|-)</string>
<string>#)</string>
<string>😴</string>
</emoticon>
<emoticon file="smile.png">
<string></string>
<string>:smile:</string>
<string>:-)</string>
<string>:)</string>
<string></string>
</emoticon>
<emoticon file="sniggering.png">
@ -240,10 +238,10 @@
</emoticon>
<emoticon file="wink.png">
<string>😉</string>
<string>:wink:</string>
<string>;-)</string>
<string>;)</string>
<string>😉</string>
</emoticon>
<emoticon file="wondering.png">
@ -256,16 +254,15 @@
</emoticon>
<emoticon file="XD.png">
<string>😆</string>
<string>XD</string>
<string>xD</string>
<string>😆</string>
</emoticon>
<emoticon file="XP.png">
<string>😝</string>
<string>:emoticonmashup:</string>
<string>XP</string>
<string>xP</string>
<string>😝</string>
</emoticon>
<emoticon file="yawn.png">
@ -274,23 +271,23 @@
<!-- new emoticons (10/26/14) -->
<emoticon file="bomb.png">
<string>💣</string>
<string>:bomb:</string>
<string>💣</string>
</emoticon>
<emoticon file="cookie.png">
<string>🍪</string>
<string>:cookie:</string>
<string>🍪</string>
</emoticon>
<emoticon file="diamond.png">
<string>🔷</string>
<string>:diamond:</string>
<string>🔷</string>
</emoticon>
<emoticon file="eye.png">
<string>👁</string>
<string>:eye:</string>
<string>👁</string>
</emoticon>
<emoticon file="hacker_terminal.png">
@ -299,9 +296,9 @@
</emoticon>
<emoticon file="syringe.png">
<string>💉</string>
<string>:syringe:</string>
<string>:injection:</string>
<string>💉</string>
</emoticon>
<emoticon file="toxlocker.png">
@ -328,17 +325,17 @@
</emoticon>
<emoticon file="cool.png">
<string>😎</string>
<string>:cool:</string>
<string>8)</string>
<string>8-)</string>
<string>😎</string>
</emoticon>
<emoticon file="angry.png">
<string>😠</string>
<string>:angry:</string>
<string>>:-(</string>
<string>>:(</string>
<string>😠</string>
</emoticon>
</messaging-emoticon-map>

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 596 B

After

Width:  |  Height:  |  Size: 596 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1022 B

After

Width:  |  Height:  |  Size: 1022 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 914 B

After

Width:  |  Height:  |  Size: 914 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 869 B

After

Width:  |  Height:  |  Size: 869 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,88 +1,84 @@
<?xml version='1.0'?>
<messaging-emoticon-map>
<emoticon file="happy.png">
<string>😊</string>
<string>:)</string>
<string>:-)</string>
<string>😊</string>
</emoticon>
<emoticon file="cool.png">
<string>😎</string>
<string>8-)</string>
<string>8)</string>
<string>😎</string>
</emoticon>
<emoticon file="stunned.png">
<string>😲</string>
<string>:O</string>
<string>:-O</string>
<string>😲</string>
</emoticon>
<emoticon file="tongue.png">
<string>😋</string>
<string>:p</string>
<string>:P</string>
<string>😋</string>
</emoticon>
<emoticon file="uncertain.png">
<string>😕</string>
<string>:/</string>
<string>:-/</string>
<string>😕</string>
</emoticon>
<emoticon file="wink.png">
<string>😉</string>
<string>;)</string>
<string>;-)</string>
<string>😉</string>
</emoticon>
<emoticon file="sad.png">
<string>😖</string>
<string>:(</string>
<string>:-(</string>
<string>😖</string>
</emoticon>
<emoticon file="crying.png">
<string>😢</string>
<string>;(</string>
<string>;-(</string>
<string>😢</string>
</emoticon>
<emoticon file="smile.png">
<string>😃</string>
<string>:D</string>
<string>:-D</string>
<string>😃</string>
</emoticon>
<emoticon file="plain.png">
<string>😐</string>
<string>:|</string>
<string>:-|</string>
<string>😐</string>
</emoticon>
<emoticon file="laugh.png">
<string>😄</string>
<string>;D</string>
<string>;-D</string>
<string>😄</string>
</emoticon>
<emoticon file="angry.png">
<string>😠</string>
<string>:@</string>
<string>😠</string>
</emoticon>
<emoticon file="scared.png">
<string>😨</string>
<string>D:</string>
<string>😨</string>
</emoticon>
<emoticon file="laugh_closed_eyes">
<string>😆</string>
<string>xD</string>
<string>XD</string>
</emoticon>
<emoticon file="Kappa.png">
<string>:Kappa:</string>
<string>😆</string>
</emoticon>
</messaging-emoticon-map>

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Some files were not shown because too many files have changed in this diff Show More