GithubHelp home page GithubHelp logo

qtox / qtox Goto Github PK

View Code? Open in Web Editor NEW
4.6K 286.0 1.0K 46.87 MB

qTox is a chat, voice, video, and file transfer IM client using the encrypted peer-to-peer Tox protocol.

Home Page: https://qtox.github.io/

License: GNU General Public License v3.0

Shell 4.30% C++ 85.49% C 3.63% CSS 1.77% NSIS 0.90% Objective-C++ 0.12% CMake 1.90% Perl 0.04% Rich Text Format 1.62% Nix 0.01% Ruby 0.02% Python 0.20%
qtox tox c-plus-plus qt p2p encryption distributed voip audio video

qtox's Introduction

This repository and qTox are unmaintained!

Due to a lack of resources, qTox is no longer maintained.

If someone with provable C++ experience and sufficient resources to maintain qTox wants to take over I'm happy to discuss that. Meanwhile be careful about "official forks" of qTox unless you read it here, they are probably not official.

I want to take the time and thank all contributors and especially the long term contributors and founders:

It was fun working with all of you and I learned a lot!

So long, and thanks for all the fish! - sudden6

qTox


GPLv3+ Translate on Weblate Gitter


qTox is a chat, voice, video, and file transfer instant messaging client using the encrypted peer-to-peer Tox protocol.

User Manual | Install/Build | Roadmap | Report bugs | Jenkins builds | Mailing list | IRC: #[email protected]


Windows Linux OS X FreeBSD
64 bit release Arch, Debian, Fedora, Gentoo, openSUSE, Ubuntu Latest release Package & Port
32 bit release AppImage, Flatpak Building instructions
64 bit, 32 bit nightly From Source, Flatpak nightly, AppImage nightly Latest nightly

Bold options are recommended.

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.

Help us

If you're wondering how could you help, fear not, there are plenty of ways :smile:

Some of them are:

Roadmap

Currently qTox is under a feature freeze to clean up our codebase and tools. During this time we want to prepare qTox for upcoming new features of toxcore.

The next steps are:

  • move all toxcore abstractions into their own subproject
  • write basic tests for this Core
  • format the code base
  • rethink our Issue tracker

The current state is tracked in the Code cleanup project.

Screenshots

Note: The screenshots may not always be up to date, but they should give a good idea of the general look and features.

Screenshot 01 Screenshot 02

Features

  • One to one chat with friends
  • Group chats
  • File transfers, with previewing of images
  • Audio calls, including group calls
  • Video calls
  • ToxMe and Tox URI support
  • Translations in over 30 languages
  • Avatars
  • Faux offline messages
  • History
  • Screenshots
  • Emoticons
  • Auto-updates on Windows and packages on Linux
  • And many more options!

Organizational stuff

Happens in both IRC channel #[email protected] and on qTox-dev mailing list. If you are interested in participating, join the channel and subscribe to the mailing list.

There are IRC logs available.

GPG fingerprints

List of GPG fingerprints used by qTox developers to sign commits, merges, tags, and possibly other stuff.

Active qTox maintainers:

7EB3 39FE 8817 47E7 01B7  D472 EBE3 6E66 A842 9B99      - Anthony Bilinski
3103 9166 FA90 2CA5 0D05  D608 5AF9 F2E2 9107 C727      – Diadlo
CA92 21C5 389B 7C50 AA5F  7793 52A5 0775 BE13 DF17      - noavarice
DA26 2CC9 3C0E 1E52 5AD2  1C85 9677 5D45 4B8E BF44      – sudden6
141C 880E 8BA2 5B19 8D0F  850F 7C13 2143 C1A3 A7D4      – tox-user
2880 C860 D95C 909D 3DA4  5C68 7E08 6DD6 6126 3264      – tux3

Past qTox maintainers:

C7A2 552D 0B25 0F98 3827  742C 1332 03A3 AC39 9151      – initramfs
BA78 83E2 2F9D 3594 5BA3  3760 5313 7C30 33F0 9008      – zetok
F365 8D0A 04A5 76A4 1072  FC0D 296F 0B76 4741 106C      – agilob
1157 616B BD86 0C53 9926  F813 9591 A163 FF9B E04C      – antis81
1D29 8BC7 25B7 BE82 65BA  EAB9 3DB8 E053 15C2 20AA      – Dubslow

Windows updates, managed by tux3:

AED3 1134 9C23 A123 E5C4  AA4B 139C A045 3DA2 D773

qtox's People

Contributors

agilob avatar ansa89 avatar anthonybilinski avatar antis81 avatar apprb avatar diadlo avatar dubslow avatar ezavod avatar f1ynn avatar initramfs avatar krepa098 avatar kribylet avatar monsterovich avatar msteinbeck avatar noavarice avatar nurupo avatar ovalseven8 avatar pkev avatar rokups avatar sphaerophoria avatar stqism avatar sudden6 avatar talkless avatar thelastproject avatar thenain38 avatar thespiritxiii avatar trikrista avatar tux3 avatar victorenator avatar zetok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qtox's Issues

Decompose core and av

Currently the class "Core" is a god class and I think it would be useful to decompose core and av to own classes. Maybe a decomposition for file transfer would also be useful.

Calls not hanging up properly on peer timeout

"Core: AV peer timeout with 5"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
"Core: Unable to send audio frame, error -1"
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device
QIODevice::write: ReadOnly device

Log output is incorrect

"Core: Bootstraping from stqism, addr 192.254.75.98, port 42370"
"Core: Bootstraping from sonOfRa, addr 144.76.60.215, port 42370"
"Core: Bootstraping from stal, addr 23.226.230.47, port 42370"
"Core: Bootstraping from ChauffeR, addr 37.187.20.216, port 42370"
"Core: Bootstraping from aitjcize, addr 54.199.139.199, port 42370"

The port is wrong (should be 33445), I'm assuming it's a htons/ntohs problem without looking at the code.

Splitter improvement

The currently implemented splitter has two, in my mind not very useful "features":

  1. The friend list and chat/add friends/settings (i will simply name it chat widget) widgets have a minimal width. If the main widgets width is very small it feels somehow uncomfortable since you cannot really move the slider to adjust the widgets to your needs. A minimal width for the friend list widget should be ok because it contains some buttons at the bottom which needs a minimal width to be rendered correctly. After "fixing" #77 and #78 the chat widget does not need a minimal width and thus it should be removed.
  2. If I resize the friend list widget using the slider the buttons at the bottom will also move and increase the gap between them but should stay at the left (or at the center).

Bad scaling on high dpi screens

I have a small display with large resolution (166 dpi) and on it toxgui looks bad.
https://i.imgur.com/q1sdEfY.png
Looks like some things scale and others don't. Look at the screenshot - the black part is too narrow, the status texts are too small (looks like all other inscriptions scale with dpi but statuses don't).

Document minimal Qt version

Search on GitHub or grepping sources for Qt5, Qt4 or something similar gives no results.

Trying to compile with Qt 4.8.6.

$ qmake
Project MESSAGE: Warning: unknown QT: multimediawidgets
$ make
...
In file included from widget/form/addfriendform.cpp:1:0:
widget/form/addfriendform.h:11:22: fatal error: QDnsLookup: No such file or directory
 #include <QDnsLookup>
...

Official documentation says that QDnsLookup is available since Qt 5.0.

So toxgui seems to require at least Qt 5.0, but it's not stated anywhere explicitly.

Stay closer to usual pattern for settings dialog

Currently the settings dialog is embedded in the main window and does not provide a "save", "cancel" and (not necessary but useful) "restore defaults" button. As a consequence each user input will automatically update settings. In my mind this concept has two problems:

  1. It is somehow unintuitive since the user doesn't know if changes take effect or not
    2 The user has no option to revert a chunk of changes like he has with a cancel button

Moreover a settings dialog in a separate (modal) window is the usual case and well known by most users. We should not invent new concepts for well tested solutions.

Compiling fails to find Qt properly

Again, Mint 17 here. As promised in my previous issue, I'm attempting to compile it myself here. Sadly, I can't get Qt to play nice. Installing the "qt5-default" package insisted on removing the qt4-default package, which is a mildly annoying since I occasionally (though not in a while) contribute to a Qt4 project.

However, even after installing what looked necessary, qmake still fails by default with this message:

$ qmake
Project ERROR: Unknown module(s) in QT: multimediawidgets multimedia

It is Qt5:
$ qmake --version
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu

If I delete the offending two words in toxgui.pro, QT += core gui, then qmake works, but make fails thusly:

$ make
g++ -c -m64 -pipe -O2 -std=c++0x -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -Ilibs/include -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -I. -o addfriendform.o widget/form/addfriendform.cpp
In file included from widget/form/addfriendform.cpp:1:0:
widget/form/addfriendform.h:11:22: fatal error: QDnsLookup: No such file or directory
 #include <QDnsLookup>
                      ^
compilation terminated.
make: *** [addfriendform.o] Error 1

...which I find strange, since the documentation says that that header requires QT += network, which I don't see in the .pro file.

Any advice is welcome. Did I fail to install some necessary package?

(Incidentally, where is development primarily coordinated? IRC? Or are you all so many cats doing whatever each of you wants? :D)

Errors when trying out video on Gentoo

(toxgui:4421): GStreamer-CRITICAL **: gst_caps_unref: assertion 'caps != NULL' failed

** (toxgui:4421): CRITICAL **: gst_missing_encoder_message_new: assertion '!gst_caps_is_any (encode_caps)' failed

(toxgui:4421): GStreamer-CRITICAL **: gst_element_post_message: assertion 'message != NULL' failed
CameraBin error: "Ihrer Installation von GStreamer fehlt ein Plugin."

translation:"Your installation of GStreamer is missing a plugin"

Camera works fine in browser applications that use flash to access it.

Portable idea

Maybe add portable support this way when someone makes "config" folder in toxgui folder then toxgui uses it instead of user profile.

Some context menu items doesn't work

There's no reaction on “Copy friend's id”, “Remove friend”, “Quit group” item on russian locale. Status changing doesn't work too.
“Save chat log” and everything else works fine.

Save tox data on events

Why not save tox data on toxcore events instead of saving on timer only? This can prevent useless writes on disk.

Translations

Need to tr() every visible and relevant string in the code, then start making some translations with Qt Linguist.

Large files are loaded wholly in memory, transfer may fail

Transfering large fails may fail (e.g. stop in the middle, or suddendly reset to 0%)

We should load chunks of the file ondemand, but still preload chunks bigger than we immediatly need (25MB?), for better speed and to avoid abusing the hard drive.

The provided Linux binary didn't run for me

That's the July 1st version mentioned in the README.

It fails thusly: ./toxgui ./toxgui: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'CXXABI_1.3.8' not found (required by ./toxgui)

I'll try and compile it myself in the next 24 hours or so and see what (if anything) is up.

This is up-to-date Mint 17.

Graphical glitch when leaving groupchat

Have no other contacts. Create a groupchat. Right click and quit the groupchat. Where the groupchat was is colored differently, and it disappears if you click another button (or take a screenshot, apparently.) Same on Windows and Linux. Tiny thing that'll likely never crop up in actual normal use but it's there.

return-statement with no value [add Travis CI to project]

widget/camera.cpp: In member function ‘virtual bool Camera::present(const QVideoFrame&)’:
widget/camera.cpp:89:9: error: return-statement with no value, in function returning ‘bool’ [-fpermissive]
make: *** [camera.o] Error 1

Consider adding Travis CI to repo for checking build status after commits and pull requests.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.