Пример #1
0
    def qrencode(self, fileName=None):
        #Functions to get the correct data
        data_fields = {
            "text": unicode(self.textEdit.toPlainText()),
            "url": unicode(self.urlEdit.text()),
            "bookmark": ( unicode(self.bookmarkTitleEdit.text()), unicode(self.bookmarkUrlEdit.text()) ),
            "email": unicode(self.emailEdit.text()),
            "emailmessage": ( unicode(self.emailEdit.text()), unicode(self.emailSubjectEdit.text()), unicode(self.emailBodyEdit.toPlainText()) ),
            "telephone": unicode(self.telephoneEdit.text()),
            "phonebook": (('N',unicode(self.phonebookNameEdit.text())),
                          ('TEL', unicode(self.phonebookTelEdit.text())),
                          ('EMAIL',unicode(self.phonebookEMailEdit.text())),
                          ('NOTE', unicode(self.phonebookNoteEdit.text())),
                          ('BDAY', unicode(self.phonebookBirthdayEdit.date().toString("yyyyMMdd")) if self.phonebookBirthdayLabel.isChecked() else ""), #YYYYMMDD
                          ('ADR', unicode(self.phonebookAddressEdit.text())),  #The fields divided by commas (,) denote PO box, room number, house number, city, prefecture, zip code and country, in order.
                          ('URL', unicode(self.phonebookUrlEdit.text())),
                          # ('NICKNAME', ''),
                        ),
            "sms": ( unicode(self.smsNumberEdit.text()), unicode(self.smsBodyEdit.toPlainText()) ),
            "mms": ( unicode(self.mmsNumberEdit.text()), unicode(self.mmsBodyEdit.toPlainText()) ),
            "geo": ( unicode(self.geoLatEdit.text()), unicode(self.geoLongEdit.text()) ),
            "wifi": ( unicode(self.wifiSSIDEdit.text()), (u"WEP",u"WPA",u"nopass")[self.wifiEncriptionType.currentIndex()], unicode(self.wifiPasswordEdit.text()))
        }

        data_type = unicode(self.templates[unicode(self.selector.currentText())])
        data = data_fields[data_type]
        
        level = (u'L',u'M',u'Q',u'H')

        if data:
            if data_type == 'emailmessage' and data[1] == '' and data[2] == '':
                data_type = 'email'
                data = data_fields[data_type]
            qr = QR(pixel_size = unicode(self.pixelSize.value()),
                    data = data,
                    level = unicode(level[self.ecLevel.currentIndex()]),
                    margin_size = unicode(self.marginSize.value()),
                    data_type = data_type,
                    )
            error = 1
            if type(fileName) is not unicode:
                error = qr.encode()
            else:
                error = qr.encode(fileName)
            if error == 0:
                self.qrcode.setPixmap(QtGui.QPixmap(qr.filename))
                self.saveButton.setEnabled(True)
            else:
                if NOTIFY:
                    n = pynotify.Notification(
                        "QtQR",
                        unicode(self.trUtf8("ERROR: Something went wrong while trying to generate the QR Code.")),
                        "qtqr"
                        )
                    n.show()
                else:
                    print "Something went wrong while trying to generate the QR Code"
            qr.destroy()
        else:
            self.saveButton.setEnabled(False)
Пример #2
0
 def decodeWebcam(self):
     vdDialog = VideoDevices()
     if vdDialog.exec_():
         device = vdDialog.videoDevices[vdDialog.videoDevice.currentIndex()][1]
         qr = QR()
         qr.decode_webcam(device=device)
         if qr.data_decode[qr.data_type](qr.data) == 'NULL':
             QtGui.QMessageBox.warning(
                 self,
                 self.trUtf8("Decoding Failed"),
                 self.trUtf8("<p>Oops! no code was found.<br /> Maybe your webcam didn't focus.</p>"),
                 QtGui.QMessageBox.Ok
             )
         else:
             self.showInfo(qr)
         qr.destroy()
Пример #3
0
def _qr_code(qr_code_data):
    """
        Create QR code.
        @type qr_code_data: string
        @param qr_code_data: Data to encode in the qr code
    """
    if not qr_code_data:
        return "/static/images/default.png"

    qr_code_data = "\n".join(qr_code_data)
    qr_code_data = "mecard:" + qr_code_data
    qr_code = QR(qr_code_data)
    qr_code.encode()
    with open(qr_code.filename) as filename:
        data = filename.read()
        return "data:image/png;base64," + data.encode('base64')
    qr_code.destroy()
Пример #4
0
 def decodeFile(self, fn=None):
     if not fn:
         fn = unicode(QtGui.QFileDialog.getOpenFileName(
             self,
             self.trUtf8('Open QRCode'),
             filter=self.trUtf8('Images (*.png *.jpg);; All Files (*.*)')
             )
         )
     if os.path.isfile(fn):
         qr = QR(filename=fn)
         if qr.decode():
             self.showInfo(qr)
         else:
             QtGui.QMessageBox.information(
                 self,
                 self.trUtf8('Decode File'),
                 unicode(self.trUtf8('No QRCode could be found in file: <b>%s</b>.')) % fn
             )
         qr.destroy()