示例#1
0
    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)
示例#2
0
    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))
示例#3
0
    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()
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
 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))