コード例 #1
0
ファイル: PluginEricapi.py プロジェクト: skeptycal/eric6-20.3
    def __doEricapi(self):
        """
        Private slot to perform the eric6_api api generation.
        """
        from DocumentationPlugins.Ericapi.EricapiConfigDialog import (
            EricapiConfigDialog)
        eolTranslation = {
            '\r': 'cr',
            '\n': 'lf',
            '\r\n': 'crlf',
        }
        project = e5App().getObject("Project")
        parms = project.getData('DOCUMENTATIONPARMS', "ERIC4API")
        dlg = EricapiConfigDialog(project, parms)
        if dlg.exec_() == QDialog.Accepted:
            args, parms = dlg.generateParameters()
            project.setData('DOCUMENTATIONPARMS', "ERIC4API", parms)

            # add parameter for the eol setting
            if not project.useSystemEol():
                args.append("--eol={0}".format(
                    eolTranslation[project.getEolString()]))

            # now do the call
            from DocumentationPlugins.Ericapi.EricapiExecDialog import (
                EricapiExecDialog)
            dia = EricapiExecDialog("Ericapi")
            res = dia.start(args, project.ppath)
            if res:
                dia.exec_()

            outputFileName = Utilities.toNativeSeparators(parms['outputFile'])

            # add output files to the project data, if they aren't in already
            for progLanguage in parms['languages']:
                if "%L" in outputFileName:
                    outfile = outputFileName.replace("%L", progLanguage)
                else:
                    if len(parms['languages']) == 1:
                        outfile = outputFileName
                    else:
                        root, ext = os.path.splitext(outputFileName)
                        outfile = "{0}-{1}{2}".format(root,
                                                      progLanguage.lower(),
                                                      ext)

                outfile = project.getRelativePath(outfile)
                if outfile not in project.pdata['OTHERS']:
                    project.pdata['OTHERS'].append(outfile)
                    project.setDirty(True)
                    project.othersAdded(outfile)