Beispiel #1
0
    def build_report(self):
        file_choices = "Jinga template (*.jing)"
        
        source_name = QFileDialog.getOpenFileName(self, 'Open template', 'templates', file_choices)

        if not (source_name and source_name[0]):
          return

        source_name = source_name[0]
        report_name = ".".join(source_name.split("/")[-1].split(".")[:-1])
        report_dir = source_name.split("/")[:-1]
        target_name = QFileDialog.getSaveFileName(self, 'Save report', "%s/%s" % (report_dir, report_name), 'Report file (%s)' % report_name)

        if not (target_name and target_name[0]):
          return

        target_name = target_name[0]
        splash_pix = QPixmap('splash_loading.png')
        splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint)
        splash.setMask(splash_pix.mask())
        splash.show()
        
        self.app.processEvents()
        Report.to_transform(self, source_name, target_name)
        
        splash.close()
        try:
          from subprocess import Popen, PIPE
          p = Popen(['xsel','-pi'], stdin=PIPE)
          p.communicate(input=target_name)
          copied = True
        except:
          copied = False
        QMessageBox.about(self, "Report generated", "Report saved into '%s'%s" % (target_name, "" if not copied else " (copied into clipboard)"))