コード例 #1
0
    def __init__(self, parent, exception_text, tribler_version, start_time):
        QDialog.__init__(self, parent)

        uic.loadUi(get_ui_file_path('feedback_dialog.ui'), self)

        self.setWindowTitle("Unexpected error")
        self.selected_item_index = 0
        self.tribler_version = tribler_version
        self.request_mgr = None

        # Qt 5.2 does not have the setPlaceholderText property
        if hasattr(self.comments_text_edit, "setPlaceholderText"):
            self.comments_text_edit.setPlaceholderText("Comments (optional)")

        def add_item_to_info_widget(key, value):
            item = QTreeWidgetItem(self.env_variables_list)
            item.setText(0, key)
            item.setText(1, value)

        self.error_text_edit.setPlainText(exception_text.rstrip())

        self.cancel_button.clicked.connect(self.on_cancel_clicked)
        self.send_report_button.clicked.connect(self.on_send_clicked)

        # Add machine information to the tree widget
        add_item_to_info_widget('os.getcwd', '%s' % os.getcwd())
        add_item_to_info_widget('sys.executable', '%s' % sys.executable)

        add_item_to_info_widget('os', os.name)
        add_item_to_info_widget('platform', sys.platform)
        add_item_to_info_widget('platform.details', platform.platform())
        add_item_to_info_widget('platform.machine', platform.machine())
        add_item_to_info_widget('python.version', sys.version)
        add_item_to_info_widget('indebug', str(__debug__))
        add_item_to_info_widget('tribler_uptime',
                                "%s" % (time.time() - start_time))

        for argv in sys.argv:
            add_item_to_info_widget('sys.argv', '%s' % argv)

        for path in sys.path:
            add_item_to_info_widget('sys.path', '%s' % path)

        for key in os.environ.keys():
            add_item_to_info_widget('os.environ',
                                    '%s: %s' % (key, os.environ[key]))

        request_ind = 1
        for endpoint, method, data, timestamp, status_code in sorted(
                tribler_performed_requests.values(), key=lambda x: x[3])[-30:]:
            add_item_to_info_widget(
                'request_%d' % request_ind, '%s %s %s (time: %s, code: %s)' %
                (endpoint, method, data, timestamp, status_code))
            request_ind += 1

        # Users can remove specific lines in the report
        self.env_variables_list.customContextMenuRequested.connect(
            self.on_right_click_item)
コード例 #2
0
 def load_requests_tab(self):
     self.window().requests_tree_widget.clear()
     for endpoint, method, data, timestamp, status_code in sorted(tribler_performed_requests.values(),
                                                                  key=lambda x: x[3]):
         item = QTreeWidgetItem(self.window().requests_tree_widget)
         item.setText(0, "%s %s %s" % (method, endpoint, data))
         item.setText(1, ("%d" % status_code) if status_code else "unknown")
         item.setText(2, "%s" % strftime("%H:%M:%S", localtime(timestamp)))
         self.window().requests_tree_widget.addTopLevelItem(item)