def __init__(self, parent=None, session=None): super(SettingsTab, self).__init__(parent) self.session = session self.layout = QtGui.QGridLayout() self.setLayout(self.layout) racers_box = QtGui.QGroupBox("Racer Configuration") racers_box_layout = QtGui.QGridLayout() racers_box.setLayout(racers_box_layout) self.layout.addWidget(racers_box, 0, 0) self.racers_table = QtGui.QTableView(self) self.racers_table.doubleClicked.connect(self.edit_racer) self.racers_table.setSelectionBehavior( QtGui.QAbstractItemView.SelectRows) self.racers_table.setSelectionMode( QtGui.QAbstractItemView.SingleSelection) self.racers_table_model = SQLAlchemyTableModel( session, Racer, [('name', Racer.name, 'name'), ('hostname', Racer.hostname, 'hostname'), ('location', Racer.location, 'location')]) self.racers_table_selection_model = QtGui.QItemSelectionModel( self.racers_table_model) self.racers_table.setModel(self.racers_table_selection_model.model()) self.racers_table.setSelectionModel(self.racers_table_selection_model) racers_box_layout.addWidget(self.racers_table, 0, 0, 1, 3) racers_add_button = QtGui.QPushButton("Add") racers_add_button.released.connect(self.add_racer) racers_box_layout.addWidget(racers_add_button, 1, 0) racers_edit_button = QtGui.QPushButton("Edit") racers_edit_button.released.connect(self.edit_racer) racers_box_layout.addWidget(racers_edit_button, 1, 1) racers_delete_button = QtGui.QPushButton("Delete") racers_delete_button.released.connect(self.delete_racer) racers_box_layout.addWidget(racers_delete_button, 1, 2)
def __init__(self, session=None, parent=None): super(ExperimentsTab, self).__init__(parent) self.session = session self.redis_conn = Redis() self.current_experiment = None self.layout = QtGui.QGridLayout() self.setLayout(self.layout) # experiments self.experiment_box = QtGui.QGroupBox(self, title="Experiments") self.experiment_box.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) self.layout.addWidget(self.experiment_box, 0, 0) self.experiment_box_layout = QtGui.QGridLayout(self.experiment_box) self.experiment_box.setLayout(self.experiment_box_layout) self.experiment_list = ExperimentComboBox(session=session) self.experiment_list.currentIndexChanged.connect( self.update_current_experiment) self.experiment_box_layout.addWidget(self.experiment_list, 0, 0) self.new_experiment_button = QtGui.QPushButton("New Experiment") self.new_experiment_button.released.connect(self.new_experiment) self.experiment_box_layout.addWidget(self.new_experiment_button, 0, 1) # data sources self.data_box = QtGui.QGroupBox(self, title="Trials for this Experiment") self.data_box.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self.layout.addWidget(self.data_box, 1, 0, 1, 1) self.data_box_layout = QtGui.QGridLayout(self.data_box) self.data_box.setLayout(self.data_box_layout) self.trial_table = QtGui.QTableView(self) # self.trial_table.doubleClicked.connect(self.edit_racer) # self.trial_table.activated.connect(self.update_current_trial) self.trial_table.setSelectionBehavior( QtGui.QAbstractItemView.SelectRows) self.trial_table_model = SQLAlchemyTableModel( session, Trial, [('Type', Trial.discriminator, 'discriminator'), ('Name', Trial.name, 'name'), ('Reps', Trial.reps, 'reps'), ('Start', Trial.start_date, 'start_date'), ('End', Trial.end_date, 'end_date')]) self.trial_table.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.trial_table.customContextMenuRequested.connect( self.display_context_menu) self.trial_table.doubleClicked.connect(self.edit_trial) self.trial_table.setSelectionMode( QtGui.QAbstractItemView.SingleSelection) self.trial_table_selection_model = QtGui.QItemSelectionModel( self.trial_table_model) self.trial_table.setModel(self.trial_table_selection_model.model()) self.trial_table.setSelectionModel(self.trial_table_selection_model) self.trial_table_selection_model.selectionChanged.connect( self.update_current_trial) self.data_box_layout.addWidget(self.trial_table, 0, 0, 2, 1) self.add_trial_button = QtGui.QPushButton("New Trial") self.data_box_layout.addWidget(self.add_trial_button, 0, 1) self.add_trial_button.released.connect(self.new_trial) self.trial_details_box = QtGui.QGroupBox("Trial Details") self.trial_details_box.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) self.data_box_layout.addWidget(self.trial_details_box, 2, 0, 1, 1) self.trial_details_box_layout = QtGui.QGridLayout( self.trial_details_box) self.echo_trial_details = EchoTrialDetailsWidget() self.trial_details_box_layout.addWidget(self.echo_trial_details, 0, 0, 1, 1) self.echo_trial_details.hide() self.http_trial_details = HttpTrialDetailsWidget() self.trial_details_box_layout.addWidget(self.http_trial_details, 0, 0, 1, 1) self.racer_settings_widget = RacerDetailsWidget() self.trial_details_box_layout.addWidget(self.racer_settings_widget, 1, 0, 1, 1) self.trial_status = TrialStatusWidget() # self.trial_status.trial_edit.connect(self.show_edit_dialog) self.trial_status.trial_started.connect(self.start_trial) self.trial_status.trial_stopped.connect(self.stop_trial) self.trial_status.trial_refreshed.connect(self.update_trial_details) self.trial_status.trial_edit.connect(self.edit_trial) self.trial_details_box_layout.addWidget(self.trial_status, 0, 1, 2, 1) self.update_current_experiment(0) self.trial_table.resizeColumnsToContents()