Esempio n. 1
0
def exec_image_open_dialog(parent, basedir='', app_name=None,
                           to_grayscale=True, dtype=None):
    """
    Executes an image open dialog box (QFileDialog.getOpenFileName)
        * parent: parent widget (None means no parent)
        * basedir: base directory ('' means current directory)
        * app_name (opt.): application name (used as a title for an eventual 
          error message box in case something goes wrong when saving image)
        * to_grayscale (default=True): convert image to grayscale
    
    Returns (filename, data) tuple if dialog is accepted, None otherwise
    """
    saved_in, saved_out, saved_err = sys.stdin, sys.stdout, sys.stderr
    sys.stdout = None
    filename, _filter = getopenfilename(parent, _("Open"), basedir,
                                io.iohandler.get_filters('load', dtype=dtype))
    sys.stdin, sys.stdout, sys.stderr = saved_in, saved_out, saved_err
    filename = to_text_string(filename)
    try:
        data = io.imread(filename, to_grayscale=to_grayscale)
    except Exception as msg:
        import traceback
        traceback.print_exc()
        QMessageBox.critical(parent,
             _('Error') if app_name is None else app_name,
             (_("%s could not be opened:") % osp.basename(filename))+\
             "\n"+str(msg))
        return
    return filename, data
Esempio n. 2
0
def exec_image_open_dialog(parent,
                           basedir='',
                           app_name=None,
                           to_grayscale=True,
                           dtype=None):
    """
    Executes an image open dialog box (QFileDialog.getOpenFileName)
        * parent: parent widget (None means no parent)
        * basedir: base directory ('' means current directory)
        * app_name (opt.): application name (used as a title for an eventual 
          error message box in case something goes wrong when saving image)
        * to_grayscale (default=True): convert image to grayscale
    
    Returns (filename, data) tuple if dialog is accepted, None otherwise
    """
    saved_in, saved_out, saved_err = sys.stdin, sys.stdout, sys.stderr
    sys.stdout = None
    filename, _filter = getopenfilename(
        parent, _("Open"), basedir,
        io.iohandler.get_filters('load', dtype=dtype))
    sys.stdin, sys.stdout, sys.stderr = saved_in, saved_out, saved_err
    filename = to_text_string(filename)
    try:
        data = io.imread(filename, to_grayscale=to_grayscale)
    except Exception as msg:
        import traceback
        traceback.print_exc()
        QMessageBox.critical(parent,
             _('Error') if app_name is None else app_name,
             (_("%s could not be opened:") % osp.basename(filename))+\
             "\n"+str(msg))
        return
    return filename, data
Esempio n. 3
0
 def open_image(self):
     """Open image file"""
     saved_in, saved_out, saved_err = sys.stdin, sys.stdout, sys.stderr
     sys.stdout = None
     filename, _filter = getopenfilename(self, _("Open"), "",
                                         io.iohandler.get_filters('load'))
     sys.stdin, sys.stdout, sys.stderr = saved_in, saved_out, saved_err
     if filename:
         self.mainwidget.add_image_from_file(filename)
Esempio n. 4
0
 def open_image(self):
     """Open image file"""
     saved_in, saved_out, saved_err = sys.stdin, sys.stdout, sys.stderr
     sys.stdout = None
     filename, _filter = getopenfilename(self, _("Open"), "",
                                         io.iohandler.get_filters('load'))
     sys.stdin, sys.stdout, sys.stderr = saved_in, saved_out, saved_err
     if filename:
         self.mainwidget.add_image_from_file(filename)
Esempio n. 5
0
 def open_csv(self):
     """Open csv file"""
     saved_in, saved_out, saved_err = sys.stdin, sys.stdout, sys.stderr
     sys.stdout = None
     filename, _filter = getopenfilename(self, _("Open a CSV file"), "",
                                         io.iohandler.get_filters('load'))
     sys.stdin, sys.stdout, sys.stderr = saved_in, saved_out, saved_err
     if filename:
         self.mainwidget.csvmodel.addCSV(filename)
Esempio n. 6
0
 def preflag(self):
     filename = getopenfilename(self, _("Open"), "")
     if not str(filename[0]):
         return -1
     else:
         #try:
         self.flagname = str(filename[0])
         self.data_ref.flag = self.data_ref.get_flag_curve(
             self.flagname, self.dssel.section)
         self.properties_changed()
Esempio n. 7
0
    def _open_file(self):
        saved_in, saved_out, saved_err = sys.stdin, sys.stdout, sys.stderr
        sys.stdout = None
        filename, _filter = getopenfilename(self, _("Open"), "")
        sys.stdin, sys.stdout, sys.stderr = saved_in, saved_out, saved_err

        if filename:
            extension = splitext(str(filename))[1]
            if extension not in ['.fits', '.hdf5', '.hdf', '.h5']:
                msgBox = QMessageBox()
                msgBox.setText("Wrong file type!")
                msgBox.exec_()
                return -1

            if extension == '.fits':
                file_type = "fits"
            elif extension == (".hdf5" or ".h5" or ".hdf"):
                msgBox = QMessageBox()
                msgBox.setText(
                    "Are data spectrometric or spectropolarimetric?")
                msgBox.addButton(QPushButton('Spect'), QMessageBox.NoRole)
                msgBox.addButton(QPushButton('Polar'), QMessageBox.YesRole)
                ret = msgBox.exec_()
                if ret == False:
                    widg_type = 0
                    file_type = 'hdf'
                elif ret == True:
                    widg_type = 1
                    file_type = 'hdf_pola'

            self.data = dwdata.DWData()
            self.data.open_data(filename, file_type)
            if file_type == 'fits':
                if self.data.data_type_dict[0][0] == 'simple':
                    widg_type = 0
                elif self.data.data_type_dict[0][0] == 'stokes':
                    widg_type = 1

            if widg_type == 0:
                self.setup_central_widget(dwwidg.MainWidget, self.toolbar)
            elif widg_type == 1:
                self.setup_central_widget(dwwidg.PolaViewerWidget,
                                          self.toolbar)
            self.set_flag_toolbar()

            self.mainwidget.open_setup(self.data)
            self.setWindowTitle(APP_NAME + " - " + filename)
Esempio n. 8
0
    def apply_fit(self):
        msgBox = QMessageBox()
        msgBox.setText("Apply corrections?")
        msgBox.setInformativeText(
            "Select to which files will be applied the correction.")
        CancelButton = msgBox.addButton("Cancel", msgBox.RejectRole)
        SelectButton = msgBox.addButton("Select", msgBox.NoRole)
        AllButton = msgBox.addButton("All", msgBox.YesRole)
        #msgBox.setDefaultButton(QMessageBox.Cancel)
        msgBox.exec_()
        if msgBox.clickedButton() == CancelButton:
            return -1
        elif msgBox.clickedButton() == AllButton:
            filelist = None
        elif msgBox.clickedButton() == SelectButton:
            flret = getopenfilenames(self, _("Select file list"),
                                     self.data_ref.dir_name)[0]
            filelist = []
            for f in flret:
                filelist.append((basename(str(f)), dirname(str(f))))
            msgBox = QMessageBox()
            msgBox.setText("Select the correction file")
            msgBox.addButton(QMessageBox.Ok)
            msgBox.exec_()

        filename = getopenfilename(
            self, _("Correction file"),
            self.data_ref.dir_name + "/" + basename(
                normpath(self.data_ref.dir_name) + "_fit." +
                self.data_ref.files_type))
        try:
            self.data_ref.applycorr(str(filename[0]), filelist)
        except:
            msgBox = QMessageBox()
            msgBox.setText("Not a correction file!")
            msgBox.exec_()
            return -1