Exemple #1
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)
Exemple #2
0
                elif role == FG:
                    return QtGui.QBrush(color)
               
                else:
                    return text

        # Start time
        elif column == 4:
            if role == DISP:
                return formatDuration(job.startTime, job.stopTime)
            elif role == TOOL:
                return "Started: {0}\nStopped:{1}".format(
                            formatDateTime(job.startTime), 
                            formatDateTime(job.stopTime) )

        return super(JobNode, self).data(column, role)


if __name__ == "__main__":
    from plow.gui.util import loadTheme
    import sys 
    app = QtGui.QApplication(sys.argv)
    loadTheme()

    w = JobWranglerWidget({})
    w.resize(1024,800)
    w.show()
    w.refresh()

    app.exec_()
Exemple #3
0
 def __newItem(self, name):
     list_item = QtGui.QListWidgetItem(name)
     list_item.setFlags(QtCore.Qt.ItemIsEditable
                        | QtCore.Qt.ItemIsSelectable
                        | QtCore.Qt.ItemIsEnabled)
     return list_item
Exemple #4
0
    def init(self):

        self.titleBarWidget().addAction(
            QtGui.QIcon(":/images/retry.png"), "Refresh", self.refresh)