//* These are the two combo boxes that don't work correctly... //***************** //* Rig Data... * //***************** rigmodel = new QSqlTableModel(this, sqldb.db); rigmodel->setTable ("rig"); rigmodel->sort (1, Qt::AscendingOrder); rigmodel->setEditStrategy (QSqlTableModel::OnManualSubmit); rigmodel->select (); //********************************************* //* This is the UI for editing Rig data... * //********************************************* ui->RigAdminNameCB->setModel (rigmodel); ui->RigAdminNameCB->setModelColumn (1); ui->RigAdminNameCB->setCurrentIndex (0); rigmapper = new QDataWidgetMapper(this); rigmapper->setModel (rigmodel); rigmapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit); rigmapper->addMapping(ui->RigAdminNameCB, 1); rigmapper->addMapping(ui->RigTypeDrillShipRB, 2); rigmapper->addMapping(ui->RigLengthOverallLE, 3); rigmapper->addMapping(ui->RigLengthOverallFtRB, 4); rigmapper->addMapping(ui->RigLengthK2FLE, 5); rigmapper->addMapping(ui->RigLengthK2FFtRB, 6); rigmapper->setCurrentIndex(0); //*************************** //* Rig Inventory Data... * //*************************** riginvmodel = new QSqlTableModel(this, sqldb.db); riginvmodel->setTable ("riginv"); riginvmodel->sort (33, Qt::AscendingOrder); riginvmodel->setEditStrategy (QSqlTableModel::OnManualSubmit); riginvmodel->setFilter (QString("riginv_rig_id = %1").arg(rig_id)); riginvmodel->select (); //************************************************** //* This is the UI for editing Inventory data... * //************************************************** ui->EquipIDCB->setModel (riginvmodel); ui->EquipIDCB->setModelColumn (33); ui->EquipIDCB->setCurrentIndex (0); riginvmapper = new QDataWidgetMapper(this); riginvmapper->setModel (riginvmodel); riginvmapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit); riginvmapper->addMapping (ui->EquipIDCB, 33); riginvmapper->setCurrentIndex(0); //****************************** //* Simulation Data setup... * //****************************** simulationmodel = new QSqlTableModel(this, sqldb.db); simulationmodel->setTable ("simulation"); simulationmodel->sort (1, Qt::AscendingOrder); simulationmodel->setEditStrategy (QSqlTableModel::OnManualSubmit); simulationmodel->setFilter (QString("sim_rig_id = %1").arg(rig_id)); simulationmodel->select (); //* These are the two that work correctly. //*************************************************** //* This is the UI for editing Simulation data... * //*************************************************** ui->SimNameCB->setModel (simulationmodel); ui->SimNameCB->setModelColumn (1); ui->SimNameCB->setCurrentIndex (0); simulationmapper = new QDataWidgetMapper(this); simulationmapper->setModel (simulationmodel); simulationmapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit); simulationmapper->addMapping (ui->SimNameCB, 1); simulationmapper->setCurrentIndex(0); //********************** //* Riser ID data... * //********************** riseridmodel = new QSqlTableModel(this, sqldb.db); riseridmodel->setTable ("riser"); riseridmodel->sort (1, Qt::AscendingOrder); riseridmodel->setEditStrategy (QSqlTableModel::OnManualSubmit); riseridmodel->setFilter (QString("riser_rig_id = %1").arg(rig_id)); riseridmodel->select (); //********************************************** //* This is the UI for editing Riser data... * //********************************************** ui->RiserConfigCB->setModel (riseridmodel); ui->RiserConfigCB->setModelColumn (1); //************************************************************* //* Find the Riser Model for the Simulation being displayed * //* and set the current index to that record... * //************************************************************* for (riser_index = 0; riser_index < riseridmodel->rowCount (); riser_index++) { record = riseridmodel->record(riser_index); if (record.value ("riser_id").toInt () == sim_riser_id) break; } ui->RiserConfigCB->setCurrentIndex (riser_index); riseridmapper = new QDataWidgetMapper(this); riseridmapper->setModel (riseridmodel); riseridmapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit); riseridmapper->addMapping (ui->RiserConfigCB, 1); riseridmapper->setCurrentIndex (riser_index); //* Code where QInputDialog is called void MainWindow::on_EditRigAdminPB_clicked() { bool ok; int current_index; QString oldrig_name; QString newrig_name; QString message; QSqlRecord rig_record; current_index = ui->RigAdminNameCB->currentIndex (); rig_record = rigmodel->record (current_index); oldrig_name = rig_record.value("rig_name").toString(); //*********************************** //* Go get a name for this rig... * //*********************************** // if I display the data from the model at this point it's fine... message = "Enter a New Name for this Rig: " + oldrig_name; newrig_name = QInputDialog::getText (this, "Rig Name Change", message, QLineEdit::Normal, QString(), &ok); // if I display the data from the model at this point it's wrong... if (ok && !newrig_name.isEmpty ()) { if (dup_rig_name_check (newrig_name)) { QMessageBox::warning (this, tr("Rig Name exists"), tr("A Rig data set of this name " "already exists. Please re-enter.")); } else { rigmodel->setData (rigmodel->index (current_index, 1), newrig_name); rigmodel->setData (rigmodel->index (current_index, 6), user); rigmodel->setData (rigmodel->index (current_index, 7), QDateTime::currentDateTime ()); //emit set_save_flag(); } } }