def __init__(self): "Parameter is an instance of VisController to use for sending signals." super(VisQtMainWindow, self).__init__() # required for signals self.ui = Ui_MainWindow() self.ui.setupUi(self) self._tool_import() self.show() # Hold a lists of checkboxes, "Edit" buttons, and layouts that represent # the parts in a piece for the "assemble" panel self.part_checkboxes = None self.edit_buttons = None self.part_layouts = None # Setup GUI-only Signals mapper = [ # Workflow management (self.ui.btn_step1.clicked, self._check_for_pieces), (self.ui.btn_step2.clicked, self._start_the_analysis), # To operate the GUI (self.ui.btn_choose_files.clicked, self._tool_import), (self.ui.btn_about.clicked, self._tool_about), (self.ui.btn_analyze.clicked, self._tool_analyze), (self.ui.btn_experiment.clicked, self._tool_experiment), (self.ui.btn_file_add.clicked, self._add_files), (self.ui.btn_file_remove.clicked, self._remove_files), (self.ui.btn_show_results.clicked, self._prepare_experiment_submission), (self.ui.line_piece_title.editingFinished, self._update_piece_title), (self.ui.line_offset_interval.editingFinished, self._update_offset_interval), (self.ui.btn_choose_note.clicked, self._launch_offset_selection), (self.ui.chk_repeat_identical.stateChanged, self._update_repeat_identical), (self.ui.btn_cancel_operation.clicked, self._cancel_operation), # About part combinations (self.ui.line_compare_these_parts.editingFinished, self._add_parts_combo_by_line_edit), (self.ui.btn_add_check_combo.clicked, self._add_parts_combination), (self.ui.gui_pieces_list.selection_changed, self._update_pieces_selection), (self.ui.chk_all_voices.clicked, self._all_voices), (self.ui.chk_all_voice_combos.clicked, self._all_voice_pairs), # Things causing GUI adjustment (self.ui.rdo_consider_interval_ngrams.clicked, self._update_experiment_from_object), (self.ui.rdo_consider_intervals.clicked, self._update_experiment_from_object), (self.ui.rdo_consider_score.clicked, self._update_experiment_from_object), # Clicked an output format radio button (on the GUI: "How to Show Results") (self.ui.rdo_table.clicked, self._output_format_changed), (self.ui.rdo_chart.clicked, self._output_format_changed), (self.ui.rdo_score.clicked, self._output_format_changed), # "Shared Settings" from the "Analyzer" panel (self.ui.rdo_heedQuality.clicked, self._update_quality), (self.ui.rdo_noHeedQuality.clicked, self._update_quality), (self.ui.rdo_simple.clicked, self._update_octaves), (self.ui.rdo_compound.clicked, self._update_octaves), ] for signal, slot in mapper: signal.connect(slot) # Setup the progress bar self.ui.progress_bar.setMinimum(0) self.ui.progress_bar.setMaximum(100) self.ui.progress_bar.setValue(42) # set "Ctrl + q" to close the window QtGui.QShortcut(QtGui.QKeySequence(Qt.CTRL + Qt.Key_Q), self, self.close, context=Qt.WindowShortcut) # visX setup self._list_of_ips = None # holds the IndexedPiece instances self._list_of_files = ListOfFiles() self.ui.gui_file_list.setModel(self._list_of_files) self._work_wrap = WorkflowWrapper() self.ui.gui_pieces_list.setModel(self._work_wrap) self._prev_setts = None # hold settings of previous experiment