Save the values in the input fields so they can be loaded
        next time the GUI is run

        :param fname: file path of location to store values at
        :type fname: str

def saveInputs(self, fname):
        """Save the values in the input fields so they can be loaded
        next time the GUI is run

        :param fname: file path of location to store values at
        :type fname: str
        """
        # save current inputs to file for loading next time
        if not fname:
            return
            
        appdir = systools.get_appdir()
        if not os.path.isdir(appdir):
            os.makedirs(appdir)
        fname = os.path.join(appdir, fname)

        savedict = {}
        savedict['binsz'] = self.ui.binszSpnbx.value()
        savedict['aifs'] = self.ui.aifsSpnbx.value()
        savedict['tscale'] = self.tscale
        savedict['fscale'] = self.fscale
        savedict['saveformat'] = self.saveformat
        savedict['ex_nreps'] = self.ui.exploreStimEditor.repCount()
        savedict['reprate'] = self.ui.reprateSpnbx.value()
        savedict['windowsz'] = self.ui.windowszSpnbx.value()
        savedict['specargs'] = self.specArgs
        savedict['viewSettings'] = self.viewSettings
        savedict['calvals'] = self.calvals
        savedict['calparams'] = self.acqmodel.calibration_template()
        savedict['calreps'] = self.ui.calibrationWidget.ui.nrepsSpnbx.value()
        savedict['mphonesens'] = self.ui.mphoneSensSpnbx.value()
        savedict['mphonedb'] = self.ui.mphoneDBSpnbx.value()
        savedict['vocalpaths'] = Vocalization.paths
        savedict['aichans'] = self._aichans
        savedict['aichan_details'] = self._aichan_details

        # parameter settings -- save all tracks present
        savedict['explorestims'] = self.ui.exploreStimEditor.saveTemplate()

        savedict['advanced_options'] = self.advanced_options
        savedict['stim_view_defaults'] = StimulusView.getDefaults()

        savedict['tuning_curve'] = TCFactory.defaultInputs

        # filter out and non-native python types that are not json serializable
        savedict = convert2native(savedict)
        try:
            with open(fname, 'w') as jf:
                json.dump(savedict, jf)
        except:
            logger = logging.getLogger('main')
            logger.exception("Unable to save app data to file: {}".format(fname))