def __init__(self, results): '''Instantiate and show results.''' super(Dialog, self).__init__() self.setObjectName('ftrack-result-dialog') self.setMinimumSize(1080, 720) main_layout = QtWidgets.QVBoxLayout(self) self.setLayout(main_layout) filter_layout = QtWidgets.QHBoxLayout() filter_label = QtWidgets.QLabel('Filter log') self.filter_field = QtWidgets.QLineEdit() self.filter_field.setObjectName('ftrack-log-filter-field') self.filter_field.textChanged.connect(self.on_search) filter_layout.addWidget(filter_label) filter_layout.addWidget(self.filter_field) main_layout.addLayout(filter_layout) log_list = QtWidgets.QTableView() log_list.verticalHeader().hide() log_list.setObjectName('ftrack-log-view') log_list.setAlternatingRowColors(True) log_list.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) log_list.horizontalHeader().setStretchLastSection(True) log_items = self._parse_results(results) log_model = ftrack_connect_pipeline.ui.model.log_table.LogTableModel( self, log_items) self.log_sort_model = ftrack_connect_pipeline.ui.model.log_table.FilterProxyModel( ) self.log_sort_model.setDynamicSortFilter(True) self.log_sort_model.setSourceModel(log_model) log_list.setModel(self.log_sort_model) main_layout.addWidget(log_list) open_log_folder_button = QtWidgets.QPushButton('Open log directory') open_log_folder_button.clicked.connect(self._on_logging_button_clicked) main_layout.addWidget(open_log_folder_button)
def _construct(self): '''Construct widget.''' self.setLayout(QtWidgets.QVBoxLayout()) self.headerLayout = QtWidgets.QHBoxLayout() self.navigationBar = QtWidgets.QTabBar() self.navigationBar.setExpanding(False) self.navigationBar.setDrawBase(False) self.headerLayout.addWidget(self.navigationBar, stretch=1) self.navigateUpButton = QtWidgets.QToolButton() self.navigateUpButton.setObjectName('entity-browser-up-button') self.navigateUpButton.setIcon( QtGui.QIcon(':ftrack/image/light/upArrow') ) self.navigateUpButton.setToolTip('Navigate up a level.') self.headerLayout.addWidget(self.navigateUpButton) self.reloadButton = QtWidgets.QToolButton() self.reloadButton.setObjectName('entity-browser-reload-button') self.reloadButton.setIcon( QtGui.QIcon(':ftrack/image/light/reload') ) self.reloadButton.setToolTip('Reload listing from server.') self.headerLayout.addWidget(self.reloadButton) self.layout().addLayout(self.headerLayout) self.contentSplitter = QtWidgets.QSplitter() self.bookmarksList = QtWidgets.QListView() self.contentSplitter.addWidget(self.bookmarksList) self.view = QtWidgets.QTableView() self.view.setSelectionBehavior(self.view.SelectRows) self.view.setSelectionMode(self.view.SingleSelection) self.view.verticalHeader().hide() self.contentSplitter.addWidget(self.view) proxy = ftrack_connect_pipeline.ui.model.entity_tree.EntityTreeProxyModel(self) model = ftrack_connect_pipeline.ui.model.entity_tree.EntityTreeModel( root=ftrack_connect_pipeline.ui.model.entity_tree.ItemFactory( self._session, self._root ), parent=self ) proxy.setSourceModel(model) proxy.setDynamicSortFilter(True) self.view.setModel(proxy) self.view.setSortingEnabled(True) self.contentSplitter.setStretchFactor(1, 1) self.layout().addWidget(self.contentSplitter) self.footerLayout = QtWidgets.QHBoxLayout() self.footerLayout.addStretch(1) self.cancelButton = QtWidgets.QPushButton('Cancel') self.footerLayout.addWidget(self.cancelButton) self.acceptButton = QtWidgets.QPushButton('Choose') self.footerLayout.addWidget(self.acceptButton) self.layout().addLayout(self.footerLayout) self.overlay = ftrack_connect_pipeline.ui.widget.overlay.BusyOverlay( self.view, message='Loading' )