- Timestamp:
- Nov 15, 2018 8:07:32 AM (6 years ago)
- Branches:
- ESS_GUI, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
- Children:
- 3b0b17e
- Parents:
- 5f9e874 (diff), 67346f9 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Location:
- src/sas/qtgui
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/MainWindow/DataExplorer.py
r1942f63 r67346f9 49 49 self.parent = guimanager 50 50 self.loader = Loader() 51 52 # Read in default locations 53 self.default_save_location = None 54 self.default_load_location = GuiUtils.DEFAULT_OPEN_FOLDER 55 self.default_project_location = None 56 51 57 self.manager = manager if manager is not None else DataManager() 52 58 self.txt_widget = QtWidgets.QTextEdit(None) … … 207 213 Opens the Qt "Open Folder..." dialog 208 214 """ 209 folder = QtWidgets.QFileDialog.getExistingDirectory(self, "Choose a directory", "", 210 QtWidgets.QFileDialog.ShowDirsOnly | QtWidgets.QFileDialog.DontUseNativeDialog) 215 kwargs = { 216 'parent' : self, 217 'caption' : 'Choose a directory', 218 'options' : QtWidgets.QFileDialog.ShowDirsOnly | QtWidgets.QFileDialog.DontUseNativeDialog, 219 'directory' : self.default_load_location 220 } 221 folder = QtWidgets.QFileDialog.getExistingDirectory(**kwargs) 222 211 223 if folder is None: 212 224 return 213 225 214 226 folder = str(folder) 215 216 227 if not os.path.isdir(folder): 217 228 return 218 229 self.default_load_location = folder 219 230 # get content of dir into a list 220 231 path_str = [os.path.join(os.path.abspath(folder), filename) … … 231 242 'caption' : 'Open Project', 232 243 'filter' : 'Project (*.json);;All files (*.*)', 233 'options' : QtWidgets.QFileDialog.DontUseNativeDialog 244 'options' : QtWidgets.QFileDialog.DontUseNativeDialog, 245 'directory' : self.default_project_location 234 246 } 235 247 filename = QtWidgets.QFileDialog.getOpenFileName(**kwargs)[0] 236 248 if filename: 249 self.default_project_location = os.path.dirname(filename) 237 250 load_thread = threads.deferToThread(self.readProject, filename) 238 251 load_thread.addCallback(self.readProjectComplete) … … 283 296 'caption' : 'Save Project', 284 297 'filter' : 'Project (*.json)', 285 'options' : QtWidgets.QFileDialog.DontUseNativeDialog 298 'options' : QtWidgets.QFileDialog.DontUseNativeDialog, 299 'directory' : self.default_project_location 286 300 } 287 301 name_tuple = QtWidgets.QFileDialog.getSaveFileName(**kwargs) 288 302 filename = name_tuple[0] 289 303 if filename: 304 self.default_project_location = os.path.dirname(filename) 290 305 _, extension = os.path.splitext(filename) 291 306 if not extension: … … 818 833 # List of known extensions 819 834 wlist = self.getWlist() 820 821 835 # Location is automatically saved - no need to keep track of the last dir 822 836 # But only with Qt built-in dialog (non-platform native) 823 paths = QtWidgets.QFileDialog.getOpenFileNames(self, "Choose a file", "", 824 wlist, None, QtWidgets.QFileDialog.DontUseNativeDialog)[0] 837 kwargs = { 838 'parent' : self, 839 'caption' : 'Choose files', 840 'filter' : wlist, 841 'options' : QtWidgets.QFileDialog.DontUseNativeDialog, 842 'directory' : self.default_load_location 843 } 844 paths = QtWidgets.QFileDialog.getOpenFileNames(**kwargs)[0] 825 845 if not paths: 826 846 return … … 829 849 paths = [paths] 830 850 851 self.default_load_location = os.path.dirname(paths[0]) 831 852 return paths 832 853 -
src/sas/qtgui/MainWindow/GuiManager.py
r1942f63 r67346f9 354 354 # Exit if yes 355 355 if reply == QMessageBox.Yes: 356 # save the paths etc. 357 self.saveCustomConfig() 356 358 reactor.callFromThread(reactor.stop) 357 359 return True … … 1071 1073 elif isinstance(perspective, Perspectives.PERSPECTIVES["Corfunc"]): 1072 1074 self.checkAnalysisOption(self._workspace.actionCorfunc) 1075 1076 def saveCustomConfig(self): 1077 """ 1078 Save the config file based on current session values 1079 """ 1080 # Load the current file 1081 config_content = GuiUtils.custom_config 1082 1083 changed = self.customSavePaths(config_content) 1084 changed = changed or self.customSaveOpenCL(config_content) 1085 1086 if changed: 1087 self.writeCustomConfig(config_content) 1088 1089 def customSavePaths(self, config_content): 1090 """ 1091 Update the config module with current session paths 1092 Returns True if update was done, False, otherwise 1093 """ 1094 changed = False 1095 # Find load path 1096 open_path = GuiUtils.DEFAULT_OPEN_FOLDER 1097 defined_path = self.filesWidget.default_load_location 1098 if open_path != defined_path: 1099 # Replace the load path 1100 config_content.DEFAULT_OPEN_FOLDER = defined_path 1101 changed = True 1102 return changed 1103 1104 def customSaveOpenCL(self, config_content): 1105 """ 1106 Update the config module with current session OpenCL choice 1107 Returns True if update was done, False, otherwise 1108 """ 1109 changed = False 1110 # Find load path 1111 file_value = GuiUtils.SAS_OPENCL 1112 session_value = os.environ.get("SAS_OPENCL", "") 1113 if file_value != session_value: 1114 # Replace the load path 1115 config_content.SAS_OPENCL = session_value 1116 changed = True 1117 return changed 1118 1119 def writeCustomConfig(self, config): 1120 """ 1121 Write custom configuration 1122 """ 1123 from sas import make_custom_config_path 1124 path = make_custom_config_path() 1125 # Just clobber the file - we already have its content read in 1126 with open(path, 'w') as out_f: 1127 out_f.write("#Application appearance custom configuration\n") 1128 for key, item in config.__dict__.items(): 1129 if key[:2] != "__": 1130 if isinstance(item, str): 1131 item = '"' + item + '"' 1132 out_f.write("%s = %s\n" % (key, str(item))) 1133 pass # debugger anchor -
src/sas/qtgui/Utilities/GuiUtils.py
rb9ab979 r67346f9 151 151 DEFAULT_PERSPECTIVE = custom_config.DEFAULT_PERSPECTIVE 152 152 CLEANUP_PLOT = custom_config.CLEANUP_PLOT 153 SAS_OPENCL = custom_config.SAS_OPENCL 153 154 # custom open_path 154 155 open_folder = custom_config.DEFAULT_OPEN_FOLDER … … 171 172 CLEANUP_PLOT = False 172 173 DEFAULT_OPEN_FOLDER = PATH_APP 174 SAS_OPENCL = config.SAS_OPENCL 173 175 174 176 #DEFAULT_STYLE = config.DEFAULT_STYLE -
src/sas/qtgui/Utilities/ReportDialog.py
rcb90b65 r859d960 10 10 11 11 import sas.qtgui.Utilities.GuiUtils as GuiUtils 12 import sas.qtgui.Utilities.ObjectLibrary as ObjectLibrary 12 13 13 14 from sas.qtgui.Utilities.UI.ReportDialogUI import Ui_ReportDialogUI … … 27 28 28 29 self.data_html, self.data_txt, self.data_images = report_list 30 #self.save_location = None 31 #if 'ReportDialog_directory' in ObjectLibrary.listObjects(): 32 self.save_location = ObjectLibrary.getObject('ReportDialog_directory') 29 33 30 34 # Fill in the table from input data … … 70 74 """ 71 75 # Choose user's home directory 72 location = os.path.expanduser('~') 76 if self.save_location is None: 77 location = os.path.expanduser('~') 78 else: 79 location = self.save_location 73 80 # Use a sensible filename default 74 81 default_name = os.path.join(location, 'fit_report.pdf') … … 78 85 'caption' : 'Save Report', 79 86 # don't use 'directory' in order to remember the previous user choice 80 #'directory': default_name,87 'directory': default_name, 81 88 'filter' : 'PDF file (*.pdf);;HTML file (*.html);;Text file (*.txt)', 82 89 'options' : QtWidgets.QFileDialog.DontUseNativeDialog} … … 87 94 return 88 95 extension = filename_tuple[1] 96 self.save_location = os.path.dirname(filename) 97 # lifetime of this widget is short - keep the reference elsewhere 98 ObjectLibrary.addObject('ReportDialog_directory', self.save_location) 89 99 90 100 try:
Note: See TracChangeset
for help on using the changeset viewer.