Esempio n. 1
0
    def image_to_byte_test(self):
        """
        Test the image_to_byte() function
        """
        with patch('openlp.core.lib.QtCore') as MockedQtCore:
            # GIVEN: A set of mocked-out Qt classes
            mocked_byte_array = MagicMock()
            MockedQtCore.QByteArray.return_value = mocked_byte_array
            mocked_byte_array.toBase64.return_value = QtCore.QByteArray('base64mock')
            mocked_buffer = MagicMock()
            MockedQtCore.QBuffer.return_value = mocked_buffer
            MockedQtCore.QIODevice.WriteOnly = 'writeonly'
            mocked_image = MagicMock()

            # WHEN: We convert an image to a byte array
            result = image_to_byte(mocked_image)

            # THEN: We should receive a value of 'base64mock'
            MockedQtCore.QByteArray.assert_called_with()
            MockedQtCore.QBuffer.assert_called_with(mocked_byte_array)
            mocked_buffer.open.assert_called_with('writeonly')
            mocked_image.save.assert_called_with(mocked_buffer, "PNG")
            mocked_byte_array.toBase64.assert_called_with()
            self.assertEqual('base64mock', result, 'The result should be the return value of the mocked out '
                                                   'base64 method')
Esempio n. 2
0
 def on_btnPrint_clicked(self):
     widgetIndex = self.tabWidget.currentIndex()
     if widgetIndex == 1:
         model = self.modelTemperatureSheet
         doc = QtGui.QTextDocument()
         cursor = QtGui.QTextCursor(doc)
         cursor.setCharFormat(CReportBase.ReportTitle)
         cursor.insertText(u'Таблица температурного листа\n')
         cursor.insertBlock()
         cursor.setCharFormat(CReportBase.ReportBody)
         cursor.insertText(u'Пациент: %s' %
                           (getClientString(self.clientId)))
         cursor.insertText(u'\nОтчёт составлен: ' +
                           forceString(QtCore.QDateTime.currentDateTime()))
         cursor.insertBlock()
         colWidths = [
             self.tblTemperatureSheet.columnWidth(i)
             for i in xrange(model.columnCount() - 1)
         ]
         colWidths.insert(0, 10)
         totalWidth = sum(colWidths)
         tableColumns = []
         iColNumber = False
         for iCol, colWidth in enumerate(colWidths):
             widthInPercents = str(max(1, colWidth * 90 / totalWidth)) + '%'
             if iColNumber == False:
                 tableColumns.append(
                     (widthInPercents, [u'№'], CReportBase.AlignRight))
                 iColNumber = True
             headers = model.headers
             tableColumns.append(
                 (widthInPercents, [forceString(headers[iCol][1])],
                  CReportBase.AlignLeft))
         table = createTable(cursor, tableColumns)
         for iModelRow in xrange(model.rowCount()):
             iTableRow = table.addRow()
             table.setText(iTableRow, 0, iModelRow + 1)
             for iModelCol in xrange(model.columnCount()):
                 index = model.createIndex(iModelRow, iModelCol)
                 text = forceString(model.data(index))
                 table.setText(iTableRow, iModelCol + 1, text)
         html = doc.toHtml(QtCore.QByteArray('utf-8'))
         view = CReportViewDialog(self)
         view.setText(html)
         view.exec_()
     else:
         printer = QtGui.QPrinter(QtGui.QPrinter.HighResolution)
         printer.setOrientation(QtGui.QPrinter.Landscape)
         dialog = QtGui.QPrintDialog(printer, self)
         if dialog.exec_():
             painter = QtGui.QPainter(printer)
             scale = min(
                 printer.pageRect().width() /
                 self.scrollArea.widget().width(),
                 printer.pageRect().height() /
                 self.scrollArea.widget().height())
             painter.scale(scale, scale)
             self.scrollArea.widget().render(painter)
             painter.end()
Esempio n. 3
0
def main():

	# gen Pixmaps.py
	with open(os.path.join(DirRes, 'Pixmaps.py'), 'w') as fp:
		fp.write('# auto generated resource file. WARNING: do not edit\n')
		fp.write('from PyQt4 import QtCore, QtGui\n')
		fp.write('_cache = {}\n')
		for name in os.listdir(DirPixmaps):
			fileName = os.path.join(DirPixmaps, name)
			if not os.path.isfile(fileName): continue
			if not os.path.splitext(name)[1].lower() == '.png': continue
			arr = QtCore.QByteArray()
			p = QtCore.QBuffer(arr)
			p.open(p.WriteOnly)
			px = QtGui.QPixmap(fileName, 'PNG')
			px.save(p, 'png')

			funtionName = os.path.splitext(name)[0]
			fp.write('def %s():\n' % funtionName)
			fp.write('\tpx = _cache.get("%s", None)\n' % funtionName)
			fp.write('\tif px is None:\n')
			fp.write('\t\tarr = QtCore.QByteArray.fromBase64("%s")\n' % arr.toBase64() )
			fp.write('\t\tpx = QtGui.QPixmap()\n')
			fp.write('\t\tpx.loadFromData(arr, "PNG")\n' )
			fp.write('\t\t_cache["%s"] = px\n' % funtionName)
			fp.write('\treturn px\n')

	# gen HtmlPages.py
	with open(os.path.join(DirRes, 'HtmlPages.py'), 'w') as fp:
		fp.write('# auto generated resource file. WARNING: do not edit\n')
		fp.write('from PyQt4 import QtCore\n')
		fp.write('_cache = {}\n')
		for name in os.listdir(DirHtmlPages):
			fileName = os.path.join(DirHtmlPages, name)
			if not os.path.isfile(fileName): continue
			if not os.path.splitext(name)[1].lower() == '.html': continue
			with open(fileName, 'r') as fp2:
				arr = QtCore.QByteArray(fp2.read() )

			funtionName = os.path.splitext(name)[0]
			fp.write('def %s():\n' % funtionName)
			fp.write('\tarr = _cache.get("%s", None)\n' % funtionName)
			fp.write('\tif arr is None:\n')
			fp.write('\t\tarr = QtCore.QByteArray.fromBase64("%s")\n' % arr.toBase64() )
			fp.write('\t\t_cache["%s"] = arr\n' % funtionName)
			fp.write('\treturn QtCore.QString(arr)\n')
Esempio n. 4
0
 def docRead(self, readWrite, r):
     data = r.readAll('FILE')
     image = QtGui.QImage()
     image.loadFromData(QtCore.QByteArray(data))
     if image.isNull():
         return
     self.imageLabel.setPixmap(QtGui.QPixmap.fromImage(image))
     self.__adjustSize()
Esempio n. 5
0
    def __imageHandler(self):
        self._ui.tContent.setVisible(False)
        self._ui.wImage.setVisible(True)

        data = QtCore.QByteArray(self._content)
        pixmap = QtGui.QPixmap()
        pixmap.loadFromData(data)
        self._ui.lImage.setPixmap(pixmap)
Esempio n. 6
0
def byte_array_from(qimage):
    image_data = QtCore.QByteArray()
    buffer = QtCore.QBuffer(image_data)
    buffer.open(QtCore.QIODevice.WriteOnly)
    qimage.save(buffer, 'PNG')
    buffer.close()

    return image_data
Esempio n. 7
0
    def receiveMessage(self):
        ins = QtCore.QDataStream(self.socket)
        ins.setVersion(QtCore.QDataStream.Qt_4_4)
        self.socket.bytesAvailable()

        result = QtCore.QByteArray()
        ins >> result
        self.hasRight = json.loads(forceString(result))
Esempio n. 8
0
    def getScene(self):

        instr = QtCore.QDataStream(self.tcpSocket)
        instr.setVersion(QtCore.QDataStream.Qt_4_0)

        while True:

            if self.blockSize == 0:
                if self.tcpSocket.bytesAvailable() < 4:
                    return

                self.blockSize = instr.readUInt32()

            if self.tcpSocket.bytesAvailable() < self.blockSize:
                return

            self.blockSize = 0

            pix = QtGui.QImage()
            ba = QtCore.QByteArray()
            instr >> ba

            # skip this frame if there is another one in buffer
            if self.tcpSocket.bytesAvailable() > 0:
                rospy.logdebug("Frame dropped")
                continue

            # start = time.time()

            # 16ms
            if not pix.loadFromData(ba, "JPG"):
                rospy.logerr("Failed to load image from received data")
                return

            if self.calibrating or not self.projectors_calibrated or not self.maps_ready:
                return

            # 3ms
            img = pix.convertToFormat(QtGui.QImage.Format_ARGB32)
            v = qimage2ndarray.rgb_view(img)

            # TODO some further optimalization? this is about 30ms (with INTER_LINEAR)s...
            image_np = cv2.remap(v, self.map_x, self.map_y, cv2.INTER_LINEAR)

            # this is about 3ms
            height, width, channel = image_np.shape
            bytesPerLine = 3 * width
            image = QtGui.QPixmap.fromImage(
                QtGui.QImage(image_np.data, width, height, bytesPerLine,
                             QtGui.QImage.Format_RGB888))

            self.pix_label.setPixmap(image)
            self.update()

            # end = time.time()
            # rospy.logdebug("Frame loaded in: " + str(end-start))

            return
Esempio n. 9
0
    def sendMessage(self):
        buf = QtCore.QBuffer()
        buf.open(QtCore.QBuffer.ReadWrite)
        out = QtCore.QDataStream(buf)
        out.setVersion(QtCore.QDataStream.Qt_4_4)

        out << QtCore.QByteArray(json.dumps(self.hasRight))
        self.serverSocket.write(buf.data().data())
        self.serverSocket.flush()
Esempio n. 10
0
 def createRequest(self, op, req, outgoingData):
     if self.token is not None:
         req.setRawHeader("X-Authentication-Token", QtCore.QByteArray(self.token))
     # Block TTF under Mac
     if sys.platform == "darwin" and unicode(req.url().path()).endswith(".ttf"):
         # Block .ttf file for now as there are badly displayed
         return super(TokenNetworkAccessManager, self).createRequest(op,
                     QtNetwork.QNetworkRequest(QtCore.QUrl()), outgoingData)
     return super(TokenNetworkAccessManager, self).createRequest(op, req, outgoingData)
    def run(self):
        self.cam = self.cam.copy()
        self.cam.connect()
        self.setPriority(QtCore.QThread.IdlePriority)
        self.time = time()
        self.compression = self.cam['compression']
        self.count = 0.
        #       frame_number = self.cam.get('frame_number')
        frame_number = 0
        force = True
        # Create new cam object with connection unique to this thread.
        tcam = self.cam
        while self.stream:
            if not self.parent().isVisible():
                sleep(self.waiting)
                continue
            fr = tcam.new_frame(frame_number, force)
            if not fr:
                self.stream = False
                continue
            crop, frs, frame_number = fr
            if force:
                force = False
            if frs is False:
                sleep(self.waiting)
                continue
            # Emit cropping region signal
            self.emit(QtCore.SIGNAL('crop(int,int,int,int)'), *crop)
            t0 = time()
            n = -1
            r = 0
            for ent in frs:
                n += 1
                if not ent:
                    continue
                x, y, w, h, fr = ent
                # Create a QImage for signalling
                img = QtGui.QImage()
                img.loadFromData(QtCore.QByteArray(fr.data), self.compression)
                #               print 'FrameProcessor.readyImage',n,x,y,w,h,len(fr.data)
                self.emit(
                    QtCore.SIGNAL('readyImage(int,int,int,int,int,QImage)'), n,
                    x, y, w, h, img)
                r += 1
            # Update counter only for good frames
            if r > 0:
                self.count += 1.
                if self.count % 10 == 0:
                    fps = self.count / (time() - self.time)
                    self.emit(QtCore.SIGNAL('fps(float)'), fps)
                    self.time = time()
                    self.count = 0.
            sleep(0.001)


#           r=raw_input('Press enter for next frame')
        self.exit(0)
Esempio n. 12
0
 def default_pixmap_as_bytes(self):
     xres = self.imgsize
     pixmap = icons.cola().pixmap(xres)
     byte_array = QtCore.QByteArray()
     buf = QtCore.QBuffer(byte_array)
     buf.open(QtCore.QIODevice.WriteOnly)
     pixmap.save(buf, 'PNG')
     buf.close()
     return byte_array
Esempio n. 13
0
 def __init__(self,
              map_name,
              download_root=VAULT_DOWNLOAD_ROOT,
              parent=None):
     QtCore.QObject.__init__(self, parent)
     self.map_name = map_name
     self.url = QtCore.QUrl(download_root + name2link(map_name))
     self.data = QtCore.QByteArray()
     self.reply = None
Esempio n. 14
0
    def fromQPixmap(klass, image):
        '''
		@param image: (QImage, QPixmap)
		'''
        arr = QtCore.QByteArray()
        p = QtCore.QBuffer(arr)
        p.open(p.WriteOnly)
        image.save(p, format='PGM')
        return klass(arr.data())
Esempio n. 15
0
 def __init__(self):
     super(FB2Info, self).__init__()
     self.Year = None
     self.Genres = QtCore.QStringList()
     self.Authors = []
     self.Translators = []
     self.documentAuthors = []
     self.Sequences = []
     self.publisherSequences = []
     self.Coverpage = QtCore.QByteArray()
Esempio n. 16
0
def svg2pm(svg, tam):
    pm = QtGui.QPixmap(tam, tam)
    pm.fill(QtCore.Qt.transparent)
    qb = QtCore.QByteArray(svg)
    render = QtSvg.QSvgRenderer(qb)
    painter = QtGui.QPainter()
    painter.begin(pm)
    render.render(painter)
    painter.end()
    return pm
    def __sendToClient(self, clientConnection, data):
        dataString = ""
        try:
            dataString = json.dumps(data)
        except Exception:
            logging.error("Cann't parse data: " + unicode(data))
            return

        message = QtCore.QByteArray(dataString)
        clientConnection.write(message + '\n')
Esempio n. 18
0
    def updateClientProgress(self, numBytes):
        self.bytesWritten += numBytes
        if self.bytesToWrite > 0:
            self.bytesToWrite -= self.tcpClient.write(
                QtCore.QByteArray('String\n'))

        self.clientProgressBar.setMaximum(DialogClient.TotalBytes)
        self.clientProgressBar.setValue(self.bytesWritten)
        self.clientStatusLabel.setText("Sent %dMB" % (self.bytesWritten /
                                                      (1024 * 1024)))
Esempio n. 19
0
 def receive(self):
     while (self.s.hasPendingDatagrams()):
         datagram = QtCore.QByteArray()
         size = self.s.pendingDatagramSize()
         data, addr, port = self.s.readDatagram(size)
         sz = "data : %s" % str(data)
         print sz, ", len : %s, size : %s " % (str(len(data)), str(size))
         #szRcvTxt = "data : " + sz4to1(data)
         #self.lbRcvTxt.setText(szRcvTxt)
         self.lbRcvTxt.setText(data)
Esempio n. 20
0
def sendMessage():
    global sock, timer

    bl = QtCore.QByteArray()
    out = QtCore.QDataStream(bl, QtCore.QIODevice.WriteOnly)
    out.writeDouble(10)

    sock.write(bl)

    timer.start(30)
Esempio n. 21
0
    def load_qibla(self, angle=None):
        if angle == None:
            direction = settingsDialog.qibla_direction()
        else:
            direction = angle

        simple_qibla_xml = self.qibla_svg(
            self.svg_rotation_to_cardinal(direction))
        qibla = QtCore.QByteArray(simple_qibla_xml)
        self.svgwidget.load(qibla)
Esempio n. 22
0
 def repaint(self, graph, parent):
     stream = BytesIO()
     if graph:
         graph.draw_graphviz(stream, 'svg')
     stream.seek(0)
     stream = QtCore.QByteArray(stream.read())
     self.setContent(stream, 'image/svg+xml')
     webframe = self.page().mainFrame()
     webframe.addToJavaScriptWindowObject('pybridge', parent)
     webframe.evaluateJavaScript(JS_GRAPH)
Esempio n. 23
0
 def default_pixmap_as_bytes(self):
     xres = self.imgsize
     pixmap = QtGui.QPixmap(resources.icon('git.svg'))
     pixmap = pixmap.scaledToHeight(xres, Qt.SmoothTransformation)
     byte_array = QtCore.QByteArray()
     buf = QtCore.QBuffer(byte_array)
     buf.open(QtCore.QIODevice.WriteOnly)
     pixmap.save(buf, 'PNG')
     buf.close()
     return byte_array
Esempio n. 24
0
    def __init__(self, view, data):
        QtSvg.QGraphicsSvgItem.__init__(self)
        # The renderer must be preserved for the lifetime of the image
        self.renderer = QtSvg.QSvgRenderer(QtCore.QByteArray(data))

        #print "IH", self.renderer.defaultSize().height()

        self.setSharedRenderer(self.renderer)
        view.gScene.addItem(self)
        self.uscale = 1.0
Esempio n. 25
0
 def accept(self):
     settings = QtCore.QSettings()
     for name in self.fontsDict.keys():
         font = self.fontsDict.get(name).font()
         arr = QtCore.QByteArray()
         buf = QtCore.QBuffer(arr)
         buf.open(QtCore.QIODevice.WriteOnly)
         QtCore.QDataStream(buf) << font
         settings.setValue(name, arr)
     settings.sync()
     super(FontSettingsDialog, self).accept()
Esempio n. 26
0
 def leePiezas(self, nombre=None):  # nombre usado por compatibilidad
     dic = {}
     for pieza in "rnbqkpRNBQKP":
         fich = os.path.join(
             self.carpetaBF,
             "%s%s.svg" % ("w" if pieza.isupper() else "b", pieza.lower()))
         f = codecs.open(fich, "r", 'utf-8', 'ignore')
         qb = QtCore.QByteArray(f.read())
         f.close()
         dic[pieza] = qb
     return dic
Esempio n. 27
0
 def mimeData(self, indexlist):
     descriptors = []
     vars = []
     for index in indexlist:
         var = self[index.row()]
         descriptors.append((var.name, vartype(var)))
         vars.append(var)
     mime = QtCore.QMimeData()
     mime.setData(self.MIME_TYPE, QtCore.QByteArray(str(descriptors)))
     mime._vars = vars
     return mime
Esempio n. 28
0
    def signal_received(self, message):
        logger.debug(QtCore.qVersion())
        try:
            if message == "reset":
                self.webView.setHtml(self.blankpage)
            else:
                self.request = QtNetwork.QNetworkRequest()
                self.request.setRawHeader(
                    "Content-Type",
                    QtCore.QByteArray('application/octet-stream'))
                self.request.setRawHeader("Accept-Language",
                                          QtCore.QByteArray("de, *"))
                self.request.setUrl(QtCore.QUrl(message))
                self.webView.load(self.request)

                # old version without user-agent
                # self.webView.load(QtCore.QUrl(message))
        except:
            self.webView.setHtml(self.startpage)
            logger.error('receive: {}'.format(message))
Esempio n. 29
0
 def onLabelFeedbackDoubleClicked(self):
     lastError = self._feedbackMessages[None]
     if lastError:
         dlg = Tc2DialogException.DialogException(lastError, parent=self)
         dlg.restoreGeometry(
             Tc2Config.settingsValue(
                 self.SettingsKeyDialogExceptionGeometry,
                 QtCore.QByteArray()).toByteArray())
         dlg.exec_()
         Tc2Config.settingsSetValue(self.SettingsKeyDialogExceptionGeometry,
                                    dlg.saveGeometry())
Esempio n. 30
0
 def mouseMoveEvent(self, event):
     if event.buttons() == QtCore.Qt.LeftButton:
         data = QtCore.QByteArray()
         mime_data = QtCore.QMimeData()
         mime_data.setData("application/x-operator", data)
         mime_data.setText(self.name)
         drag = QtGui.QDrag(self)
         drag.setMimeData(mime_data)
         drag.setHotSpot(self.rect().topLeft())
         drag.setPixmap(self.icon().pixmap(24, 24))
         drop_action = drag.start(QtCore.Qt.MoveAction)