Beispiel #1
0
    def __init__(self, tileSource, parent=None):
        """Constructor.

        Args:
            tileSource(MapTileSource): Source for loading the tiles.
            parent(QObject): Parent object, default `None`
        """
        QGraphicsScene.__init__(self)

        self._zoom = 15

        self._tileSource = tileSource
        self._tileSource.setParent(self)
        self._tileSource.tileReceived.connect(self.setTilePixmap)
        tdim = self._tileSource.tileSize()

        self._emptyTile = QPixmap(tdim, tdim)
        self._emptyTile.fill(Qt.lightGray)

        self._tilesRect = QRect()
        self._tilePixmaps = {}

        self._tileInDownload = list()

        self.setSceneRect(0.0, 0.0, 400, 300)
        self.sceneRectChanged.connect(self.onSceneRectChanged)
Beispiel #2
0
    def __init__(self,
                 posModel,
                 along,
                 preemptive_fetch_number=5,
                 parent=None,
                 name="Unnamed Scene",
                 swapped_default=False):
        """
        * preemptive_fetch_number -- number of prefetched slices; 0 turns the feature off
        * swapped_default -- whether axes should be swapped by default.

        """
        QGraphicsScene.__init__(self, parent=parent)

        self._along = along
        self._posModel = posModel

        # QGraphicsItems can change this if they are in a state that should temporarily forbid brushing
        # (For example, when the slice intersection marker is in 'draggable' state.)
        self.allow_brushing = True

        self._dataShape = (0, 0)
        self._dataRectItem = None  #A QGraphicsRectItem (or None)
        self._offsetX = 0
        self._offsetY = 0
        self.name = name

        self._stackedImageSources = StackedImageSources(LayerStackModel())
        self._showTileOutlines = False

        # FIXME: We don't show the red 'progress pies' because they look terrible.
        #        If we could fix their timing, maybe it would be worth it.
        self._showTileProgress = False

        self._tileProvider = None
        self._dirtyIndicator = None
        self._prefetching_enabled = False

        self._swappedDefault = swapped_default
        self.reset()

        # BowWave preemptive caching
        self.setPreemptiveFetchNumber(preemptive_fetch_number)
        self._course = (1, 1)  # (along, pos or neg direction)
        self._time = self._posModel.time
        self._channel = self._posModel.channel
        self._posModel.timeChanged.connect(self._onTimeChanged)
        self._posModel.channelChanged.connect(self._onChannelChanged)
        self._posModel.slicingPositionChanged.connect(
            self._onSlicingPositionChanged)

        self._allTilesCompleteEvent = threading.Event()
        self.dirty = False

        # We manually keep track of the tile-wise QGraphicsItems that
        # we've added to the scene in this dict, otherwise we would need
        # to use O(N) lookups for every tile by calling QGraphicsScene.items()
        self.tile_graphicsitems = defaultdict(
            set)  # [Tile.id] -> set(QGraphicsItems)
Beispiel #3
0
 def __init__(self, navBar, parent=None):
     QGraphicsScene.__init__(self, parent)
     CFSceneContextMenuMixin.__init__(self)
     CFSceneMouseMixin.__init__(self)
     CFSceneKeyboardMixin.__init__(self)
     self.__navBar = navBar
     self.selectionChanged.connect(self.selChanged)
     return
Beispiel #4
0
    def __init__(self, view=None, parent=None):
        QGraphicsScene.__init__(self, parent)

        if view is None:
            raise AttributeError

        self.__view = view
        self.__create__()
Beispiel #5
0
 def __init__( self, navBar, parent = None ):
     QGraphicsScene.__init__( self, parent )
     CFSceneContextMenuMixin.__init__( self )
     CFSceneMouseMixin.__init__( self )
     CFSceneKeyboardMixin.__init__( self )
     self.__navBar = navBar
     self.selectionChanged.connect( self.selChanged )
     return
Beispiel #6
0
 def __init__(self, parent=None):
     QGraphicsScene.__init__(self, parent)
     # events are passed to the parent for synchronizing an image pair
     self.containingGraphicsView = parent
     # state
     self.currentPressAt = None
     self.dragStarted = False
     self.pressedButton = "None"
Beispiel #7
0
    def __init__(self, view=None, parent=None):
        QGraphicsScene.__init__(self, parent)

        if view is None:
            raise AttributeError

        self.__view = view
        self.__create__()
Beispiel #8
0
    def __init__(self, parent=None):
        """Constructor

        Args:
            parent(QObject): Parent object, default None
        """
        QGraphicsScene.__init__(self, parent=parent)

        self._draggedLineItem = None
Beispiel #9
0
    def __init__(self, parent, width, height):
        QGraphicsScene.__init__(self, parent)
        self.setSceneRect(0, 0, width, height)
        self.Parent = parent

        #self.Parent.graphicsView.centerOn(250, 250)
        self.width = width
        self.height = height
        self.grid = self.getGrid()
        self.setTiles()
Beispiel #10
0
 def __init__(self, initial_width, initial_height, visible_meters, length, mass):
     QGraphicsScene.__init__(self)
     self.visible_meters = visible_meters
     self.initial_width = initial_width
     self.initial_height = initial_height
     self.pend_radius = min(0.5 * mass, 0.2)
     self.pole_length = length
     self.unit = min(self.initial_width, self.initial_height) / self.visible_meters
     self.__create_scene()
     self.update_state(0.0, 0.0)
Beispiel #11
0
 def __init__(self):
     QGraphicsScene.__init__(self)
     self.__disableFocusRect = False
     self._focusBoard = None
     self.focusRect = QGraphicsRectItem()
     pen = QPen(QColor(Qt.blue))
     pen.setWidth(6)
     self.focusRect.setPen(pen)
     self.addItem(self.focusRect)
     self.focusRect.setZValue(ZValues.marker)
     self.focusRect.hide()
Beispiel #12
0
 def __init__(self):
     QGraphicsScene.__init__(self)
     self.__disableFocusRect = False
     self._focusBoard = None
     self.focusRect = QGraphicsRectItem()
     pen = QPen(QColor(Qt.blue))
     pen.setWidth(6)
     self.focusRect.setPen(pen)
     self.addItem(self.focusRect)
     self.focusRect.setZValue(ZValues.marker)
     self.focusRect.hide()
Beispiel #13
0
    def __init__(self, posModel, along, preemptive_fetch_number=5,
                 parent=None, name="Unnamed Scene",
                 swapped_default=False):
        """
        * preemptive_fetch_number -- number of prefetched slices; 0 turns the feature off
        * swapped_default -- whether axes should be swapped by default.

        """
        QGraphicsScene.__init__(self, parent=parent)

        self._along = along
        self._posModel = posModel

        # QGraphicsItems can change this if they are in a state that should temporarily forbid brushing
        # (For example, when the slice intersection marker is in 'draggable' state.)
        self.allow_brushing = True

        self._dataShape = (0, 0)
        self._dataRectItem = None #A QGraphicsRectItem (or None)
        self._offsetX = 0
        self._offsetY = 0
        self.name = name

        self._stackedImageSources = StackedImageSources(LayerStackModel())
        self._showTileOutlines = False

        # FIXME: We don't show the red 'progress pies' because they look terrible.  
        #        If we could fix their timing, maybe it would be worth it.
        self._showTileProgress = False

        self._tileProvider = None
        self._dirtyIndicator = None
        self._prefetching_enabled = False
        
        self._swappedDefault = swapped_default
        self.reset()

        # BowWave preemptive caching
        self.setPreemptiveFetchNumber(preemptive_fetch_number)
        self._course = (1,1) # (along, pos or neg direction)
        self._time = self._posModel.time
        self._channel = self._posModel.channel
        self._posModel.timeChanged.connect(self._onTimeChanged)
        self._posModel.channelChanged.connect(self._onChannelChanged)
        self._posModel.slicingPositionChanged.connect(self._onSlicingPositionChanged)
        
        self._allTilesCompleteEvent = threading.Event()
        self.dirty = False
        
        # We manually keep track of the tile-wise QGraphicsItems that
        # we've added to the scene in this dict, otherwise we would need
        # to use O(N) lookups for every tile by calling QGraphicsScene.items()
        self.tile_graphicsitems = defaultdict(set) # [Tile.id] -> set(QGraphicsItems)
Beispiel #14
0
 def __init__(self, initial_width, initial_height, visible_meters, length,
              mass):
     QGraphicsScene.__init__(self)
     self.visible_meters = visible_meters
     self.initial_width = initial_width
     self.initial_height = initial_height
     self.pend_radius = min(0.5 * mass, 0.2)
     self.pole_length = length
     self.unit = min(self.initial_width,
                     self.initial_height) / self.visible_meters
     self.__create_scene()
     self.update_state(0.0, 0.0)
Beispiel #15
0
 def __init__(self, undo_stack, delete_act, sel_actions, *args):
     """
     Constructor
     """
     params = parameters.instance
     QGraphicsScene.__init__(self, *args)
     self.delete_act = delete_act
     self.undo_stack = undo_stack
     self.data_manager = None
     self._mode = None
     self.link = None
     self.image_path = None
     self.image_name = None
     self.background_image = None
     self.template = TemplateItem()
     self.template.setPos(QPointF(0, 0))
     self.template.setVisible(params.show_template)
     self.show_template = False
     self.points = {}
     self.cells = {}
     self._real_scene_rect = QRectF()
     params.pointParameterChange.connect(self.updatePoints)
     params.cellParameterChange.connect(self.updateCells)
     params.searchParameterChange.connect(self.updateTemplate)
     self.had_selection = None
     self.selectionChanged.connect(self.updateSelectionActions)
     self.current_data = None
     self.back_matrix = QTransform()
     self.invert_back_matrix = QTransform()
     self.clear()
     popup = QMenu("Scene menu")
     validate_cell_act = popup.addAction("Validate cell", self.validateCell)
     validate_cell_act.setVisible(False)
     self._validate_cell_act = validate_cell_act
     lifespan_act = popup.addAction("Change cell lifespan", self.changeLifespan)
     lifespan_act.setVisible(False)
     self.lifespan_act = lifespan_act
     make_starshape_act = popup.addAction("Make cell star shaped", self.makeCellStarshaped)
     make_starshape_act.setVisible(False)
     self.make_starshape_act = make_starshape_act
     sel = popup.addMenu("Selection")
     for act in sel_actions:
         if act == "-":
             sel.addSeparator()
         else:
             sel.addAction(act)
     popup.addAction(delete_act)
     self._popup = popup
     self._sel_rect = None
     self._sel_first_pt = None
     self._current_cell = None
     self._first_point = None
     self.mode = TrackingScene.Pan
Beispiel #16
0
 def __init__(self, logger, opts):
     QGraphicsScene.__init__(self)
     self.logger, self.opts = logger, opts
     self.pages = []
     self.chapters = []
     self.chapter_layout = None
     self.current_screen = None
     self.current_page = 0
     self.link_map = {}
     self.chapter_map = {}
     self.history = History()
     self.last_search = iter([])
     if not opts.white_background:
         self.setBackgroundBrush(QBrush(QColor(0xEE, 0xEE, 0xEE)))
 def __init__(self, logger, opts):
     QGraphicsScene.__init__(self)
     self.logger, self.opts = logger, opts
     self.pages = []
     self.chapters = []
     self.chapter_layout = None
     self.current_screen = None
     self.current_page = 0
     self.link_map = {}
     self.chapter_map = {}
     self.history = History()
     self.last_search = iter([])
     if not opts.white_background:
         self.setBackgroundBrush(QBrush(QColor(0xee, 0xee, 0xee)))
Beispiel #18
0
    def __init__(self, G=None, pos=None, parent=None):
        QGraphicsScene.__init__(self, parent)
        self.G = networkx.Graph()

        if pos is None:
            pos = networkx.spring_layout(self.G)

        self.mode = 'None'
        self.lastSelectedNode = None
        self.lineDuringSelection = None
        self.edges = []
        self.nodes = []
        if G != None:
            self.drawGraph(G, pos)
Beispiel #19
0
    def __init__( self ):
        QGraphicsScene.__init__(self)
        self._glWidget = None
        self._useGL = False
        self._updatableTiles = []

        # tile rendering
        self.imagePatches = None
        self._renderThread = None
        self._stackedImageSources = None
        self._numLayers = 0 #current number of 'layers'
    
        def cleanup():
            self._renderThread.stop()
        self.destroyed.connect(cleanup)
Beispiel #20
0
    def __init__(self, *args, **kwargs):
        QGraphicsScene.__init__(self, *args, **kwargs)

        self.scheme = None
        self.registry = None

        # All node items
        self.__node_items = []
        # Mapping from SchemeNodes to canvas items
        self.__item_for_node = {}
        # All link items
        self.__link_items = []
        # Mapping from SchemeLinks to canvas items.
        self.__item_for_link = {}

        # All annotation items
        self.__annotation_items = []
        # Mapping from SchemeAnnotations to canvas items.
        self.__item_for_annotation = {}

        # Is the scene editable
        self.editable = True

        # Anchor Layout
        self.__anchor_layout = AnchorLayout()
        self.addItem(self.__anchor_layout)

        self.__channel_names_visible = True
        self.__node_animation_enabled = True

        self.user_interaction_handler = None

        self.activated_mapper = NodeItemSignalMapper(self)
        self.activated_mapper.pyMapped.connect(
            self.node_item_activated
        )

        self.hovered_mapper = NodeItemSignalMapper(self)
        self.hovered_mapper.pyMapped.connect(
            self.node_item_hovered
        )

        self.position_change_mapper = NodeItemSignalMapper(self)
        self.position_change_mapper.pyMapped.connect(
            self._on_position_change
        )

        log.info("'%s' intitialized." % self)
Beispiel #21
0
    def __init__(self,
                 posModel,
                 along,
                 preemptive_fetch_number=5,
                 parent=None,
                 name="Unnamed Scene",
                 swapped_default=False):
        """
        * preemptive_fetch_number -- number of prefetched slices; 0 turns the feature off
        * swapped_default -- whether axes should be swapped by default.

        """
        QGraphicsScene.__init__(self, parent=parent)

        self._along = along
        self._posModel = posModel

        self._dataShape = (0, 0)
        self._dataRect = None  #A QGraphicsRectItem (or None)
        self._offsetX = 0
        self._offsetY = 0
        self.name = name

        self._stackedImageSources = StackedImageSources(LayerStackModel())
        self._showTileOutlines = False
        self._showTileProgress = True

        self._tileProvider = None
        self._dirtyIndicator = None
        self._prefetching_enabled = False

        self._swappedDefault = swapped_default
        self.reset()

        # BowWave preemptive caching
        self.setPreemptiveFetchNumber(preemptive_fetch_number)
        self._course = (1, 1)  # (along, pos or neg direction)
        self._time = self._posModel.time
        self._channel = self._posModel.channel
        self._posModel.timeChanged.connect(self._onTimeChanged)
        self._posModel.channelChanged.connect(self._onChannelChanged)
        self._posModel.slicingPositionChanged.connect(
            self._onSlicingPositionChanged)

        self._allTilesCompleteEvent = threading.Event()
Beispiel #22
0
    def __init__( self, parent=None ):
        QGraphicsScene.__init__( self, parent=parent )

        # tiled rendering of patches
        self._tiling         = None
        self._brushingLayer  = None
        # indicates the dirtyness of each tile
        self._dirtyIndicator = None

        self._tileProvider = None
        self._stackedImageSources = None
        self._showTileOutlines = False
    
        self.data2scene = QTransform(0,1,1,0,0,0) 
        self.scene2data = self.data2scene.transposed()
        
        self._slicingPositionSettled = True

        self._redrawIndicator = False
Beispiel #23
0
    def __init__(self, posModel, along, preemptive_fetch_number=5,
                 parent=None, name="Unnamed Scene",
                 swapped_default=False):
        """
        * preemptive_fetch_number -- number of prefetched slices; 0 turns the feature off
        * swapped_default -- whether axes should be swapped by default.

        """
        QGraphicsScene.__init__(self, parent=parent)

        self._along = along
        self._posModel = posModel

        self._dataShape = (0, 0)
        self._dataRect = None #A QGraphicsRectItem (or None)
        self._offsetX = 0
        self._offsetY = 0
        self.name = name

        self._stackedImageSources = StackedImageSources(LayerStackModel())
        self._showTileOutlines = False
        self._showTileProgress = True

        self._tileProvider = None
        self._dirtyIndicator = None
        self._prefetching_enabled = False
        
        self._swappedDefault = swapped_default
        self.reset()

        # BowWave preemptive caching
        self.setPreemptiveFetchNumber(preemptive_fetch_number)
        self._course = (1,1) # (along, pos or neg direction)
        self._time = self._posModel.time
        self._channel = self._posModel.channel
        self._posModel.timeChanged.connect(self._onTimeChanged)
        self._posModel.channelChanged.connect(self._onChannelChanged)
        self._posModel.slicingPositionChanged.connect(self._onSlicingPositionChanged)
        
        self._allTilesCompleteEvent = threading.Event()
Beispiel #24
0
    def __init__(self, parent):
        QGraphicsScene.__init__(self, parent)

        self.cc_x = 1
        self.cc_y = 2
        self.m_channels = []
        self.m_mouseLock = False
        self.m_smooth = False
        self.m_smooth_x = 0
        self.m_smooth_y = 0

        self.setBackgroundBrush(Qt.black)

        cursorPen   = QPen(QColor(255, 255, 255), 2)
        cursorBrush = QColor(255, 255, 255, 50)
        self.m_cursor = self.addEllipse(QRectF(-10, -10, 20, 20), cursorPen, cursorBrush)

        linePen = QPen(QColor(200, 200, 200, 100), 1, Qt.DashLine)
        self.m_lineH = self.addLine(-9999, 0, 9999, 0, linePen)
        self.m_lineV = self.addLine(0, -9999, 0, 9999, linePen)

        self.p_size = QRectF(-100, -100, 100, 100)
Beispiel #25
0
    def __init__(o, parent, puzzle_client, mainwindow, *args):
        QGraphicsScene.__init__(o, parent, *args)
        o._input_tracker = InputTracker(o, accepts=sum(KEYS.values(), []))

        o.setBackgroundBrush(QBrush(QColor("darkGray")))
        o.client = puzzle_client
        o.mainwindow = mainwindow
        o.cluster_map = {}

        # connect my events
        o.client.puzzle.connect(o._display_puzzle)
        o.client.piece_pixmaps.connect(o._set_piece_pixmaps)
        o.client.clusters.connect(o.OnClustersChanged)
        o.client.grabbed.connect(o.onClustersGrabbed)
        o.client.moved.connect(o.onClustersMoved)
        o.client.dropped.connect(o.onClustersDropped)
        o.client.joined.connect(o.onClustersJoined)
        # request puzzle data from server
        o.client.get_puzzle()

        # init piece movement
        o.rotations = 1  # number of rotations that the puzzle allows
        # List of cluster (widgets) that have been grabbed locally. dict clusterid -> ClusterWidget
        o.grabbed_widgets = {}
        # number of rotations (relative to initial rotation) having been applied to the grabbed widgets.
        o._move_rotation = 0
        # time of last position update (for rate limit)
        o._last_move_send_time = 0

        # init selection
        o._drag_start = None
        o._rubberband = QGraphicsRectItem(QRectF(0., 0., 100., 100.))
        p = QPen(QColor(255, 255, 255))
        o._rubberband.setPen(p)
        o._rubberband.hide()
        o.addItem(o._rubberband)
Beispiel #26
0
 def __init__(self):
     QGraphicsScene.__init__(self)
     #        self.setSceneRect(0,0,560,420)
     self.setBackgroundBrush(QBrush(eval(settings.scene)))
     self.load()
Beispiel #27
0
 def __init__(self, build_range):
     QGraphicsScene.__init__(self)
     self.from_range(build_range)
Beispiel #28
0
 def __init__(self,settings,grid):
     self.grid = grid
     QGraphicsScene.__init__(self,0,0,settings.gridWidth,settings.gridHeight)
Beispiel #29
0
 def __init__(self, *args):
     QGraphicsScene.__init__(self, *args)
     self.selectionRect = None
Beispiel #30
0
 def __init__(self, build_range):
     QGraphicsScene.__init__(self)
     self.from_range(build_range)
Beispiel #31
0
 def __init__(self, *__args):
     QGraphicsScene.__init__(self, *__args)
     self.layer_width = 200
     self.layer_height = 500
     self.neurons_positions = {}
     self.addText("Neural Networks Simulator\nv. 1.0-RC2")
Beispiel #32
0
    def __init__(self, *args, **kwargs):
        QGraphicsScene.__init__(self, *args, **kwargs)

        self.editWidget = LinksEditWidget()
        self.addItem(self.editWidget)
Beispiel #33
0
 def __init__(self, *args):
     QGraphicsScene.__init__(self, *args)
     self.selectionRect = None
Beispiel #34
0
 def __init__(self, parent=None):
     """Override scene to handle drag/drop."""
     QGraphicsScene.__init__(self, parent)
     self.selectionChanged.connect(self.on_selection_change)
     self.timer = QTimer()
     self.constraints = ''
Beispiel #35
0
 def __init__(self):
     QGraphicsScene.__init__(self)
Beispiel #36
0
    def __init__(self, *args, **kwargs):
        QGraphicsScene.__init__(self, *args, **kwargs)

        self.editWidget = LinksEditWidget()
        self.addItem(self.editWidget)
 def __init__(self, *args):
     QGraphicsScene.__init__(self, *args)