def _create_found_frame(self):
     ff_frame = QFrame(self)
     self.found_files_vbox_layout = QVBoxLayout(ff_frame)
     self.found_files_vbox_layout.setContentsMargins(0, 0, 0, 0)
     self.recursive_search_box = QCheckBox("recursive search")
     self.found_files_vbox_layout.addWidget(self.recursive_search_box)
     self.found_files_list = QTreeWidget(ff_frame)
     self.found_files_list.setColumnCount(1)
     self.found_files_list.setFrameStyle(QFrame.StyledPanel)
     self.found_files_list.setHeaderHidden(True)
     self.found_files_list.itemActivated.connect(self.on_itemActivated)
     self.found_files_list.setStyleSheet("QTreeWidget {"
                                         "background-color:transparent;"
                                         "}"
                                         "QTreeWidget::item {"
                                         "background-color:transparent;"
                                         "}"
                                         "QTreeWidget::item:selected {"
                                         "background-color: darkgray;"
                                         "}")
     self.found_files_vbox_layout.addWidget(self.found_files_list)
     self.recursive_search_box.setChecked(False)
     return ff_frame
Beispiel #2
0
    def __init__(self, context):
        super(Top, self).__init__(context)
        # Give QObjects reasonable names
        self.setObjectName('Top')

        # Process standalone plugin command-line arguments
        from argparse import ArgumentParser
        parser = ArgumentParser()
        # Add argument(s) to the parser.
        parser.add_argument("-q",
                            "--quiet",
                            action="store_true",
                            dest="quiet",
                            help="Put plugin in silent mode")
        args, unknowns = parser.parse_known_args(context.argv())
        # if not args.quiet:
        #     print 'arguments: ', args
        #     print 'unknowns: ', unknowns

        self._selected_node = ''
        self._selected_node_lock = RLock()

        # Setup the toolbar
        self._toolbar = QToolBar()
        self._filter_box = QLineEdit()
        self._regex_box = QCheckBox()
        self._regex_box.setText('regex')
        self._toolbar.addWidget(QLabel('Filter'))
        self._toolbar.addWidget(self._filter_box)
        self._toolbar.addWidget(self._regex_box)

        self._filter_box.returnPressed.connect(self.update_filter)
        self._regex_box.stateChanged.connect(self.update_filter)

        # Create a container widget and give it a layout
        self._container = QWidget()
        self._container.setWindowTitle('Process Monitor')
        self._layout = QVBoxLayout()
        self._container.setLayout(self._layout)

        self._layout.addWidget(self._toolbar)

        # Create the table widget
        self._table_widget = QTreeWidget()
        self._table_widget.setObjectName('TopTable')
        self._table_widget.setColumnCount(len(self.NODE_LABELS))
        self._table_widget.setHeaderLabels(self.NODE_LABELS)
        self._table_widget.itemClicked.connect(self._tableItemClicked)
        self._table_widget.setSortingEnabled(True)
        self._table_widget.setAlternatingRowColors(True)

        self._layout.addWidget(self._table_widget)
        context.add_widget(self._container)

        # Add a button for killing nodes
        self._kill_button = QPushButton('Kill Node')
        self._layout.addWidget(self._kill_button)
        self._kill_button.clicked.connect(self._kill_node)

        # Update twice since the first cpu% lookup will always return 0
        self.update_table()
        self.update_table()

        self._table_widget.resizeColumnToContents(0)

        # Start a timer to trigger updates
        self._update_timer = QTimer()
        self._update_timer.setInterval(1000)
        self._update_timer.timeout.connect(self.update_table)
        self._update_timer.start()