def __init__(self, matcherObj=None, *args, **kwargs): super(MatcherItem, self).__init__(*args, **kwargs) if self.FIELDS_SORTED is None: self.FIELDS_SORTED = sorted(self.FIELDS, key=lambda k: self.FIELDS[k]) if self.TYPES_SORTED is None: self.TYPES_SORTED = sorted(self.TYPES, key=lambda k: self.TYPES[k]) self.__matcher = None self.setMinimumHeight(30) self.setMaximumHeight(50) self._field = field = QtGui.QComboBox(self) field.addItems(self.FIELDS_SORTED) field.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred) self._type = typ = QtGui.QComboBox(self) typ.addItems(self.TYPES_SORTED) typ.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred) self._value = value = QtGui.QLineEdit(self) value.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred) layout = self._widgetLayout layout.setContentsMargins(8, 4, 8, 4) layout.addWidget(field) layout.addWidget(typ) layout.addWidget(value) if matcherObj: self.setMatcherObject(matcherObj)
def __init__(self, filterObj=None, *args, **kwargs): super(FilterItem, self).__init__(*args, **kwargs) self.__filter = None self._enabledCheck = check = QtGui.QCheckBox(self) check.setToolTip("Enable or Disable this filter") check.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred) self._nameLabel = name = QtGui.QLineEdit(self) name.setPlaceholderText("<Set Filter Name>") name.setFrame(False) name.setReadOnly(True) name.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred) name.installEventFilter(self) self._widgetLayout.addWidget(self._enabledCheck) self._widgetLayout.addWidget(self._nameLabel) self.setStyleSheet(""" QCheckBox, QLineEdit {background-color: transparent; } QLineEdit {border: none; } """) if filterObj: self.setFilterObject(filterObj) # Connections name.editingFinished.connect(self.__nameEditingFinished) check.toggled.connect(self.__filterEnabled)
def __init__(self, filt=None, items=None, data=None, parent=None): QtGui.QWidget.__init__(self, parent) self.__data = {} self.__txt_label = QtGui.QLabel(self) self.__txt_filter = QtGui.QLineEdit(self) self.__txt_filter.textChanged.connect(self.__filterChanged) self.__model = QtGui.QStringListModel(self) self.__proxyModel = proxy = QtGui.QSortFilterProxyModel(self) proxy.setSourceModel(self.__model) self.__list = view = QtGui.QListView(self) view.setSelectionMode(self.__list.ExtendedSelection) view.setModel(proxy) proxy.sort(0) proxy.setDynamicSortFilter(True) layout = QtGui.QVBoxLayout(self) layout.setSpacing(4) layout.setContentsMargins(0, 0, 0, 0) hlayout = QtGui.QHBoxLayout() hlayout.setContentsMargins(0, 0, 0, 0) hlayout.addWidget(self.__txt_label) hlayout.addWidget(self.__txt_filter) layout.addLayout(hlayout) layout.addWidget(self.__list) # connections self.__list.doubleClicked.connect(self._itemDoubleClicked) self.__list.clicked.connect(self._itemClicked) self.__list.selectionModel().selectionChanged.connect( self._selectionChanged) if items: self.setStringList(items) if filt: self.setFilter(filt)
def __init__(self, cluster, parent=None): QtGui.QDialog.__init__(self, parent) self.__cluster = cluster self.txt_name = QtGui.QLineEdit(self.__cluster.name, self) self.list_tags = ManagedListWidget(cluster.tags, self) self.cb_locked = BooleanCheckBox(cluster.isLocked) self.cb_default = BooleanCheckBox(cluster.isDefault) buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) buttons.accepted.connect(self.accept) buttons.rejected.connect(self.reject) layout = QtGui.QFormLayout() layout.setLabelAlignment(QtCore.Qt.AlignLeft) layout.addRow(FormWidgetLabel("Name", "cluster.name"), self.txt_name) layout.addRow(FormWidgetLabel("Tags", "cluster.tags"), self.list_tags) layout.addRow(FormWidgetLabel("Locked", "cluster.locked"), self.cb_locked) layout.addRow(FormWidgetLabel("Default", "cluster.default"), self.cb_default) layout.addRow(buttons) self.setLayout(layout)
def __init__(self, job=None, task=None, attrs=None, parent=None): QtGui.QWidget.__init__(self, parent) self.__task = None self.__log_file = QtCore.QFile() self.__log_stream = QtCore.QTextStream() openAction = QtGui.QAction("Open Log File", self) openAction.setShortcut(QtGui.QKeySequence.Open) self.addAction(openAction) self.__searchLine = QtGui.QLineEdit(self) self.__chk_tail = QtGui.QAction("Tail log", self) self.__chk_tail.setCheckable(True) self.__findPrevBtn = prev = QtGui.QAction(self) prev.setToolTip("Find Previous Match") prev.setIcon(QtGui.QIcon(":/images/left_arrow.png")) self.__findNextBtn = nxt = QtGui.QAction(self) nxt.setToolTip("Find Next Match") nxt.setIcon(QtGui.QIcon(":/images/right_arrow.png")) self.__jobNameLabel = label = QtGui.QLabel(self) label.setIndent(10) # label.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse) label.hide() self.__jobNameSpacer = QtGui.QWidget(self) self.__jobNameSpacer.setFixedHeight(6) self.__jobNameSpacer.hide() def spacer(width): w = QtGui.QWidget() w.setFixedWidth(width) return w stretch = QtGui.QWidget() stretch.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) self.__toolbar = tb = QtGui.QToolBar(self) tb.addWidget(spacer(4)) tb.addWidget(QtGui.QLabel("Find: ", self)) tb.addWidget(self.__searchLine) tb.addAction(self.__findPrevBtn) tb.addAction(self.__findNextBtn) tb.addWidget(stretch) tb.addAction(self.__chk_tail) tb.addWidget(spacer(4)) self.__view = view = QtGui.QPlainTextEdit(self) font = view.font() font.setPixelSize(DEFAULT_FONT_SIZE) view.setFont(font) view.setLineWrapMode(view.WidgetWidth) view.setReadOnly(True) view.setMaximumBlockCount(1000000) # self.__view.setFocusPolicy(QtCore.Qt.NoFocus) layout = QtGui.QVBoxLayout(self) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.__toolbar) layout.addWidget(self.__jobNameLabel) layout.addWidget(self.__jobNameSpacer) layout.addWidget(self.__view) self.__highlighter = TextHighlighter(view.document()) self.__logWatcher = FileWatcher(self) # Connections self.__logWatcher.fileChanged.connect(self.__logUpdated) self.__chk_tail.toggled.connect(self.__logTailToggled) self.__searchLine.textChanged.connect(self.findText) self.__searchLine.returnPressed.connect(self.findNext) self.__findPrevBtn.triggered.connect(self.findPrev) self.__findNextBtn.triggered.connect(self.findNext) openAction.triggered.connect(self.openLogFile) # Optional args if job: self.setJobName(job.name) if task: self.setCurrentTask(task)
def __init__(self, text, parent=None): FormWidget.__init__(self, parent) self.setWidget(QtGui.QLineEdit(text, self)) self._widget.setFocusPolicy(QtCore.Qt.NoFocus) self._widget.setCursorPosition(1)
def __init__(self, filt=None, items=None, data=None, parent=None): super(FilterableListBox, self).__init__(parent) self.__data = {} height = 20 self.__txt_label = QtGui.QLabel(self) self.__txt_filter = QtGui.QLineEdit(self) self.__txt_filter.setFixedHeight(height) self.__txt_filter.textChanged.connect(self.__filterChanged) self.__txt_clear = btn = QtGui.QPushButton(self) btn.setIcon(QtGui.QIcon(":/images/delete.png")) btn.setFlat(True) btn.setFixedSize(height, height) btn.setIconSize(QtCore.QSize(14, 14)) btn.setVisible(False) self.__model = QtGui.QStringListModel(self) self.__proxyModel = proxy = QtGui.QSortFilterProxyModel(self) proxy.setSourceModel(self.__model) self.__list = view = QtGui.QListView(self) view.setSelectionMode(self.__list.ExtendedSelection) view.setModel(proxy) proxy.sort(0) proxy.setDynamicSortFilter(True) layout = QtGui.QVBoxLayout(self) layout.setSpacing(4) layout.setContentsMargins(0, 0, 0, 0) hlayout = QtGui.QHBoxLayout() hlayout.setSpacing(0) hlayout.setContentsMargins(0, 0, 0, 0) hlayout.addWidget(self.__txt_label) hlayout.addSpacing(2) hlayout.addWidget(self.__txt_filter) hlayout.addWidget(self.__txt_clear) layout.addLayout(hlayout) layout.addWidget(self.__list) # connections self.__list.doubleClicked.connect(self._itemDoubleClicked) self.__list.clicked.connect(self._itemClicked) self.__selModel = self.__list.selectionModel() self.__selModel.selectionChanged.connect(self._selectionChanged) self.__txt_filter.textChanged.connect( lambda v: self.__txt_clear.setVisible(bool(v))) self.__txt_clear.clicked.connect(lambda: self.setFilter('')) if items: self.setStringList(items) if filt: self.setFilter(filt)