コード例 #1
0
    def genMp4(self):
        msg = QMessageBox()
        ffmpegPath = os.path.join(os.path.dirname(__file__), 'ffmpeg.exe')

        lapse = int(self.dlg.timeLapseEdit.text())
        cmd = (
            ffmpegPath + ' -r' + ' 1/' + str(lapse) + ' -start_number' + ' 0' +
            ' -i ' + toUnicode(os.path.join(
                self.workingFolder, '%03d.png')).encode('big5') + ' -c:v' +
            ' libx264' + ' -r' + ' 30' + ' -pix_fmt' + ' yuv420p ' + toUnicode(
                os.path.join(self.workingFolder,
                             self.dlg.outputNameEdit.text())).encode('big5') +
            '.mp4')
        subprocess.Popen([
            'cmd', '/c', 'del',
            toUnicode(
                os.path.join(self.workingFolder,
                             self.dlg.outputNameEdit.text())).encode('big5') +
            '.mp4'
        ])
        t = subprocess.call(cmd, shell=True)
        if t == 0:
            msg.setIcon(QMessageBox.Information)
            msg.setText(message['msg05'])
            msg.setWindowTitle(message['msg06'])
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec_()
        elif t == 1:
            msg.setIcon(QMessageBox.Critical)
            msg.setText(message['msg07'])
            msg.setWindowTitle(message['msg08'])
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec_()
コード例 #2
0
 def add(self):
     if self.status == self.NOT_IN_SYNC:
         msgBox = QMessageBox()
         msgBox.setWindowTitle("Layer was already exported")
         msgBox.setText(
             "This layer was exported already at a different commit.\n"
             "Which one would you like to add to your QGIS project?")
         msgBox.addButton(QPushButton('Use previously exported commit'),
                          QMessageBox.YesRole)
         msgBox.addButton(QPushButton('Use latest commit from this branch'),
                          QMessageBox.NoRole)
         msgBox.addButton(QPushButton('Cancel'), QMessageBox.RejectRole)
         QApplication.restoreOverrideCursor()
         ret = msgBox.exec_()
         if ret == 0:
             checkoutLayer(self.repo, self.layer, None,
                           self.currentCommitId)
         elif ret == 1:
             try:
                 layer = checkoutLayer(self.repo, self.layer, None,
                                       self.branchCommitId)
                 repoWatcher.layerUpdated.emit(layer)
             except HasLocalChangesError:
                 QMessageBox.warning(
                     config.iface.mainWindow(), 'Cannot export this commit',
                     "The layer has local changes that would be overwritten.\n"
                     "Either sync layer with branch or revert local changes "
                     "before changing commit", QMessageBox.Ok)
     else:
         checkoutLayer(self.repo, self.layer, None, self.branchCommitId)
コード例 #3
0
 def add():
     if self.status == self.NOT_IN_SYNC:
         msgBox = QMessageBox()
         msgBox.setText(
             "This layer was exported already at a different version.\nWhich version would you like to add to your QGIS project?"
         )
         msgBox.addButton(QPushButton('Use exported version'),
                          QMessageBox.YesRole)
         msgBox.addButton(QPushButton('Use version from this branch'),
                          QMessageBox.NoRole)
         msgBox.addButton(QPushButton('Cancel'), QMessageBox.RejectRole)
         QApplication.restoreOverrideCursor()
         ret = msgBox.exec_()
         if ret == 0:
             checkoutLayer(self.repo, self.layer, None,
                           self.currentCommitId)
         elif ret == 1:
             try:
                 layer = checkoutLayer(self.repo, self.layer, None,
                                       branchCommitId)
                 repoWatcher.layerUpdated.emit(layer)
             except HasLocalChangesError:
                 QMessageBox.warning(
                     config.iface.mainWindow(), 'Cannot change version',
                     "There are local changes that would be overwritten.\n"
                     "Revert them before changing version.",
                     QMessageBox.Ok)
     else:
         checkoutLayer(self.repo, self.layer, None, branchCommitId)
コード例 #4
0
    def yes_no_q(self, msg, title=''):
        d = QMessageBox()
        d.setWindowTitle(title)
        d.addButton(QMessageBox.Yes)
        d.addButton(QMessageBox.No)
        d.setDefaultButton(QMessageBox.No)
        d.setText(msg)
        ret = d.exec_()

        if ret == QMessageBox.Yes:
            return True
        else:
            return False
コード例 #5
0
    def genGif(self):
        msg = QMessageBox()
        try:
            reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
            k = _winreg.OpenKey(reg, r'SOFTWARE\ImageMagick\Current')
            pathName = os.path.join(
                _winreg.QueryValueEx(k, 'BinPath')[0], 'magick.exe')
        except (WindowsError):
            msg.setIcon(QMessageBox.Critical)
            msg = message['msg01']
            msg.setWindowTitle(message['msg02'])
            msg.setText(message)
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec_()

            return None

        lapse = int(self.dlg.timeLapseEdit.text())
        cmd = [
            'cmd', '/c',
            toUnicode(pathName).encode('big5'), 'convert', '-loop', '0',
            '-delay',
            str(lapse) + 'x1'
        ]
        for path in self.renderedLayerList:
            cmd.append(path)

        outName = self.dlg.outputNameEdit.text() + '.gif'

        cmd.append(
            toUnicode(os.path.join(self.workingFolder,
                                   outName)).encode('big5'))
        subprocess.call(cmd, shell=True)
        msg.setIcon(QMessageBox.Information)
        msg.setText(message['msg03'])
        msg.setWindowTitle(message['msg04'])
        msg.setStandardButtons(QMessageBox.Ok)
        msg.exec_()
コード例 #6
0
 def add(self):
     if self.status == self.NOT_IN_SYNC:
         msgBox = QMessageBox()
         msgBox.setWindowTitle("Layer was already exported")
         msgBox.setText("This layer was exported already at a different commit.\n"
                        "Which one would you like to add to your QGIS project?")
         msgBox.addButton(QPushButton('Use previously exported commit'), QMessageBox.YesRole)
         msgBox.addButton(QPushButton('Use latest commit from this branch'), QMessageBox.NoRole)
         msgBox.addButton(QPushButton('Cancel'), QMessageBox.RejectRole)
         QApplication.restoreOverrideCursor()
         ret = msgBox.exec_()
         if ret == 0:
             checkoutLayer(self.repo, self.layer, None, self.currentCommitId)
         elif ret == 1:
             try:
                 layer = checkoutLayer(self.repo, self.layer, None, self.branchCommitId)
                 repoWatcher.layerUpdated.emit(layer)
             except HasLocalChangesError:
                 QMessageBox.warning(config.iface.mainWindow(), 'Cannot export this commit',
                                     "The layer has local changes that would be overwritten.\n"
                                     "Either sync layer with branch or revert local changes "
                                     "before changing commit",QMessageBox.Ok)
     else:
         checkoutLayer(self.repo, self.layer, None, self.branchCommitId)