def dragMoveEvent(self, e):
        """
		desc:
			Accepts drag-moves to implement moving items.

		arguments:
			e:
				type:	QGraphicsSceneDragDropEvent
		"""

        data = drag_and_drop.receive(e)
        if data[u'type'] != u'sketchpad-element-move':
            e.ignore()
            return
        ex, ey = self.cursor_pos(e, grid=True)
        dx = ex - self.start_move_pos[0]
        dy = ey - self.start_move_pos[1]
        self.start_move_pos = ex, ey
        if abs(dx) < self.grid and abs(dy) < self.grid:
            e.accept()
            return
        self.sketchpad.move_elements(self.sketchpad.selected_elements(),
                                     dx=dx,
                                     dy=dy)
        self.sketchpad.draw()
        e.accept()
	def dragMoveEvent(self, e):

		"""
		desc:
			Accepts drag-moves to implement moving items.

		arguments:
			e:
				type:	QGraphicsSceneDragDropEvent
		"""

		data = drag_and_drop.receive(e)
		if data[u'type'] != u'sketchpad-element-move':
			e.ignore()
			return
		ex, ey = self.cursor_pos(e, grid=True)
		dx = ex-self.start_move_pos[0]
		dy = ey-self.start_move_pos[1]
		self.start_move_pos = ex, ey
		if abs(dx) < self.grid and abs(dy) < self.grid:
			e.accept()
			return
		self.sketchpad.move_elements(self.sketchpad.selected_elements(),
			dx=dx, dy=dy)
		self.sketchpad.draw()
		e.accept()
Example #3
0
	def dragMoveEvent(self, e):

		"""
		desc:
			Handles drag-move events to see if the item tree can handle
			incoming drops.

		arguments:
			e:
				desc:	A drag-move event.
				type:	QDragMoveEvent
		"""

		data = drag_and_drop.receive(e)
		if drag_and_drop.matches(data, [u'url-local']):
			e.accept()
			return
		if not drag_and_drop.matches(data, [u'item-new', u'item-existing']):
			e.accept()
			return
		target = self.itemAt(e.pos())
		if not self.droppable(target, data):
			e.ignore()
			return
		e.accept()
Example #4
0
    def dragEnterEvent(self, e):

        """
		desc:
			Handles drag-enter events to see if the item tree can handle
			incoming drops.

		arguments:
			e:
				desc:	A drag-enter event.
				type:	QDragEnterEvent
		"""

        data = drag_and_drop.receive(e)
        if drag_and_drop.matches(data, [u"item-new", u"item-existing", u"url-local"]):
            e.accept()
        else:
            e.ignore()
Example #5
0
    def dragEnterEvent(self, e):
        """
		desc:
			Handles drag-enter events to see if the item tree can handle
			incoming drops.

		arguments:
			e:
				desc:	A drag-enter event.
				type:	QDragEnterEvent
		"""

        data = drag_and_drop.receive(e)
        if drag_and_drop.matches(
                data, [u'item-new', u'item-existing', u'url-local']):
            e.accept()
        else:
            e.ignore()
Example #6
0
    def dragEnterEvent(self, e):
        """
		desc:
			Handles drag-enter events to see if they are supported

		arguments:
			e:
				desc:	A drag-enter event.
				type:	QDragEnterEvent
		"""

        if not hasattr(self, u'supported_drop_types'):
            e.ignore()
            return
        data = drag_and_drop.receive(e)
        if drag_and_drop.matches(data, self.supported_drop_types):
            e.accept()
        else:
            e.ignore()
Example #7
0
    def dragMoveEvent(self, e):

        """
		desc:
			Handles drag-move events to see if the item tree can handle
			incoming drops.

		arguments:
			e:
				desc:	A drag-move event.
				type:	QDragMoveEvent
		"""

        data = drag_and_drop.receive(e)
        self.drop_indicator = None
        if drag_and_drop.matches(data, [u"url-local"]):
            e.accept()
            self.end_drag()
            return
        if not drag_and_drop.matches(data, [u"item-snippet", u"item-existing"]):
            e.accept()
            self.end_drag()
            return
        target = self.itemAt(e.pos())
        if not self.droppable(target, data):
            self.end_drag()
            e.ignore()
            return
        e.accept()
        # Update the drop indicator
        index = self.indexFromItem(target)
        rect = self.visualRect(index)
        if target.name == u"__unused__" or (
            target.item.name in self.experiment.items.used()
            and isinstance(target.item, qtstructure_item)
            and target.item.name != self.experiment.var.start
            and target.parent() is not None
        ):
            self.drop_indicator = rect
        else:
            self.drop_indicator = QtCore.QRect(rect.left(), rect.bottom(), rect.width(), 0)
        self.viewport().update()
Example #8
0
    def dragMoveEvent(self, e):
        """
		desc:
			Handles drag-move events to see if the item tree can handle
			incoming drops.

		arguments:
			e:
				desc:	A drag-move event.
				type:	QDragMoveEvent
		"""

        data = drag_and_drop.receive(e)
        self.drop_indicator = None
        if drag_and_drop.matches(data, [u'url-local']):
            e.accept()
            self.end_drag()
            return
        if not drag_and_drop.matches(data,
                                     [u'item-snippet', u'item-existing']):
            e.accept()
            self.end_drag()
            return
        target = self.itemAt(e.pos())
        if not self.droppable(target, data):
            self.end_drag()
            e.ignore()
            return
        e.accept()
        # Update the drop indicator
        index = self.indexFromItem(target)
        rect = self.visualRect(index)
        if target.name == u'__unused__' or ( \
         target.item.name in self.experiment.items.used() and \
         isinstance(target.item, qtstructure_item) and \
         target.item.name != self.experiment.var.start and \
         target.parent() is not None):
            self.drop_indicator = rect
        else:
            self.drop_indicator = QtCore.QRect(rect.left(), rect.bottom(),
                                               rect.width(), 0)
        self.viewport().update()
Example #9
0
	def dragEnterEvent(self, e):

		"""
		desc:
			Handles drag-enter events to see if they are supported

		arguments:
			e:
				desc:	A drag-enter event.
				type:	QDragEnterEvent
		"""

		if not hasattr(self, u'supported_drop_types'):
			e.ignore()
			return
		data = drag_and_drop.receive(e)
		if drag_and_drop.matches(data, self.supported_drop_types):
			e.accept()
		else:
			e.ignore()
Example #10
0
    def dropEvent(self, e):
        """
		desc:
			Handles drop events and accepts them if supported.

		arguments:
			e:
				desc:	A drop event.
				type:	QDropEvent
		"""

        if not hasattr(self, u'supported_drop_types'):
            e.ignore()
            return
        data = drag_and_drop.receive(e)
        if drag_and_drop.matches(data, self.supported_drop_types):
            e.accept()
            self.accept_drop(data)
        else:
            e.ignore()
Example #11
0
	def dragMoveEvent(self, e):

		"""
		desc:
			Handles drag-move events to see if the item tree can handle
			incoming drops.

		arguments:
			e:
				desc:	A drag-move event.
				type:	QDragMoveEvent
		"""

		data = drag_and_drop.receive(e)
		self.drop_indicator = None
		if drag_and_drop.matches(data, [u'url-local']):
			e.accept()
			self.end_drag()
			return
		if not drag_and_drop.matches(data, [u'item-new', u'item-existing']):
			e.accept()
			self.end_drag()
			return
		target = self.itemAt(e.pos())
		if not self.droppable(target, data):
			self.end_drag()
			e.ignore()
			return
		e.accept()
		# Update the drop indicator
		index = self.indexFromItem(target)
		rect = self.visualRect(index)
		if target.name == u'__unused__' or (
			target.item.item_type in (u'loop', u'sequence') and \
			target.item.name != self.experiment.start and \
			target.parent() is not None):
			self.drop_indicator = rect
		else:
			self.drop_indicator = QtCore.QRect(rect.left(), rect.bottom(),
				rect.width(), 0)
		self.viewport().update()
Example #12
0
	def dropEvent(self, e):

		"""
		desc:
			Handles drop events for file opening and item creation.

		arguments:
			e:
				desc:	A drop event.
				type:	QDropEvent
		"""

		data = drag_and_drop.receive(e)
		if data[u'type'] == u'item-new':
			self.drop_event_item_new(data, e)
		elif data[u'type'] == u'item-existing':
			self.drop_event_item_move(data, e)
		elif data[u'type'] == u'url-local':
			self.main_window.open_file(path=data[u'url'])
		else:
			e.ignore()
Example #13
0
	def dropEvent(self, e):

		"""
		desc:
			Handles drop events and accepts them if supported.

		arguments:
			e:
				desc:	A drop event.
				type:	QDropEvent
		"""

		if not hasattr(self, u'supported_drop_types'):
			e.ignore()
			return
		data = drag_and_drop.receive(e)
		if drag_and_drop.matches(data, self.supported_drop_types):
			e.accept()
			self.accept_drop(data)
		else:
			e.ignore()
Example #14
0
    def dropEvent(self, e):
        """
		desc:
			Accept drops.

		arguments:
			e:
				desc:	A drop event.
				type:	QDragLeaveEvent
		"""

        data = drag_and_drop.receive(e)
        if data[u'type'] == u'item-snippet':
            self.drop_event_item_new(data, e)
        elif data[u'type'] == u'item-existing':
            self.drop_event_item_existing(data, e)
        elif data[u'type'] == u'url-local':
            self.main_window.open_file(path=data[u'url'])
            e.accept()
        else:
            e.ignore()
        self.end_drag()
Example #15
0
    def dropEvent(self, e):
        """
		desc:
			Handles drop events for file opening and item creation.

		arguments:
			e:
				desc:	A drop event.
				type:	QDropEvent
		"""

        data = drag_and_drop.receive(e)
        if data[u'type'] == u'item-new':
            self.drop_event_item_new(data, e)
        elif data[u'type'] == u'item-existing':
            self.drop_event_item_move(data, e)
        elif data[u'type'] == u'url-local':
            self.main_window.open_file(path=data[u'url'])
            e.accept()
        else:
            e.ignore()
        self.end_drag()
Example #16
0
    def dropEvent(self, e):

        """
		desc:
			Handles drop events for file opening and item creation.

		arguments:
			e:
				desc:	A drop event.
				type:	QDropEvent
		"""

        data = drag_and_drop.receive(e)
        if data[u"type"] == u"item-new":
            self.drop_event_item_new(data, e)
        elif data[u"type"] == u"item-existing":
            self.drop_event_item_move(data, e)
        elif data[u"type"] == u"url-local":
            self.main_window.open_file(path=data[u"url"])
            e.accept()
        else:
            e.ignore()
        self.end_drag()
Example #17
0
    def dropEvent(self, e):

        """
		desc:
			Accept drops.

		arguments:
			e:
				desc:	A drop event.
				type:	QDragLeaveEvent
		"""

        data = drag_and_drop.receive(e)
        if data[u"type"] == u"item-snippet":
            self.drop_event_item_new(data, e)
        elif data[u"type"] == u"item-existing":
            self.drop_event_item_existing(data, e)
        elif data[u"type"] == u"url-local":
            self.main_window.open_file(path=data[u"url"])
            e.accept()
        else:
            e.ignore()
        self.end_drag()