Compare commits
11 Commits
main
...
6f0c1a444e
Author | SHA1 | Date | |
---|---|---|---|
6f0c1a444e | |||
b51ec9bd71 | |||
fda07698db | |||
0a54012cf5 | |||
021ec52e3d | |||
5019535c0d | |||
1554d9e53a | |||
a984b624b5 | |||
2aea5df33c | |||
1fa13db4e4 | |||
3582722faa |
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
*.pyc
|
*.pyc
|
||||||
*.pyo
|
*.pyo
|
||||||
|
*.ui
|
||||||
toxygen/toxcore
|
toxygen/toxcore
|
||||||
tests/tests
|
tests/tests
|
||||||
tests/libs
|
tests/libs
|
||||||
@ -24,5 +25,3 @@ html
|
|||||||
Toxygen.egg-info
|
Toxygen.egg-info
|
||||||
*.tox
|
*.tox
|
||||||
.cache
|
.cache
|
||||||
*.db
|
|
||||||
|
|
||||||
|
17
.travis.yml
17
.travis.yml
@ -12,13 +12,13 @@ before_install:
|
|||||||
- sudo apt-get install -y checkinstall build-essential
|
- sudo apt-get install -y checkinstall build-essential
|
||||||
- sudo apt-get install portaudio19-dev
|
- sudo apt-get install portaudio19-dev
|
||||||
- sudo apt-get install libsecret-1-dev
|
- sudo apt-get install libsecret-1-dev
|
||||||
|
|
||||||
- sudo apt-get install libconfig-dev libvpx-dev check -qq
|
- sudo apt-get install libconfig-dev libvpx-dev check -qq
|
||||||
install:
|
install:
|
||||||
- pip install sip
|
- pip3 install sip
|
||||||
- pip install pyqt5
|
- pip3 install pyaudio
|
||||||
- pip install pyaudio
|
- pip3 install pyqt5==5.14
|
||||||
- pip install opencv-python
|
- pip3 install opencv-python
|
||||||
- pip install pydenticon
|
|
||||||
before_script:
|
before_script:
|
||||||
# Opus
|
# Opus
|
||||||
- wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz
|
- wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz
|
||||||
@ -38,16 +38,15 @@ before_script:
|
|||||||
- sudo ldconfig
|
- sudo ldconfig
|
||||||
- cd ..
|
- cd ..
|
||||||
# Toxcore
|
# Toxcore
|
||||||
- git clone https://github.com/ingvar1995/toxcore.git --branch=ngc_rebase
|
- git clone https://github.com/irungentoo/toxcore.git
|
||||||
- cd toxcore
|
- cd toxcore
|
||||||
- mkdir _build && cd _build
|
- autoreconf -if
|
||||||
- cmake ..
|
- ./configure
|
||||||
- make -j$(nproc)
|
- make -j$(nproc)
|
||||||
- sudo make install
|
- sudo make install
|
||||||
- echo '/usr/local/lib/' | sudo tee -a /etc/ld.so.conf.d/locallib.conf
|
- echo '/usr/local/lib/' | sudo tee -a /etc/ld.so.conf.d/locallib.conf
|
||||||
- sudo ldconfig
|
- sudo ldconfig
|
||||||
- cd ..
|
- cd ..
|
||||||
- cd ..
|
|
||||||
script:
|
script:
|
||||||
- py.test tests/travis.py
|
- py.test tests/travis.py
|
||||||
- py.test tests/tests.py
|
- py.test tests/tests.py
|
||||||
|
@ -16,4 +16,4 @@ include toxygen/styles/*.qss
|
|||||||
include toxygen/translations/*.qm
|
include toxygen/translations/*.qm
|
||||||
include toxygen/libs/libtox.dll
|
include toxygen/libs/libtox.dll
|
||||||
include toxygen/libs/libsodium.a
|
include toxygen/libs/libsodium.a
|
||||||
include toxygen/bootstrap/nodes.json
|
include toxygen/nodes.json
|
||||||
|
@ -2,18 +2,10 @@
|
|||||||
|
|
||||||
You can compile Toxygen using [PyInstaller](http://www.pyinstaller.org/)
|
You can compile Toxygen using [PyInstaller](http://www.pyinstaller.org/)
|
||||||
|
|
||||||
Use Dockerfile and build script from `build` directory:
|
Install PyInstaller:
|
||||||
|
``pip3 install pyinstaller``
|
||||||
|
|
||||||
1. Build image:
|
Compile Toxygen:
|
||||||
```
|
``pyinstaller --windowed --icon images/icon.ico main.py``
|
||||||
docker build -t toxygen .
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Run container:
|
Don't forget to copy /images/, /sounds/, /translations/, /styles/, /smileys/, /stickers/, /plugins/ (and /libs/libtox.dll, /libs/libsodium.a on Windows) to /dist/main/
|
||||||
```
|
|
||||||
docker run -it toxygen bash
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Execute `build.sh` script:
|
|
||||||
|
|
||||||
```./build.sh```
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
# Contact us:
|
# Contact us:
|
||||||
|
|
||||||
1) https://git.plastiras.org/emdee/toxygen/issues
|
1) Using GitHub - open issue
|
||||||
|
|
||||||
2) Use Toxygen Tox Group (NGC) -
|
2) Use Toxygen Tox Group - add bot kalina@toxme.io (or 12EDB939AA529641CE53830B518D6EB30241868EE0E5023C46A372363CAEC91C2C948AEFE4EB)
|
||||||
ID: 59D68B2709E81A679CF91416CB0E3692851C6CFCABEFF98B7131E3805A6D75FA
|
|
||||||
|
@ -7,15 +7,12 @@ Help us find all bugs in Toxygen! Please provide following info:
|
|||||||
- Toxygen executable info - python executable (.py), precompiled binary, from package etc.
|
- Toxygen executable info - python executable (.py), precompiled binary, from package etc.
|
||||||
- Steps to reproduce the bug
|
- Steps to reproduce the bug
|
||||||
|
|
||||||
Want to see new feature in Toxygen?
|
Want to see new feature in Toxygen? [Ask for it!](https://github.com/toxygen-project/toxygen/issues)
|
||||||
[Ask for it!](https://git.plastiras.org/emdee/toxygen/issues)
|
|
||||||
|
|
||||||
# Pull requests
|
# Pull requests
|
||||||
|
|
||||||
Developer? Feel free to open pull request. Our dev team is small so we glad to get help.
|
Developer? Feel free to open pull request. Our dev team is small so we glad to get help.
|
||||||
Don't know what to do? Improve UI, fix
|
Don't know what to do? Improve UI, fix [issues](https://github.com/toxygen-project/toxygen/issues) or implement features from our TODO list.
|
||||||
[issues](https://git.plastiras.org/emdee/toxygen/issues)
|
|
||||||
or implement features from our TODO list.
|
|
||||||
You can find our TODO's in code, issues list and [here](/README.md). Also you can implement [plugins](/docs/plugins.md) for Toxygen.
|
You can find our TODO's in code, issues list and [here](/README.md). Also you can implement [plugins](/docs/plugins.md) for Toxygen.
|
||||||
|
|
||||||
Note that we have a lot of branches for different purposes. Master branch is for stable versions (releases) only, so I recommend to open PR's to develop branch. Development of next Toxygen version usually goes there. Other branches used for implementing different tasks such as file transfers improvements or audio calls implementation etc.
|
Note that we have a lot of branches for different purposes. Master branch is for stable versions (releases) only, so I recommend to open PR's to develop branch. Development of next Toxygen version usually goes there. Other branches used for implementing different tasks such as file transfers improvements or audio calls implementation etc.
|
||||||
|
@ -1,15 +1,33 @@
|
|||||||
# How to install Toxygen
|
# How to install Toxygen
|
||||||
|
|
||||||
|
## Use precompiled binary (recommended for users):
|
||||||
|
[Check our releases page](https://github.com/toxygen-project/toxygen/releases)
|
||||||
|
|
||||||
|
## Using pip3
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
``pip install toxygen``
|
||||||
|
|
||||||
|
Run app using ``toxygen`` command.
|
||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
|
|
||||||
1. Install [c-toxcore](https://github.com/TokTok/c-toxcore/)
|
1. Install [toxcore](https://github.com/irungentoo/toxcore/blob/master/INSTALL.md) with toxav support in your system (install in /usr/lib/)
|
||||||
2. Install PortAudio:
|
2. Install PortAudio:
|
||||||
``sudo apt-get install portaudio19-dev``
|
``sudo apt-get install portaudio19-dev``
|
||||||
3. For 32-bit Linux install PyQt5: ``sudo apt-get install python3-pyqt5``
|
3. For 32-bit Linux install PyQt5: ``sudo apt-get install python3-pyqt5``
|
||||||
4. Install [OpenCV](http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html) or via ``sudo pip3 install opencv-python``
|
4. Install [OpenCV](http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html) or via ``sudo pip3 install opencv-python``
|
||||||
5. Install [toxygen](https://git.plastiras.org/emdee/toxygen/)
|
5. Install toxygen:
|
||||||
|
``sudo pip3 install toxygen``
|
||||||
6. Run toxygen using ``toxygen`` command.
|
6. Run toxygen using ``toxygen`` command.
|
||||||
|
|
||||||
|
## Packages
|
||||||
|
|
||||||
|
Arch Linux: [AUR](https://aur.archlinux.org/packages/toxygen-git/)
|
||||||
|
|
||||||
|
Debian/Ubuntu: [tox.chat](https://tox.chat/download.html#gnulinux)
|
||||||
|
|
||||||
## From source code (recommended for developers)
|
## From source code (recommended for developers)
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
@ -26,17 +44,27 @@ Note: 32-bit Python isn't supported due to bug with videocalls. It is strictly r
|
|||||||
8. Download latest libtox.dll build, download latest libsodium.a build, put it into \toxygen\libs\
|
8. Download latest libtox.dll build, download latest libsodium.a build, put it into \toxygen\libs\
|
||||||
9. Run \toxygen\main.py.
|
9. Run \toxygen\main.py.
|
||||||
|
|
||||||
|
Optional: install toxygen using setup.py: ``python setup.py install``
|
||||||
|
|
||||||
|
[libtox.dll for 32-bit Python](https://build.tox.chat/view/libtoxcore/job/libtoxcore_build_windows_x86_shared_release/lastSuccessfulBuild/artifact/libtoxcore_build_windows_x86_shared_release.zip)
|
||||||
|
|
||||||
|
[libtox.dll for 64-bit Python](https://build.tox.chat/view/libtoxcore/job/libtoxcore_build_windows_x86-64_shared_release/lastSuccessfulBuild/artifact/libtoxcore_build_windows_x86-64_shared_release.zip)
|
||||||
|
|
||||||
|
[libsodium.a for 32-bit Python](https://build.tox.chat/view/libsodium/job/libsodium_build_windows_x86_static_release/lastSuccessfulBuild/artifact/libsodium_build_windows_x86_static_release.zip)
|
||||||
|
|
||||||
|
[libsodium.a for 64-bit Python](https://build.tox.chat/view/libsodium/job/libsodium_build_windows_x86-64_static_release/lastSuccessfulBuild/artifact/libsodium_build_windows_x86-64_static_release.zip)
|
||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
|
|
||||||
1. Install latest Python3:
|
1. Install latest Python3:
|
||||||
``sudo apt-get install python3``
|
``sudo apt-get install python3``
|
||||||
2. Install PyQt5: ``sudo apt-get install python3-pyqt5`` or ``sudo pip3 install pyqt5``
|
2. Install PyQt5: ``sudo apt-get install python3-pyqt5`` or ``sudo pip3 install pyqt5``
|
||||||
3. Install [toxcore](https://github.com/TokTok/c-toxcore) with toxav support)
|
3. Install [toxcore](https://github.com/irungentoo/toxcore/blob/master/INSTALL.md) with toxav support in your system (install in /usr/lib/)
|
||||||
4. Install PyAudio:
|
4. Install PyAudio:
|
||||||
``sudo apt-get install portaudio19-dev`` and ``sudo apt-get install python3-pyaudio`` (or ``sudo pip3 install pyaudio``)
|
``sudo apt-get install portaudio19-dev`` and ``sudo apt-get install python3-pyaudio`` (or ``sudo pip3 install pyaudio``)
|
||||||
5. Install NumPy: ``sudo pip3 install numpy``
|
5. Install NumPy: ``sudo pip3 install numpy``
|
||||||
6. Install [OpenCV](http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html) or via ``sudo pip3 install opencv-python``
|
6. Install [OpenCV](http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html) or via ``sudo pip3 install opencv-python``
|
||||||
7. [Download toxygen](https://git.plastiras.org/emdee/toxygen/)
|
7. [Download toxygen](https://github.com/toxygen-project/toxygen/archive/master.zip)
|
||||||
8. Unpack archive
|
8. Unpack archive
|
||||||
9. Run app:
|
9. Run app:
|
||||||
``python3 main.py``
|
``python3 main.py``
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Plugins API
|
# Plugins API
|
||||||
|
|
||||||
In Toxygen plugin is single python module (.py file) and directory with data associated with it.
|
In Toxygen plugin is single python (supported Python 3.4 - 3.6) module (.py file) and directory with data associated with it.
|
||||||
Every module must contain one class derived from PluginSuperClass defined in [plugin_super_class.py](/src/plugins/plugin_super_class.py). Instance of this class will be created by PluginLoader class (defined in [plugin_support.py](/src/plugin_support.py) ). This class can enable/disable plugins and send data to it.
|
Every module must contain one class derived from PluginSuperClass defined in [plugin_super_class.py](/src/plugins/plugin_super_class.py). Instance of this class will be created by PluginLoader class (defined in [plugin_support.py](/src/plugin_support.py) ). This class can enable/disable plugins and send data to it.
|
||||||
|
|
||||||
Every plugin has its own full name and unique short name (1-5 symbols). Main app can get it using special methods.
|
Every plugin has its own full name and unique short name (1-5 symbols). Main app can get it using special methods.
|
||||||
|
BIN
docs/ubuntu.png
Normal file → Executable file
BIN
docs/ubuntu.png
Normal file → Executable file
Binary file not shown.
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 109 KiB |
BIN
docs/windows.png
Normal file → Executable file
BIN
docs/windows.png
Normal file → Executable file
Binary file not shown.
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 81 KiB |
27
setup.py
27
setup.py
@ -2,17 +2,15 @@ from setuptools import setup
|
|||||||
from setuptools.command.install import install
|
from setuptools.command.install import install
|
||||||
from platform import system
|
from platform import system
|
||||||
from subprocess import call
|
from subprocess import call
|
||||||
import main
|
from toxygen.util import program_version
|
||||||
import sys
|
import sys
|
||||||
import os
|
|
||||||
from utils.util import curr_directory, join_path
|
|
||||||
|
|
||||||
|
|
||||||
version = main.__version__ + '.0'
|
version = program_version + '.0'
|
||||||
|
|
||||||
|
|
||||||
if system() == 'Windows':
|
if system() == 'Windows':
|
||||||
MODULES = ['PyQt5', 'PyAudio', 'numpy', 'opencv-python', 'pydenticon']
|
MODULES = ['PyQt5', 'PyAudio', 'numpy', 'opencv-python']
|
||||||
else:
|
else:
|
||||||
MODULES = []
|
MODULES = []
|
||||||
try:
|
try:
|
||||||
@ -31,19 +29,6 @@ else:
|
|||||||
import cv2
|
import cv2
|
||||||
except ImportError:
|
except ImportError:
|
||||||
MODULES.append('opencv-python')
|
MODULES.append('opencv-python')
|
||||||
try:
|
|
||||||
import pydenticon
|
|
||||||
except ImportError:
|
|
||||||
MODULES.append('pydenticon')
|
|
||||||
|
|
||||||
|
|
||||||
def get_packages():
|
|
||||||
directory = join_path(curr_directory(__file__), 'toxygen')
|
|
||||||
for root, dirs, files in os.walk(directory):
|
|
||||||
packages = map(lambda d: 'toxygen.' + d, dirs)
|
|
||||||
packages = ['toxygen'] + list(packages)
|
|
||||||
|
|
||||||
return packages
|
|
||||||
|
|
||||||
|
|
||||||
class InstallScript(install):
|
class InstallScript(install):
|
||||||
@ -77,7 +62,7 @@ setup(name='Toxygen',
|
|||||||
author='Ingvar',
|
author='Ingvar',
|
||||||
maintainer='Ingvar',
|
maintainer='Ingvar',
|
||||||
license='GPL3',
|
license='GPL3',
|
||||||
packages=get_packages(),
|
packages=['toxygen', 'toxygen.plugins', 'toxygen.styles'],
|
||||||
install_requires=MODULES,
|
install_requires=MODULES,
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
classifiers=[
|
classifiers=[
|
||||||
@ -86,8 +71,8 @@ setup(name='Toxygen',
|
|||||||
'Programming Language :: Python :: 3.6',
|
'Programming Language :: Python :: 3.6',
|
||||||
],
|
],
|
||||||
entry_points={
|
entry_points={
|
||||||
'console_scripts': ['toxygen=toxygen.main:main']
|
'console_scripts': ['toxygen=toxygen.main:main'],
|
||||||
},
|
},
|
||||||
cmdclass={
|
cmdclass={
|
||||||
'install': InstallScript
|
'install': InstallScript,
|
||||||
})
|
})
|
||||||
|
158
tests/tests.py
158
tests/tests.py
@ -1,18 +1,162 @@
|
|||||||
from toxygen.middleware.tox_factory import *
|
from toxygen.profile import *
|
||||||
|
from toxygen.tox_dns import tox_dns
|
||||||
|
from toxygen.history import History
|
||||||
|
from toxygen.smileys import SmileyLoader
|
||||||
|
from toxygen.messages import *
|
||||||
|
import toxygen.toxes as encr
|
||||||
|
import toxygen.util as util
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
# TODO: add new tests
|
|
||||||
|
|
||||||
class TestTox:
|
class TestTox:
|
||||||
|
|
||||||
def test_creation(self):
|
def test_creation(self):
|
||||||
name = 'Toxygen User'
|
name = b'Toxygen User'
|
||||||
status_message = 'Toxing on Toxygen'
|
status_message = b'Toxing on Toxygen'
|
||||||
tox = tox_factory()
|
tox = tox_factory()
|
||||||
tox.self_set_name(name)
|
tox.self_set_name(name)
|
||||||
tox.self_set_status_message(status_message)
|
tox.self_set_status_message(status_message)
|
||||||
data = tox.get_savedata()
|
data = tox.get_savedata()
|
||||||
del tox
|
del tox
|
||||||
tox = tox_factory(data)
|
tox = tox_factory(data)
|
||||||
assert tox.self_get_name() == name
|
assert tox.self_get_name() == str(name, 'utf-8')
|
||||||
assert tox.self_get_status_message() == status_message
|
assert tox.self_get_status_message() == str(status_message, 'utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
class TestProfileHelper:
|
||||||
|
|
||||||
|
def test_creation(self):
|
||||||
|
file_name, path = 'test.tox', os.path.dirname(os.path.realpath(__file__)) + '/'
|
||||||
|
data = b'test'
|
||||||
|
with open(path + file_name, 'wb') as fl:
|
||||||
|
fl.write(data)
|
||||||
|
ph = ProfileHelper(path, file_name[:4])
|
||||||
|
assert ProfileHelper.get_path() == path
|
||||||
|
assert ph.open_profile() == data
|
||||||
|
assert os.path.exists(path + 'avatars/')
|
||||||
|
|
||||||
|
|
||||||
|
class TestEncryption:
|
||||||
|
|
||||||
|
def test_encr_decr(self):
|
||||||
|
tox = tox_factory()
|
||||||
|
data = tox.get_savedata()
|
||||||
|
lib = encr.ToxES()
|
||||||
|
for password in ('easypassword', 'njvnFjfn7vaGGV6', 'toxygen'):
|
||||||
|
lib.set_password(password)
|
||||||
|
copy_data = data[:]
|
||||||
|
new_data = lib.pass_encrypt(data)
|
||||||
|
assert lib.is_data_encrypted(new_data)
|
||||||
|
new_data = lib.pass_decrypt(new_data)
|
||||||
|
assert copy_data == new_data
|
||||||
|
|
||||||
|
|
||||||
|
class TestSmileys:
|
||||||
|
|
||||||
|
def test_loading(self):
|
||||||
|
settings = {'smiley_pack': 'default', 'smileys': True}
|
||||||
|
sm = SmileyLoader(settings)
|
||||||
|
assert sm.get_smileys_path() is not None
|
||||||
|
l = sm.get_packs_list()
|
||||||
|
assert len(l) == 4
|
||||||
|
|
||||||
|
|
||||||
|
def create_singletons():
|
||||||
|
folder = util.curr_directory() + '/abc'
|
||||||
|
Settings._instance = Settings.get_default_settings()
|
||||||
|
if not os.path.exists(folder):
|
||||||
|
os.makedirs(folder)
|
||||||
|
ProfileHelper(folder, 'test')
|
||||||
|
|
||||||
|
|
||||||
|
def create_friend(name, status_message, number, tox_id):
|
||||||
|
friend = Friend(None, number, name, status_message, None, tox_id)
|
||||||
|
return friend
|
||||||
|
|
||||||
|
|
||||||
|
def create_random_friend():
|
||||||
|
name, status_message, number = 'Friend', 'I am friend!', 0
|
||||||
|
tox_id = '76518406F6A9F2217E8DC487CC783C25CC16A15EB36FF32E335A235342C48A39218F515C39A6'
|
||||||
|
friend = create_friend(name, status_message, number, tox_id)
|
||||||
|
return friend
|
||||||
|
|
||||||
|
|
||||||
|
class TestFriend:
|
||||||
|
|
||||||
|
def test_friend_creation(self):
|
||||||
|
create_singletons()
|
||||||
|
name, status_message, number = 'Friend', 'I am friend!', 0
|
||||||
|
tox_id = '76518406F6A9F2217E8DC487CC783C25CC16A15EB36FF32E335A235342C48A39218F515C39A6'
|
||||||
|
friend = create_friend(name, status_message, number, tox_id)
|
||||||
|
assert friend.name == name
|
||||||
|
assert friend.tox_id == tox_id
|
||||||
|
assert friend.status_message == status_message
|
||||||
|
assert friend.number == number
|
||||||
|
|
||||||
|
def test_friend_corr(self):
|
||||||
|
create_singletons()
|
||||||
|
friend = create_random_friend()
|
||||||
|
t = time.time()
|
||||||
|
friend.append_message(InfoMessage('Info message', t))
|
||||||
|
friend.append_message(TextMessage('Hello! It is test!', MESSAGE_OWNER['ME'], t + 0.001, 0))
|
||||||
|
friend.append_message(TextMessage('Hello!', MESSAGE_OWNER['FRIEND'], t + 0.002, 0))
|
||||||
|
assert friend.get_last_message_text() == 'Hello! It is test!'
|
||||||
|
assert len(friend.get_corr()) == 3
|
||||||
|
assert len(friend.get_corr_for_saving()) == 2
|
||||||
|
friend.append_message(TextMessage('Not sent', MESSAGE_OWNER['NOT_SENT'], t + 0.002, 0))
|
||||||
|
arr = friend.get_unsent_messages_for_saving()
|
||||||
|
assert len(arr) == 1
|
||||||
|
assert arr[0][0] == 'Not sent'
|
||||||
|
tm = TransferMessage(MESSAGE_OWNER['FRIEND'],
|
||||||
|
time.time(),
|
||||||
|
TOX_FILE_TRANSFER_STATE['RUNNING'],
|
||||||
|
100, 'file_name', friend.number, 0)
|
||||||
|
friend.append_message(tm)
|
||||||
|
friend.clear_corr()
|
||||||
|
assert len(friend.get_corr()) == 1
|
||||||
|
assert len(friend.get_corr_for_saving()) == 0
|
||||||
|
friend.append_message(TextMessage('Hello! It is test!', MESSAGE_OWNER['ME'], t, 0))
|
||||||
|
assert len(friend.get_corr()) == 2
|
||||||
|
assert len(friend.get_corr_for_saving()) == 1
|
||||||
|
|
||||||
|
def test_history_search(self):
|
||||||
|
create_singletons()
|
||||||
|
friend = create_random_friend()
|
||||||
|
message = 'Hello! It is test!'
|
||||||
|
friend.append_message(TextMessage(message, MESSAGE_OWNER['ME'], time.time(), 0))
|
||||||
|
last_message = friend.get_last_message_text()
|
||||||
|
assert last_message == message
|
||||||
|
result = friend.search_string('e[m|s]')
|
||||||
|
assert result is not None
|
||||||
|
result = friend.search_string('tox')
|
||||||
|
assert result is None
|
||||||
|
|
||||||
|
|
||||||
|
class TestHistory:
|
||||||
|
|
||||||
|
def test_history(self):
|
||||||
|
create_singletons()
|
||||||
|
db_name = 'my_name'
|
||||||
|
name, status_message, number = 'Friend', 'I am friend!', 0
|
||||||
|
tox_id = '76518406F6A9F2217E8DC487CC783C25CC16A15EB36FF32E335A235342C48A39218F515C39A6'
|
||||||
|
friend = create_friend(name, status_message, number, tox_id)
|
||||||
|
history = History(db_name)
|
||||||
|
history.add_friend_to_db(friend.tox_id)
|
||||||
|
assert history.friend_exists_in_db(friend.tox_id)
|
||||||
|
text_message = 'Test!'
|
||||||
|
t = time.time()
|
||||||
|
friend.append_message(TextMessage(text_message, MESSAGE_OWNER['ME'], t, 0))
|
||||||
|
messages = friend.get_corr_for_saving()
|
||||||
|
history.save_messages_to_db(friend.tox_id, messages)
|
||||||
|
getter = history.messages_getter(friend.tox_id)
|
||||||
|
messages = getter.get_all()
|
||||||
|
assert len(messages) == 1
|
||||||
|
assert messages[0][0] == text_message
|
||||||
|
assert messages[0][1] == MESSAGE_OWNER['ME']
|
||||||
|
assert messages[0][-1] == 0
|
||||||
|
history.delete_message(friend.tox_id, t)
|
||||||
|
getter = history.messages_getter(friend.tox_id)
|
||||||
|
messages = getter.get_all()
|
||||||
|
assert len(messages) == 0
|
||||||
|
history.delete_friend_from_db(friend.tox_id)
|
||||||
|
assert not history.friend_exists_in_db(friend.tox_id)
|
||||||
|
504
toxygen/main.py
504
toxygen/main.py
@ -1,49 +1,485 @@
|
|||||||
import app
|
import sys
|
||||||
from user_data.settings import *
|
from loginscreen import LoginScreen
|
||||||
import utils.util as util
|
import profile
|
||||||
import argparse
|
from settings import *
|
||||||
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
from bootstrap import generate_nodes, download_nodes_list
|
||||||
|
from mainscreen import MainWindow
|
||||||
|
from callbacks import init_callbacks, stop, start
|
||||||
|
from util import curr_directory, program_version, remove
|
||||||
|
import styles.style # reqired for styles loading
|
||||||
|
import platform
|
||||||
|
import toxes
|
||||||
|
from passwordscreen import PasswordScreen, UnlockAppScreen, SetProfilePasswordScreen
|
||||||
|
from plugin_support import PluginLoader
|
||||||
|
import updater
|
||||||
|
|
||||||
|
|
||||||
__maintainer__ = 'Ingvar'
|
class Toxygen:
|
||||||
__version__ = '0.5.0'
|
|
||||||
|
def __init__(self, path_or_uri=None):
|
||||||
|
super(Toxygen, self).__init__()
|
||||||
|
self.tox = self.ms = self.init = self.app = self.tray = self.mainloop = self.avloop = None
|
||||||
|
if path_or_uri is None:
|
||||||
|
self.uri = self.path = None
|
||||||
|
elif path_or_uri.startswith('tox:'):
|
||||||
|
self.path = None
|
||||||
|
self.uri = path_or_uri[4:]
|
||||||
|
else:
|
||||||
|
self.path = path_or_uri
|
||||||
|
self.uri = None
|
||||||
|
|
||||||
|
def enter_pass(self, data):
|
||||||
|
"""
|
||||||
|
Show password screen
|
||||||
|
"""
|
||||||
|
tmp = [data]
|
||||||
|
p = PasswordScreen(toxes.ToxES.get_instance(), tmp)
|
||||||
|
p.show()
|
||||||
|
self.app.lastWindowClosed.connect(self.app.quit)
|
||||||
|
self.app.exec_()
|
||||||
|
if tmp[0] == data:
|
||||||
|
raise SystemExit()
|
||||||
|
else:
|
||||||
|
return tmp[0]
|
||||||
|
|
||||||
|
def main(self):
|
||||||
|
"""
|
||||||
|
Main function of app. loads login screen if needed and starts main screen
|
||||||
|
"""
|
||||||
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
app.setWindowIcon(QtGui.QIcon(curr_directory() + '/images/icon.png'))
|
||||||
|
self.app = app
|
||||||
|
|
||||||
|
if platform.system() == 'Linux':
|
||||||
|
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_X11InitThreads)
|
||||||
|
|
||||||
|
with open(curr_directory() + '/styles/dark_style.qss') as fl:
|
||||||
|
style = fl.read()
|
||||||
|
app.setStyleSheet(style)
|
||||||
|
|
||||||
|
encrypt_save = toxes.ToxES()
|
||||||
|
|
||||||
|
if self.path is not None:
|
||||||
|
path = os.path.dirname(self.path) + '/'
|
||||||
|
name = os.path.basename(self.path)[:-4]
|
||||||
|
data = ProfileHelper(path, name).open_profile()
|
||||||
|
if encrypt_save.is_data_encrypted(data):
|
||||||
|
data = self.enter_pass(data)
|
||||||
|
settings = Settings(name)
|
||||||
|
self.tox = profile.tox_factory(data, settings)
|
||||||
|
else:
|
||||||
|
auto_profile = Settings.get_auto_profile()
|
||||||
|
if not auto_profile[0]:
|
||||||
|
# show login screen if default profile not found
|
||||||
|
current_locale = QtCore.QLocale()
|
||||||
|
curr_lang = current_locale.languageToString(current_locale.language())
|
||||||
|
langs = Settings.supported_languages()
|
||||||
|
if curr_lang in langs:
|
||||||
|
lang_path = langs[curr_lang]
|
||||||
|
translator = QtCore.QTranslator()
|
||||||
|
translator.load(curr_directory() + '/translations/' + lang_path)
|
||||||
|
app.installTranslator(translator)
|
||||||
|
app.translator = translator
|
||||||
|
ls = LoginScreen()
|
||||||
|
ls.setWindowIconText("Toxygen")
|
||||||
|
profiles = ProfileHelper.find_profiles()
|
||||||
|
ls.update_select(map(lambda x: x[1], profiles))
|
||||||
|
_login = self.Login(profiles)
|
||||||
|
ls.update_on_close(_login.login_screen_close)
|
||||||
|
ls.show()
|
||||||
|
app.exec_()
|
||||||
|
if not _login.t:
|
||||||
|
return
|
||||||
|
elif _login.t == 1: # create new profile
|
||||||
|
_login.name = _login.name.strip()
|
||||||
|
name = _login.name if _login.name else 'toxygen_user'
|
||||||
|
pr = map(lambda x: x[1], ProfileHelper.find_profiles())
|
||||||
|
if name in list(pr):
|
||||||
|
msgBox = QtWidgets.QMessageBox()
|
||||||
|
msgBox.setWindowTitle(
|
||||||
|
QtWidgets.QApplication.translate("MainWindow", "Error"))
|
||||||
|
text = (QtWidgets.QApplication.translate("MainWindow",
|
||||||
|
'Profile with this name already exists'))
|
||||||
|
msgBox.setText(text)
|
||||||
|
msgBox.exec_()
|
||||||
|
return
|
||||||
|
self.tox = profile.tox_factory()
|
||||||
|
self.tox.self_set_name(bytes(_login.name, 'utf-8') if _login.name else b'Toxygen User')
|
||||||
|
self.tox.self_set_status_message(b'Toxing on Toxygen')
|
||||||
|
reply = QtWidgets.QMessageBox.question(None,
|
||||||
|
'Profile {}'.format(name),
|
||||||
|
QtWidgets.QApplication.translate("login",
|
||||||
|
'Do you want to set profile password?'),
|
||||||
|
QtWidgets.QMessageBox.Yes,
|
||||||
|
QtWidgets.QMessageBox.No)
|
||||||
|
if reply == QtWidgets.QMessageBox.Yes:
|
||||||
|
set_pass = SetProfilePasswordScreen(encrypt_save)
|
||||||
|
set_pass.show()
|
||||||
|
self.app.lastWindowClosed.connect(self.app.quit)
|
||||||
|
self.app.exec_()
|
||||||
|
reply = QtWidgets.QMessageBox.question(None,
|
||||||
|
'Profile {}'.format(name),
|
||||||
|
QtWidgets.QApplication.translate("login",
|
||||||
|
'Do you want to save profile in default folder? If no, profile will be saved in program folder'),
|
||||||
|
QtWidgets.QMessageBox.Yes,
|
||||||
|
QtWidgets.QMessageBox.No)
|
||||||
|
if reply == QtWidgets.QMessageBox.Yes:
|
||||||
|
path = Settings.get_default_path()
|
||||||
|
else:
|
||||||
|
path = curr_directory() + '/'
|
||||||
|
try:
|
||||||
|
ProfileHelper(path, name).save_profile(self.tox.get_savedata())
|
||||||
|
except Exception as ex:
|
||||||
|
print(str(ex))
|
||||||
|
log('Profile creation exception: ' + str(ex))
|
||||||
|
msgBox = QtWidgets.QMessageBox()
|
||||||
|
msgBox.setText(QtWidgets.QApplication.translate("login",
|
||||||
|
'Profile saving error! Does Toxygen have permission to write to this directory?'))
|
||||||
|
msgBox.exec_()
|
||||||
|
return
|
||||||
|
path = Settings.get_default_path()
|
||||||
|
settings = Settings(name)
|
||||||
|
if curr_lang in langs:
|
||||||
|
settings['language'] = curr_lang
|
||||||
|
settings.save()
|
||||||
|
else: # load existing profile
|
||||||
|
path, name = _login.get_data()
|
||||||
|
if _login.default:
|
||||||
|
Settings.set_auto_profile(path, name)
|
||||||
|
data = ProfileHelper(path, name).open_profile()
|
||||||
|
if encrypt_save.is_data_encrypted(data):
|
||||||
|
data = self.enter_pass(data)
|
||||||
|
settings = Settings(name)
|
||||||
|
self.tox = profile.tox_factory(data, settings)
|
||||||
|
else:
|
||||||
|
path, name = auto_profile
|
||||||
|
data = ProfileHelper(path, name).open_profile()
|
||||||
|
if encrypt_save.is_data_encrypted(data):
|
||||||
|
data = self.enter_pass(data)
|
||||||
|
settings = Settings(name)
|
||||||
|
self.tox = profile.tox_factory(data, settings)
|
||||||
|
|
||||||
|
if Settings.is_active_profile(path, name): # profile is in use
|
||||||
|
reply = QtWidgets.QMessageBox.question(None,
|
||||||
|
'Profile {}'.format(name),
|
||||||
|
QtWidgets.QApplication.translate("login", 'Other instance of Toxygen uses this profile or profile was not properly closed. Continue?'),
|
||||||
|
QtWidgets.QMessageBox.Yes,
|
||||||
|
QtWidgets.QMessageBox.No)
|
||||||
|
if reply != QtWidgets.QMessageBox.Yes:
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
settings.set_active_profile()
|
||||||
|
|
||||||
|
# application color scheme
|
||||||
|
for theme in settings.built_in_themes().keys():
|
||||||
|
if settings['theme'] == theme:
|
||||||
|
with open(curr_directory() + settings.built_in_themes()[theme]) as fl:
|
||||||
|
style = fl.read()
|
||||||
|
app.setStyleSheet(style)
|
||||||
|
|
||||||
|
lang = Settings.supported_languages()[settings['language']]
|
||||||
|
translator = QtCore.QTranslator()
|
||||||
|
translator.load(curr_directory() + '/translations/' + lang)
|
||||||
|
app.installTranslator(translator)
|
||||||
|
app.translator = translator
|
||||||
|
|
||||||
|
# tray icon
|
||||||
|
self.tray = QtWidgets.QSystemTrayIcon(QtGui.QIcon(curr_directory() + '/images/icon.png'))
|
||||||
|
self.tray.setObjectName('tray')
|
||||||
|
|
||||||
|
self.ms = MainWindow(self.tox, self.reset, self.tray)
|
||||||
|
app.aboutToQuit.connect(self.ms.close_window)
|
||||||
|
|
||||||
|
class Menu(QtWidgets.QMenu):
|
||||||
|
|
||||||
|
def newStatus(self, status):
|
||||||
|
if not Settings.get_instance().locked:
|
||||||
|
profile.Profile.get_instance().set_status(status)
|
||||||
|
self.aboutToShowHandler()
|
||||||
|
self.hide()
|
||||||
|
|
||||||
|
def aboutToShowHandler(self):
|
||||||
|
status = profile.Profile.get_instance().status
|
||||||
|
act = self.act
|
||||||
|
if status is None or Settings.get_instance().locked:
|
||||||
|
self.actions()[1].setVisible(False)
|
||||||
|
else:
|
||||||
|
self.actions()[1].setVisible(True)
|
||||||
|
act.actions()[0].setChecked(False)
|
||||||
|
act.actions()[1].setChecked(False)
|
||||||
|
act.actions()[2].setChecked(False)
|
||||||
|
act.actions()[status].setChecked(True)
|
||||||
|
self.actions()[2].setVisible(not Settings.get_instance().locked)
|
||||||
|
|
||||||
|
def languageChange(self, *args, **kwargs):
|
||||||
|
self.actions()[0].setText(QtWidgets.QApplication.translate('tray', 'Open Toxygen'))
|
||||||
|
self.actions()[1].setText(QtWidgets.QApplication.translate('tray', 'Set status'))
|
||||||
|
self.actions()[2].setText(QtWidgets.QApplication.translate('tray', 'Exit'))
|
||||||
|
self.act.actions()[0].setText(QtWidgets.QApplication.translate('tray', 'Online'))
|
||||||
|
self.act.actions()[1].setText(QtWidgets.QApplication.translate('tray', 'Away'))
|
||||||
|
self.act.actions()[2].setText(QtWidgets.QApplication.translate('tray', 'Busy'))
|
||||||
|
|
||||||
|
m = Menu()
|
||||||
|
show = m.addAction(QtWidgets.QApplication.translate('tray', 'Open Toxygen'))
|
||||||
|
sub = m.addMenu(QtWidgets.QApplication.translate('tray', 'Set status'))
|
||||||
|
onl = sub.addAction(QtWidgets.QApplication.translate('tray', 'Online'))
|
||||||
|
away = sub.addAction(QtWidgets.QApplication.translate('tray', 'Away'))
|
||||||
|
busy = sub.addAction(QtWidgets.QApplication.translate('tray', 'Busy'))
|
||||||
|
onl.setCheckable(True)
|
||||||
|
away.setCheckable(True)
|
||||||
|
busy.setCheckable(True)
|
||||||
|
m.act = sub
|
||||||
|
exit = m.addAction(QtWidgets.QApplication.translate('tray', 'Exit'))
|
||||||
|
|
||||||
|
def show_window():
|
||||||
|
s = Settings.get_instance()
|
||||||
|
|
||||||
|
def show():
|
||||||
|
if not self.ms.isActiveWindow():
|
||||||
|
self.ms.setWindowState(self.ms.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)
|
||||||
|
self.ms.activateWindow()
|
||||||
|
self.ms.show()
|
||||||
|
if not s.locked:
|
||||||
|
show()
|
||||||
|
else:
|
||||||
|
def correct_pass():
|
||||||
|
show()
|
||||||
|
s.locked = False
|
||||||
|
s.unlockScreen = False
|
||||||
|
if not s.unlockScreen:
|
||||||
|
s.unlockScreen = True
|
||||||
|
self.p = UnlockAppScreen(toxes.ToxES.get_instance(), correct_pass)
|
||||||
|
self.p.show()
|
||||||
|
|
||||||
|
def tray_activated(reason):
|
||||||
|
if reason == QtWidgets.QSystemTrayIcon.DoubleClick:
|
||||||
|
show_window()
|
||||||
|
|
||||||
|
def close_app():
|
||||||
|
if not Settings.get_instance().locked:
|
||||||
|
settings.closing = True
|
||||||
|
self.ms.close()
|
||||||
|
|
||||||
|
show.triggered.connect(show_window)
|
||||||
|
exit.triggered.connect(close_app)
|
||||||
|
m.aboutToShow.connect(lambda: m.aboutToShowHandler())
|
||||||
|
onl.triggered.connect(lambda: m.newStatus(0))
|
||||||
|
away.triggered.connect(lambda: m.newStatus(1))
|
||||||
|
busy.triggered.connect(lambda: m.newStatus(2))
|
||||||
|
|
||||||
|
self.tray.setContextMenu(m)
|
||||||
|
self.tray.show()
|
||||||
|
self.tray.activated.connect(tray_activated)
|
||||||
|
|
||||||
|
self.ms.show()
|
||||||
|
|
||||||
|
updating = False
|
||||||
|
if settings['update'] and updater.updater_available() and updater.connection_available(): # auto update
|
||||||
|
version = updater.check_for_updates()
|
||||||
|
if version is not None:
|
||||||
|
if settings['update'] == 2:
|
||||||
|
updater.download(version)
|
||||||
|
updating = True
|
||||||
|
else:
|
||||||
|
reply = QtWidgets.QMessageBox.question(None,
|
||||||
|
'Toxygen',
|
||||||
|
QtWidgets.QApplication.translate("login",
|
||||||
|
'Update for Toxygen was found. Download and install it?'),
|
||||||
|
QtWidgets.QMessageBox.Yes,
|
||||||
|
QtWidgets.QMessageBox.No)
|
||||||
|
if reply == QtWidgets.QMessageBox.Yes:
|
||||||
|
updater.download(version)
|
||||||
|
updating = True
|
||||||
|
|
||||||
|
if updating:
|
||||||
|
data = self.tox.get_savedata()
|
||||||
|
ProfileHelper.get_instance().save_profile(data)
|
||||||
|
settings.close()
|
||||||
|
del self.tox
|
||||||
|
return
|
||||||
|
|
||||||
|
plugin_helper = PluginLoader(self.tox, settings) # plugin support
|
||||||
|
plugin_helper.load()
|
||||||
|
|
||||||
|
start()
|
||||||
|
# init thread
|
||||||
|
self.init = self.InitThread(self.tox, self.ms, self.tray)
|
||||||
|
self.init.start()
|
||||||
|
|
||||||
|
# starting threads for tox iterate and toxav iterate
|
||||||
|
self.mainloop = self.ToxIterateThread(self.tox)
|
||||||
|
self.mainloop.start()
|
||||||
|
self.avloop = self.ToxAVIterateThread(self.tox.AV)
|
||||||
|
self.avloop.start()
|
||||||
|
|
||||||
|
if self.uri is not None:
|
||||||
|
self.ms.add_contact(self.uri)
|
||||||
|
|
||||||
|
app.lastWindowClosed.connect(app.quit)
|
||||||
|
app.exec_()
|
||||||
|
|
||||||
|
self.init.stop = True
|
||||||
|
self.mainloop.stop = True
|
||||||
|
self.avloop.stop = True
|
||||||
|
plugin_helper.stop()
|
||||||
|
stop()
|
||||||
|
self.mainloop.wait()
|
||||||
|
self.init.wait()
|
||||||
|
self.avloop.wait()
|
||||||
|
self.tray.hide()
|
||||||
|
data = self.tox.get_savedata()
|
||||||
|
ProfileHelper.get_instance().save_profile(data)
|
||||||
|
settings.close()
|
||||||
|
del self.tox
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
"""
|
||||||
|
Create new tox instance (new network settings)
|
||||||
|
:return: tox instance
|
||||||
|
"""
|
||||||
|
self.mainloop.stop = True
|
||||||
|
self.init.stop = True
|
||||||
|
self.avloop.stop = True
|
||||||
|
self.mainloop.wait()
|
||||||
|
self.init.wait()
|
||||||
|
self.avloop.wait()
|
||||||
|
data = self.tox.get_savedata()
|
||||||
|
ProfileHelper.get_instance().save_profile(data)
|
||||||
|
del self.tox
|
||||||
|
# create new tox instance
|
||||||
|
self.tox = profile.tox_factory(data, Settings.get_instance())
|
||||||
|
# init thread
|
||||||
|
self.init = self.InitThread(self.tox, self.ms, self.tray)
|
||||||
|
self.init.start()
|
||||||
|
|
||||||
|
# starting threads for tox iterate and toxav iterate
|
||||||
|
self.mainloop = self.ToxIterateThread(self.tox)
|
||||||
|
self.mainloop.start()
|
||||||
|
|
||||||
|
self.avloop = self.ToxAVIterateThread(self.tox.AV)
|
||||||
|
self.avloop.start()
|
||||||
|
|
||||||
|
plugin_helper = PluginLoader.get_instance()
|
||||||
|
plugin_helper.set_tox(self.tox)
|
||||||
|
|
||||||
|
return self.tox
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------------------------
|
||||||
|
# Inner classes
|
||||||
|
# -----------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class InitThread(QtCore.QThread):
|
||||||
|
|
||||||
|
def __init__(self, tox, ms, tray):
|
||||||
|
QtCore.QThread.__init__(self)
|
||||||
|
self.tox, self.ms, self.tray = tox, ms, tray
|
||||||
|
self.stop = False
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
# initializing callbacks
|
||||||
|
init_callbacks(self.tox, self.ms, self.tray)
|
||||||
|
# download list of nodes if needed
|
||||||
|
download_nodes_list()
|
||||||
|
# bootstrap
|
||||||
|
try:
|
||||||
|
for data in generate_nodes():
|
||||||
|
if self.stop:
|
||||||
|
return
|
||||||
|
self.tox.bootstrap(*data)
|
||||||
|
self.tox.add_tcp_relay(*data)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
for _ in range(10):
|
||||||
|
if self.stop:
|
||||||
|
return
|
||||||
|
self.msleep(1000)
|
||||||
|
while not self.tox.self_get_connection_status():
|
||||||
|
try:
|
||||||
|
for data in generate_nodes():
|
||||||
|
if self.stop:
|
||||||
|
return
|
||||||
|
self.tox.bootstrap(*data)
|
||||||
|
self.tox.add_tcp_relay(*data)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
self.msleep(5000)
|
||||||
|
|
||||||
|
class ToxIterateThread(QtCore.QThread):
|
||||||
|
|
||||||
|
def __init__(self, tox):
|
||||||
|
QtCore.QThread.__init__(self)
|
||||||
|
self.tox = tox
|
||||||
|
self.stop = False
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
while not self.stop:
|
||||||
|
self.tox.iterate()
|
||||||
|
self.msleep(self.tox.iteration_interval())
|
||||||
|
|
||||||
|
class ToxAVIterateThread(QtCore.QThread):
|
||||||
|
|
||||||
|
def __init__(self, toxav):
|
||||||
|
QtCore.QThread.__init__(self)
|
||||||
|
self.toxav = toxav
|
||||||
|
self.stop = False
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
while not self.stop:
|
||||||
|
self.toxav.iterate()
|
||||||
|
self.msleep(self.toxav.iteration_interval())
|
||||||
|
|
||||||
|
class Login:
|
||||||
|
|
||||||
|
def __init__(self, arr):
|
||||||
|
self.arr = arr
|
||||||
|
|
||||||
|
def login_screen_close(self, t, number=-1, default=False, name=None):
|
||||||
|
""" Function which processes data from login screen
|
||||||
|
:param t: 0 - window was closed, 1 - new profile was created, 2 - profile loaded
|
||||||
|
:param number: num of chosen profile in list (-1 by default)
|
||||||
|
:param default: was or not chosen profile marked as default
|
||||||
|
:param name: name of new profile
|
||||||
|
"""
|
||||||
|
self.t = t
|
||||||
|
self.num = number
|
||||||
|
self.default = default
|
||||||
|
self.name = name
|
||||||
|
|
||||||
|
def get_data(self):
|
||||||
|
return self.arr[self.num]
|
||||||
|
|
||||||
|
|
||||||
def clean():
|
def clean():
|
||||||
"""Removes libs folder"""
|
"""Removes all windows libs from libs folder"""
|
||||||
directory = util.get_libs_directory()
|
d = curr_directory() + '/libs/'
|
||||||
util.remove(directory)
|
remove(d)
|
||||||
|
|
||||||
|
|
||||||
def reset():
|
def reset():
|
||||||
Settings.reset_auto_profile()
|
Settings.reset_auto_profile()
|
||||||
|
|
||||||
|
|
||||||
def print_toxygen_version():
|
|
||||||
print('Toxygen v' + __version__)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser()
|
if len(sys.argv) == 1:
|
||||||
parser.add_argument('--version', action='store_true', help='Prints Toxygen version')
|
toxygen = Toxygen()
|
||||||
parser.add_argument('--clean', action='store_true', help='Delete toxcore libs from libs folder')
|
else: # started with argument(s)
|
||||||
parser.add_argument('--reset', action='store_true', help='Reset default profile')
|
arg = sys.argv[1]
|
||||||
parser.add_argument('--uri', help='Add specified Tox ID to friends')
|
if arg == '--version':
|
||||||
parser.add_argument('profile', nargs='?', default=None, help='Path to Tox profile')
|
print('Toxygen v' + program_version)
|
||||||
args = parser.parse_args()
|
return
|
||||||
|
elif arg == '--help':
|
||||||
if args.version:
|
print('Usage:\ntoxygen path_to_profile\ntoxygen tox_id\ntoxygen --version\ntoxygen --reset')
|
||||||
print_toxygen_version()
|
return
|
||||||
return
|
elif arg == '--clean':
|
||||||
|
clean()
|
||||||
if args.clean:
|
return
|
||||||
clean()
|
elif arg == '--reset':
|
||||||
return
|
reset()
|
||||||
|
return
|
||||||
if args.reset:
|
else:
|
||||||
reset()
|
toxygen = Toxygen(arg)
|
||||||
return
|
|
||||||
|
|
||||||
toxygen = app.App(__version__, args.profile, args.uri)
|
|
||||||
toxygen.main()
|
toxygen.main()
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,99 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>560</width>
|
|
||||||
<height>320</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>560</width>
|
|
||||||
<height>320</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>560</width>
|
|
||||||
<height>320</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="toxIdLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="messageLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>70</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPlainTextEdit" name="messagePlainTextEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>110</y>
|
|
||||||
<width>460</width>
|
|
||||||
<height>150</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="addContactPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>270</y>
|
|
||||||
<width>460</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="errorLabel">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>220</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>321</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="contextMenuPolicy">
|
|
||||||
<enum>Qt::NoContextMenu</enum>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,87 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>315</width>
|
|
||||||
<height>218</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>315</width>
|
|
||||||
<height>218</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>315</width>
|
|
||||||
<height>218</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="inputDeviceLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>261</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>16</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="outputDeviceLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>100</y>
|
|
||||||
<width>261</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<pointsize>16</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="inputDeviceComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>50</y>
|
|
||||||
<width>255</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="outputDeviceComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>255</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,29 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>375</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QListWidget" name="bansListWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>375</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,127 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>640</width>
|
|
||||||
<height>300</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QPushButton" name="addGroupButton">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>250</y>
|
|
||||||
<width>601</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="groupNameLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>150</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>470</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="groupTypeComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>150</x>
|
|
||||||
<y>80</y>
|
|
||||||
<width>470</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="groupNameLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>121</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="groupTypeLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>80</y>
|
|
||||||
<width>121</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="statusLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>200</y>
|
|
||||||
<width>111</width>
|
|
||||||
<height>17</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="nickLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>150</y>
|
|
||||||
<width>111</width>
|
|
||||||
<height>17</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="nickLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>150</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>470</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="statusComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>150</x>
|
|
||||||
<y>190</y>
|
|
||||||
<width>470</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,128 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>400</width>
|
|
||||||
<height>340</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>340</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>340</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QPushButton" name="createProfile">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>270</y>
|
|
||||||
<width>341</width>
|
|
||||||
<height>51</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="confirmPassword">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>170</y>
|
|
||||||
<width>341</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="echoMode">
|
|
||||||
<enum>QLineEdit::Password</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="password">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>120</y>
|
|
||||||
<width>341</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="echoMode">
|
|
||||||
<enum>QLineEdit::Password</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="passwordLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>80</y>
|
|
||||||
<width>330</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QRadioButton" name="defaultFolder">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>330</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QRadioButton" name="programFolder">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>40</y>
|
|
||||||
<width>330</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="errorLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>220</y>
|
|
||||||
<width>341</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,58 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>100</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QPushButton" name="cancelPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>330</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>161</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="banTargetLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>15</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>305</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="banTimeLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>15</x>
|
|
||||||
<y>50</y>
|
|
||||||
<width>305</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,71 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>600</width>
|
|
||||||
<height>150</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="friendNameLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>250</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>300</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="groupNameLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>250</x>
|
|
||||||
<y>70</y>
|
|
||||||
<width>300</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="friendAvatarLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>140</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>60</width>
|
|
||||||
<height>60</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="selectCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>50</y>
|
|
||||||
<width>20</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,83 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>400</width>
|
|
||||||
<height>220</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>220</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>220</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="passwordLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>380</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="copyPasswordPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>60</y>
|
|
||||||
<width>380</width>
|
|
||||||
<height>40</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="peerLimitLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>120</y>
|
|
||||||
<width>380</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="privacyStateLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>160</y>
|
|
||||||
<width>380</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,113 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>600</width>
|
|
||||||
<height>500</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>600</width>
|
|
||||||
<height>500</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>600</width>
|
|
||||||
<height>500</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="noInvitesLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>150</y>
|
|
||||||
<width>600</width>
|
|
||||||
<height>25</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QListWidget" name="invitesListWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>600</width>
|
|
||||||
<height>341</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="nickLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>360</y>
|
|
||||||
<width>350</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="passwordLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>410</y>
|
|
||||||
<width>350</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="statusComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>390</x>
|
|
||||||
<y>390</y>
|
|
||||||
<width>200</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="acceptPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>460</y>
|
|
||||||
<width>201</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="declinePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>360</x>
|
|
||||||
<y>460</y>
|
|
||||||
<width>201</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,110 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>658</width>
|
|
||||||
<height>238</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLineEdit" name="passwordLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>180</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>450</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="passwordLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>145</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="peerLimitLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>80</y>
|
|
||||||
<width>145</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QSpinBox" name="peersLimitSpinBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>180</x>
|
|
||||||
<y>70</y>
|
|
||||||
<width>450</width>
|
|
||||||
<height>40</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>9999</number>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>512</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="privacyStateLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>130</y>
|
|
||||||
<width>145</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="privacyStateComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>180</x>
|
|
||||||
<y>120</y>
|
|
||||||
<width>450</width>
|
|
||||||
<height>40</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="savePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>180</y>
|
|
||||||
<width>611</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,253 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>552</width>
|
|
||||||
<height>847</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
||||||
<item>
|
|
||||||
<widget class="QScrollArea" name="scrollArea">
|
|
||||||
<property name="verticalScrollBarPolicy">
|
|
||||||
<enum>Qt::ScrollBarAsNeeded</enum>
|
|
||||||
</property>
|
|
||||||
<property name="widgetResizable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="scrollAreaWidgetContents_3">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>532</width>
|
|
||||||
<height>827</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="themeLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>17</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="themeComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>180</y>
|
|
||||||
<width>471</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="languageComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>60</y>
|
|
||||||
<width>471</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="languageLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>17</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="mirrorModeCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>220</y>
|
|
||||||
<width>461</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QGroupBox" name="smileysGroupBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>280</y>
|
|
||||||
<width>461</width>
|
|
||||||
<height>221</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>GroupBox</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QCheckBox" name="smileysCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>40</y>
|
|
||||||
<width>92</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="smileysPackLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>80</y>
|
|
||||||
<width>411</width>
|
|
||||||
<height>17</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="smileysPackComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>120</y>
|
|
||||||
<width>411</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="compactModeCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>250</y>
|
|
||||||
<width>461</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="importStickersPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>750</y>
|
|
||||||
<width>471</width>
|
|
||||||
<height>40</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="importSmileysPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>690</y>
|
|
||||||
<width>471</width>
|
|
||||||
<height>40</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="showAvatarsCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>520</y>
|
|
||||||
<width>461</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QGroupBox" name="appClosingGroupBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>550</y>
|
|
||||||
<width>471</width>
|
|
||||||
<height>131</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>GroupBox</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QRadioButton" name="closeRadioButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>421</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QRadioButton" name="hideRadioButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>60</y>
|
|
||||||
<width>431</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QRadioButton" name="closeToTrayRadioButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>90</y>
|
|
||||||
<width>421</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,139 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>740</width>
|
|
||||||
<height>320</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>740</width>
|
|
||||||
<height>320</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>740</width>
|
|
||||||
<height>320</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="chatIdLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>17</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="passwordLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>90</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>17</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="joinGroupButton">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>260</y>
|
|
||||||
<width>680</width>
|
|
||||||
<height>51</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="chatIdLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>190</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>520</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="passwordLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>190</x>
|
|
||||||
<y>80</y>
|
|
||||||
<width>520</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="nickLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>150</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>17</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="statusLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>210</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>17</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="nickLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>190</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>520</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="statusComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>190</x>
|
|
||||||
<y>200</y>
|
|
||||||
<width>520</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,136 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>loginScreen</class>
|
|
||||||
<widget class="QWidget" name="loginScreen">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>400</width>
|
|
||||||
<height>200</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>200</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>200</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="toxygenLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>5</y>
|
|
||||||
<width>401</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>Garuda</family>
|
|
||||||
<pointsize>16</pointsize>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Toxygen</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QGroupBox" name="newProfileGroupBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>40</y>
|
|
||||||
<width>180</width>
|
|
||||||
<height>150</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>GroupBox</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
<widget class="QPushButton" name="createProfilePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>110</y>
|
|
||||||
<width>160</width>
|
|
||||||
<height>27</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<widget class="QGroupBox" name="existingProfileGroupBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>210</x>
|
|
||||||
<y>40</y>
|
|
||||||
<width>180</width>
|
|
||||||
<height>150</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>GroupBox</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
<widget class="QComboBox" name="profilesComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>40</y>
|
|
||||||
<width>160</width>
|
|
||||||
<height>27</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="defaultProfileCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>75</y>
|
|
||||||
<width>160</width>
|
|
||||||
<height>27</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="loadProfilePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>110</y>
|
|
||||||
<width>160</width>
|
|
||||||
<height>27</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,94 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>270</width>
|
|
||||||
<height>500</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="cursor">
|
|
||||||
<cursorShape>PointingHandCursor</cursorShape>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="avatarLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>5</x>
|
|
||||||
<y>5</y>
|
|
||||||
<width>64</width>
|
|
||||||
<height>64</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="cursor">
|
|
||||||
<cursorShape>PointingHandCursor</cursorShape>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="searchLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>75</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>25</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="contactsFilterComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>150</x>
|
|
||||||
<y>75</y>
|
|
||||||
<width>120</width>
|
|
||||||
<height>25</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="searchLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>77</y>
|
|
||||||
<width>20</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QListWidget" name="friendsListWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>100</y>
|
|
||||||
<width>270</width>
|
|
||||||
<height>400</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="groupInvitesPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>100</y>
|
|
||||||
<width>270</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,180 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>400</width>
|
|
||||||
<height>500</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>500</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>500</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QCheckBox" name="ipv6CheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="udpCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>210</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="proxyCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QRadioButton" name="httpProxyRadioButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>190</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>25</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QRadioButton" name="socksProxyRadioButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>230</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>25</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="lanCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>100</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="ipLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>280</y>
|
|
||||||
<width>60</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="portLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>330</y>
|
|
||||||
<width>60</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="restartCorePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>370</y>
|
|
||||||
<width>340</width>
|
|
||||||
<height>40</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="downloadNodesCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>60</y>
|
|
||||||
<width>340</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="warningLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>420</y>
|
|
||||||
<width>340</width>
|
|
||||||
<height>65</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,71 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>320</width>
|
|
||||||
<height>201</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QCheckBox" name="notificationsCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>20</y>
|
|
||||||
<width>271</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="soundNotificationsCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>60</y>
|
|
||||||
<width>271</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="groupNotificationsCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>100</y>
|
|
||||||
<width>271</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="callsSoundCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>271</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,200 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>600</width>
|
|
||||||
<height>500</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>600</width>
|
|
||||||
<height>500</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>600</width>
|
|
||||||
<height>500</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="peerNameLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>110</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>431</width>
|
|
||||||
<height>40</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="sendPrivateMessagePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>50</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QCheckBox" name="ignorePeerCheckBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>100</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>CheckBox</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QGroupBox" name="banGroupBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>300</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>161</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>GroupBox</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QPushButton" name="banPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>380</x>
|
|
||||||
<y>50</y>
|
|
||||||
<width>101</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QRadioButton" name="ipBanRadioButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>40</y>
|
|
||||||
<width>251</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QRadioButton" name="nickBanRadioButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>80</y>
|
|
||||||
<width>251</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QRadioButton" name="pkBanRadioButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>120</y>
|
|
||||||
<width>251</width>
|
|
||||||
<height>23</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RadioButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="kickPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>380</x>
|
|
||||||
<y>100</y>
|
|
||||||
<width>101</width>
|
|
||||||
<height>41</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="roleLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>60</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="roleNameLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>130</x>
|
|
||||||
<y>60</y>
|
|
||||||
<width>411</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="copyPublicKeyPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>210</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>50</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="rolesComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>130</x>
|
|
||||||
<y>55</y>
|
|
||||||
<width>291</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,280 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>900</width>
|
|
||||||
<height>702</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="nameLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>161</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="statusLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>90</y>
|
|
||||||
<width>161</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="nameLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>50</y>
|
|
||||||
<width>421</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="statusMessageLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>30</x>
|
|
||||||
<y>130</y>
|
|
||||||
<width>421</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="statusComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>520</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>311</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="toxIdTitleLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>180</y>
|
|
||||||
<width>131</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="toxIdLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>210</y>
|
|
||||||
<width>831</width>
|
|
||||||
<height>61</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="copyToxIdPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>280</y>
|
|
||||||
<width>371</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="copyPublicKeyPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>440</x>
|
|
||||||
<y>280</y>
|
|
||||||
<width>371</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="newAvatarPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>520</x>
|
|
||||||
<y>80</y>
|
|
||||||
<width>321</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="resetAvatarPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>520</x>
|
|
||||||
<y>130</y>
|
|
||||||
<width>321</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="profilePasswordLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>60</x>
|
|
||||||
<y>380</y>
|
|
||||||
<width>161</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="passwordLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>420</y>
|
|
||||||
<width>421</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLineEdit" name="confirmPasswordLineEdit">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>470</y>
|
|
||||||
<width>421</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="emptyPasswordLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>500</x>
|
|
||||||
<y>420</y>
|
|
||||||
<width>381</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="warningLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>60</x>
|
|
||||||
<y>580</y>
|
|
||||||
<width>381</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="defaultProfilePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>630</y>
|
|
||||||
<width>831</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="changePasswordPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>520</y>
|
|
||||||
<width>421</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="invalidPasswordsLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>500</x>
|
|
||||||
<y>470</y>
|
|
||||||
<width>381</width>
|
|
||||||
<height>21</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="exportProfilePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>40</x>
|
|
||||||
<y>330</y>
|
|
||||||
<width>371</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="newNoSpamPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>440</x>
|
|
||||||
<y>330</y>
|
|
||||||
<width>371</width>
|
|
||||||
<height>35</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,119 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>600</width>
|
|
||||||
<height>500</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>600</width>
|
|
||||||
<height>500</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>600</width>
|
|
||||||
<height>500</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="statusLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>120</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="copyPublicKeyPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>250</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>50</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="statusComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>140</x>
|
|
||||||
<y>110</y>
|
|
||||||
<width>400</width>
|
|
||||||
<height>40</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="nameLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>40</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="roleLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>190</y>
|
|
||||||
<width>67</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="roleNameLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>140</x>
|
|
||||||
<y>190</y>
|
|
||||||
<width>411</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="savePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>50</x>
|
|
||||||
<y>330</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>50</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,67 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>400</width>
|
|
||||||
<height>120</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>120</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>120</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="updateModeLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>25</x>
|
|
||||||
<y>5</y>
|
|
||||||
<width>350</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="updateModeComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>25</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>350</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="updatePushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>25</x>
|
|
||||||
<y>70</y>
|
|
||||||
<width>350</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,77 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Form</class>
|
|
||||||
<widget class="QWidget" name="Form">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>400</width>
|
|
||||||
<height>120</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>120</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>400</width>
|
|
||||||
<height>120</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QLabel" name="deviceLabel">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>25</x>
|
|
||||||
<y>5</y>
|
|
||||||
<width>350</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="deviceComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>25</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>350</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="selectRegionPushButton">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>25</x>
|
|
||||||
<y>70</y>
|
|
||||||
<width>350</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="resolutionComboBox">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>25</x>
|
|
||||||
<y>70</y>
|
|
||||||
<width>350</width>
|
|
||||||
<height>30</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
Reference in New Issue
Block a user