Esempio n. 1
0
 def on_but_plot(self):
     logger.debug('on_but_plot', __name__)
     try:
         cp.plotimgspe.close()
         try:
             del cp.plotimgspe
         except:
             pass
     except:
         arr = gu.get_array_from_file(fnm.path_pedestals_ave())
         if arr == None: return
         #print arr.shape,'\n', arr
         cp.plotimgspe = PlotImgSpe(None,
                                    arr,
                                    ifname=fnm.path_pedestals_ave(),
                                    ofname=fnm.path_peds_aver_plot())
         #cp.plotimgspe.setParent(self)
         cp.plotimgspe.move(cp.guimain.pos().__add__(QtCore.QPoint(
             720, 120)))
         cp.plotimgspe.show()
Esempio n. 2
0
    def centerScaleRect(rect, scale):
        """
        centerScaleRect(QRect rect, float scale) -> QRect scaled

        Takes a QRect and a float scale value, and returns a copy 
        of the rect that has been scaled around the center point. 
        """
        scaledRect = QtCore.QRect(rect)

        size = scaledRect.size()
        pos = scaledRect.center()

        offset = QtCore.QPoint(pos.x() - (size.width() * .5),
                               pos.y() - (size.height() * .5))

        scaledRect.moveCenter(offset)
        scaledRect.setSize(size * scale)
        scaledRect.moveCenter(pos)

        return scaledRect
Esempio n. 3
0
 def mouseDragEvent(self, ev):
     if ev.button() == QtCore.Qt.LeftButton:
         ev.accept()
         x, y = self.get_xy(
             QtCore.QPoint(ev.scenePos()[0],
                           ev.scenePos()[1]))
         if x is False: return False
         if ev.isStart():
             self.press = np.array([np.array([np.array([x, y])])])
         if ev.isFinish():
             self.press = cv2.approxPolyDP(
                 self.press, 0.01 * cv2.arcLength(self.press, True), True)
             if len(self.press) >= 4:
                 roi = ROI(np.array([p[0] for p in self.press]), self)
         else:
             if self.press[-1][0][0] != x and self.press[-1][0][1] != y:
                 self.press = np.append(
                     self.press, np.array([np.array([np.array([x, y])])]),
                     0)
         self.ev = ev
 def __init__(self,
              markerAlpha,
              markerNeutralColor,
              imgWidth,
              imgHeight,
              parent=None):
     super(ScribbleImage, self).__init__(parent)
     self.setAttribute(QtCore.Qt.WA_StaticContents)
     self.scribbling = False
     self.lining = False
     self._penWidth = 3
     self._imgWidth = imgWidth
     self._imgHeight = imgHeight
     self._markerNeutralColor = markerNeutralColor
     self._markerAlpha = markerAlpha  #TODO make interactively settable
     self.lastPoint = QtCore.QPoint()
     self.backgroundImage = None
     self.watershedImg = None
     self.markerImgRGB = None
     self._showWatershed = False
Esempio n. 5
0
    def on_but_view(self):
        logger.info('on_but_view', __name__)

        try:
            cp.guifilebrowser.close()

        except:
            list_of_fnames = [ self.fname_geometry.value() \
                             , self.fname_roi_img_nda.value() \
                             , self.fname_roi_img.value() \
                             , self.fname_roi_mask_img.value() \
                             , self.fname_roi_mask_nda.value() \
                             , self.fname_roi_mask_nda_tst.value() \
                               ]

            cp.guifilebrowser = GUIFileBrowser(None, list_of_fnames,
                                               list_of_fnames[0])
            cp.guifilebrowser.move(self.pos().__add__(QtCore.QPoint(
                880, 40)))  # open window with offset w.r.t. parent
            cp.guifilebrowser.show()
Esempio n. 6
0
    def applyPreferences(self):
        if self.preferences['windowState'] is not None:
            self.restoreState(QtCore.QByteArray.fromBase64(self.preferences['windowState']))
        if self.preferences['windowPosition'] is not None:
            self.move(QtCore.QPoint(*self.preferences['windowPosition']))
        if self.preferences['windowSize'] is not None:
            self.resize(QtCore.QSize(*self.preferences['windowSize']))

        self.comboTags.addItems(self.preferences['tags'])
        self.applyPreferencesContent()

        if self.preferences['firstRun']:
            QtGui.QMessageBox.information(
                self,
                'Yomichan',
                'This may be the first time you are running Yomichan.\n' \
                'Please take some time to configure this extension.'
            )

            self.onActionPreferences()
Esempio n. 7
0
    def __init__(self, parent=None):
        super(GLWidget, self).__init__(parent)
        self.object = 0
        self.gridLines = 0
        self.xRot = 0
        self.yRot = 0
        self.zRot = 0

        self.lastPos = QtCore.QPoint()
        self.mult = 1.0

        self.yaw = 0.0
        self.pitch = 0.0
        self.roll = 0.0
        self.depth = 0.0
        self.y = 0.0
        self.x = 0.0

        self.trolltechGreen = QtGui.QColor.fromCmykF(0.40, 0.0, 1.0, 0.0)
        self.trolltechPurple = QtGui.QColor.fromCmykF(0.1, 0.1, 0.1, 0.0)
Esempio n. 8
0
    def canvasMoveEvent(self, event):
        # move the last point
        if self.rubberBand != None:
            x = event.pos().x()
            y = event.pos().y()
            thisPoint = QtCore.QPoint(x, y)
            # try to snap
            snapper = QgsMapCanvasSnapper(self.canvas)
            # snap to any layer within snap tolerance
            (retval, result) = snapper.snapToBackgroundLayers(thisPoint)

            if result == []:
                mapToPixel = self.canvas.getCoordinateTransform()
                self.rubberBand.movePoint(
                    self.rubberBand.numberOfVertices() - 1,
                    mapToPixel.toMapCoordinates(thisPoint))
            else:
                self.rubberBand.movePoint(
                    self.rubberBand.numberOfVertices() - 1,
                    result[0].snappedVertex)
Esempio n. 9
0
 def __init__(self, callback, pixmap_size, 
              first_pic, parent=None):
     '''Constructor'''
     QtCore.QObject.__init__(self, parent)
     self._elements = []
     self._size = pixmap_size
     self._rect= QtCore.QRect(QtCore.QPoint(0, 0), self._size)
     self._callback = callback
     # timer initialization
     self._timer = QtCore.QTimer(QtGui.QApplication.instance())
     self._timer.timeout.connect(self._on_timeout)
     self._fpms = 0.12 # frames / millisencond
     self._duration = 1000.0 # millisecond
     self._frame_time = 1 / self._fpms
     self._alpha_step = self._frame_time / self._duration
     # pixmap painting initializations
     self._result = QtGui.QPixmap(first_pic).scaled(self._size,
                                    transformMode=Qt.SmoothTransformation)
     self._result.fill(Qt.transparent)
     self._painter = QtGui.QPainter(self._result)
Esempio n. 10
0
    def timerEvent(self, event):
        count = 0
        for data in self.d.flickData.values():
            if data.state == FlickData.ManualScroll:
                count += 1
                cursorPos = QtGui.QCursor.pos()
                data.speed = cursorPos - data.dragPos
                data.dragPos = cursorPos
            elif data.state == FlickData.AutoScroll:
                count += 1
                data.speed = deaccelerate(data.speed)
                p = scrollOffset(data.widget)
                setScrollOffset(data.widget, p - data.speed)
                if data.speed == QtCore.QPoint(0, 0):
                    data.state = FlickData.Steady

        if count == 0:
            self.d.ticker.stop()

        QtCore.QObject.timerEvent(self, event)
Esempio n. 11
0
 def on_but_plot(self):
     logger.debug('on_but_plot', __name__)
     try:
         cp.plotimgspe.close()
         try:
             del cp.plotimgspe
         except:
             pass
     except:
         ifname = fnm.path_data_raw_ave()
         arr = gu.get_array_from_file(ifname)
         if arr == None: return
         logger.debug('Array shape: ' + str(arr.shape), __name__)
         cp.plotimgspe = PlotImgSpe(None,
                                    arr,
                                    ifname,
                                    ofname=fnm.path_data_aver_plot())
         cp.plotimgspe.move(cp.guimain.pos().__add__(QtCore.QPoint(
             740, 140)))
         cp.plotimgspe.show()
Esempio n. 12
0
 def show_brief_messages():
     self.hide_brief_message()
     full_message = u"<body>"
     for mess in self.brief_messages:
         full_message += u"%s <hr />" % mess
     full_message = full_message.rstrip("<hr />") + "</body>"
     self.brief_message_box = MessagePopup(full_message, self)
     self.brief_message_box.right_to_left = self.right_to_left
     self.brief_message_box.show()
     self.brief_message_box.raise_()
     if self.right_to_left:
         x = (self.briefMessagePosition.x() -
              self.brief_message_box.width())
         pos = QtCore.QPoint(x, self.briefMessagePosition.y())
     else:
         pos = self.briefMessagePosition
     self.brief_message_box.move(pos)
     app = QtGui.QApplication.instance()
     if app:
         app.processEvents()
Esempio n. 13
0
    def renderInput(self):

        html = markdown.markdown(
            unicode(self.VIEW.active_input().toPlainText()))
        self.VIEW.saveAction.setDisabled(False)

        preview = self.VIEW.active_preview()
        y = preview.page().mainFrame().scrollPosition().y()
        data = QtCore.QString("<style>")
        data.append(QtCore.QString(self.MODEL.base_css))
        data.append("</style>")
        data.append(QtCore.QString(html))
        #data = QtCore.QByteArray("<style>"+ +"</style>" + html)
        preview.setContent(data.toUtf8())

        preview.scroll(0, y)
        preview.page().mainFrame().scroll(0, y)
        preview.page().mainFrame().setScrollPosition(QtCore.QPoint(0, y))

        y = preview.page().mainFrame().scrollPosition().y()
Esempio n. 14
0
 def mouseReleaseEvent(self, e):
     if e.button() == Qt.LeftButton:
         self._mouse_release_pos = e.pos()
         self._mouse_move = self._mouse_release_pos - self._mouse_press_pos
         x = self._mouse_release_pos.x()
         y = self._mouse_release_pos.y()
         g = self.geometry()
         if 0 <= x <= g.width() and 0 <= y <= g.height():
             xr = float(x) / g.width()
             yr = float(y) / g.height()
             r = self._source_rect
             if r:
                 xi = r.x() + int(np.ceil(xr * r.width()))
                 yi = r.y() + int(np.ceil(yr * r.height()))
                 self._mouse_image_release_pos = QtCore.QPoint(xi, yi)
                 self._source_rect = QtCore.QRect(
                     self._mouse_image_press_pos,
                     self._mouse_image_release_pos)
         self._window_zoom_active = False
         self.repaint()
Esempio n. 15
0
    def __init__(self, parent = None):
        format = QtOpenGL.QGLFormat()
        format.setSampleBuffers(True)
        QtOpenGL.QGLWidget.__init__(self, format, parent)
        #self.setCursor(QtCore.Qt.OpenHandCursor)
        self.setMouseTracking(True)

        self.modelview_matrix_  = []
        self.translate_vector_  = [0.0, 0.0, 0.0]
        self.viewport_matrix_   = []
        self.projection_matrix_ = []
        self.near_   = 0.1
        self.far_    = 100.0
        self.fovy_   = 45.0
        self.radius_ = 5.0
        self.last_point_2D_ = QtCore.QPoint()
        self.last_point_ok_ = False
        self.last_point_3D_ = [1.0, 0.0, 0.0]
        self.isInRotation_  = False
        self.pickSize = 3
    def onButView(self):
        #self.exportLocalPars()
        logger.info('onButView', __name__)

        try:
            cp.guifilebrowser.close()

        except:
            list_of_fnames = cp.guidirtree.get_list_of_checked_item_names()
            if list_of_fnames == []:
                logger.info(
                    '\nThe list of checked files IS EMPTY ! Click on check-box of desired file(s).',
                    __name__)
                return

            cp.guifilebrowser = GUIFileBrowser(None, list_of_fnames,
                                               list_of_fnames[0])
            cp.guifilebrowser.move(self.pos().__add__(QtCore.QPoint(
                880, 40)))  # open window with offset w.r.t. parent
            cp.guifilebrowser.show()
Esempio n. 17
0
 def drawPlot(self):
     try:
         self.redrawPlotResetLimits()
         #print 'Redraw plot'
     except:
         #self.setImgArray()
         if self.but_g2tau.hasFocus() \
         or self.but_intens_t.hasFocus():
             cp.plotimgspe_g = PlotImgSpe(None,
                                          self.arr2d,
                                          title=self.getTitle(),
                                          orient=90,
                                          y_is_flip=True)
         else:
             cp.plotimgspe_g = PlotImgSpe(None, self.arr2d, title=self.getTitle(), \
                                          orient=int(cp.ccd_orient.value()), y_is_flip=cp.y_is_flip.value())
         cp.plotimgspe_g.move(
             self.parentWidget().parentWidget().pos().__add__(
                 QtCore.QPoint(850, 20)))
         cp.plotimgspe_g.show()
 def contextMenuEvent(self, event):
     menu = QtGui.QMenu()
     remove = menu.addAction('Remove')
     change_color = menu.addAction('Change Color')
     show_params = menu.addAction('Show Parameters')
     fit = menu.addAction('Fit')
     move = menu.addAction('Move')
     action = menu.exec_(self.mapToGlobal(QtCore.QPoint(0, 20)))
     if action == remove:
         self.context_menu_selected.emit(self.name,
                                         DatasetList.removeDataset)
     elif action == change_color:
         self.context_menu_selected.emit(self.name, DatasetList.changeColor)
     elif action == show_params:
         self.context_menu_selected.emit(self.name,
                                         DatasetList.showParameters)
     elif action == fit:
         self.context_menu_selected.emit(self.name, DatasetList.doFit)
     elif action == move:
         self.context_menu_selected.emit(DatasetList.moveWindow)
Esempio n. 19
0
    def startDrag(self, supportedActions):
        item = self.currentItem()

        itemData = QtCore.QByteArray()
        dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly)
        pixmap = QtGui.QPixmap(item.data(QtCore.Qt.UserRole))
        location = item.data(QtCore.Qt.UserRole+1)

        dataStream << pixmap << location

        mimeData = QtCore.QMimeData()
        mimeData.setData('image/x-puzzle-piece', itemData)

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(QtCore.QPoint(pixmap.width()/2, pixmap.height()/2))
        drag.setPixmap(pixmap)

        if drag.exec_(QtCore.Qt.MoveAction) == QtCore.Qt.MoveAction:
            self.takeItem(self.row(item))
Esempio n. 20
0
    def readSettings(self):
        """Read application settings."""
        settings = QtCore.QSettings()
        pos = settings.value('pos', QtCore.QPoint(200, 200))
        size = settings.value('size', QtCore.QSize(400, 400))
        self.move(pos)
        self.resize(size)
        if settings.contains('windowgeometry'):
            self.restoreGeometry(settings.value('windowgeometry'))
        if settings.contains('windowstate'):
            self.restoreState(settings.value('windowstate'))

        self._showScrollbarsAct.setChecked(
            toBool(settings.value(SETTING_SCROLLBARS, True)))
        self._showStatusbarAct.setChecked(
            toBool(settings.value(SETTING_STATUSBAR, True)))
        self._synchZoomAct.setChecked(
            toBool(settings.value(SETTING_SYNCHZOOM, True)))
        self._synchPanAct.setChecked(
            toBool(settings.value(SETTING_SYNCHPAN, True)))
Esempio n. 21
0
    def on_save(self):

        point, size = self.mapToGlobal(QtCore.QPoint(
            -5, -22)), self.size()  # Offset (-5,-22) for frame size.
        x, y, w, h = point.x(), point.y(), size.width(), size.height()
        msg = 'Save main window x,y,w,h : %d, %d, %d, %d' % (x, y, w, h)
        log.info(msg, self._name)
        #print msg

        #Save main window position and size
        self.main_win_pos_x.setValue(x)
        self.main_win_pos_y.setValue(y)
        self.main_win_width.setValue(w)
        self.main_win_height.setValue(h)

        cp.printParameters()
        cp.saveParametersInFile()

        if cp.save_log_at_exit.value():
            log.saveLogInFile(cp.log_file.value())
Esempio n. 22
0
    def mouseMoveEvent(self, event):
        buttons = event.buttons()
        modifiers = event.modifiers()
        dx = event.x() - self.lastPos.x()
        dy = event.y() - self.lastPos.y()

        if buttons == QtCore.Qt.LeftButton:
            if modifiers == QtCore.Qt.ControlModifier:
                self.roll(-0.5 * dx - 0.5 * dy)
            elif modifiers == QtCore.Qt.ShiftModifier:
                self.pan(dx / 600.,
                         -dy / 600.)  # qt viewport y axis points down
            else:
                self.yaw(0.5 * dx)
                self.pitch(0.5 * dy)
        elif buttons == QtCore.Qt.RightButton:
            self.zoom(-dy / 500.)  # qt viewport y axis points down

        self.updateGL()
        self.lastPos = QtCore.QPoint(event.pos())
Esempio n. 23
0
    def __init__(self):
        super(ScrnshotUI, self).__init__()

        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.ltPoint = self.tempPoint = self.rbPoint =QtCore.QPoint(0,0)
        self.ltRect = QtCore.QRect()
        self.rtRect = QtCore.QRect()
        self.lbRect = QtCore.QRect()
        self.rbRect = QtCore.QRect()
        self.pixmapRect = QtCore.QRect()
        self.grab = True

        #设置窗体为整个屏幕
        self.scrPix = ImageGrab.grab()
        self.scrPix.save("bground.jpeg")

        self.pixmap = QtGui.QPixmap("bground.jpeg")

        width, height = self.scrPix.size
        self.resize(width, height)
Esempio n. 24
0
    def paintEvent(self, event):
        p = QtGui.QPainter(self)
        if self.frame_img:
            region = event.region()
            p.setClipRegion(
                region)  # first set clipping area as given by redraw event
            frame, img = self.frame_img
            # get relevant rectangles
            self_rect = self.rect()
            img_rect = img.rect()  # [0, width]x[0, height]
            refresh_rect = event.rect()

            centering_offset = (
                self_rect.size() - img_rect.size()
            ) / 2  # offset from the widget boundary to the bottom left of the image to center it in the widget
            centering_offset = QtCore.QPoint(
                centering_offset.width(),
                centering_offset.height())  # convert to point
            img_rect.translate(
                centering_offset
            )  # representation of the image region in widget coordinate space
            img_rect_in_widget = img_rect.intersected(
                refresh_rect)  # intersect with area that should be redrawn
            img_rect.translate(
                -centering_offset)  # translate back to image space

            p.drawImage(
                centering_offset, img, img_rect
            )  # draw section of the image with the given offset to make it centered

            region = region.subtracted(
                QtGui.QRegion(img_rect_in_widget)
            )  # remove drawn image region from the region to be refreshed.
            brush = QtGui.QBrush(QtCore.Qt.blue)
            for rect in region.rects(
            ):  # draw the area surrounding the image in a different color. And only draw on the refreshed area.
                p.fillRect(rect, brush)
        else:
            p.setPen(QtCore.Qt.red)
            p.fillRect(self.rect(), QtGui.QBrush(QtCore.Qt.blue))
            p.drawText(self.rect(), QtCore.Qt.AlignCenter, "TEST")
Esempio n. 25
0
    def mouseMoveEvent(self, event):
        self.x = event.x()
        self.y = event.y()
        if self.mouseDown == True:
            dx = self.x - self.oldPos.x()
            dy = self.y - self.oldPos.y()
            g = self.geometry()
            if self.left == True:
                g.setLeft(g.left() + dx)
            if self.right == True:
                g.setRight(g.right() + dx)
            if self.bottom == True:
                g.setBottom(g.bottom() + dy)

            self.setGeometry(g)

            tmpx = event.x()
            if not self.left:
                tmpx = event.x()
            else:
                tmpx = self.oldPos.x()
            self.oldPos = QtCore.QPoint(tmpx, event.y())
            self.rectWidth = g.width()
        else:
            r = self.rect()
            self.left = QtCore.qAbs(self.x - r.left()) <= 5
            self.right = QtCore.qAbs(self.x - r.right()) <= 5
            self.bottom = QtCore.qAbs(self.y - r.bottom()) <= 5
            hor = self.left | self.right

            if hor and self.bottom == True:
                if self.left == True:
                    self.setCursor(QtCore.Qt.SizeBDiagCursor)
                else:
                    self.setCursor(QtCore.Qt.SizeFDiagCursor)
            elif hor == True:
                self.setCursor(QtCore.Qt.SizeHorCursor)
            elif self.bottom == True:
                self.setCursor(QtCore.Qt.SizeVerCursor)
            else:
                self.setCursor(QtCore.Qt.ArrowCursor)
Esempio n. 26
0
 def mouseMoveEvent(self, e):
     #initiate drag event only until threshold has been superpassed, to prevent
     #drag thing when just clicking to start an app
     if self.distance(e.pos(), self.mousePressPos) < self.dragThreshold:
         return
     #what was this for
     if e.buttons() == QtCore.Qt.RightButton:
         return
     #prevent the dragged app from being dropped in the drawer itself
     self.parent().setAcceptDrops(False)
     for w in self.findChildren(QtGui.QLabel):
         w.pmUp()
     super(DrawerEntryBase, self).mouseReleaseEvent(e)
     #convert freedesktop entry to url for mimedata
     url = QtCore.QUrl(self.desktopentrypath)
     urls = [url]
     mimeData = QtCore.QMimeData()
     mimeData.setUrls(urls)
     #find the child with the icon inside, grab and set translucent for display during drag
     for c in self.children():
         if c.isIcon: break
     pixmap = QtGui.QPixmap.grabWidget(c)
     painter = QtGui.QPainter(pixmap)
     painter.setCompositionMode(painter.CompositionMode_DestinationIn)
     painter.fillRect(pixmap.rect(), QtGui.QColor(0, 0, 0, 180))
     painter.end()
     drag = QtGui.QDrag(self)
     drag.setMimeData(mimeData)
     drag.setPixmap(pixmap)
     #set 'hot spot' in the center of the dragged pixmap
     drag.setHotSpot(QtCore.QPoint(pixmap.width() / 2, pixmap.height() / 2))
     # start the drag operation
     # exec_ will return the accepted action from dropEvent (?)
     if drag.exec_(QtCore.Qt.CopyAction
                   | QtCore.Qt.MoveAction) == QtCore.Qt.MoveAction:
         print 'moved'
         #accept drops again after dragging operation
         self.parent().setAcceptDrops(True)
     else:
         print 'copied'
         self.parent().setAcceptDrops(True)
Esempio n. 27
0
    def paint(self, painter, option, index):
        """ painter(painter: QPainter, option QStyleOptionViewItem,
                    index: QModelIndex) -> None
        Repaint the top-level item to have a button-look style
        
        """
        model = index.model()
        if (model.parent(index).isValid() == False
                or model.parent(index).parent().isValid() == False):
            style = self.treeView.style()
            r = option.rect
            textrect = QtCore.QRect(r.left() + 10, r.top(),
                                    r.width() - 10, r.height())
            font = painter.font()
            font.setBold(True)
            painter.setFont(font)
            text = option.fontMetrics.elidedText(
                model.data(index, QtCore.Qt.DisplayRole).toString(),
                QtCore.Qt.ElideMiddle,
                textrect.width() - 10)
            style.drawItemText(painter, textrect, QtCore.Qt.AlignLeft,
                               option.palette, self.treeView.isEnabled(), text)
            painter.setPen(QtGui.QPen(QtCore.Qt.black))
            fm = QtGui.QFontMetrics(font)
            size = fm.size(QtCore.Qt.TextSingleLine, text)
            #painter.drawLine(textrect.left()-5,
            #                 textrect.bottom()-1,
            #                 textrect.left()+size.width()+5,
            #                 textrect.bottom()-1)

            annotatedId = model.data(index, QtCore.Qt.UserRole + 1)
            if annotatedId.isValid():
                idRect = QtCore.QRect(
                    QtCore.QPoint(textrect.left() + size.width() + 5,
                                  textrect.top()), textrect.bottomRight())
                QAnnotatedPipelineView.drawId(
                    painter, idRect,
                    annotatedId.toInt()[0],
                    QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
        else:
            QtGui.QItemDelegate.paint(self, painter, option, index)
Esempio n. 28
0
    def startDrag(self, event):
        ''' Draging owned units'''
        index = self.indexAt(event.pos())
        if not index.isValid(): return

        ## selected is the relevant person object
        itemSelected = self.model().data(index, QtCore.Qt.UserRole)
        if not itemSelected.canmove: return
        selected = dict(group=self.group, uid=itemSelected.uid)

        bstream = cPickle.dumps(selected)
        mimeData = QtCore.QMimeData()
        mimeData.setData("application/x-ownedunit-reinforcement", bstream)

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)

        drag.setPixmap(self.itemAt(event.pos()).icon().pixmap(50, 50))

        drag.setHotSpot(QtCore.QPoint(0, 0))
        drag.start(QtCore.Qt.MoveAction)
Esempio n. 29
0
    def __init__(self, parent):
        QtGui.QGraphicsView.__init__(self, parent)

        self._zoom = 1.0
        self._currentNodeUi = None
        self._panning = False
        self._currentCenterPoint = QtCore.QPointF()
        self._lastPanPoint = QtCore.QPoint()

        self.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.setAcceptDrops(True)
        self.setRenderHint(QtGui.QPainter.Antialiasing)
        self.setDragMode(QtGui.QGraphicsView.RubberBandDrag)
        self.setSceneRect(-5000, -5000, 10000, 10000)
        self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)

        QtGui.QShortcut(QtGui.QKeySequence("Delete"), self, self._deleteKey)
        QtGui.QShortcut(QtGui.QKeySequence("Backspace"), self, self._deleteKey)
        QtGui.QShortcut(QtGui.QKeySequence("Ctrl+C"), self, self._copyKey)
        QtGui.QShortcut(QtGui.QKeySequence("Ctrl+V"), self, self._pasteKey)
Esempio n. 30
0
    def initNodes(self, width, height):
        nodeNames = ["Internet", "Site 1", "Site 2", "Site 3"]
        nodeDBName = [
            "INTERNET", "EnterpriseSite1", "EnterpriseSite2", "EnterpriseSite3"
        ]
        nodeWidth = NODE_WIDTH_SCALE * width
        nodeHeight = NODE_HEIGHT_SCALE * width

        nodeRadius = height * 0.4
        nodePositions = [QtCore.QPoint(0, 0)]
        for i in range(0, len(nodeNames)):
            point = QtCore.QPointF(
                nodeRadius * math.cos(math.radians(self.startAngle)),
                nodeRadius * math.sin(math.radians(self.startAngle)))
            nodePositions.append(point)
            self.startAngle = self.startAngle + self.angleStep
            node = SiteNode(nodePositions[i], width * CENTER_X_SCALE,
                            height * CENTER_Y_SCALE, nodeWidth, nodeHeight,
                            nodeNames[i], self.health[i], nodeDBName[i])
            self.nodeList.append(node)
        self.startAngle = -90