def _convert_value(self, param_name, value, row_data=None): if value is None: return "Unknown" if param_name == 'device_type': if value == 'desktop': return tr('PC') elif value == 'phone': return tr('Mobile') elif param_name == 'is_online': if value: return tr('Yes') else: return tr('No') elif param_name == 'node_name' and row_data.get('is_itself'): return "{} ({})".format(value, tr("this node")) elif param_name == 'disk_usage': return format_with_units(value) elif param_name == 'download_speed' or param_name == 'upload_speed': return u"{}/s".format(format_with_units(value)) elif param_name == 'node_status': if not isinstance(value, int): value = int(value) return tr(self.NODE_STATUSES[value]) elif param_name == 'manage': if value: return tr('\nmanage...\n') else: return '' return str(value)
def on_size_speed_changed(self, download_speed, download_size, upload_speed, upload_size): self._ui.download_speed_value.setText( tr("{}/s").format(format_with_units(download_speed))) self._ui.download_size_value.setText(format_with_units(download_size)) self._ui.upload_speed_value.setText( tr("{}/s").format(format_with_units(upload_speed))) self._ui.upload_size_value.setText(format_with_units(upload_size))
def _set_size_layout(self, size_layout, widget, transfered, size, is_upload): direction_label = QLabel(widget) direction_label.setMinimumHeight(14) direction_text = '\u2191\u0020' if is_upload else '\u2193\u0020' direction_label.setText(direction_text) direction_label.setFont(QFont('Noto Sans', 8 * self._dp)) direction_label.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) direction_label.setStyleSheet('color: #A792A9;') size_layout.addWidget(direction_label) transfered_label = QLabel(widget) transfered_label.setObjectName("transfered_label") transfered_label.setMinimumHeight(14) transfered_label.setText(format_with_units(transfered)) transfered_label.setFont(QFont('Noto Sans', 8 * self._dp)) transfered_label.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter) transfered_label.setStyleSheet('color: #A792A9;') size_layout.addWidget(transfered_label) if not is_upload: slash_label = QLabel(widget) slash_label.setMinimumHeight(14) slash_label.setText('/') slash_label.setFont(QFont('Noto Sans', 8 * self._dp)) slash_label.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) slash_label.setStyleSheet('color: #A792A9;') size_layout.addWidget(slash_label) size_label = QLabel(widget) size_label.setObjectName("size_label") size_label.setMinimumHeight(14) size_label.setText(format_with_units(size)) size_label.setFont(QFont('Noto Sans', 8 * self._dp)) size_label.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter) size_label.setStyleSheet('color: #A792A9;') size_layout.addWidget(size_label) size_layout.addStretch()
def _change_item_widget(self, file_list, item, state=None, transfered=None): rel_path, \ created_time, \ size, \ was_updated, \ is_deleted, \ old_transfered, \ old_state, \ is_file, \ obj_id = item.data(Qt.UserRole) if transfered is None: state = old_state transfered = old_transfered is_upload = False else: is_upload = state is None item.setData(Qt.UserRole, [ rel_path, created_time, size, was_updated, is_deleted, transfered, state, is_file, obj_id ]) widget = file_list.itemWidget(item) if not widget: return is_shared = not is_upload and created_time == 0 is_created = not was_updated and not is_deleted and not is_shared is_http_download = not is_upload and created_time < 0 children = widget.findChildren(QLabel, "transfered_label") if not children or len(children) > 1: logger.warning("Can't find transfered_label for %s", rel_path) else: transfered_label = children[0] transfered_label.setText(format_with_units(transfered)) if is_upload: return is_current = state in self.CURRENT_TASK_STATES is_error = state in self.ERROR_STATES children = widget.findChildren(QProgressBar, "progress_bar") back_children = widget.findChildren(QStackedWidget, "progress_background") if not children or len(children) > 1 or \ not back_children or len(back_children) > 1: logger.warning("Can't find progress_bar for %s", rel_path) return progress_background = back_children[0] progress_bar = children[0] progress_bar.setValue(transfered) progress_bar.setMaximum(size if is_current and state != DOWNLOAD_FAILED and self._paused_state == self.WORKING else 0) children = widget.findChildren(QLabel, "progress_label") if not children or len(children) > 1: logger.warning("Can't find progress_label for %s", rel_path) return progress_label = children[0] self._set_progress_bar_style(progress_bar, progress_background, progress_label, state, is_current, is_error) revert_button = widget.findChildren(QPushButton, "revert_button")[0] self._set_revert_button_options(revert_button, obj_id, is_created, is_shared, is_http_download, is_file, rel_path, size)
def _update_file_list_item_widget(self, file_list, item): rel_path, \ created_time, \ size, \ was_updated, \ is_deleted, \ transfered, \ state, \ is_file, \ obj_id = item.data(Qt.UserRole) is_upload = state is None # uploads list is_shared = not is_upload and created_time == 0 is_created = not was_updated and not is_deleted and not is_shared is_http_download = not is_upload and created_time < 0 if is_http_download: self._http_downloads.add(obj_id) is_current = state in self.CURRENT_TASK_STATES is_error = state in self.ERROR_STATES widget = file_list.itemWidget(item) if not widget: return file_name_label = widget.findChildren(QLabel, "file_name_label")[0] file_name_label.setText(elided(rel_path, file_name_label)) time_delta_label = widget.findChildren(QLabel, "time_delta_label")[0] if is_shared: time_delta_label.setText(tr("Shared file")) elif is_http_download: time_delta_label.setText(tr("Uploaded from web")) else: try: time_delta_label.setText( get_added_time_string(created_time, was_updated, is_deleted)) except RuntimeError: pass transfered_label = widget.findChildren(QLabel, "transfered_label")[0] transfered_label.setText(format_with_units(transfered)) if is_upload: return size_label = widget.findChildren(QLabel, "size_label")[0] size_label.setText(format_with_units(size)) revert_button = widget.findChildren(QPushButton, "revert_button")[0] self._set_revert_button_options(revert_button, obj_id, is_created, is_shared, is_http_download, is_file, rel_path, size) progress_bar = widget.findChildren(QProgressBar, "progress_bar")[0] progress_background = widget.findChildren(QStackedWidget, "progress_background")[0] progress_bar.setValue(transfered) progress_bar.setMaximum(size if is_current and state != DOWNLOAD_FAILED and self._paused_state == self.WORKING else 0) progress_label = widget.findChildren(QLabel, "progress_label")[0] self._set_progress_bar_style(progress_bar, progress_background, progress_label, state, is_current, is_error)
def _update_totals(self): self._ui.total_files_label.setText( tr("{} file(s)").format(self._total_files)) self._ui.total_size_label.setText(format_with_units(self._total_size))