Ejemplo n.º 1
0
    def _create_file_list_item_widget(self, rel_path, created_time,
                                      was_updated, icon_info):
        abs_path = op.join(self._config.sync_directory, rel_path)
        abs_path = ensure_unicode(abs_path)
        abs_path = FilePath(abs_path).longpath
        widget = QWidget(parent=self._ui.file_list)
        widget.created_time = created_time
        widget.was_updated = was_updated

        widget.mouseReleaseEvent = lambda _: \
            qt_reveal_file_in_file_manager(
                widget.get_link_button.abs_path)

        main_layout = QHBoxLayout(widget)

        icon_label = QLabel(widget)
        widget.icon_label = icon_label
        main_layout.addWidget(icon_label)

        vertical_layout = QVBoxLayout()
        main_layout.addLayout(vertical_layout)

        file_name_label = QLabel(widget)
        widget.file_name_label = file_name_label
        vertical_layout.addWidget(file_name_label)

        horizontal_layout = QHBoxLayout()
        vertical_layout.addLayout(horizontal_layout)

        time_delta_label = QLabel(widget)
        widget.time_delta_label = time_delta_label
        horizontal_layout.addWidget(time_delta_label, alignment=Qt.AlignTop)

        get_link_button = QPushButton(widget)
        widget.get_link_button = get_link_button
        horizontal_layout.addWidget(get_link_button, alignment=Qt.AlignTop)

        self._set_icon_label(icon_info, icon_label)

        file_name_label.setFixedSize(304, 24)
        file_name_label.setFont(QFont('Noto Sans', 10 * self._dp))
        file_name_label.setAlignment(Qt.AlignTop | Qt.AlignLeft)
        file_name_label.setText(
            elided(rel_path, file_name_label))

        time_delta_label.setText(get_added_time_string(
            created_time, was_updated, False))
        time_delta_label.setFont(QFont('Noto Sans', 8 * self._dp, italic=True))
        time_delta_label.setMinimumSize(time_delta_label.width(), 24)
        time_delta_label.setAlignment(Qt.AlignTop | Qt.AlignLeft)
        time_delta_label.setStyleSheet('color: #A792A9;')

        get_link_button.setText('   {}  '.format(tr('Get link')))
        get_link_button.setFlat(True)
        get_link_button.setChecked(True)
        get_link_button.setMinimumSize(120, 24)
        get_link_button.setFont(QFont("Noto Sans", 8 * self._dp, italic=True))
        get_link_button.setMouseTracking(True)
        self._setup_get_link_button(get_link_button, rel_path, abs_path)

        return widget