Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
    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)