67 lines
2.4 KiB
Python
67 lines
2.4 KiB
Python
from ui.widgets import CenteredWidget, LineEdit
|
|
from PyQt5 import uic
|
|
import utils.util as util
|
|
import utils.ui as util_ui
|
|
from ui.contact_items import *
|
|
|
|
|
|
class SelfPeerScreen(CenteredWidget):
|
|
|
|
def __init__(self, contacts_manager, groups_service, group):
|
|
super().__init__()
|
|
self._contacts_manager = contacts_manager
|
|
self._groups_service = groups_service
|
|
self._group = group
|
|
self._peer = group.get_self_peer()
|
|
self._roles = {
|
|
TOX_GROUP_ROLE['FOUNDER']: util_ui.tr('Administrator'),
|
|
TOX_GROUP_ROLE['MODERATOR']: util_ui.tr('Moderator'),
|
|
TOX_GROUP_ROLE['USER']: util_ui.tr('User'),
|
|
TOX_GROUP_ROLE['OBSERVER']: util_ui.tr('Observer')
|
|
}
|
|
|
|
uic.loadUi(util.get_views_path('self_peer_screen'), self)
|
|
self._update_ui()
|
|
|
|
def _update_ui(self):
|
|
self.lineEdit = LineEdit(self)
|
|
self.lineEdit.setGeometry(140, 40, 400, 30)
|
|
self.lineEdit.setText(self._peer.name)
|
|
self.lineEdit.textChanged.connect(self._nick_changed)
|
|
|
|
self.savePushButton.clicked.connect(self._save)
|
|
self.copyPublicKeyPushButton.clicked.connect(self._copy_public_key)
|
|
|
|
self._retranslate_ui()
|
|
|
|
self.statusComboBox.setCurrentIndex(self._peer.status)
|
|
|
|
def _retranslate_ui(self):
|
|
self.setWindowTitle(util_ui.tr('Change credentials in group'))
|
|
self.lineEdit.setPlaceholderText(util_ui.tr('Your nickname in group'))
|
|
self.nameLabel.setText(util_ui.tr('Name:'))
|
|
self.roleLabel.setText(util_ui.tr('Role:'))
|
|
self.statusLabel.setText(util_ui.tr('Status:'))
|
|
self.copyPublicKeyPushButton.setText(util_ui.tr('Copy public key'))
|
|
self.savePushButton.setText(util_ui.tr('Save'))
|
|
self.roleNameLabel.setText(self._get_role_name())
|
|
self.statusComboBox.addItem(util_ui.tr('Online'))
|
|
self.statusComboBox.addItem(util_ui.tr('Away'))
|
|
self.statusComboBox.addItem(util_ui.tr('Busy'))
|
|
|
|
def _get_role_name(self):
|
|
return self._roles[self._peer.role]
|
|
|
|
def _nick_changed(self):
|
|
nick = self.lineEdit.text()
|
|
self.savePushButton.setEnabled(bool(nick))
|
|
|
|
def _save(self):
|
|
nick = self.lineEdit.text()
|
|
status = self.statusComboBox.currentIndex()
|
|
self._groups_service.set_self_info(self._group, nick, status)
|
|
self.close()
|
|
|
|
def _copy_public_key(self):
|
|
util_ui.copy_to_clipboard(self._peer.public_key)
|