diff --git a/src/mainscreen.py b/src/mainscreen.py
index 227619d..943d761 100644
--- a/src/mainscreen.py
+++ b/src/mainscreen.py
@@ -16,6 +16,8 @@ class MainWindow(QtGui.QMainWindow):
self.tray = tray
self.setAcceptDrops(True)
self.initUI(tox)
+ if settings.Settings.get_instance()['show_welcome_screen']:
+ self.ws = WelcomeScreen()
def setup_menu(self, MainWindow):
self.menubar = QtGui.QMenuBar(MainWindow)
diff --git a/src/mainscreen_widgets.py b/src/mainscreen_widgets.py
index 79d9838..f12f521 100644
--- a/src/mainscreen_widgets.py
+++ b/src/mainscreen_widgets.py
@@ -2,7 +2,7 @@ try:
from PySide import QtCore, QtGui
except ImportError:
from PyQt4 import QtCore, QtGui
-from widgets import RubberBand, create_menu, QRightClickButton
+from widgets import RubberBand, create_menu, QRightClickButton, CenteredWidget
from profile import Profile
import smileys
import util
@@ -312,3 +312,67 @@ class StickerWindow(QtGui.QWidget):
self.close()
+class WelcomeScreen(CenteredWidget):
+
+ def __init__(self):
+ super().__init__()
+ self.setMaximumSize(250, 200)
+ self.setMinimumSize(250, 200)
+ self.center()
+ self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
+ self.text = QtGui.QTextBrowser(self)
+ self.text.setGeometry(QtCore.QRect(0, 0, 250, 170))
+ self.text.setOpenExternalLinks(True)
+ self.checkbox = QtGui.QCheckBox(self)
+ self.checkbox.setGeometry(QtCore.QRect(5, 170, 240, 30))
+ self.checkbox.setText(QtGui.QApplication.translate('WelcomeScreen', "Don't show again",
+ None, QtGui.QApplication.UnicodeUTF8))
+ self.setWindowTitle(QtGui.QApplication.translate('WelcomeScreen', 'Tip of the day',
+ None, QtGui.QApplication.UnicodeUTF8))
+ import random
+ num = random.randint(0, 8)
+ if num == 0:
+ text = QtGui.QApplication.translate('WelcomeScreen', 'Press Esc if you want hide app to tray.',
+ None, QtGui.QApplication.UnicodeUTF8)
+ elif num == 1:
+ text = QtGui.QApplication.translate('WelcomeScreen',
+ 'Right click on screenshot button hides app to tray during screenshot.',
+ None, QtGui.QApplication.UnicodeUTF8)
+ elif num == 2:
+ text = QtGui.QApplication.translate('WelcomeScreen',
+ 'You can use Tox over Tor. For more info read this post',
+ None, QtGui.QApplication.UnicodeUTF8)
+ elif num == 3:
+ text = QtGui.QApplication.translate('WelcomeScreen',
+ 'Use Settings -> Interface to customize interface.',
+ None, QtGui.QApplication.UnicodeUTF8)
+ elif num == 4:
+ text = QtGui.QApplication.translate('WelcomeScreen',
+ 'Set profile password via Profile -> Settings. Password allows Toxygen encrypt your history and settings.',
+ None, QtGui.QApplication.UnicodeUTF8)
+ elif num == 5:
+ text = QtGui.QApplication.translate('WelcomeScreen',
+ 'Since v0.1.3 Toxygen supports plugins. Read more',
+ None, QtGui.QApplication.UnicodeUTF8)
+ elif num == 6:
+ text = QtGui.QApplication.translate('WelcomeScreen',
+ 'New in Toxygen v0.2.2:
Users can lock application using profile password.
Compact contact list support
Bug fixes
Tox DNS improvements',
+ None, QtGui.QApplication.UnicodeUTF8)
+ elif num == 7:
+ text = QtGui.QApplication.translate('WelcomeScreen',
+ 'Toxygen supports faux offline messages and file transfers. Send message or file to offline friend and he will get it later.',
+ None, QtGui.QApplication.UnicodeUTF8)
+ else:
+ text = QtGui.QApplication.translate('WelcomeScreen',
+ 'Set new NoSpam to avoid spam friend requests: Profile -> Settings -> Set new NoSpam.',
+ None, QtGui.QApplication.UnicodeUTF8)
+ self.text.setHtml(text)
+ self.checkbox.stateChanged.connect(self.not_show)
+ QtCore.QTimer.singleShot(1000, self.show)
+
+ def not_show(self):
+ import settings
+ s = settings.Settings.get_instance()
+ s['show_welcome_screen'] = False
+ s.save()
+
diff --git a/src/profile.py b/src/profile.py
index f934eae..9ca41fe 100644
--- a/src/profile.py
+++ b/src/profile.py
@@ -229,6 +229,7 @@ class Profile(contact.Contact, Singleton):
self._screen.account_avatar.setScaledContents(False)
self._screen.account_avatar.setPixmap(pixmap.scaled(64, 64, QtCore.Qt.KeepAspectRatio))
self._screen.account_avatar.repaint() # comment?
+ self.update_filtration()
except Exception as ex: # no friend found. ignore
log('Friend value: ' + str(value))
log('Error: ' + str(ex))
@@ -778,6 +779,7 @@ class Profile(contact.Contact, Singleton):
self.status = None
for friend in self._friends:
friend.status = None
+ self.update_filtration()
def close(self):
if hasattr(self, '_call'):
diff --git a/src/settings.py b/src/settings.py
index 7b8f4ab..69ed458 100644
--- a/src/settings.py
+++ b/src/settings.py
@@ -125,7 +125,8 @@ class Settings(dict, Singleton):
'message_font_size': 14,
'unread_color': 'red',
'save_unsent_only': False,
- 'compact_mode': False
+ 'compact_mode': False,
+ 'show_welcome_screen': True
}
@staticmethod
diff --git a/src/translations/en_GB.ts b/src/translations/en_GB.ts
index ece01c4..cb8914e 100644
--- a/src/translations/en_GB.ts
+++ b/src/translations/en_GB.ts
@@ -84,103 +84,103 @@ can produce IP leak
MainWindow
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
Choose file
-
+
-
+
-
+
-
+
-
+
-
+
-
+
Enter new alias for friend {} or leave empty to use friend's name:
-
+
Audio
@@ -190,19 +190,19 @@ can produce IP leak
Find contact
-
+
Friend added
-
+
Toxygen is Tox client written on Python.
Version:
-
+
Friend added without sending friend request
@@ -222,47 +222,47 @@ Version:
Send file
-
+
Send message
-
+
Start audio call with friend
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -312,7 +312,7 @@ Version:
-
+
@@ -322,17 +322,17 @@ Version:
-
+
-
+
-
+
@@ -572,6 +572,64 @@ Version:
+
+ WelcomeScreen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
audioSettingsForm
@@ -593,32 +651,32 @@ Version:
incoming_call
-
+
Incoming video call
-
+
Incoming audio call
-
+
-
+
-
+
-
+
diff --git a/src/translations/fr_FR.ts b/src/translations/fr_FR.ts
index 48998fa..a4f443c 100644
--- a/src/translations/fr_FR.ts
+++ b/src/translations/fr_FR.ts
@@ -84,58 +84,58 @@ can produce IP leak
MainWindow
-
+
Profile
-
+
Paramêtres
-
+
À Propos
-
+
Rajouter un contact
-
+
Confidentialité
-
+
Interface
-
+
Notifications
-
+
Réseau
-
+
À propos du programme
-
+
L'Utilisateur {} veut vout rajouter à sa liste de contacts. Message : {}
-
+
Demande d'amis
@@ -145,47 +145,47 @@ can produce IP leak
Toxygen est un client Tox écris en Python 2.7. Version :
-
+
Choisir un fichier
-
+
Désactiver l'auto-réception
-
+
Activer l'auto-réception
-
+
Définir un alias
-
+
Vider l'historique
-
+
Copier la clé publique
-
+
Retirer un ami
-
+
Entrez un nouvel alias pour l'ami {} ou laissez vide pour garder son nom de base :
-
+
Audio
@@ -195,19 +195,19 @@ can produce IP leak
Trouver le contact
-
+
Ami rajouté
-
+
Toxygen est un client Tox écrit en Python.
Version :
-
+
Ami rajouté sans avoir envoyé de demande
@@ -227,47 +227,47 @@ Version :
Envoyer le fichier
-
+
Envoyer le message
-
+
Lancer un appel audio avec un ami
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -317,7 +317,7 @@ Version :
-
+
@@ -327,17 +327,17 @@ Version :
-
+
-
+
-
+
@@ -577,6 +577,64 @@ Version :
+
+ WelcomeScreen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
audioSettingsForm
@@ -598,32 +656,32 @@ Version :
incoming_call
-
+
Appel vidéo entrant
-
+
Appel audio entrant
-
+
-
+
-
+
-
+
diff --git a/src/translations/ru_RU.qm b/src/translations/ru_RU.qm
index 1208cf7..629e9bd 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 2da3894..7e62841 100644
--- a/src/translations/ru_RU.ts
+++ b/src/translations/ru_RU.ts
@@ -87,104 +87,104 @@ can produce IP leak
MainWindow
-
+
Профиль
-
+
Настройки
-
+
О программе
-
+
Добавить контакт
-
+
Приватность
-
+
Интерфейс
-
+
Уведомления
-
+
Сеть
-
+
О программе
-
+
Пользователь {} хочет добавить Вас в список контактов. Сообщение:
{}
-
+
Запрос на добавление в друзья
-
+
Выберите файл
-
+
Запретить автоматическое получение файлов
-
+
Разрешить автоматическое получение файлов
-
+
Изменить псевдоним
-
+
Очистить историю
-
+
Копировать публичный ключ
-
+
Удалить друга
-
+
Введите новый псевдоним для друга {} или оставьте пустым для использования его имени:
-
+
Аудио
@@ -194,18 +194,18 @@ can produce IP leak
Найти контакт
-
+
Друг добавлен
-
+
Toxygen - клиент для мессенджера Tox, написанный на Python. Версия:
-
+
Друг добавлен без отправки запроса на добавление в друзья
@@ -225,47 +225,47 @@ Version:
Отправить файл
-
+
Отправить сообщение
-
+
Начать аудиозвонок с другом
-
+
Плагины
-
+
Список плагинов
-
+
Поиск
-
+
Все
-
+
Онлайн
-
+
Заметки
-
+
Заметки о пользователе
@@ -315,7 +315,7 @@ Version:
Сохранить
-
+
Пользователь {} сейчас известен как {}
@@ -325,17 +325,17 @@ Version:
Удалить сообщение
-
+
Заблокировать
-
+
Невозможно заблокировать приложение
-
+
Ошибка. Пароль профиля не установлен.
@@ -580,6 +580,64 @@ Version:
Сделать профилем по умолчанию
+
+ WelcomeScreen
+
+
+
+ Не показывать снова
+
+
+
+
+ Подсказка дня
+
+
+
+
+ Нажатие Esc сворачивает приложение в трей.
+
+
+
+
+ Правый клик на кнопке скриншота сворачивает приложение в трей на время скриншота
+
+
+
+
+ Вы можете использовать Tox через Tor. Дополнительная информация <a href="https://wiki.tox.chat/users/tox_over_tor_tot">тут</a>
+
+
+
+
+ Используйте Настройки -> Интерфейс для настройки интерфейса
+
+
+
+
+ Установите пароль профиля: Профиль -> Настройки. Пароль позволяет шифровать историю переписки и настройки.
+
+
+
+
+ С версии 0.1.3 Toxygen поддерживает плагины. <a href="https://github.com/xveduk/toxygen/blob/master/docs/plugins.md">Узнать больше.</a>
+
+
+
+
+ С версии 0.1.3 Toxygen поддерживает плагины. <a href="https://github.com/xveduk/toxygen/blob/master/docs/plugins.md">Узнать больше.</a>
+
+
+
+
+ Toxygen поддерживает псевдооффлайн сообщения и файл трансферы
+
+
+
+
+ Установите новый NoSpam, чтобы избежать спам запросов в друзья: Профиль->Настройки->Новый NoSpam
+
+
audioSettingsForm
@@ -601,32 +659,32 @@ Version:
incoming_call
-
+
Входящий видеозвонок
-
+
Входящий аудиозвонок
-
+
Исходящий видеозвонок
-
+
Исходящий аудиозвонок
-
+
Звонок отменен
-
+
Звонок завершен
@@ -656,7 +714,7 @@ Version:
- Набор смайликов
+ Набор смайликов:
@@ -851,7 +909,7 @@ Version:
- Блокировать по публичному ключу
+ Блокировать по публичному ключу: