317,7 → 317,12 |
connect(ui->action_removeAllClasses, SIGNAL(triggered()), this, SLOT(on_action_removeAllClasses())); // óäàëèòü âñå êëàññû |
connect(ui->action_newClass, SIGNAL(triggered()), this, SLOT(on_pushButton_clicked())); // äîáàâèòü íîâûé êëàññ |
connect(ui->action_newField, SIGNAL(triggered()), this, SLOT(on_pushButton_3_clicked())); // äîáàâèòü íîâîå ïîëå |
connect(ClassEditor::modelForDescription, SIGNAL(field_changed()), this, SLOT(on_field_changed())); // äîáàâèòü íîâîå ïîëå |
connect(ui->action_newPointer, SIGNAL(triggered()), this, SLOT(on_action_newPointer())); // äîáàâèòü íîâîå ïîëå äëÿ óêàçàòåëåé íà êëàññû-êîíòåéíåðû |
// connect(ui->action_newPointer, SIGNAL(triggered()), this, SLOT(on_pushButton_3_clicked())); // äîáàâèòü íîâîå ïîëå äëÿ óêàçàòåëåé íà êëàññû-êîíòåéíåðû |
connect(modelForDescription, SIGNAL(field_changed()), this, SLOT(on_field_changed())); // â òàáëèöå ïîëåé ïðîèçîøëè èçìåíåíèÿ |
connect(ClassEditor::modelForPointers, SIGNAL(field_changed()), this, SLOT(on_field_changed())); // â òàáëèöå óêàçàòåëåé ïðîèçîøëè èçìåíåíèÿ |
|
|
} |
|
|
487,13 → 492,56 |
|
|
|
void ClassEditor::addNewPointer(){ //äîáîâëÿåì íîâîå ïîëå, ãäå áóäóò õðàíèòüñÿ óêàçàòåëè íà îáúåêòû êëàññà-êîíòåéíåðà |
QString Inctance_str; // èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ äëÿ âûáðàííîãî êëàññà |
QString query_str = tr("ALTER TABLE "); |
QString db_error; |
QSqlQuery q; |
int currRow = ClassEditor::currIndexOfClassesTable.row(); // |
Inctance_str = mymodel->data(mymodel->index(currRow, 3)).toString(); |
query_str.append( Inctance_str); |
query_str.append(tr(" ADD COLUMN `Ñlass-container ID` CHAR(30)")); |
bool ok = q.prepare(query_str); |
|
ok = q.exec(); |
if (!ok) { |
QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
this, // Ðîäèòåëüñêèé âèäæåò. |
QObject::tr("Database Error"), // Çàãîëîâîê. |
q.lastError().text()); // Òåêñò ñîîáùåíèÿ. |
|
return; // âûõîäèì íå ïðèìåíÿÿ èçìåíåíèé |
|
} |
|
|
int row = ClassEditor::modelForPointers->rowCount(); |
modelForPointers->insertRows(row, 1); |
|
modelForPointers->onlySetData(modelForPointers->index(row, 1), QVariant(tr("Ñlass-container ID")), Qt::EditRole); |
modelForPointers->onlySetData(modelForPointers->index(row, 3), QVariant(tr("pointer")), Qt::EditRole); |
modelForPointers->onlySetData(modelForPointers->index(row, 5), QVariant(currClassID), Qt::EditRole); |
modelForPointers->onlySetData(modelForPointers->index(row, 4), QVariant(tr("NULL")), Qt::EditRole); |
|
|
modelForPointers->submitAll(); |
|
ClassEditor::refreshInctance(); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
// äîáàâëÿåì íîâûé êëàññ |
void ClassEditor::on_pushButton_clicked(){ |
//int i; |
796,3 → 844,14 |
tableForInstance->show(); |
|
} |
|
|
|
|
void ClassEditor::on_action_newPointer(){ |
ClassEditor::addNewPointer(); |
ClassEditor::modelForPointers->select(); |
ui->tableView_3->resizeColumnsToContents(); |
|
} |
|