87 lines
3.2 KiB
Python
87 lines
3.2 KiB
Python
from ui.widgets import CenteredWidget
|
|
from qtpy import uic
|
|
import utils.util as util
|
|
import utils.ui as util_ui
|
|
|
|
class GroupManagementScreen(CenteredWidget):
|
|
|
|
def __init__(self, groups_service, group):
|
|
super().__init__()
|
|
self._groups_service = groups_service
|
|
self._group = group
|
|
|
|
uic.loadUi(util.get_views_path('group_management_screen'), self)
|
|
self._update_ui()
|
|
|
|
def _update_ui(self):
|
|
self._retranslate_ui()
|
|
|
|
self.passwordLineEdit.setText(self._group.password)
|
|
self.privacyStateComboBox.setCurrentIndex(1 if self._group.is_private else 0)
|
|
self.peersLimitSpinBox.setValue(self._group.peers_limit)
|
|
|
|
self.deletePushButton.clicked.connect(self._delete)
|
|
self.savePushButton.clicked.connect(self._save)
|
|
|
|
def _retranslate_ui(self):
|
|
self.setWindowTitle(util_ui.tr('Group "{}"').format(self._group.name))
|
|
self.passwordLabel.setText(util_ui.tr('Password:'))
|
|
self.peerLimitLabel.setText(util_ui.tr('Peer limit:'))
|
|
self.privacyStateLabel.setText(util_ui.tr('Privacy state:'))
|
|
self.deletePushButton.setText(util_ui.tr('Delete'))
|
|
self.savePushButton.setText(util_ui.tr('Save'))
|
|
|
|
self.privacyStateComboBox.clear()
|
|
self.privacyStateComboBox.addItem(util_ui.tr('Public'))
|
|
self.privacyStateComboBox.addItem(util_ui.tr('Private'))
|
|
|
|
def _delete(self):
|
|
self._groups_service.leave_group(self._group.number)
|
|
self.close()
|
|
|
|
def _disconnect(self):
|
|
self._groups_service.disconnect_from_group(self._group.number)
|
|
self.close()
|
|
|
|
def _save(self):
|
|
password = self.passwordLineEdit.text()
|
|
privacy_state = self.privacyStateComboBox.currentIndex()
|
|
peers_limit = self.peersLimitSpinBox.value()
|
|
|
|
self._groups_service.set_group_password(self._group, password)
|
|
self._groups_service.set_group_privacy_state(self._group, privacy_state)
|
|
self._groups_service.set_group_peers_limit(self._group, peers_limit)
|
|
|
|
self.close()
|
|
|
|
|
|
class GroupSettingsScreen(CenteredWidget):
|
|
|
|
def __init__(self, group):
|
|
super().__init__()
|
|
self._group = group
|
|
|
|
uic.loadUi(util.get_views_path('gc_settings_screen'), self)
|
|
self._update_ui()
|
|
|
|
def _update_ui(self):
|
|
self._retranslate_ui()
|
|
|
|
self.copyPasswordPushButton.clicked.connect(self._copy_password)
|
|
self.copyPasswordPushButton.setEnabled(bool(self._group.password))
|
|
|
|
def _retranslate_ui(self):
|
|
self.setWindowTitle(util_ui.tr('Group "{}"').format(self._group.name))
|
|
if self._group.password:
|
|
password_label_text = '{} {}'.format(util_ui.tr('Password:'), self._group.password)
|
|
else:
|
|
password_label_text = util_ui.tr('Password is not set')
|
|
self.passwordLabel.setText(password_label_text)
|
|
self.peerLimitLabel.setText('{} {}'.format(util_ui.tr('Peer limit:'), self._group.peers_limit))
|
|
privacy_state = util_ui.tr('Private') if self._group.is_private else util_ui.tr('Public')
|
|
self.privacyStateLabel.setText('{} {}'.format(util_ui.tr('Privacy state:'), privacy_state))
|
|
self.copyPasswordPushButton.setText(util_ui.tr('Copy password'))
|
|
|
|
def _copy_password(self):
|
|
util_ui.copy_to_clipboard(self._group.password)
|