diff --git a/README.md b/README.md
index c007791..4401476 100644
--- a/README.md
+++ b/README.md
@@ -33,24 +33,25 @@ Toxygen is cross-platform [Tox](https://tox.chat/) client written on Python
- [x] File resuming
- [x] Save file encryption
- [x] Plugins support
+- [x] Read receipts
+- [x] Faux offline messaging
- [ ] Video
- [ ] Group chats
-- [ ] Read receipts
-- [ ] Faux offline messaging
- [ ] Desktop sharing
###Downloads
+[Releases](https://github.com/xveduk/toxygen/releases)
+
[Download last stable version](https://github.com/xveduk/toxygen/archive/master.zip)
[Download develop version](https://github.com/xveduk/toxygen/archive/develop.zip)
-[Releases](https://github.com/xveduk/toxygen/releases)
-
###Screenshots
*Toxygen on Ubuntu and Windows*


+
###Docs
[Check /docs/ for more info](/docs/)
diff --git a/docs/contributing.md b/docs/contributing.md
index 32b835e..2eeb453 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -9,13 +9,13 @@ Help us find all bugs in Toxygen! Please provide following info:
- Toxygen executable info - .py or precompiled binary
- Steps to reproduce the bug
-Want to see new feature in Toxygen? [Open issue!](https://github.com/xveduk/toxygen/issues)
+Want to see new feature in Toxygen? [Ask for it!](https://github.com/xveduk/toxygen/issues)
#Pull requests
Developer? Feel free to open pull request. Our dev team is small so we glad to get help.
-Don't know what to do? Impove UI, fix [issues](https://github.com/xveduk/toxygen/issues) or implement features from our TODO list.
-You can find our TODO's in code and [here](/README.md)
+Don't know what to do? Improve UI, fix [issues](https://github.com/xveduk/toxygen/issues) or implement features from our TODO list.
+You can find our TODO's in code and [here](/README.md). Also you can implement plugins for Toxygen.
#Translations
diff --git a/docs/plugins.md b/docs/plugins.md
index 3fb13b7..36981c0 100644
--- a/docs/plugins.md
+++ b/docs/plugins.md
@@ -1,6 +1,6 @@
#Plugins
-Toxygen is the first [Tox](https://tox.chat/) client with plugins support. Plugin is Python module and directory with plugin's data which provide some additional functionality.
+Toxygen is the first [Tox](https://tox.chat/) client with plugins support. Plugin is Python module (.py file) and directory with plugin's data which provide some additional functionality.
#How to write plugin
diff --git a/src/menu.py b/src/menu.py
index 689d1d6..8b7c6be 100644
--- a/src/menu.py
+++ b/src/menu.py
@@ -548,6 +548,9 @@ class InterfaceSettings(CenteredWidget):
class AudioSettings(CenteredWidget):
+ """
+ Audio calls settings form
+ """
def __init__(self):
super(AudioSettings, self).__init__()
@@ -601,6 +604,9 @@ class AudioSettings(CenteredWidget):
class PluginsSettings(CenteredWidget):
+ """
+ Plugins settings form
+ """
def __init__(self):
super(PluginsSettings, self).__init__()
diff --git a/src/profile.py b/src/profile.py
index 3074f85..8a71797 100644
--- a/src/profile.py
+++ b/src/profile.py
@@ -506,6 +506,7 @@ class Profile(Contact, Singleton):
"""
Friend with specified number quit
"""
+ # TODO: fix
self.get_friend_by_number(friend_number).status = None
self.friend_typing(friend_number, False)
if friend_number in self._call:
diff --git a/src/translations/en_GB.ts b/src/translations/en_GB.ts
index 87c2b31..50ae041 100644
--- a/src/translations/en_GB.ts
+++ b/src/translations/en_GB.ts
@@ -3,50 +3,63 @@
AddContact
-
+
Add contact
Add contact
-
+
TOX ID:
TOX ID:
-
+
Message:
Message:
+
+
+ TOX ID or public key of contact
+
+
+
+
+ Callback
+
+
+ File from
+
+
Form
-
+
Send request
Send request
-
+
IPv6
IPv6
-
+
UDP
UDP
-
+
Proxy
Proxy
-
+
IP:
IP:
-
+
Port:
Port:
@@ -56,12 +69,12 @@
Online contacts
-
+
HTTP
HTTP
-
+
WARNING:
using proxy with enabled UDP
can produce IP leak
@@ -71,103 +84,103 @@ can produce IP leak
MainWindow
-
+
Profile
-
+
Settings
-
+
About
-
+
Add contact
-
+
Privacy
-
+
Interface
-
+
Notifications
-
+
Network
-
+
About program
-
+
User {} wants to add you to contact list. Message:
{}
-
+
Friend request
-
+
Choose file
Choose file
-
+
Disallow auto accept
-
+
Allow auto accept
-
+
Set alias
-
+
Clear history
-
+
Copy public key
-
+
Remove friend
-
+
Enter new alias for friend {} or leave empty to use friend's name:
Enter new alias for friend {} or leave empty to use friend's name:
-
+
Audio
Audio
@@ -177,82 +190,137 @@ can produce IP leak
Find contact
-
+
Friend added
Friend added
-
+
Toxygen is Tox client written on Python.
Version:
Toxygen is Tox client written on Python.
Version:
-
+
Friend added without sending friend request
Friend added without sending friend request
-
+
Choose folder
Choose folder
-
+
Send screenshot
Send screenshot
-
+
Send file
Send file
-
+
Send message
Send message
-
+
Start audio call with friend
Start audio call with friend
-
+
Plugins
-
+
List of plugins
-
+
Search
-
+
All
-
+
Online
+
+
+ Notes
+
+
+
+
+ Notes about user
+
+
+
+
+ Copy link location
+
+
+
+
+ Copy
+
+
+
+
+ Select all
+
+
+
+
+ Delete
+
+
+
+
+ Paste
+
+
+
+
+ Cut
+
+
+
+
+ Undo
+
+
+
+
+ Redo
+
+
+
+
+ Save
+
+
NetworkSettings
-
+
Network settings
Network settings
-
+
Restart TOX core
Restart Tox core
@@ -260,12 +328,12 @@ Version:
PluginWindow
-
+
List of commands for plugin {}
-
+
No commands available
@@ -273,125 +341,130 @@ Version:
PluginsForm
-
+
Plugins
-
+
Open selected plugin
-
+
No GUI found for this plugin
-
+
No description available
-
+
Disable plugin
-
+
Enable plugin
+
+
+ No plugins found
+
+
ProfileSettingsForm
-
+
Export profile
-
+
Profile settings
-
+
Name:
-
+
Status:
-
+
TOX ID:
-
+
Copy TOX ID
-
+
New avatar
-
+
Reset avatar
-
+
New NoSpam
New NoSpam
-
+
Profile password
-
+
Password (at least 8 symbols)
-
+
Confirm password
-
+
Set password
-
+
Passwords do not match
-
+
Leaving blank will reset current password
-
+
There is no way to recover lost passwords
-
+
Password must be at least 8 symbols
-
+
Choose avatar
@@ -399,17 +472,17 @@ Version:
audioSettingsForm
-
+
Audio settings
Audio settings
-
+
Input device:
Input device:
-
+
Output device:
Output device:
@@ -417,12 +490,12 @@ Version:
incoming_call
-
+
Incoming video call
Incoming video call
-
+
Incoming audio call
Incoming audio call
@@ -430,17 +503,17 @@ Version:
interfaceForm
-
+
Interface settings
-
+
Theme:
-
+
Language:
@@ -496,22 +569,22 @@ Version:
notificationsForm
-
+
Notification settings
-
+
Enable notifications
-
+
Enable call's sound
-
+
Enable sound notifications
@@ -519,77 +592,77 @@ Version:
privacySettings
-
+
Privacy settings
-
+
Save chat history
-
+
Allow file auto accept
-
+
Send typing notifications
-
+
Auto accept default path:
-
+
Change
-
+
Allow inlines
-
+
Chat history
-
+
History will be cleaned! Continue?
-
+
Blocked users:
Blocked users:
-
+
Unblock
Unblock
-
+
Block user
Block user
-
+
Add to friend list
Add to friend list
-
+
Do you want to add this user to friend list?
Do you want to add this user to friend list?
-
+
Block by TOX ID:
Block by TOX ID:
diff --git a/src/translations/fr_FR.ts b/src/translations/fr_FR.ts
index 5755033..4824ecf 100644
--- a/src/translations/fr_FR.ts
+++ b/src/translations/fr_FR.ts
@@ -3,50 +3,63 @@
AddContact
-
+
Add contact
Rajouter un contact
-
+
TOX ID:
ID TOX :
-
+
Message:
Message :
+
+
+ TOX ID or public key of contact
+
+
+
+
+ Callback
+
+
+ File from
+
+
Form
-
+
Send request
Envoyer une demande
-
+
IPv6
IPv6
-
+
UDP
UDP
-
+
Proxy
Proxy
-
+
IP:
IP :
-
+
Port:
Port :
@@ -56,12 +69,12 @@
Contacts connectés
-
+
HTTP
HTTP
-
+
WARNING:
using proxy with enabled UDP
can produce IP leak
@@ -71,58 +84,58 @@ can produce IP leak
MainWindow
-
+
Profile
Profile
-
+
Settings
Paramêtres
-
+
About
À Propos
-
+
Add contact
Rajouter un contact
-
+
Privacy
Confidentialité
-
+
Interface
Interface
-
+
Notifications
Notifications
-
+
Network
Réseau
-
+
About program
À propos du programme
-
+
User {} wants to add you to contact list. Message:
{}
L'Utilisateur {} veut vout rajouter à sa liste de contacts. Message : {}
-
+
Friend request
Demande d'amis
@@ -132,47 +145,47 @@ can produce IP leak
Toxygen est un client Tox écris en Python 2.7. Version :
-
+
Choose file
Choisir un fichier
-
+
Disallow auto accept
Désactiver l'auto-réception
-
+
Allow auto accept
Activer l'auto-réception
-
+
Set alias
Définir un alias
-
+
Clear history
Vider l'historique
-
+
Copy public key
Copier la clé publique
-
+
Remove friend
Retirer un ami
-
+
Enter new alias for friend {} or leave empty to use friend's name:
Entrez un nouvel alias pour l'ami {} ou laissez vide pour garder son nom de base :
-
+
Audio
Audio
@@ -182,82 +195,137 @@ can produce IP leak
Trouver le contact
-
+
Friend added
Ami rajouté
-
+
Toxygen is Tox client written on Python.
Version:
Toxygen est un client Tox écrit en Python.
Version :
-
+
Friend added without sending friend request
Ami rajouté sans avoir envoyé de demande
-
+
Choose folder
Choisir le dossier
-
+
Send screenshot
Envoyer une capture d'écran
-
+
Send file
Envoyer le fichier
-
+
Send message
Envoyer le message
-
+
Start audio call with friend
Lancer un appel audio avec un ami
-
+
Plugins
-
+
List of plugins
-
+
Search
-
+
All
-
+
Online
+
+
+ Notes
+
+
+
+
+ Notes about user
+
+
+
+
+ Copy link location
+
+
+
+
+ Copy
+
+
+
+
+ Select all
+
+
+
+
+ Delete
+
+
+
+
+ Paste
+
+
+
+
+ Cut
+
+
+
+
+ Undo
+
+
+
+
+ Redo
+
+
+
+
+ Save
+
+
NetworkSettings
-
+
Network settings
Paramètres réseaux
-
+
Restart TOX core
Relancer le noyau TOX
@@ -265,12 +333,12 @@ Version :
PluginWindow
-
+
List of commands for plugin {}
-
+
No commands available
@@ -278,125 +346,130 @@ Version :
PluginsForm
-
+
Plugins
-
+
Open selected plugin
-
+
No GUI found for this plugin
-
+
No description available
-
+
Disable plugin
-
+
Enable plugin
+
+
+ No plugins found
+
+
ProfileSettingsForm
-
+
Export profile
Exporter le profile
-
+
Profile settings
Paramêtres du profil
-
+
Name:
Nom :
-
+
Status:
Status :
-
+
TOX ID:
ID TOX :
-
+
Copy TOX ID
Copier l'ID TOX
-
+
New avatar
Nouvel avatar
-
+
Reset avatar
Réinitialiser l'avatar
-
+
New NoSpam
Nouveau NoSpam
-
+
Profile password
-
+
Password (at least 8 symbols)
-
+
Confirm password
-
+
Set password
-
+
Passwords do not match
-
+
Leaving blank will reset current password
-
+
There is no way to recover lost passwords
-
+
Password must be at least 8 symbols
-
+
Choose avatar
@@ -404,17 +477,17 @@ Version :
audioSettingsForm
-
+
Audio settings
Paramètres audio
-
+
Input device:
Péripherique d'entrée :
-
+
Output device:
Péripherique de sortie :
@@ -422,12 +495,12 @@ Version :
incoming_call
-
+
Incoming video call
Appel vidéo entrant
-
+
Incoming audio call
Appel audio entrant
@@ -435,17 +508,17 @@ Version :
interfaceForm
-
+
Interface settings
Paramêtres de l'interface
-
+
Theme:
Thème :
-
+
Language:
Langue :
@@ -501,22 +574,22 @@ Version :
notificationsForm
-
+
Notification settings
Paramêtres de notification
-
+
Enable notifications
Activer les notifications
-
+
Enable call's sound
Activer les sons d'appel
-
+
Enable sound notifications
Activer les sons de notifications
@@ -524,77 +597,77 @@ Version :
privacySettings
-
+
Privacy settings
Paramêtres de confidentialité
-
+
Save chat history
Sauvegarder l'historique de chat
-
+
Allow file auto accept
Autoriser les fichier automatiquement
-
+
Send typing notifications
Notifier la frappe
-
+
Auto accept default path:
Chemin d'accès des fichiers acceptés automatiquement :
-
+
Change
Modifier
-
+
Allow inlines
Activer l'auto-réception
-
+
Chat history
Historique de chat
-
+
History will be cleaned! Continue?
L'Historique va être nettoyé ! Confirmer ?
-
+
Blocked users:
Utilisateurs bloqués :
-
+
Unblock
Débloquer
-
+
Block user
Bloquer l'utilisateur
-
+
Add to friend list
Ajouter à la liste des amis
-
+
Do you want to add this user to friend list?
Voulez vous rajouter cet utilisateur à votre liste d'amis ?
-
+
Block by TOX ID:
Bloquer l'ID TOX :
diff --git a/src/translations/ru_RU.qm b/src/translations/ru_RU.qm
index dffe08c..bf98ef1 100644
Binary files a/src/translations/ru_RU.qm and b/src/translations/ru_RU.qm differ
diff --git a/src/translations/ru_RU.ts b/src/translations/ru_RU.ts
index 83723b0..d6a8cd3 100644
--- a/src/translations/ru_RU.ts
+++ b/src/translations/ru_RU.ts
@@ -4,50 +4,63 @@
AddContact
-
+
Add contact
Добавить контакт
-
+
TOX ID:
TOX ID:
-
+
Message:
Сообщение:
+
+
+ TOX ID or public key of contact
+ TOX ID или публичный ключ контакта
+
+
+
+ Callback
+
+
+ File from
+ Файл от
+
Form
-
+
Send request
Отправить запрос
-
+
IPv6
IPv6
-
+
UDP
UDP
-
+
Proxy
Прокси
-
+
IP:
IP:
-
+
Port:
Порт:
@@ -57,16 +70,16 @@
Контакты в сети
-
+
HTTP
HTTP
-
+
WARNING:
using proxy with enabled UDP
can produce IP leak
- Предупреждение:
+ Предупреждение:
использование прокси с UDP
может привести к утечке IP
@@ -74,104 +87,104 @@ can produce IP leak
MainWindow
-
+
Profile
Профиль
-
+
Settings
Настройки
-
+
About
О программе
-
+
Add contact
Добавить контакт
-
+
Privacy
Приватность
-
+
Interface
Интерфейс
-
+
Notifications
Уведомления
-
+
Network
Сеть
-
+
About program
О программе
-
+
User {} wants to add you to contact list. Message:
{}
Пользователь {} хочет добавить Вас в список контактов. Сообщение:
{}
-
+
Friend request
Запрос на добавление в друзья
-
+
Choose file
Выберите файл
-
+
Disallow auto accept
Запретить автоматическое получение файлов
-
+
Allow auto accept
Разрешить автоматическое получение файлов
-
+
Set alias
Изменить псевдоним
-
+
Clear history
Очистить историю
-
+
Copy public key
Копировать публичный ключ
-
+
Remove friend
Удалить друга
-
+
Enter new alias for friend {} or leave empty to use friend's name:
Введите новый псевдоним для друга {} или оставьте пустым для использования его имени:
-
+
Audio
Аудио
@@ -181,81 +194,136 @@ can produce IP leak
Найти контакт
-
+
Friend added
Друг добавлен
-
+
Toxygen is Tox client written on Python.
Version:
Toxygen - клиент для мессенджера Tox, написанный на Python. Версия:
-
+
Friend added without sending friend request
Друг добавлен без отправки запроса на добавление в друзья
-
+
Choose folder
Выбрать папку
-
+
Send screenshot
Отправить снимок экрана
-
+
Send file
Отправить файл
-
+
Send message
Отправить сообщение
-
+
Start audio call with friend
Начать аудиозвонок с другом
-
+
Plugins
Плагины
-
+
List of plugins
Список плагинов
-
+
Search
Поиск
-
+
All
Все
-
+
Online
Онлайн
+
+
+ Notes
+ Заметки
+
+
+
+ Notes about user
+ Заметки о пользователе
+
+
+
+ Copy link location
+ Копировать адрес ссылки
+
+
+
+ Copy
+ Копировать
+
+
+
+ Select all
+ Выделить всё
+
+
+
+ Delete
+ Удалить
+
+
+
+ Paste
+ Вставить
+
+
+
+ Cut
+ Вырезать
+
+
+
+ Undo
+ Отменить
+
+
+
+ Redo
+ Повторить
+
+
+
+ Save
+ Сохранить
+
NetworkSettings
-
+
Network settings
Настройки сети
-
+
Restart TOX core
Перезапустить ядро TOX
@@ -263,12 +331,12 @@ Version:
PluginWindow
-
+
List of commands for plugin {}
Список команд для плагина {}
-
+
No commands available
Команды не найдены
@@ -276,65 +344,70 @@ Version:
PluginsForm
-
+
Plugins
Плагины
-
+
Open selected plugin
Открыть выбранный плагин
-
+
No GUI found for this plugin
GUI для данного плагина не найден
-
+
No description available
Описание недоступно
-
+
Disable plugin
Отключить плагин
-
+
Enable plugin
Включить плагин
+
+
+ No plugins found
+ Плагины не найдены
+
ProfileSettingsForm
-
+
Export profile
Экспорт профиля
-
+
Profile settings
Настройки профиля
-
+
Name:
Имя:
-
+
Status:
Статус:
-
+
TOX ID:
TOX ID:
-
+
Copy TOX ID
Копировать TOX ID
@@ -344,62 +417,62 @@ Version:
Язык:
-
+
New avatar
Новый аватар
-
+
Reset avatar
Сбросить аватар
-
+
New NoSpam
Новый NoSpam
-
+
Profile password
Пароль профиля
-
+
Password (at least 8 symbols)
Пароль (минимум 8 символов)
-
+
Confirm password
Подтверждение пароля
-
+
Set password
Изменить пароль
-
+
Passwords do not match
Пароли не совпадают
-
+
Leaving blank will reset current password
Пустое поле сбросит текущий пароль
-
+
There is no way to recover lost passwords
Восстановление забытых паролей не поддерживается
-
+
Password must be at least 8 symbols
Пароль должен быть длиной не менее 8 символов
-
+
Choose avatar
Выбрать аватар
@@ -407,17 +480,17 @@ Version:
audioSettingsForm
-
+
Audio settings
Настройки аудио
-
+
Input device:
Устройство ввода:
-
+
Output device:
Устройство вывода:
@@ -425,12 +498,12 @@ Version:
incoming_call
-
+
Incoming video call
Входящий видеозвонок
-
+
Incoming audio call
Входящий аудиозвонок
@@ -438,17 +511,17 @@ Version:
interfaceForm
-
+
Interface settings
Настройки интерфейса
-
+
Theme:
Тема:
-
+
Language:
Язык:
@@ -504,22 +577,22 @@ Version:
notificationsForm
-
+
Notification settings
Настройки уведомлений
-
+
Enable notifications
Включить уведомления
-
+
Enable call's sound
Включить звук звонка
-
+
Enable sound notifications
Включить звуковые уведомления
@@ -528,77 +601,77 @@ Version:
privacySettings
-
+
Privacy settings
Настройки приватности
-
+
Save chat history
Сохранять историю переписки
-
+
Allow file auto accept
Разрешить автополучение файлов
-
+
Send typing notifications
Посылать уведомления о наборе текста
-
+
Auto accept default path:
Путь автоприема файлов:
-
+
Change
Изменить
-
+
Allow inlines
Разрешать инлайны
-
+
Chat history
История чата
-
+
History will be cleaned! Continue?
История переписки будет очищена! Продолжить?
-
+
Blocked users:
Заблокированные пользователи:
-
+
Unblock
Разблокировать
-
+
Block user
Заблокировать пользователя
-
+
Add to friend list
Добавить в список друзей
-
+
Do you want to add this user to friend list?
Добавить этого пользователя в список друзей?
-
+
Block by TOX ID:
Блокировать по TOX ID:
diff --git a/src/widgets.py b/src/widgets.py
index 51121fc..3fdccf3 100644
--- a/src/widgets.py
+++ b/src/widgets.py
@@ -5,6 +5,9 @@ except ImportError:
class DataLabel(QtGui.QLabel):
+ """
+ Label with elided text
+ """
def paintEvent(self, event):
painter = QtGui.QPainter(self)
@@ -27,6 +30,9 @@ class CenteredWidget(QtGui.QWidget):
class QRightClickButton(QtGui.QPushButton):
+ """
+ Button with right click support
+ """
def __init__(self, parent):
super(QRightClickButton, self).__init__(parent)
@@ -56,10 +62,13 @@ class RubberBand(QtGui.QRubberBand):
def create_menu(menu):
+ """
+ :return translated menu
+ """
for action in menu.actions():
text = action.text()
if 'Link Location' in text:
- text = text.replace('Copy Link Location',
+ text = text.replace('Copy &Link Location',
QtGui.QApplication.translate("MainWindow", "Copy link location", None,
QtGui.QApplication.UnicodeUTF8))
elif '&Copy' in text: