Changeset 133812c7 in sasview for src/sas/qtgui/MainWindow
- Timestamp:
- Nov 12, 2018 6:47:59 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:
- e5ae812
- Parents:
- ebcdb02
- git-author:
- Piotr Rozyczko <piotr.rozyczko@…> (10/31/18 06:34:14)
- git-committer:
- Piotr Rozyczko <piotr.rozyczko@…> (11/12/18 06:47:59)
- Location:
- src/sas/qtgui/MainWindow
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/MainWindow/DataExplorer.py
rebcdb02 r133812c7 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) … … 99 105 self.communicator.extMaskEditorSignal.connect(self.extShowEditDataMask) 100 106 self.communicator.changeDataExplorerTabSignal.connect(self.changeTabs) 107 self.communicator.forcePlotDisplaySignal.connect(self.displayData) 108 self.communicator.updateModelFromPerspectiveSignal.connect(self.updateModelFromPerspective) 101 109 102 110 self.cbgraph.editTextChanged.connect(self.enableGraphCombo) … … 205 213 Opens the Qt "Open Folder..." dialog 206 214 """ 207 folder = QtWidgets.QFileDialog.getExistingDirectory(self, "Choose a directory", "", 208 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 209 223 if folder is None: 210 224 return 211 225 212 226 folder = str(folder) 213 214 227 if not os.path.isdir(folder): 215 228 return 216 229 self.default_load_location = folder 217 230 # get content of dir into a list 218 231 path_str = [os.path.join(os.path.abspath(folder), filename) … … 251 264 filename = QtWidgets.QFileDialog.getOpenFileName(**kwargs)[0] 252 265 if filename: 266 self.default_project_location = os.path.dirname(filename) 253 267 self.deleteAllItems() 254 268 self.readProject(filename) … … 276 290 'caption' : 'Save Project', 277 291 'filter' : 'Project (*.json)', 278 'options' : QtWidgets.QFileDialog.DontUseNativeDialog 292 'options' : QtWidgets.QFileDialog.DontUseNativeDialog, 293 'directory' : self.default_project_location 279 294 } 280 295 name_tuple = QtWidgets.QFileDialog.getSaveFileName(**kwargs) … … 282 297 if not filename: 283 298 return 299 self.default_project_location = os.path.dirname(filename) 284 300 _, extension = os.path.splitext(filename) 285 301 if not extension: … … 616 632 Send selected item data to the current perspective and set the relevant notifiers 617 633 """ 618 # Set the signal handlers619 self.communicator.updateModelFromPerspectiveSignal.connect(self.updateModelFromPerspective)620 621 634 def isItemReady(index): 622 635 item = self.model.item(index) … … 903 916 # Try the current item 904 917 main_data = GuiUtils.dataFromItem(plot_item) 918 # 1D dependent plots of 2D sets - special treatment 919 if isinstance(main_data, Data2D) and isinstance(plot_to_show, Data1D): 920 main_data = None 905 921 906 922 # Make sure main data for 2D is always displayed 907 if main_data and not self.isPlotShown(main_data):923 if main_data is not None and not self.isPlotShown(main_data): 908 924 if isinstance(main_data, Data2D): 909 925 self.plotData([(plot_item, main_data)]) … … 923 939 # Plots with main data points on the same chart 924 940 # Get the main data plot 925 if main_data and not self.isPlotShown(main_data):941 if main_data is not None and not self.isPlotShown(main_data): 926 942 new_plots.append((plot_item, main_data)) 927 943 new_plots.append((plot_item, plot_to_show)) … … 1083 1099 # List of known extensions 1084 1100 wlist = self.getWlist() 1085 1086 1101 # Location is automatically saved - no need to keep track of the last dir 1087 1102 # But only with Qt built-in dialog (non-platform native) 1088 paths = QtWidgets.QFileDialog.getOpenFileNames(self, "Choose a file", "", 1089 wlist, None, QtWidgets.QFileDialog.DontUseNativeDialog)[0] 1103 kwargs = { 1104 'parent' : self, 1105 'caption' : 'Choose files', 1106 'filter' : wlist, 1107 'options' : QtWidgets.QFileDialog.DontUseNativeDialog, 1108 'directory' : self.default_load_location 1109 } 1110 paths = QtWidgets.QFileDialog.getOpenFileNames(**kwargs)[0] 1090 1111 if not paths: 1091 1112 return … … 1094 1115 paths = [paths] 1095 1116 1117 self.default_load_location = os.path.dirname(paths[0]) 1096 1118 return paths 1097 1119 … … 1729 1751 raise AttributeError(msg) 1730 1752 1731 # TODO: Assert other properties 1732 1733 # Reset the view 1734 ##self.model.reset() 1735 # Pass acting as a debugger anchor 1753 # send in the new item 1754 self.model.appendRow(model_item) 1736 1755 pass 1737 1756 -
src/sas/qtgui/MainWindow/GuiManager.py
rebcdb02 r133812c7 51 51 52 52 from sas.qtgui.Utilities.AddMultEditor import AddMultEditor 53 from sas.qtgui.Utilities.ImageViewer import ImageViewer 53 54 54 55 logger = logging.getLogger(__name__) … … 352 353 # Exit if yes 353 354 if reply == QMessageBox.Yes: 355 # save the paths etc. 356 self.saveCustomConfig() 354 357 reactor.callFromThread(reactor.stop) 355 358 return True … … 457 460 self._workspace.actionReset.setVisible(False) 458 461 self._workspace.actionStartup_Settings.setVisible(False) 459 self._workspace.actionImage_Viewer.setVisible(False)462 #self._workspace.actionImage_Viewer.setVisible(False) 460 463 self._workspace.actionCombine_Batch_Fit.setVisible(False) 461 464 # orientation viewer set to invisible SASVIEW-1132 … … 825 828 """ 826 829 """ 827 print("actionImage_Viewer TRIGGERED") 828 pass 830 try: 831 self.image_viewer = ImageViewer(self) 832 if sys.platform == "darwin": 833 self.image_viewer.menubar.setNativeMenuBar(False) 834 self.image_viewer.show() 835 except Exception as ex: 836 logging.error(str(ex)) 837 return 829 838 830 839 #============ FITTING ================= … … 1114 1123 elif isinstance(perspective, Perspectives.PERSPECTIVES["Corfunc"]): 1115 1124 self.checkAnalysisOption(self._workspace.actionCorfunc) 1125 1126 def saveCustomConfig(self): 1127 """ 1128 Save the config file based on current session values 1129 """ 1130 # Load the current file 1131 config_content = GuiUtils.custom_config 1132 1133 changed = self.customSavePaths(config_content) 1134 changed = changed or self.customSaveOpenCL(config_content) 1135 1136 if changed: 1137 self.writeCustomConfig(config_content) 1138 1139 def customSavePaths(self, config_content): 1140 """ 1141 Update the config module with current session paths 1142 Returns True if update was done, False, otherwise 1143 """ 1144 changed = False 1145 # Find load path 1146 open_path = GuiUtils.DEFAULT_OPEN_FOLDER 1147 defined_path = self.filesWidget.default_load_location 1148 if open_path != defined_path: 1149 # Replace the load path 1150 config_content.DEFAULT_OPEN_FOLDER = defined_path 1151 changed = True 1152 return changed 1153 1154 def customSaveOpenCL(self, config_content): 1155 """ 1156 Update the config module with current session OpenCL choice 1157 Returns True if update was done, False, otherwise 1158 """ 1159 changed = False 1160 # Find load path 1161 file_value = GuiUtils.SAS_OPENCL 1162 session_value = os.environ.get("SAS_OPENCL", "") 1163 if file_value != session_value: 1164 # Replace the load path 1165 config_content.SAS_OPENCL = session_value 1166 changed = True 1167 return changed 1168 1169 def writeCustomConfig(self, config): 1170 """ 1171 Write custom configuration 1172 """ 1173 from sas import make_custom_config_path 1174 path = make_custom_config_path() 1175 # Just clobber the file - we already have its content read in 1176 with open(path, 'w') as out_f: 1177 out_f.write("#Application appearance custom configuration\n") 1178 for key, item in config.__dict__.items(): 1179 if key[:2] != "__": 1180 if isinstance(item, str): 1181 item = '"' + item + '"' 1182 out_f.write("%s = %s\n" % (key, str(item))) 1183 pass # debugger anchor
Note: See TracChangeset
for help on using the changeset viewer.