diff --git a/sohstationviewer/view/main_window.py b/sohstationviewer/view/main_window.py index f9369b556596902dd662a0e094959a4e1d2d1741..58048cda8c2497be8c9476d6b37ed1f9e2a8b102 100755 --- a/sohstationviewer/view/main_window.py +++ b/sohstationviewer/view/main_window.py @@ -61,7 +61,7 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): """ dir_names: list of absolute path of data set directory """ - self.dir_names: List[Path] = [] + self.list_of_dir: List[Path] = [] """ current_dir: str - the current main data directory """ @@ -261,12 +261,12 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): front. """ try: - self.read_from_file_list() + self.get_file_list() except Exception as e: QtWidgets.QMessageBox.warning(self, "Select directory", str(e)) return try: - win = ChannelPreferDialog(self, self.dir_names) + win = ChannelPreferDialog(self, self.list_of_dir) win.show() except DialogAlreadyOpenedError: ChannelPreferDialog.current_instance.activateWindow() @@ -448,13 +448,13 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): return (self.pref_soh_list if not self.all_soh_chans_check_box.isChecked() else []) - def read_from_file_list(self): + def get_file_list(self): """ Read from self.open_files_list to identify self.dir_names/self.selected_rt130_paths. self.data_type is identified here too. """ - self.dir_names = [''] + self.list_of_dir = [''] self.selected_rt130_paths = [] root_dir = Path(self.curr_dir_line_edit.text()) if self.rt130_das_dict != {}: @@ -472,30 +472,28 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): # displayed in File List box. The current dir (root_dir) will be # the only one of the selected dir for user to start processing # from. - self.dir_names = [root_dir] + self.list_of_dir = [root_dir] if self.data_radio_button.isEnabled(): # In case of Baler's data, there will be 2 data folders for # user to select from, data/ and sdata/. The radio buttons # data and sdata allow user to select from Main Window. if self.data_radio_button.isChecked(): - self.dir_names = [root_dir.joinpath('data')] + self.list_of_dir = [root_dir.joinpath('data')] else: - self.dir_names = [root_dir.joinpath('sdata')] + self.list_of_dir = [root_dir.joinpath('sdata')] else: # When "From Data Card" checkbox is checked, sub directories of the # current dir (root_dir) will be displayed in File List box. # User can select one or more sub-directories to process from. - self.dir_names = [root_dir.joinpath(item.text()) - for item in self.open_files_list.selectedItems()] - if self.dir_names == []: + self.list_of_dir = [ + root_dir.joinpath(item.text()) + for item in self.open_files_list.selectedItems()] + if self.list_of_dir == []: msg = "No directories have been selected." raise Exception(msg) if self.rt130_das_dict == {}: - try: - self.data_type = detect_data_type(self.dir_names) - except Exception as e: - raise e + self.data_type = detect_data_type(self.list_of_dir) def clear_plots(self): self.plotting_widget.clear() @@ -560,12 +558,14 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): else []) try: - self.read_from_file_list() + self.get_file_list() except Exception as e: - QtWidgets.QMessageBox.warning(self, "Select directory", str(e)) + QtWidgets.QMessageBox.warning( + self, "Directories", + f"Error in get_file_list:\n\n{str(e)}") return - dir_size = sum(get_dir_size(str(dir))[0] for dir in self.dir_names) + dir_size = sum(get_dir_size(str(dir))[0] for dir in self.list_of_dir) if dir_size > constants.BIG_FILE_SIZE: data_too_big_dialog = QMessageBox() data_too_big_dialog.setText('Chosen data set is very big. It ' @@ -594,14 +594,14 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): self.end_tm = datetime.strptime(end_tm_str, TM_FORMAT).timestamp() self.gps_dialog.clear_plot() - self.gps_dialog.data_path = self.dir_names[0] - self.gps_dialog.set_export_directory(str(self.dir_names[0])) + self.gps_dialog.data_path = self.curr_dir_line_edit.text() + self.gps_dialog.set_export_directory(self.curr_dir_line_edit.text()) self.gps_dialog.gps_points = [] self.data_loader.init_loader( self.data_type, self.tracking_info_text_browser, - self.dir_names, + self.list_of_dir, self.selected_rt130_paths, req_wf_chans=self.req_wf_chans, req_soh_chans=self.req_soh_chans, @@ -754,7 +754,7 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): self.is_plotting_tps = True peer_plotting_widgets.append(self.tps_dlg.plotting_widget) self.tps_dlg.set_data( - self.data_type, ','.join([str(d) for d in self.dir_names])) + self.data_type, ','.join([str(d) for d in self.list_of_dir])) self.tps_dlg.show() # The waveform and TPS plots is being stopped at the same time, so # we can't simply reset all flags. Instead, we use an intermediate @@ -775,7 +775,7 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): # waveformPlot peer_plotting_widgets.append(self.waveform_dlg.plotting_widget) self.waveform_dlg.set_data( - self.data_type, ','.join([str(d) for d in self.dir_names])) + self.data_type, ','.join([str(d) for d in self.list_of_dir])) self.waveform_dlg.show() waveform_widget = self.waveform_dlg.plotting_widget waveform_widget.stopped.connect(self.reset_is_plotting_waveform)