Example #1
0
 def __init__(self, parentObject):
     QAbstractItemModel.__init__(self, parentObject )
     self._sortMode = core.config()["Workspace"]["FileSortMode"]
     self._workspace = parentObject.parent()
     self._workspace.documentOpened.connect(self._onDocumentOpened)
     self._workspace.documentClosed.connect(self._onDocumentClosed)
     self._workspace.modificationChanged.connect(self._onDocumentDataChanged)
Example #2
0
    def __init__(self, parent=None):
        QAbstractItemModel.__init__(self, parent)

        self.rootItem = FileItemRoot(["File name", "Full path"])
        self.count = 0
        self.__populateModel()
        return
Example #3
0
	def __init__(self,
				parent=None,
				rootNode=None,
				horizontalHeaders=None,
				verticalHeaders=None,
				defaultNode=None):
		"""
		Initializes the class.

		:param parent: Object parent.
		:type parent: QObject
		:param rootNode: Root node.
		:type rootNode: AbstractCompositeNode or GraphModelNode
		:param horizontalHeaders: Headers.
		:type horizontalHeaders: OrderedDict
		:param verticalHeaders: Headers.
		:type verticalHeaders: OrderedDict
		:param defaultNode: Default node.
		:type defaultNode: AbstractCompositeNode or GraphModelNode
		"""

		LOGGER.debug("> Initializing '{0}()' class.".format(self.__class__.__name__))

		QAbstractItemModel.__init__(self, parent)

		# --- Setting class attributes. ---
		self.__rootNode = None
		self.rootNode = rootNode or umbra.ui.nodes.DefaultNode(name="InvisibleRootNode")
		self.__horizontalHeaders = None
		self.horizontalHeaders = horizontalHeaders or OrderedDict([("Graph Model", "graphModel")])
		self.__verticalHeaders = None
		self.verticalHeaders = verticalHeaders or OrderedDict()
		self.__defaultNode = None
		self.defaultNode = defaultNode or umbra.ui.nodes.GraphModelNode
Example #4
0
  def __init__(self, __parent = None):
    """
    Constructor.
    """
    QAbstractItemModel.__init__(self, __parent)

    # init root + some values
    self.rootItem = None
    self.__parent = __parent
    self.connect(self.__parent, SIGNAL("NewSearch"), self.clean)
    self.VFS = VFS.Get()
    self.map = {}
    self.imagesthumbnails = None
    self.connect(self, SIGNAL("dataImage"), self.setDataImage)
    self.translation()

    self.fetchedItems = 0
    self.thumbQueued = {}
    self.checkedNodes = set()

    # those list contains nodes' children of the currently selcted node.
    self.node_list = []

    # list of headers the user choosed to display.
    self.header_list = []
    self.type_list = []
    self.disp_module = 0
    self.del_sort = 0

    self.cacheAttr = (None, None)
Example #5
0
    def __init__( self, parent = None ):
        QAbstractItemModel.__init__( self, parent )

        self.rootItem = FileItemRoot( [ "File name", "Full path" ] )
        self.count = 0
        self.__populateModel()
        return
Example #6
0
    def __init__(self, view):
        QAbstractItemModel.__init__(self)

        self.root = Entry("root", None)
        self.view = view
        self.view.setModel(self)
        self.esdcToEntry = {}
Example #7
0
 def __init__(self, ert):
     """
     @type ert: ert.enkf.EnKFMain
     """
     QAbstractItemModel.__init__(self)
     self.__ert = ert
     self.__icon = util.resourceIcon("ide/small/bullet_star")
Example #8
0
    def __init__(self, tree_instance):
        """ Inititalizes tree model and super class.
        """
        QAbstractItemModel.__init__(self)
        self._treeRoot = tree_instance

        self._treeRoot.signal_tree_data_changed.connect(self.fire_model_changed)
Example #9
0
    def __init__(self, parent):
        """Constructor of SearchResultsModel class
        """
        QAbstractItemModel.__init__(self, parent)
        self._replaceMode = False

        self.fileResults = []  # list of FileResults
Example #10
0
 def __init__(self, library):
     QAbstractItemModel.__init__(self)
     self.file_icon = QIcon(auxilia.PIcon('audio-x-generic'))
     self.dir_icon = QIcon(auxilia.PIcon('folder-sound'))
     self.cache = {}
     self.library = library
     self.root = mpdlibrary.Dir('', self.library)
Example #11
0
    def __init__(self, parent ):
        """Constructor of SearchResultsModel class
        """
        QAbstractItemModel.__init__(self, parent )
        self._replaceMode = False

        self.fileResults = []  # list of FileResults
Example #12
0
 def __init__(self, ert):
     """
     @type ert: res.enkf.EnKFMain
     """
     QAbstractItemModel.__init__(self)
     self.__ert = ert
     self.__icon = resourceIcon("ide/small/bullet_star")
Example #13
0
 def __init__(self, controller, distributed_objects, parent = None):
     """ Constructor <br>
         Create a VariableModel derived from an QAbstractItemModel to display the <br>
         GDB variables in a treeview.<br>
         Listens to the following Signals: SignalProxy::inferiorHasStopped(PyQt_PyObject) <br>
                                           SignalProxy::inferiorHasExited(PyQt_PyObject) and <br>
                                           SignalProxy::executableOpened()
     @param controller            controllers.WatchController, Reference to the WatchController
     @param distributedObjects    distributedobjects.DistributedObjects, the DistributedObjects-Instance
     @param parent                parent for the QAbstractItemModel-Constructor, can be None
     """
     
     QAbstractItemModel.__init__(self, parent)
     
     self.distributedObjects = distributed_objects    
     self.controller = controller
     
     ## @var root
     #  RootVarWrapper, root item of tree 
     self.root = RootVarWrapper()
     
     ## images: 
     self.imgStruct = QPixmap(":/icons/images/struct.png")
     self.imgFake = QPixmap(":/icons/images/fake_entry.png")
     self.imgVariable = QPixmap(":/icons/images/var.png")
     self.imgEdit = QPixmap(":/icons/images/edit.png")
     self.imgOutOfScope = QPixmap(":/icons/images/outofscope.png")
     #connects
     
     QObject.connect(self.distributedObjects.signal_proxy, SIGNAL('inferiorHasStopped(PyQt_PyObject)'), self.update)
     QObject.connect(self.distributedObjects.signal_proxy, SIGNAL('inferiorHasExited(PyQt_PyObject)'), self.clear)
     QObject.connect(self.distributedObjects.signal_proxy, SIGNAL('executableOpened()'), self.clear)  
Example #14
0
 def setModelData(self, editor: QtGui.QWidget,
                  model: QtCore.QAbstractItemModel,
                  index: QtCore.QModelIndex) -> None:
     assert isinstance(editor, QtGui.QLineEdit)
     text = editor.text()
     model.setData(index,
                   text.title() if editor.hasAcceptableInput() else text,
                   QtCore.Qt.EditRole)
Example #15
0
 def __init__(self, parentObject):
     QAbstractItemModel.__init__(self, parentObject)
     self._sortMode = core.config()["Workspace"]["FileSortMode"]
     self._workspace = parentObject.parent()
     self._workspace.documentOpened.connect(self._onDocumentOpened)
     self._workspace.documentClosed.connect(self._onDocumentClosed)
     self._workspace.modificationChanged.connect(
         self._onDocumentDataChanged)
Example #16
0
    def __init__(self, headerData, parent=None):
        QAbstractItemModel.__init__(self, parent)

        self.rootItem = TreeViewItem(None, headerData)
        self.globalData = GlobalData()
        self.projectTopLevelDirs = []
        self.showTooltips = True
        return
Example #17
0
	def __init__(self, data, parent = None):
		QAbstractItemModel.__init__(self, parent)
		self._data = data
		self._table = []
		self._tableR = {}
		self._headers = ['file','confidence']
		self._headersR = { v:i for i,v in enumerate(self._headers) }
		self._update(self._data)
Example #18
0
    def __init__( self, parent = None ):
        QAbstractItemModel.__init__( self, parent )

        self.rootItem = NameItem( None, None, "Name", "", "", "" )
        self.count = 0
        self.showTooltips = Settings().findNameTooltips
        self.__populateModel()
        return
Example #19
0
 def __init__(self, parentObject):
     QAbstractItemModel.__init__(self, parentObject)
     self._manuallySorted = False
     self._workspace = parentObject.parent()
     self._workspace.documentOpened.connect(self._onDocumentOpened)
     self._workspace.documentClosed.connect(self._onDocumentClosed)
     self._workspace.modificationChanged.connect(
         self._onDocumentDataChanged)
Example #20
0
    def __init__( self, headerData, parent = None ):
        QAbstractItemModel.__init__( self, parent )

        self.rootItem = TreeViewItem( None, headerData )
        self.globalData = GlobalData()
        self.projectTopLevelDirs = []
        self.showTooltips = True
        return
Example #21
0
 def __init__(self, mpdclient, library):
     QAbstractItemModel.__init__(self)
     self.mpdclient = mpdclient
     self.library = library
     self._playlists = {}
     self._names = []
     self._dates = {}
     self.connect(self, SIGNAL("loadPlaylist"), self._loadPlaylist)
     self.connect(self, SIGNAL("updatePlaylist"), self._updatePlaylist)
Example #22
0
    def __init__(self, parent = None, *args):
        QAbstractItemModel.__init__(self, parent, *args)

        self._query  = "SELECT changesets.date, changesets.time, changesets.name, releases.module, releases.file, releases.comment FROM ((activities JOIN activity_changesets ON activities.id=activity_changesets.activity_id) JOIN changesets ON activity_changesets.changeset_id=changesets.id) JOIN releases ON releases.changeset_id=changesets.id  WHERE activities.id IS '{}'"
        self._act_id = None
        self._model  = QSqlQueryModel()
        self._data   = self.csItem()

        self.header = ("Date", "Time", "Name", "Module", "File", "Comment")
Example #23
0
    def setModelData(self, editor: QtGui.QWidget,
                     model: QtCore.QAbstractItemModel,
                     index: QtCore.QModelIndex) -> None:
        assert isinstance(editor, QtGui.QLineEdit)

        text = editor.text()
        if editor.hasAcceptableInput() and not text.startswith("+2"):
            text = "+2" + text

        model.setData(index, text, QtCore.Qt.EditRole)
Example #24
0
 def __init__(self, data, header, parent):
     QAbstractItemModel.__init__(self, parent)
     self._data = data
     self._dataDict = {}
     self._header = header
     self._roleData = {Qt.DisplayRole: self._data}
     self._roleData = partial(
         defaultdict,
         partial(defaultdict,
                 partial(defaultdict, lambda: None)))(self._roleData)
Example #25
0
	def __init__(self, data, filename=None, parent = None ):
		QAbstractItemModel.__init__(self, parent)
		self._data = data
		self._file = filename
		self._hheaders = ['original', 'converted', 'encoder', 'decoder', 'chardet']
		self._hheadersR = { v:i for i,v in enumerate(self._hheaders) }
		self._table = []
		self._tableR = {}
		if filename:
			self._update()
Example #26
0
  def setHeaderData(self, section, orientation, value, role):
    """
    \reimp

    Add a header data into the header. Emit a `layoutAboutToBeChanged` signal before adding the header
    and `layoutChanged` once it is done.
    """
    self.emit(SIGNAL("layoutAboutToBeChanged()"))
    QAbstractItemModel.setHeaderData(self, section, orientation, value, role)
    self.emit(SIGNAL("layoutChanged()"))
Example #27
0
 def __init__(self, data, header, parent):
     QAbstractItemModel.__init__(self, parent)
     self._data = data
     self._dataDict = {}
     self._header = header
     self._roleData = {Qt.DisplayRole: self._data}
     self._roleData = partial(
         defaultdict,
         partial(defaultdict,
                 partial(defaultdict, lambda: None)))(self._roleData)
Example #28
0
 def __init__(self, annotations, parent=None):
     QAbstractItemModel.__init__(self, parent)
     start = time.time()
     self._annotations = annotations
     self._dirty = False
     self._root = RootModelItem(self, annotations)
     diff = time.time() - start
     LOG.info("Created AnnotationModel in %.2fs" % (diff, ))
     self.dataChanged.connect(self.onDataChanged)
     self.rowsInserted.connect(self.onDataChanged)
     self.rowsRemoved.connect(self.onDataChanged)
Example #29
0
    def __init__(self, parent, topLevelOperator, roleIndex):
        """
        :param topLevelOperator: An instance of OpMultiLaneDataSelectionGroup
        """
        # super does not work here in Python 2.x, decorated class confuses it
        QAbstractItemModel.__init__(self, parent)
        self._op = topLevelOperator
        self._roleIndex = roleIndex

        def handleNewLane(multislot, laneIndex):
            assert multislot is self._op.DatasetGroup
            self.beginInsertRows(QModelIndex(), laneIndex, laneIndex)
            self.endInsertRows()

            def handleDatasetInfoChanged(slot):
                # Get the row of this slot
                laneSlot = slot.operator
                if laneSlot is None or laneSlot.operator is None:  # This can happen during disconnect
                    return
                try:
                    laneIndex = laneSlot.operator.index(laneSlot)
                except ValueError:
                    # If the slot doesn't exist in the lane,
                    #  then this dataset is in the process of being removed.
                    return
                firstIndex = self.createIndex(laneIndex, 0)
                lastIndex = self.createIndex(laneIndex, self.columnCount() - 1)
                self.dataChanged.emit(firstIndex, lastIndex)

            def handleNewDatasetInserted(slot, index):
                if index == self._roleIndex:
                    datasetMultiSlot[self._roleIndex].notifyDirty(
                        bind(handleDatasetInfoChanged))
                    datasetMultiSlot[self._roleIndex].notifyDisconnect(
                        bind(handleDatasetInfoChanged))

            for laneIndex, datasetMultiSlot in enumerate(
                    self._op.DatasetGroup):
                datasetMultiSlot.notifyInserted(bind(handleNewDatasetInserted))
                if self._roleIndex < len(datasetMultiSlot):
                    handleNewDatasetInserted(datasetMultiSlot, self._roleIndex)

        self._op.DatasetGroup.notifyInserted(bind(handleNewLane))

        def handleLaneRemoved(multislot, laneIndex):
            assert multislot is self._op.DatasetGroup
            self.beginRemoveRows(QModelIndex(), laneIndex, laneIndex)
            self.endRemoveRows()

        self._op.DatasetGroup.notifyRemoved(bind(handleLaneRemoved))

        # Any lanes that already exist must be added now.
        for laneIndex, slot in enumerate(self._op.DatasetGroup):
            handleNewLane(self._op.DatasetGroup, laneIndex)
Example #30
0
 def __init__(self, annotations, parent=None):
     QAbstractItemModel.__init__(self, parent)
     start = time.time()
     self._annotations = annotations
     self._dirty = False
     self._root = RootModelItem(self, annotations)
     diff = time.time() - start
     LOG.info("Created AnnotationModel in %.2fs" % (diff,))
     self.dataChanged.connect(self.onDataChanged)
     self.rowsInserted.connect(self.onDataChanged)
     self.rowsRemoved.connect(self.onDataChanged)
Example #31
0
    def __init__(self, parent):
        QAbstractItemModel.__init__(self, parent)

        self.__ngw_connection_settings = None
        self._ngw_connection = None

        self.jobs = []
        self.root_item = QNGWConnectionItem()

        self.__indexes_blocked_by_jobs = {}
        self.__indexes_blocked_by_job_errors = {}
Example #32
0
    def __init__(self, parent=None):
        QAbstractItemModel.__init__(self, parent)
        self.treeView = parent
        self.header = [self.tr('Databases')]

        self.isImportVectorAvail = hasattr(qgis.core, 'QgsVectorLayerImport')
        if self.isImportVectorAvail:
            self.connect(self, SIGNAL("importVector"), self.importVector)

        self.rootItem = TreeItem(None, None)
        for dbtype in supportedDbTypes():
            dbpluginclass = createDbPlugin(dbtype)
            PluginItem(dbpluginclass, self.rootItem)
Example #33
0
    def __init__(self, parent=None):
        QAbstractItemModel.__init__(self, parent)
        self.treeView = parent
        self.header = [self.tr('Databases')]

        self.isImportVectorAvail = hasattr(qgis.core, 'QgsVectorLayerImport')
        if self.isImportVectorAvail:
            self.connect(self, SIGNAL("importVector"), self.importVector)

        self.rootItem = TreeItem(None, None)
        for dbtype in supportedDbTypes():
            dbpluginclass = createDbPlugin(dbtype)
            PluginItem(dbpluginclass, self.rootItem)
    def __init__(self, parent, topLevelOperator, roleIndex):
        """
        :param topLevelOperator: An instance of OpMultiLaneDataSelectionGroup
        """
        # super does not work here in Python 2.x, decorated class confuses it
        QAbstractItemModel.__init__(self, parent)
        self._op = topLevelOperator
        self._roleIndex = roleIndex

        def handleNewLane( multislot, laneIndex):
            assert multislot is self._op.DatasetGroup
            self.beginInsertRows( QModelIndex(), laneIndex, laneIndex )
            self.endInsertRows()

            def handleDatasetInfoChanged(slot):
                # Get the row of this slot
                laneSlot = slot.operator
                if laneSlot is None or laneSlot.operator is None: # This can happen during disconnect
                    return
                try:
                    laneIndex = laneSlot.operator.index( laneSlot )
                except ValueError:
                    # If the slot doesn't exist in the lane, 
                    #  then this dataset is in the process of being removed.
                    return
                firstIndex = self.createIndex(laneIndex, 0)
                lastIndex = self.createIndex(laneIndex, self.columnCount()-1)
                self.dataChanged.emit(firstIndex, lastIndex)
            
            def handleNewDatasetInserted(slot, index):
                if index == self._roleIndex:
                    datasetMultiSlot[self._roleIndex].notifyDirty( bind(handleDatasetInfoChanged) )
                    datasetMultiSlot[self._roleIndex].notifyDisconnect( bind(handleDatasetInfoChanged) )

            for laneIndex, datasetMultiSlot in enumerate( self._op.DatasetGroup ):
                datasetMultiSlot.notifyInserted( bind(handleNewDatasetInserted) )
                if self._roleIndex < len(datasetMultiSlot):
                    handleNewDatasetInserted(datasetMultiSlot, self._roleIndex)

        self._op.DatasetGroup.notifyInserted( bind(handleNewLane) )

        def handleLaneRemoved( multislot, laneIndex ):
            assert multislot is self._op.DatasetGroup
            self.beginRemoveRows( QModelIndex(), laneIndex, laneIndex )
            self.endRemoveRows()
        self._op.DatasetGroup.notifyRemoved( bind(handleLaneRemoved) )

        # Any lanes that already exist must be added now.        
        for laneIndex, slot in enumerate(self._op.DatasetGroup):
            handleNewLane( self._op.DatasetGroup, laneIndex )
Example #35
0
    def __init__(self, header, header_types=None, key_column=None, parent=None):
        QAbstractItemModel.__init__(self, parent)

        self.header = header
        self.header_types = header_types
        self.key_column = key_column

        if not self.key_column:
            self.key_column = self.header[0]

        if not self.header_types:
            self.header_types = {}
            for column in self.header:
                self.header_types[column] = 'string'
Example #36
0
 def __init__(self, selection):
   QAbstractItemModel.__init__(self)
   self.__list = []
   self.__rows = []
   self.__current_row = 0
   self.__row_selected = 0
   self.__thumb = True
   self.__visible_rows = 0
   self.__visible_cols = 0
   self.selection = selection
   self.setDefaultAttributes()
   self.connectSignals()
   self.thumbnailer = Thumbnailer()
   self.connect(self.thumbnailer, SIGNAL("ThumbnailUpdate"), self.thumbnailUpdate)
   self.headerorder = {0:0}
Example #37
0
    def __init__(self, debugger, connector, parent=None):
        """ The constructor.
        @param debugger The debug controller.
        @param connector The GDB connector.
        @param parent The parent item.
        """

        QAbstractItemModel.__init__(self, parent)
        self.connector = connector
        self.debugController = debugger
        self.root = FileListItem(["Name", "Path"], None)
        self.sources = FileListItem(["Sources", ""], Icons.folder, self.root)
        self.headers = FileListItem(["Headers", ""], Icons.folder, self.root)
        self.others = FileListItem(["Others", ""], Icons.folder, self.root)

        self.debugController.executableOpened.connect(self.update)
Example #38
0
 def flags(self, index):
     flags = QAbstractItemModel.flags(self, index)
     sourceIndex = self.mapToSource(index)
     if index.column() == eValue and len(
             self.currentNode.childAtRow(sourceIndex.row())) == 0:
         flags |= Qt.ItemIsEditable
     return flags
Example #39
0
 def createIndex(self, row, column, item):
     old = self.cache.get(item._value)
     if old is None:
         self.cache[item._value] = item
     else:
         item = old
     return QAbstractItemModel.createIndex(self, row, column, item)
Example #40
0
    def __init__(self, debugger, connector, parent=None):
        """ The constructor.
        @param debugger The debug controller.
        @param connector The GDB connector.
        @param parent The parent item.
        """

        QAbstractItemModel.__init__(self, parent)
        self.connector = connector
        self.debugController = debugger
        self.root = FileListItem(["Name", "Path"], None)
        self.sources = FileListItem(["Sources", ""], Icons.folder, self.root)
        self.headers = FileListItem(["Headers", ""], Icons.folder, self.root)
        self.others = FileListItem(["Others", ""], Icons.folder, self.root)

        self.debugController.executableOpened.connect(self.update)
Example #41
0
 def __init__(self, selection):
     QAbstractItemModel.__init__(self)
     self.__list = []
     self.__rows = []
     self.__current_row = 0
     self.__row_selected = 0
     self.__thumb = True
     self.__visible_rows = 0
     self.__visible_cols = 0
     self.selection = selection
     self.setDefaultAttributes()
     self.connectSignals()
     self.thumbnailer = Thumbnailer()
     self.connect(self.thumbnailer, SIGNAL("ThumbnailUpdate"),
                  self.thumbnailUpdate)
     self.headerorder = {0: 0}
Example #42
0
    def __init__(self, debugger, connector, parent = None):
        """ The constructor.
        @param debugger The debug controller.
        @param connector The GDB connector.
        @param parent The parent item.
        """
 
        QAbstractItemModel.__init__(self, parent)
        self.connector = connector
        self.debug_controller = debugger
        self.imgs = [QPixmap(":/icons/images/folder.png"), QPixmap(":/icons/images/file.png")]
        self.root = FileListItem(["Name", "Path"], 0)
        self.sources = FileListItem(["Sources", ""], 0, self.root)
        self.headers = FileListItem(["Headers", ""], 0, self.root)
        self.others = FileListItem(["Others", ""], 0, self.root)
        
        QObject.connect(self.debug_controller, SIGNAL('executableOpened'), self.update)
Example #43
0
    def __init__(self, framework, item_definition, parent = None):
        QAbstractItemModel.__init__(self, parent)
        self.framework = framework
        self.item_definition = item_definition

        self.rows = deque()
        self._sort_keys = None
        self._sort_column = 0
        self._sort_order = Qt.AscendingOrder

        self.column_offset = []
        self.db_offset = {}
        self.column_count = 0
        for item in self.item_definition:
            self.column_offset.append(item[1])
            self.db_offset[item[1]] = self.column_count
            self.column_count += 1
Example #44
0
    def __init__(self, framework, item_definition, parent=None):
        QAbstractItemModel.__init__(self, parent)
        self.framework = framework
        self.item_definition = item_definition

        self.rows = deque()
        self._sort_keys = None
        self._sort_column = 0
        self._sort_order = Qt.AscendingOrder

        self.column_offset = []
        self.db_offset = {}
        self.column_count = 0
        for item in self.item_definition:
            self.column_offset.append(item[1])
            self.db_offset[item[1]] = self.column_count
            self.column_count += 1
Example #45
0
 def flags(self, index):
     defaultFlags = QAbstractItemModel.flags(self, index)
     if index.isValid():
         if index.column() == 0:
             return Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled | Qt.ItemIsEditable | defaultFlags
         else:
             return Qt.ItemIsDragEnabled | defaultFlags
     else:
         return Qt.ItemIsDropEnabled | defaultFlags
Example #46
0
    def flags(self, index ):
        """See QAbstractItemModel docs
        """
        flags = QAbstractItemModel.flags( self, index )

        if self._replaceMode:
            flags |= Qt.ItemIsUserCheckable

        return flags
Example #47
0
    def __init__(self, *args):
        QAbstractItemModel.__init__(self, *args)
        self._tags = []

        self._currentTagIndex = QModelIndex()

        defBaseColor = QApplication.instance().palette().base().color()
        # yellow or maroon
        brightBg = QColor('#ffff80') if defBaseColor.lightnessF(
        ) > 0.5 else QColor('#800000')
        self._currentTagBrush = QBrush(brightBg)

        core.workspace().cursorPositionChanged.connect(
            self._onCursorPositionChanged)
        self._updateCurrentTagTimer = QTimer()
        self._updateCurrentTagTimer.setInterval(300)
        self._updateCurrentTagTimer.timeout.connect(
            self._updateCurrentTagAndEmitSignal)
Example #48
0
 def flags(self, index):
     """QAbstractItemModel required"""
     theFlags = QAbstractItemModel.flags(self,index)
     if index.isValid():
         theFlags |= Qt.ItemIsSelectable | Qt.ItemIsEnabled 
     if index.column() == NAME:
         theFlags |= Qt.ItemIsEditable | Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled
     # end if
     return theFlags
Example #49
0
    def __init__(self,
                 header,
                 header_types=None,
                 key_column=None,
                 parent=None):
        QAbstractItemModel.__init__(self, parent)

        self.header = header
        self.header_types = header_types
        self.key_column = key_column

        if not self.key_column:
            self.key_column = self.header[0]

        if not self.header_types:
            self.header_types = {}
            for column in self.header:
                self.header_types[column] = 'string'
Example #50
0
 def flags(self, index):
     flags = QAbstractItemModel.flags(self, index)
     node = self.nodeFromIndex(index)
     if index.column() == eValue and (
             node.typeOfNode == ENUM_TYPE_NODE_ARRAY_ITEM_IN_OBJECT or
         (node.typeOfNode == ENUM_TYPE_NODE_TYPE_IN_OBJECT
          and len(node) == 0)):
         flags |= Qt.ItemIsEditable
     return flags
Example #51
0
    def flags(self, index):
        """See QAbstractItemModel docs
        """
        flags = QAbstractItemModel.flags(self, index)

        if self._replaceMode:
            flags |= Qt.ItemIsUserCheckable

        return flags
Example #52
0
    def __init__(self, parent, topLevelOperator):
        """
        :param topLevelOperator: An instance of OpMultiLaneDataSelectionGroup
        """
        # super does not work here in Python 2.x, decorated class confuses it
        QAbstractItemModel.__init__(self, parent)
        self._op = topLevelOperator

        def handleNewLane(multislot, laneIndex):
            assert multislot is self._op.DatasetGroup
            self.beginInsertRows(QModelIndex(), laneIndex, laneIndex)
            self.endInsertRows()

            def handleDatasetInfoChanged(slot):
                # Get the row of this slot
                laneSlot = slot.operator
                laneIndex = laneSlot.operator.index(laneSlot)
                # FIXME: For now, we update the whole row.
                #        Later, update only the columns that correspond to this dataset.
                firstIndex = self.createIndex(laneIndex, 0)
                lastIndex = self.createIndex(laneIndex, self.columnCount() - 1)
                self.dataChanged.emit(firstIndex, lastIndex)

            def handleNewDatasetInserted(mslot, index):
                mslot[index].notifyDirty(bind(handleDatasetInfoChanged))

            for laneIndex, datasetMultiSlot in enumerate(
                    self._op.DatasetGroup):
                datasetMultiSlot.notifyInserted(bind(handleNewDatasetInserted))
                for roleIndex, datasetSlot in enumerate(datasetMultiSlot):
                    handleNewDatasetInserted(datasetMultiSlot, roleIndex)

        self._op.DatasetGroup.notifyInserted(bind(handleNewLane))

        def handleLaneRemoved(multislot, laneIndex):
            assert multislot is self._op.DatasetGroup
            self.beginRemoveRows(QModelIndex(), laneIndex, laneIndex)
            self.endRemoveRows()

        self._op.DatasetGroup.notifyRemoved(bind(handleLaneRemoved))

        # Any lanes that already exist must be added now.
        for laneIndex, slot in enumerate(self._op.DatasetGroup):
            handleNewLane(self._op.DatasetGroup, laneIndex)
Example #53
0
    def __init__(self, parent=None):
        QAbstractItemModel.__init__(self, parent)

        self.watchpoints = []
        self.header = [
            QVariant('Condition'),
            QVariant('Special'),
            QVariant('Temporary'),
            QVariant('Enabled'),
            QVariant('Ignore Count'),
        ]
        self.alignments = [
            QVariant(Qt.Alignment(Qt.AlignLeft)),
            QVariant(Qt.Alignment(Qt.AlignLeft)),
            QVariant(Qt.Alignment(Qt.AlignHCenter)),
            QVariant(Qt.Alignment(Qt.AlignHCenter)),
            QVariant(Qt.Alignment(Qt.AlignRight)),
        ]
        return
Example #54
0
    def __init__( self, parent = None ):
        QAbstractItemModel.__init__( self, parent )

        self.watchpoints = []
        self.header = [
            QVariant( 'Condition' ),
            QVariant( 'Special' ),
            QVariant( 'Temporary' ),
            QVariant( 'Enabled' ),
            QVariant( 'Ignore Count' ),
                      ]
        self.alignments = [
            QVariant( Qt.Alignment( Qt.AlignLeft ) ),
            QVariant( Qt.Alignment( Qt.AlignLeft ) ),
            QVariant( Qt.Alignment( Qt.AlignHCenter ) ),
            QVariant( Qt.Alignment( Qt.AlignHCenter ) ),
            QVariant( Qt.Alignment( Qt.AlignRight ) ),
                          ]
        return
Example #55
0
 def __init__(self, selection):
   QAbstractItemModel.__init__(self)
   self._list = []
   self._rows = []
   self._current_row = 0
   self._row_selected = 0
   self._thumb = True
   self._visible_rows = 0
   self._visible_cols = 0
   self._recursive = False
   self._root = None
   self.selection = selection
   if self.selection != None:
     self.connect(self.selection, SIGNAL("selectionChanged"), self.updateSelected)
   self.setDefaultAttributes()
   self.connectSignals()
   self.thumbnailer = Thumbnailer()
   self.connect(self.thumbnailer, SIGNAL("ThumbnailUpdate"), self.thumbnailUpdate)
   self.headerorder = {0:0}
Example #56
0
 def setData(self, index, value, role):
     if not index.isValid():
         return False
     item = index.internalPointer().node()
     if role == Qt.CheckStateRole:
         # a checkbox was modified
         progress, success = value.toInt()
         item.toElement().setAttribute("percentageComplete",str(progress*50))
         # check children
         numChildren = item.childNodes().count()
         if numChildren > 0 and progress == Qt.Checked:
             for i in xrange(0,numChildren):
                 self.setData(index.child(i,0),value,role)
             self.dataChanged.emit(index,index.child(numChildren-1,0))
         if progress == Qt.Unchecked:
             self.setData(index.parent(),value,role)
             self.dataChanged.emit(index.parent(),index)
         return True
         
     elif role == Qt.EditRole:
         if index.column() == 0:
             # task desc
             item.toElement().setAttribute("subject",
                                                 unicode(value.toString()))
             self.dataChanged.emit(index,index)
             return True
             
         elif index.column() == 1:
             # task progress
             item.toElement().setAttribute("percentageComplete",
                                                     str(value.toString())) 
             self.dataChanged.emit(index,index)
             
             progress, success = value.toInt()
             if progress == 100:                
                 # if task is now completed, update children
                 # FIXME: this doesn't work and I don't understand why :(
                 numChildren = item.childNodes().count()
                 if numChildren > 0:
                     for i in xrange(0,numChildren):
                         self.setData(index.child(i,1),value,role)
                     self.dataChanged.emit(index,index.child(numChildren-1,1))
                     return True
                     
             elif progress < 100:
                 # if task is now NOT complete and parent is, update parent.
                 # this works
                 if self.data(index.parent(),Qt.CheckStateRole) == Qt.Checked:
                     parentIndex = self.index(index.parent().row(),index.column(),index.parent().parent())
                     self.setData(parentIndex,value,role)
                     self.dataChanged.emit(index.parent(),index)
                 return True
             return True
     # for everything else, do the generic thing
     return QAbstractItemModel.setData(self,index,value,role)
Example #57
0
    def __init__(self, parent=None):
        QAbstractItemModel.__init__(self, parent)

        self.breakpoints = []
        self.header = [
            QVariant('File:line'),
            QVariant('Condition'),
            QVariant('Temporary'),
            QVariant('Enabled'),
            QVariant('Ignore Count'),
        ]
        self.alignments = [
            QVariant(Qt.Alignment(Qt.AlignLeft)),
            QVariant(Qt.Alignment(Qt.AlignLeft)),
            QVariant(Qt.Alignment(Qt.AlignHCenter)),
            QVariant(Qt.Alignment(Qt.AlignHCenter)),
            QVariant(Qt.Alignment(Qt.AlignRight)),
        ]
        self.__columnCount = len(self.header)
        return
Example #58
0
    def headerData(self, section, orientation, role):
        if orientation == Qt.Horizontal:
            if role == Qt.DisplayRole or role == Qt.ToolTipRole:
                if section == ActionModel.Action:
                    return tr("Action")
                elif section == ActionModel.Shortcut:
                    return tr("Shortcut")
                elif section == ActionModel.DefaultShortcut:
                    return tr("Default Shortcut")

        return QAbstractItemModel.headerData(self, section, orientation, role)
Example #59
0
    def setData(self, index, value, role):
        """
    \reimp

    Set the data which value is `value` at index `index` with role `role`.

    \return `True` if no error occured, `False` otherwise.
    """
        if not index.isValid():
            return QVariant()
        column = index.column()
        if role == Qt.CheckStateRole:
            if column == HNAME:
                node = self.VFS.getNodeFromPointer(index.internalId())
                if value == Qt.Unchecked:
                    if (long(node.this), 1) in self.checkedNodes:
                        self.checkedNodes.remove((long(node.this), 1))
                else:
                    self.checkedNodes.add((long(node.this), 1))
        QAbstractItemModel.setData(self, index, value, role)
        return True