def user_info(self, val): profiles_txt = { UserProfile.OUTSIDER: _("TEXT_USER_PROFILE_OUTSIDER"), UserProfile.STANDARD: _("TEXT_USER_PROFILE_STANDARD"), UserProfile.ADMIN: _("TEXT_USER_PROFILE_ADMIN"), } self._user_info = val if self.user_info.is_revoked: self.setToolTip(_("TEXT_USER_IS_REVOKED")) self.widget.setStyleSheet("background-color: #DDDDDD;") else: self.setToolTip("") self.widget.setStyleSheet("background-color: #FFFFFF;") if self.user_info.human_handle: self.label_email.setText( ensure_string_size(self.user_info.human_handle.email, 260, self.label_email.font())) self.label_email.setToolTip(self.user_info.human_handle.email) self.label_username.setText( ensure_string_size(self.user_info.short_user_display, 260, self.label_username.font())) self.label_username.setToolTip(self.user_info.short_user_display) self.label_role.setText(profiles_txt[self.user_info.profile])
def user_info(self, val): profiles_txt = { UserProfile.OUTSIDER: _("TEXT_USER_PROFILE_OUTSIDER"), UserProfile.STANDARD: _("TEXT_USER_PROFILE_STANDARD"), UserProfile.ADMIN: _("TEXT_USER_PROFILE_ADMIN"), } profiles_icons = { UserProfile.OUTSIDER: ":/icons/images/material/person_outline.svg", UserProfile.STANDARD: ":/icons/images/material/person.svg", UserProfile.ADMIN: ":/icons/images/material/manage_accounts.svg", } self._user_info = val if self.user_info.is_revoked: self.setToolTip(_("TEXT_USER_IS_REVOKED")) self.widget.setStyleSheet("background-color: #DDDDDD;") self.label_revoked.setText(_("TEXT_USER_IS_REVOKED")) else: self.label_revoked.setText("") self.setToolTip("") self.widget.setStyleSheet("background-color: #FFFFFF;") if self.user_info.human_handle: self.label_email.setText( ensure_string_size(self.user_info.human_handle.email, 160, self.label_email.font())) self.label_email.setToolTip(self.user_info.human_handle.email) self.label_username.setText( ensure_string_size(self.user_info.short_user_display, 160, self.label_username.font())) self.label_username.setToolTip(self.user_info.short_user_display) self.label_role.setText(profiles_txt[self.user_info.profile]) pix = Pixmap(profiles_icons[self.user_info.profile]) pix.replace_color(QColor(0, 0, 0), QColor(153, 153, 153)) self.label_icon.setPixmap(pix)
def reload_workspace_name(self, workspace_name): self.workspace_name = workspace_name display = workspace_name extra_space = 40 if not self.timestamped: if not self.is_shared: shared_message = _("TEXT_WORKSPACE_IS_PRIVATE") elif not self.is_owner: shared_message = _("TEXT_WORKSPACE_IS_OWNED_BY_user").format( user=self.owner.short_user_display) elif len(self.others) == 1 and self.others[0]: user, = self.others shared_message = _("TEXT_WORKSPACE_IS_SHARED_WITH_user" ).format(user=user.short_user_display) else: n = len(self.others) assert n > 1 shared_message = _( "TEXT_WORKSPACE_IS_SHARED_WITH_n_USERS").format(n=n) display += " ({})".format(shared_message) if self.is_shared: extra_space += 40 if self.is_owner: extra_space += 40 else: display += "-" + _("TEXT_WORKSPACE_IS_TIMESTAMPED_date").format( date=format_datetime(self.workspace_fs.timestamp)) self.label_title.setToolTip(display) size = self.size().width() - extra_space self.label_title.setText( ensure_string_size(display, size, self.label_title.font()))
def on_tab_state_changed(self, tab: InstanceWidget, state: str) -> None: idx = self.tab_center.indexOf(tab) if idx == -1: return if state == "login": if self._get_login_tab_index() != -1: self.tab_center.removeTab(idx) else: self.tab_center.setTabToolTip(idx, _("TEXT_TAB_TITLE_LOG_IN_SCREEN")) self.tab_center.setTabText(idx, _("TEXT_TAB_TITLE_LOG_IN_SCREEN")) elif state == "logout": self.tab_center.removeTab(idx) idx = self._get_login_tab_index() if idx == -1: self.add_instance() else: tab_widget = self.tab_center.widget(idx) log_widget = None if not tab_widget else tab_widget.get_login_widget() if log_widget: log_widget.reload_devices() elif state == "connected": device = tab.current_device tab_name = ( f"{device.organization_id} - {device.short_user_display} - {device.device_display}" ) self.tab_center.setTabToolTip(idx, tab_name) self.tab_center.setTabText( idx, ensure_string_size(tab_name, 150, self.tab_center.tabBar().font()) ) if self.tab_center.count() == 1: self.tab_center.setTabsClosable(False) self._toggle_add_tab_button()
def __init__(self, email, addr): super().__init__() self.setupUi(self) self.addr = addr self.email = email self.label_addr.setText(ensure_string_size(str(self.addr), 260, self.label_addr.font())) self.label_addr.setToolTip(str(self.addr)) self.label_email.setText(ensure_string_size(self.email, 260, self.label_email.font())) self.label_email.setToolTip(self.email) self.button_greet.clicked.connect(self._on_greet_clicked) self.button_cancel.clicked.connect(self._on_cancel_clicked) self.button_cancel.apply_style() self.label_icon.apply_style() self.setContextMenuPolicy(Qt.CustomContextMenu) self.customContextMenuRequested.connect(self.show_context_menu) effect = QGraphicsDropShadowEffect(self) effect.setColor(QColor(0x99, 0x99, 0x99)) effect.setBlurRadius(10) effect.setXOffset(2) effect.setYOffset(2) self.setGraphicsEffect(effect)
def __init__(self, device_info, is_current_device): super().__init__() self.setupUi(self) self.is_current_device = is_current_device self.device_info = device_info self.label_icon.apply_style() self.label_device_name.setText( ensure_string_size(self.device_info.device_display, 260, self.label_device_name.font())) self.label_device_name.setToolTip(self.device_info.device_display) if self.is_current_device: self.label_is_current.setText("({})".format( _("TEXT_DEVICE_IS_CURRENT"))) effect = QGraphicsDropShadowEffect(self) effect.setColor(QColor(0x99, 0x99, 0x99)) effect.setBlurRadius(10) effect.setXOffset(2) effect.setYOffset(2) self.setGraphicsEffect(effect)