@@ -32,7 +32,6 @@ ShipEditorDialog::ShipEditorDialog(FredView* parent, EditorViewport* viewport)
3232 ui->callsignCombo ->lineEdit ()->setMaxLength (CALLSIGN_LEN );
3333
3434 connect (_model.get (), &AbstractDialogModel::modelChanged, this , [this ] { updateUI (false ); });
35- connect (this , &QDialog::accepted, _model.get (), &ShipEditorDialogModel::apply);
3635 connect (viewport->editor , &Editor::currentObjectChanged, this , &ShipEditorDialog::update);
3736 connect (viewport->editor , &Editor::objectMarkingChanged, this , &ShipEditorDialog::update);
3837
@@ -69,8 +68,6 @@ bool ShipEditorDialog::getIfMultipleShips() const
6968
7069void ShipEditorDialog::closeEvent (QCloseEvent* e)
7170{
72- util::SignalBlockers blockers (this );
73- _model->apply ();
7471 _viewport->editor ->autosave (" ship editor" );
7572 QDialog::closeEvent (e);
7673}
@@ -118,9 +115,6 @@ void ShipEditorDialog::on_tblInfoButton_clicked()
118115void ShipEditorDialog::update ()
119116{
120117 if (this ->isVisible ()) {
121- if (_model->getNumSelectedObjects () && _model->query_modified ()) {
122- _model->apply ();
123- }
124118 _model->initializeData ();
125119 updateUI (true );
126120 }
@@ -206,10 +200,11 @@ void ShipEditorDialog::updateColumnOne(bool overwrite)
206200 for (auto j = 0 ; j < Mission_alt_type_count; j++) {
207201 ui->altNameCombo ->addItem (Mission_alt_types[j]);
208202 }
209- if (ui->altNameCombo ->findText (QString (altname.c_str ()))) {
210- ui->altNameCombo ->setCurrentIndex (ui->altNameCombo ->findText (QString (altname.c_str ())));
203+ int altNameIdx = ui->altNameCombo ->findText (QString (altname.c_str ()));
204+ if (altNameIdx >= 0 ) {
205+ ui->altNameCombo ->setCurrentIndex (altNameIdx);
211206 } else {
212- ui->altNameCombo ->setCurrentIndex (ui-> altNameCombo -> findText ( " <none>" ) );
207+ ui->altNameCombo ->setEditText ( " <none>" );
213208 }
214209 }
215210 }
@@ -218,19 +213,19 @@ void ShipEditorDialog::updateColumnOne(bool overwrite)
218213 if (_model->getIfMultipleShips ()) {
219214 ui->callsignCombo ->setEnabled (false );
220215 } else {
221- ui->callsignCombo ->clear ();
222216 auto callsign = _model->getCallsign ();
223217 ui->callsignCombo ->setEnabled (true );
224218 if (overwrite) {
219+ ui->callsignCombo ->clear ();
225220 ui->callsignCombo ->addItem (" <none>" );
226221 for (auto j = 0 ; j < Mission_callsign_count; j++) {
227222 ui->callsignCombo ->addItem (Mission_callsigns[j], QVariant (Mission_callsigns[j]));
228223 }
229-
230- if (ui-> callsignCombo -> findText ( QString (callsign. c_str ())) ) {
231- ui->callsignCombo ->setCurrentIndex (ui-> callsignCombo -> findText ( QString (callsign. c_str ())) );
224+ int callsignIdx = ui-> callsignCombo -> findText ( QString (callsign. c_str ()));
225+ if (callsignIdx >= 0 ) {
226+ ui->callsignCombo ->setCurrentIndex (callsignIdx );
232227 } else {
233- ui->altNameCombo -> setCurrentIndex (ui-> callsignCombo ->findText (" <none>" ) );
228+ ui->callsignCombo ->setEditText (" <none>" );
234229 }
235230 }
236231 }
@@ -863,32 +858,32 @@ void ShipEditorDialog::on_departureLocationCombo_currentIndexChanged(int index)
863858 auto depLocationIdx = ui->departureLocationCombo ->itemData (index).toInt ();
864859 _model->setDepartureLocationIndex (depLocationIdx);
865860}
866- void fred::dialogs:: ShipEditorDialog::on_departureTargetCombo_currentIndexChanged (int index)
861+ void ShipEditorDialog::on_departureTargetCombo_currentIndexChanged (int index)
867862{
868863 auto depLocationIdx = ui->departureTargetCombo ->itemData (index).toInt ();
869864 _model->setDepartureTarget (depLocationIdx);
870865}
871- void fred::dialogs:: ShipEditorDialog::on_departureDelaySpinBox_valueChanged (int value)
866+ void ShipEditorDialog::on_departureDelaySpinBox_valueChanged (int value)
872867{
873868 _model->setDepartureDelay (value);
874869}
875- void fred::dialogs:: ShipEditorDialog::on_updateDepartureCueCheckBox_toggled (bool value)
870+ void ShipEditorDialog::on_updateDepartureCueCheckBox_toggled (bool value)
876871{
877872 _model->setDepartureCue (value);
878873}
879- void fred::dialogs:: ShipEditorDialog::on_departureTree_rootNodeFormulaChanged (int old, int node)
874+ void ShipEditorDialog::on_departureTree_rootNodeFormulaChanged (int old, int node)
880875{
881876 _model->setDepartureFormula (old, node);
882877}
883- void fred::dialogs:: ShipEditorDialog::on_departureTree_helpChanged (const QString& help)
878+ void ShipEditorDialog::on_departureTree_helpChanged (const QString& help)
884879{
885880 ui->helpText ->setPlainText (help);
886881}
887- void fred::dialogs:: ShipEditorDialog::on_departureTree_miniHelpChanged (const QString& help)
882+ void ShipEditorDialog::on_departureTree_miniHelpChanged (const QString& help)
888883{
889884 ui->HelpTitle ->setText (help);
890885}
891- void fred::dialogs:: ShipEditorDialog::on_noDepartureWarpCheckBox_toggled (bool value)
886+ void ShipEditorDialog::on_noDepartureWarpCheckBox_toggled (bool value)
892887{
893888 _model->setNoDepartureWarp (value);
894889}
0 commit comments