def closeEvent(self, event): if self._finished or not self.started: super(ResolveDialog, self).closeEvent(event) StoreSizeMixin.closeEvent(self, event) else: self._cancel_resolve() event.ignore()
def __init__(self, process, command_string, parent=None): config_key = "layout/window/process" super(ProcessDialog, self).__init__(parent) StoreSizeMixin.__init__(self, app.config, config_key) self.setWindowTitle("Running: %s" % command_string) self.proc = process self.ended = False self.output_ended = False self.capture_output = True self.buffer = [] self.bar = QtGui.QProgressBar() self.bar.setRange(0, 0) self.edit = StreamableTextEdit() close_btn = QtGui.QPushButton("Close") btn_pane = create_pane([None, close_btn], True) create_pane([self.bar, self.edit, btn_pane], False, parent_widget=self) self.lock = Lock() self.stdout_thread = Thread(target=self._read_output, args=(self.proc.stdout,)) self.stderr_thread = Thread(target=self._read_output, args=(self.proc.stderr,)) self.timer = QtCore.QTimer() self.timer.setInterval(100) self.timer.timeout.connect(self._update) self.timer.start() self.stdout_thread.start() self.stderr_thread.start() close_btn.clicked.connect(self.close)
def __init__(self, process, command_string, parent=None): config_key = "layout/window/process" super(ProcessDialog, self).__init__(parent) StoreSizeMixin.__init__(self, app.config, config_key) self.setWindowTitle("Running: %s" % command_string) self.proc = process self.ended = False self.output_ended = False self.capture_output = True self.buffer = [] self.bar = QtGui.QProgressBar() self.bar.setRange(0, 0) self.edit = StreamableTextEdit() close_btn = QtGui.QPushButton("Close") btn_pane = create_pane([None, close_btn], True) create_pane([self.bar, self.edit, btn_pane], False, parent_widget=self) self.lock = Lock() self.stdout_thread = Thread(target=self._read_output, args=(self.proc.stdout, )) self.stderr_thread = Thread(target=self._read_output, args=(self.proc.stderr, )) self.timer = QtCore.QTimer() self.timer.setInterval(100) self.timer.timeout.connect(self._update) self.timer.start() self.stdout_thread.start() self.stderr_thread.start() close_btn.clicked.connect(self.close)
def __init__(self, parent=None): super(BrowsePackageSubWindow, self).__init__(parent) self.setAttribute(QtCore.Qt.WA_DeleteOnClose, True) config_key = "layout/window/package_browser" StoreSizeMixin.__init__(self, app.config, config_key) self.setWindowTitle("Browse Packages") widget = BrowsePackagePane() self.setWidget(widget)
def __init__(self, context=None, parent=None): super(ContextSubWindow, self).__init__(parent) context_model = ContextModel(context) ContextViewMixin.__init__(self, context_model) config_key = "layout/window/context_manager" StoreSizeMixin.__init__(self, app.config, config_key) self.setAttribute(QtCore.Qt.WA_DeleteOnClose, True) widget = ContextManagerWidget(context_model) widget.diffModeChanged.connect(self._diffModeChanged) self.setWidget(widget) self._update_window_title()
def __init__(self, context_model, variant, reference_variant=None, parent=None): config_key = "layout/window/package_versions" super(VariantVersionsDialog, self).__init__(parent) StoreSizeMixin.__init__(self, app.config, config_key) self.setWindowTitle("Package Versions") self.versions_widget = VariantVersionsWidget( context_model, reference_variant=reference_variant, in_window=True) layout = QtGui.QVBoxLayout() layout.addWidget(self.versions_widget) self.setLayout(layout) self.versions_widget.set_variant(variant) self.versions_widget.closeWindow.connect(self.close)
def __init__(self, image_file, parent=None): config_key = "layout/window/resolve_graph" super(ImageViewerDialog, self).__init__(parent) StoreSizeMixin.__init__(self, app.config, config_key) self.setWindowTitle("Resolve Graph") self.image_viewer = ImageViewerWidget(image_file) close_btn = QtGui.QPushButton("Close") fit_checkbox = QtGui.QCheckBox("Fit to window") btn_pane = create_pane([None, fit_checkbox, 10, close_btn], True) create_pane([(self.image_viewer, 1), btn_pane], False, parent_widget=self) close_btn.clicked.connect(self.close) fit_checkbox.stateChanged.connect(self.image_viewer.fit_to_window) app.config.attach(fit_checkbox, "resolve/fit_graph")
def __init__(self, context_model, package_text=None, parent=None, close_only=False, lock_package=False, package_selectable_callback=None): config_key = "layout/window/browse_package" super(BrowsePackageDialog, self).__init__(parent) StoreSizeMixin.__init__(self, app.config, config_key) self.setWindowTitle("Find Package") self.package = None self.widget = BrowsePackageWidget( context_model, self, lock_package=lock_package, package_selectable_callback=package_selectable_callback) self.ok_btn = QtWidgets.QPushButton("Ok") buttons = [self.ok_btn] if close_only: close_btn = QtWidgets.QPushButton("Close") buttons.insert(0, close_btn) close_btn.clicked.connect(self.close) self.ok_btn.hide() else: cancel_btn = QtWidgets.QPushButton("Cancel") cancel_btn.clicked.connect(self.close) buttons.insert(0, cancel_btn) self.ok_btn.setEnabled(False) btn_pane = create_pane([None] + buttons, True) layout = QtWidgets.QVBoxLayout() layout.addWidget(self.widget) layout.addWidget(btn_pane) self.setLayout(layout) self.ok_btn.clicked.connect(self._ok) self.widget.packageSelected.connect(self._set_package) self.widget.set_package_text(package_text)
def __init__(self, context_model, package_text=None, parent=None, close_only=False, lock_package=False, package_selectable_callback=None): config_key = "layout/window/browse_package" super(BrowsePackageDialog, self).__init__(parent) StoreSizeMixin.__init__(self, app.config, config_key) self.setWindowTitle("Find Package") self.package = None self.widget = BrowsePackageWidget( context_model, self, lock_package=lock_package, package_selectable_callback=package_selectable_callback) self.ok_btn = QtGui.QPushButton("Ok") buttons = [self.ok_btn] if close_only: close_btn = QtGui.QPushButton("Close") buttons.insert(0, close_btn) close_btn.clicked.connect(self.close) self.ok_btn.hide() else: cancel_btn = QtGui.QPushButton("Cancel") cancel_btn.clicked.connect(self.close) buttons.insert(0, cancel_btn) self.ok_btn.setEnabled(False) btn_pane = create_pane([None] + buttons, True) layout = QtGui.QVBoxLayout() layout.addWidget(self.widget) layout.addWidget(btn_pane) self.setLayout(layout) self.ok_btn.clicked.connect(self._ok) self.widget.packageSelected.connect(self._set_package) self.widget.set_package_text(package_text)
def __init__(self, context_model, parent=None, advanced=False): config_key = ("layout/window/advanced_resolve" if advanced else "layout/window/resolve") super(ResolveDialog, self).__init__(parent) StoreSizeMixin.__init__(self, app.config, config_key) self.setWindowTitle("Resolve") self.setContentsMargins(0, 0, 0, 0) self.context_model = context_model self.advanced = advanced self.resolver = None self.thread = None self.started = False self._finished = False self.busy_cursor = QtGui.QCursor(QtCore.Qt.WaitCursor) self.edit = StreamableTextEdit() self.edit.setStyleSheet("font: 9pt 'Courier'") self.bar = QtGui.QProgressBar() self.bar.setRange(0, 10) self.save_context_btn = QtGui.QPushButton("Save Context As...") self.graph_btn = QtGui.QPushButton("View Graph...") self.ok_btn = QtGui.QPushButton("Ok") self.start_again_btn = QtGui.QPushButton("Start Again") self.cancel_btn = QtGui.QPushButton("Cancel") self.resolve_btn = QtGui.QPushButton("Resolve") self.ok_btn.hide() self.graph_btn.hide() self.start_again_btn.hide() self.save_context_btn.hide() btn_pane = create_pane([None, self.save_context_btn, self.graph_btn, self.start_again_btn, self.ok_btn, self.cancel_btn, self.resolve_btn], not self.advanced) layout = QtGui.QVBoxLayout() layout.addWidget(self.bar) layout.addWidget(self.edit, 1) self.resolve_group = None self.max_fails_combo = None self.verbosity_combo = None self.show_package_loads_checkbox = None # this is solely to execute _start_resolve() as soon as the dialog opens self.timer = QtCore.QTimer() self.timer.setInterval(1) self.timer.setSingleShot(True) self.timer.timeout.connect(self._on_dialog_open) if self.advanced: self.resolve_group = QtGui.QGroupBox("resolve settings") label = QtGui.QLabel("maximum fails:") self.max_fails_combo = QtGui.QComboBox() self.max_fails_combo.setEditable(True) self.max_fails_combo.addItem("-") self.max_fails_combo.addItem("1") self.max_fails_combo.addItem("2") self.max_fails_combo.addItem("3") app.config.attach(self.max_fails_combo, "resolve/max_fails") max_fails_pane = create_pane([None, label, self.max_fails_combo], True) label = QtGui.QLabel("verbosity:") self.verbosity_combo = QtGui.QComboBox() self.verbosity_combo.addItem("0") self.verbosity_combo.addItem("1") self.verbosity_combo.addItem("2") app.config.attach(self.verbosity_combo, "resolve/verbosity") verbosity_pane = create_pane([None, label, self.verbosity_combo], True) self.show_package_loads_checkbox = QtGui.QCheckBox("show package loads") self.show_package_loads_checkbox.setLayoutDirection(QtCore.Qt.RightToLeft) app.config.attach(self.show_package_loads_checkbox, "resolve/show_package_loads") show_loads_pane = create_pane([None, self.show_package_loads_checkbox], True) self.timestamp_widget = TimestampWidget(self.context_model) context = self.context_model.context() if context and context.requested_timestamp: self.timestamp_widget.set_time(context.requested_timestamp) left_pane = create_pane([self.timestamp_widget, None], False, compact=True) right_pane = create_pane([max_fails_pane, verbosity_pane, show_loads_pane, None], False, compact=True) create_pane([left_pane, right_pane], True, parent_widget=self.resolve_group) pane = create_pane([self.resolve_group, None, btn_pane], True) self.cancel_btn.hide() layout.addWidget(pane) else: self.resolve_btn.hide() layout.addWidget(btn_pane) self.setLayout(layout) self.cancel_btn.clicked.connect(self._cancel_resolve) self.resolve_btn.clicked.connect(self._start_resolve) self.graph_btn.clicked.connect(self._view_graph) self.save_context_btn.clicked.connect(self._save_context) self.start_again_btn.clicked.connect(self._reset) self.ok_btn.clicked.connect(self.close)
def closeEvent(self, event): if self.can_close(): super(ContextSubWindow, self).closeEvent(event) StoreSizeMixin.closeEvent(self, event) else: event.ignore()
def closeEvent(self, event): super(BrowsePackageSubWindow, self).closeEvent(event) StoreSizeMixin.closeEvent(self, event)
def __init__(self, context_model, parent=None, advanced=False): config_key = ("layout/window/advanced_resolve" if advanced else "layout/window/resolve") super(ResolveDialog, self).__init__(parent) StoreSizeMixin.__init__(self, app.config, config_key) self.setWindowTitle("Resolve") self.setContentsMargins(0, 0, 0, 0) self.context_model = context_model self.advanced = advanced self.resolver = None self.thread = None self.started = False self._finished = False #self.busy_cursor = QtGui.QCursor(QtCore.Qt.WaitCursor) self.edit = StreamableTextEdit() self.edit.setStyleSheet("font: 9pt 'Courier'") self.bar = QtGui.QProgressBar() self.bar.setRange(0, 10) self.save_context_btn = QtGui.QPushButton("Save Context As...") self.graph_btn = QtGui.QPushButton("View Graph...") self.ok_btn = QtGui.QPushButton("Ok") self.start_again_btn = QtGui.QPushButton("Start Again") self.cancel_btn = QtGui.QPushButton("Cancel") self.resolve_btn = QtGui.QPushButton("Resolve") self.ok_btn.hide() self.graph_btn.hide() self.start_again_btn.hide() self.save_context_btn.hide() btn_pane = create_pane([None, self.save_context_btn, self.graph_btn, self.start_again_btn, self.ok_btn, self.cancel_btn, self.resolve_btn], not self.advanced) layout = QtGui.QVBoxLayout() layout.addWidget(self.bar) layout.addWidget(self.edit, 1) self.resolve_group = None self.max_fails_combo = None self.verbosity_combo = None self.show_package_loads_checkbox = None # this is solely to execute _start_resolve() as soon as the dialog opens self.timer = QtCore.QTimer() self.timer.setInterval(1) self.timer.setSingleShot(True) self.timer.timeout.connect(self._on_dialog_open) if self.advanced: self.resolve_group = QtGui.QGroupBox("resolve settings") label = QtGui.QLabel("maximum fails:") self.max_fails_combo = QtGui.QComboBox() self.max_fails_combo.setEditable(True) self.max_fails_combo.addItem("-") self.max_fails_combo.addItem("1") self.max_fails_combo.addItem("2") self.max_fails_combo.addItem("3") app.config.attach(self.max_fails_combo, "resolve/max_fails") max_fails_pane = create_pane([None, label, self.max_fails_combo], True) label = QtGui.QLabel("verbosity:") self.verbosity_combo = QtGui.QComboBox() self.verbosity_combo.addItem("0") self.verbosity_combo.addItem("1") self.verbosity_combo.addItem("2") app.config.attach(self.verbosity_combo, "resolve/verbosity") verbosity_pane = create_pane([None, label, self.verbosity_combo], True) self.show_package_loads_checkbox = QtGui.QCheckBox("show package loads") self.show_package_loads_checkbox.setLayoutDirection(QtCore.Qt.RightToLeft) app.config.attach(self.show_package_loads_checkbox, "resolve/show_package_loads") show_loads_pane = create_pane([None, self.show_package_loads_checkbox], True) self.timestamp_widget = TimestampWidget(self.context_model) context = self.context_model.context() if context and context.requested_timestamp: self.timestamp_widget.set_time(context.requested_timestamp) left_pane = create_pane([self.timestamp_widget, None], False, compact=True) right_pane = create_pane([max_fails_pane, verbosity_pane, show_loads_pane, None], False, compact=True) create_pane([left_pane, right_pane], True, parent_widget=self.resolve_group) pane = create_pane([self.resolve_group, None, btn_pane], True) self.cancel_btn.hide() layout.addWidget(pane) else: self.resolve_btn.hide() layout.addWidget(btn_pane) self.setLayout(layout) self.cancel_btn.clicked.connect(self._cancel_resolve) self.resolve_btn.clicked.connect(self._start_resolve) self.graph_btn.clicked.connect(self._view_graph) self.save_context_btn.clicked.connect(self._save_context) self.start_again_btn.clicked.connect(self._reset) self.ok_btn.clicked.connect(self.close)