def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.timer_id = None self.workflowItems = {} self.layout = QtGui.QVBoxLayout() # self.layout.setContentsMargins(5, 5, 0, 0) buttonsLayout = QtGui.QHBoxLayout() #buttonsLayout.setMargin(5) #buttonsLayout.setSpacing(5) run_now = QDockPushButton("Check now") run_now.setToolTip("Check all jobs now") run_now.clicked.connect(self.timerEvent) buttonsLayout.addWidget(run_now) label = QtGui.QLabel('Refresh interval (seconds):') buttonsLayout.addWidget(label) self.interval = QtGui.QComboBox() for text, seconds in refresh_states: self.interval.addItem(text, seconds) self.interval.editTextChanged.connect(self.set_refresh) self.interval.setEditable(True) self.interval.setCurrentIndex(self.interval.findText('10 min')) self.interval.setCompleter(None) self.interval.setValidator(QNumberValidator()) buttonsLayout.addWidget(self.interval) self.autorun = QtGui.QCheckBox("Run When Ready") self.autorun.setToolTip("Automatically re-execute the workflow when jobs have completed") buttonsLayout.addWidget(self.autorun) self.rerun = QtGui.QCheckBox("Run To Check") self.rerun.setToolTip("Automatically re-execute workflows that does not provide a status check method") buttonsLayout.addWidget(self.rerun) buttonsLayout.addStretch(1) self.layout.addLayout(buttonsLayout) self.jobView = QtGui.QTreeWidget() self.jobView.setContentsMargins(0, 0, 0, 0) self.jobView.setColumnCount(2) self.jobView.setHeaderLabels(['Job', 'Message']) self.jobView.header().setResizeMode(0, QtGui.QHeaderView.ResizeToContents) self.jobView.header().setResizeMode(1, QtGui.QHeaderView.Stretch) self.jobView.setExpandsOnDoubleClick(False) self.connect(self.jobView, QtCore.SIGNAL('itemDoubleClicked(QTreeWidgetItem *, int)'), self.item_selected) self.layout.addWidget(self.jobView) self.setLayout(self.layout) self.setWindowTitle('Running Jobs') self.resize(QtCore.QSize(800, 600)) self.updating_now = False
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.timer_id = None self.updating_now = False self.widgets = {} self.layout = QtGui.QVBoxLayout() buttonsLayout = QtGui.QHBoxLayout() run_now = QDockPushButton("Check selected") run_now.setToolTip("Check selected job now") run_now.clicked.connect(self.check_selected_job) buttonsLayout.addWidget(run_now) run_all = QDockPushButton("Check all") run_all.setToolTip("Check all jobs now") run_all.clicked.connect(self.timerEvent) buttonsLayout.addWidget(run_all) label = QtGui.QLabel('Refresh interval (seconds):') buttonsLayout.addWidget(label) self.interval = QtGui.QComboBox() for text, seconds in refresh_states: self.interval.addItem(text, seconds) self.interval.setCompleter(None) self.interval.setEditable(True) self.interval.editTextChanged.connect(self.set_refresh) self.interval.setValidator(QNumberValidator()) conf = get_vistrails_configuration() self.interval.setEditText(str(conf.jobCheckInterval)) buttonsLayout.addWidget(self.interval) self.autorun = QtGui.QCheckBox("Automatic re-execution") self.autorun.setToolTip("Automatically re-execute workflow when jobs " "complete") self.connect(self.autorun, QtCore.SIGNAL('toggled(bool)'), self.autorunToggled) self.autorun.setChecked(conf.jobAutorun) buttonsLayout.addWidget(self.autorun) buttonsLayout.addStretch(1) self.layout.addLayout(buttonsLayout) self.jobView = QJobTree() self.jobView.itemDoubleClicked.connect(self.item_clicked) self.layout.addWidget(self.jobView) self.setLayout(self.layout) self.setWindowTitle('Running Jobs') self.resize(QtCore.QSize(800, 600))
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) ui = logging.StreamHandler(debugStream(self.write)) ui.setFormatter( logging.Formatter('%(levelname)s\n%(asctime)s\n%(message)s')) ui.setLevel(logging.DEBUG) vistrails.core.debug.DebugPrint.getInstance().logger.addHandler(ui) self.setWindowTitle('VisTrails Messages') layout = QtGui.QVBoxLayout() self.setLayout(layout) # top message filter buttons filters = QtGui.QHBoxLayout() layout.addLayout(filters) filterLabel = QtGui.QLabel('Filter:') filterLabel.setFixedWidth(40) filters.addWidget(filterLabel) self.levels = {} for i, name in enumerate(('DEBUG', 'INFO', 'WARNING', 'CRITICAL')): box = QtGui.QCheckBox(name, self) box.setCheckable(True) box.setChecked(name != 'DEBUG') box.setStyleSheet( 'color: %s;\n' 'background-color: %s' % (CurrentTheme.DEBUG_COLORS[name].name(), CurrentTheme.DEBUG_FILTER_BACKGROUND_COLOR.name())) self.connect(box, QtCore.SIGNAL('toggled(bool)'), self.refresh) filters.addWidget(box) self.levels[name] = box filters.addStretch() # message list self.list = QtGui.QListWidget() self.connect( self.list, QtCore.SIGNAL( 'currentItemChanged(QListWidgetItem *, QListWidgetItem *)'), self.showMessage) layout.addWidget(self.list) # message details field self.text = QtGui.QTextEdit() self.text.setReadOnly(True) self.text.hide() layout.addWidget(self.text) # bottom buttons buttons = QtGui.QGridLayout() layout.addLayout(buttons) leftbuttons = QtGui.QGridLayout() buttons.addLayout(leftbuttons, 0, 0, QtCore.Qt.AlignLeft) rightbuttons = QtGui.QGridLayout() buttons.addLayout(rightbuttons, 0, 1, QtCore.Qt.AlignRight) copy = QDockPushButton('Copy &Message', self) copy.setToolTip('Copy selected message to clipboard') copy.setFixedWidth(125) rightbuttons.addWidget(copy, 0, 0) self.connect(copy, QtCore.SIGNAL('clicked()'), self.copyMessage) copyAll = QDockPushButton('Copy &All', self) copyAll.setToolTip('Copy all messages to clipboard (Can be a lot)') copyAll.setFixedWidth(125) rightbuttons.addWidget(copyAll, 0, 1) self.connect(copyAll, QtCore.SIGNAL('clicked()'), self.copyAll) self.msg_box = None self.itemQueue = [] self.resize(700, 400)
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) ui = logging.StreamHandler(debugStream(self.write)) ui.setFormatter(logging.Formatter("%(levelname)s\n%(asctime)s\n%(message)s")) ui.setLevel(logging.DEBUG) vistrails.core.debug.DebugPrint.getInstance().logger.addHandler(ui) self.setWindowTitle("VisTrails Messages") layout = QtGui.QVBoxLayout() self.setLayout(layout) # top message filter buttons filters = QtGui.QHBoxLayout() layout.addLayout(filters) filterLabel = QtGui.QLabel("Filter:") filterLabel.setFixedWidth(40) filters.addWidget(filterLabel) self.levels = {} for i, name in enumerate(("DEBUG", "INFO", "WARNING", "CRITICAL")): box = QtGui.QCheckBox(name, self) box.setCheckable(True) box.setChecked(name != "DEBUG") box.setStyleSheet( "color: %s;\n" "background-color: %s" % (CurrentTheme.DEBUG_COLORS[name].name(), CurrentTheme.DEBUG_FILTER_BACKGROUND_COLOR.name()) ) self.connect(box, QtCore.SIGNAL("toggled(bool)"), self.refresh) filters.addWidget(box) self.levels[name] = box filters.addStretch() # message list self.list = QtGui.QListWidget() self.connect( self.list, QtCore.SIGNAL("currentItemChanged(QListWidgetItem *, QListWidgetItem *)"), self.showMessage ) layout.addWidget(self.list) # message details field self.text = QtGui.QTextEdit() self.text.setReadOnly(True) self.text.hide() layout.addWidget(self.text) # bottom buttons buttons = QtGui.QGridLayout() layout.addLayout(buttons) leftbuttons = QtGui.QGridLayout() buttons.addLayout(leftbuttons, 0, 0, QtCore.Qt.AlignLeft) rightbuttons = QtGui.QGridLayout() buttons.addLayout(rightbuttons, 0, 1, QtCore.Qt.AlignRight) copy = QDockPushButton("Copy &Message", self) copy.setToolTip("Copy selected message to clipboard") copy.setFixedWidth(125) rightbuttons.addWidget(copy, 0, 0) self.connect(copy, QtCore.SIGNAL("clicked()"), self.copyMessage) copyAll = QDockPushButton("Copy &All", self) copyAll.setToolTip("Copy all messages to clipboard (Can be a lot)") copyAll.setFixedWidth(125) rightbuttons.addWidget(copyAll, 0, 1) self.connect(copyAll, QtCore.SIGNAL("clicked()"), self.copyAll) self.msg_box = None self.itemQueue = [] self.resize(700, 400)
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) vistrails.core.debug.DebugPrint.getInstance().set_stream(debugStream(self.write)) self.setWindowTitle('VisTrails Messages') layout = QtGui.QVBoxLayout() self.setLayout(layout) # top message filter buttons filterHolder = QtGui.QGridLayout() layout.addLayout(filterHolder) filter = QtGui.QGridLayout() filterHolder.addLayout(filter, 0, 0, QtCore.Qt.AlignLeft) filterLabel = QtGui.QLabel('Filter:') filterLabel.setFixedWidth(40) filter.addWidget(filterLabel, 0, 0) self.infoFilter = QtGui.QCheckBox('Info', self) self.infoFilter.setCheckable(True) self.infoFilter.setChecked(True) self.infoFilter.setStyleSheet('color:' + CurrentTheme.DEBUG_INFO_COLOR.name() + ';background-color:' + CurrentTheme.DEBUG_FILTER_BACKGROUND_COLOR.name()) self.connect(self.infoFilter, QtCore.SIGNAL('stateChanged(int)'), self.toggleInfo) filter.addWidget(self.infoFilter, 0, 1) self.warningFilter = QtGui.QCheckBox('Warning', self) self.warningFilter.setCheckable(True) self.warningFilter.setChecked(True) self.warningFilter.setStyleSheet('color:' + CurrentTheme.DEBUG_WARNING_COLOR.name() + ';background-color:' + CurrentTheme.DEBUG_FILTER_BACKGROUND_COLOR.name()) self.connect(self.warningFilter, QtCore.SIGNAL('stateChanged(int)'), self.toggleWarning) filter.addWidget(self.warningFilter, 0, 2) self.criticalFilter = QtGui.QCheckBox('Critical', self) self.criticalFilter.setCheckable(True) self.criticalFilter.setChecked(True) self.criticalFilter.setStyleSheet('color:' + CurrentTheme.DEBUG_CRITICAL_COLOR.name() + ';background-color:' + CurrentTheme.DEBUG_FILTER_BACKGROUND_COLOR.name()) self.connect(self.criticalFilter, QtCore.SIGNAL('stateChanged(int)'), self.toggleCritical) filter.addWidget(self.criticalFilter, 0, 3) # message list self.list = QtGui.QListWidget() self.connect(self.list, QtCore.SIGNAL('currentItemChanged(QListWidgetItem *, QListWidgetItem *)'), self.showMessage) layout.addWidget(self.list) # message details field self.text = QtGui.QTextEdit() self.text.setReadOnly(True) self.text.hide() layout.addWidget(self.text) # bottom buttons buttons = QtGui.QGridLayout() layout.addLayout(buttons) leftbuttons = QtGui.QGridLayout() buttons.addLayout(leftbuttons, 0, 0, QtCore.Qt.AlignLeft) rightbuttons = QtGui.QGridLayout() buttons.addLayout(rightbuttons, 0, 1, QtCore.Qt.AlignRight) copy = QDockPushButton('Copy &Message', self) copy.setToolTip('Copy selected message to clipboard') copy.setFixedWidth(125) rightbuttons.addWidget(copy, 0, 0) self.connect(copy, QtCore.SIGNAL('clicked()'), self.copyMessage) copyAll = QDockPushButton('Copy &All', self) copyAll.setToolTip('Copy all messages to clipboard (Can be a lot)') copyAll.setFixedWidth(125) rightbuttons.addWidget(copyAll, 0, 1) self.connect(copyAll, QtCore.SIGNAL('clicked()'), self.copyAll) self.msg_box = None self.itemQueue = [] self.resize(700, 400)
def __init__(self, parent=None, f=QtCore.Qt.WindowFlags()): QtGui.QWidget.__init__(self, parent, f) self.set_title("Export To LaTeX") # add button to select tex source # listview to select figure # thumbnail display # set figure specific options (show workflow, show execution, show # set includegraphics options source_label = QtGui.QLabel("LaTeX Source:") self.source_edit = QtGui.QLineEdit() source_selector = QDockPushButton("Select...") # source_selector = QtGui.QToolButton() # source_selector.setIcon(QtGui.QIcon( # self.style().standardPixmap(QtGui.QStyle.SP_DirOpenIcon))) # source_selector.setIconSize(QtCore.QSize(12,12)) source_selector.setToolTip("Open a file chooser") # source_selector.setAutoRaise(True) self.connect(source_selector, QtCore.SIGNAL('clicked()'), self.selectSource) source_group = QtGui.QGroupBox("LaTeX Source") s_layout = QtGui.QHBoxLayout() s_layout.addWidget(source_label) s_layout.addWidget(self.source_edit) s_layout.addWidget(source_selector) s_layout.setStretch(1,1) source_group.setLayout(s_layout) self.figure_list = QtGui.QListWidget() self.figure_list.setSelectionMode(self.figure_list.SingleSelection) self.preview_image = QtGui.QLabel() self.preview_image.setScaledContents(False) self.preview_image.setMinimumSize(240, 240) add_figure = QDockPushButton("Add Figure") delete_figure = QDockPushButton("Delete Figure") self.connect(add_figure, QtCore.SIGNAL("clicked()"), self.addFigure) self.connect(delete_figure, QtCore.SIGNAL("clicked()"), self.deleteFigure) self.connect(self.figure_list, QtCore.SIGNAL("itemSelectionChanged()"), self.figureSelected) figure_group = QtGui.QGroupBox("Figures") figure_layout = QtGui.QGridLayout() figure_layout.addWidget(self.figure_list,0,0,1,2) figure_layout.addWidget(self.preview_image,0,2) figure_layout.addWidget(add_figure,1,0,QtCore.Qt.AlignRight) figure_layout.addWidget(delete_figure,1,1,QtCore.Qt.AlignRight) figure_group.setLayout(figure_layout) # figure type, vistrail reference (vt_locator), version (smart tag) # use current version self.figure_type = QtGui.QComboBox() self.figure_type.setEditable(False) # items = [] # items << "Workflow Results" << "Workflow Graph" << "History Tree Graph"; self.figure_type.addItems(["Workflow Results", "Workflow Graph", "Version Tree"]) self.figure_ref = QtGui.QLineEdit() version_label = QtGui.QLabel("Version:") self.figure_version = QtGui.QLineEdit() tag_label = QtGui.QLabel("Tag:") self.figure_tag = QtGui.QComboBox() self.figure_tag.setEditable(True) self.figure_smart = QtGui.QCheckBox("Smart Tag") current_button = QDockPushButton("Use Current") self.connect(current_button, QtCore.SIGNAL("clicked()"), self.useCurrent) graphicx_label = QtGui.QLabel("Arguments for includegraphics:") self.graphicx_edit = QtGui.QLineEdit() self.def_group = QtGui.QGroupBox("Figure Definition") def_layout = QtGui.QVBoxLayout() def_h_layout = QtGui.QHBoxLayout() def_h_layout.addWidget(self.figure_ref) def_h_layout.addWidget(self.figure_type) def_h_layout.setStretch(0,1) def_layout.addLayout(def_h_layout) def_h_layout = QtGui.QHBoxLayout() def_h_layout.addWidget(version_label) def_h_layout.addWidget(self.figure_version) def_h_layout.addWidget(tag_label) def_h_layout.addWidget(self.figure_tag) def_h_layout.addWidget(self.figure_smart) def_h_layout.addWidget(current_button) def_h_layout.setStretch(3,1) def_layout.addLayout(def_h_layout) def_h_layout = QtGui.QHBoxLayout() def_h_layout.addWidget(graphicx_label) def_h_layout.addWidget(self.graphicx_edit) def_h_layout.setStretch(1,1) def_layout.addLayout(def_h_layout) self.def_group.setLayout(def_layout) self.chbPdf = QtGui.QCheckBox("As PDF") self.chbCache = QtGui.QCheckBox("Cache Images") self.chbLatexVTL = QtGui.QCheckBox("Include .vtl") self.chbWorkflow = QtGui.QCheckBox("Include Workflow") self.chbFullTree = QtGui.QCheckBox("Include Full Tree") self.chbFullTree.setEnabled(False) self.chbExecute = QtGui.QCheckBox("Execute Workflow") self.chbSpreadsheet = QtGui.QCheckBox("Show Spreadsheet Only") self.gbEmbedOpt = QtGui.QGroupBox("Embed Options") gblayout = QtGui.QGridLayout() gblayout.addWidget(self.chbPdf, 0, 0) gblayout.addWidget(self.chbCache, 0, 1) gblayout.addWidget(self.chbLatexVTL, 1, 0) self.gbEmbedOpt.setLayout(gblayout) self.gbDownOpt = QtGui.QGroupBox("Download Options") gblayout = QtGui.QGridLayout() gblayout.addWidget(self.chbWorkflow, 0, 0) gblayout.addWidget(self.chbFullTree, 0, 1) gblayout.addWidget(self.chbExecute, 1, 0) gblayout.addWidget(self.chbSpreadsheet, 1, 1) self.gbDownOpt.setLayout(gblayout) revert_button = QDockPushButton("Revert...") save_button = QDockPushButton("Save...") save_button.setAutoDefault(True) self.connect(save_button, QtCore.SIGNAL("clicked()"), self.saveLatex) main_layout = QtGui.QVBoxLayout() main_layout.addWidget(source_group) main_layout.addWidget(figure_group) main_layout.addWidget(self.def_group) main_h_layout = QtGui.QHBoxLayout() main_h_layout.addWidget(self.gbEmbedOpt) main_h_layout.addWidget(self.gbDownOpt) main_layout.addLayout(main_h_layout) main_h_layout = QtGui.QHBoxLayout() main_h_layout.setAlignment(QtCore.Qt.AlignRight) main_h_layout.addWidget(revert_button) main_h_layout.addWidget(save_button) main_layout.addLayout(main_h_layout) self.setLayout(main_layout) self.texts = None self.selected_item = None