Редакция 156 | Редакция 158 | К новейшей редакции | Весь файл | Учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 156 | Редакция 157 | ||
---|---|---|---|
Строка 365... | Строка 365... | ||
365 | QString parent_object_id;
|
365 | QString parent_object_id;
|
366 | int i; |
366 | int i; |
367 | QTreeWidgetItem * parent_item; |
367 | QTreeWidgetItem * parent_item; |
368 | item_type = item->text(1); |
368 | item_type = item->text(1); |
369 | parent_item = item->parent(); |
369 | parent_item = item->parent(); |
370 | if (item_type == tr("object")) |
- | |
371 | {
|
370 | |
372 | QString class_id;
|
371 | QString class_id; // èäåíòèôèêàòîð âûáðàííîãî êëàññà |
373 | QString ID;
|
- | |
374 | QString inctance;
|
372 | QString inctance;
|
375 | QString filtr_tmp;
|
373 | QString filtr_tmp;
|
- | 374 | QMap <QString, QString> pointersList; |
|
- | 375 | QStringList dateFieldList;
|
|
- | 376 | QString pointer_name;
|
|
- | 377 | ||
- | 378 | if (item_type == tr("object") || item_type == tr("class")){ |
|
376 | 379 | ||
377 | disconnect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex))); |
380 | disconnect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex))); |
378 | 381 | ||
- | 382 | static QList<int> colomns_indexes; // ñïèñîê íîìåðîâ ñòîëáöîâ òàáëèöû ñ íåñòàíäàðòíûìè äåëåãàòàìè |
|
- | 383 | static QList<int> date_colomns_indexes; // ñïèñîê íîìåðîâ ñòîëáöîâ òàáëèöû ñ äåëåãàòàìè äëÿ òèïà "DATE" |
|
- | 384 | static QList<SpinBoxDelegate *> spin_delegate_list;// ñïèñîê óêàçàòåëåé íà íåñòàíäàðòíûå äåëåãàòû |
|
- | 385 | SpinBoxDelegate * spin_delegate_tmp; |
|
- | 386 | ||
- | 387 | // Ñïåðâà "î÷èñòèì" òàáëèöó îò íåñòàíäàðòíûõ äåëåãàòîâ
|
|
- | 388 | for (i=0; i < colomns_indexes.size(); i++){ // äëÿ âñåõ ïîëåé-óêàçàòåëåé: |
|
- | 389 | ui->tableView->setItemDelegateForColumn(colomns_indexes.at(i), &standart_delegate ); // è ïðèñâàèâàåì ñòàíäàðòíûé äåëåãàò |
|
- | 390 | // ui->tableView->setItemDelegateForColumn(colomns_indexes.at(i), &picture_delegate);
|
|
- | 391 | ||
- | 392 | }
|
|
- | 393 | colomns_indexes.clear(); // î÷èùàåñ ñïèñîê ñòîëáöîâ ñ íåñòàíäàðòíûìè äåëåãàòàìè |
|
- | 394 | ||
- | 395 | // "Î÷èñòèì" òàáëèöó îò äåëåãàòîâ äëÿ òèïà "DATE"
|
|
- | 396 | for (i=0; i < date_colomns_indexes.size(); i++){ // äëÿ âñåõ ïîëåé-óêàçàòåëåé: |
|
- | 397 | ui->tableView->setItemDelegateForColumn(date_colomns_indexes.at(i), &standart_delegate ); // è ïðèñâàèâàåì ñòàíäàðòíûé äåëåãàò |
|
- | 398 | // ui->tableView->setItemDelegateForColumn(colomns_indexes.at(i), &picture_delegate);
|
|
- | 399 | ||
- | 400 | }
|
|
- | 401 | ||
- | 402 | ||
- | 403 | ||
- | 404 | if (item_type == tr("object")) |
|
- | 405 | {
|
|
- | 406 | QString ID;
|
|
379 | ui->pushButton->setEnabled(false); |
407 | ui->pushButton->setEnabled(false); |
380 | ui->pushButton_2->setEnabled(false); |
408 | ui->pushButton_2->setEnabled(false); |
381 | 409 | ||
382 | class_id = parent_item->text(2); |
410 | class_id = parent_item->text(2); |
383 | ID = item->text(2); |
411 | ID = item->text(2); |
384 | inctance = parent_item->text(3); |
412 | inctance = parent_item->text(3); |
385 | delete sql_mogel; |
413 | delete sql_mogel; |
386 | 414 | ||
387 | ///////sql_mogel = new QSqlTableModel();
|
- | |
388 | sql_mogel = new MyModel(); |
415 | sql_mogel = new MyModel(); |
389 | 416 | ||
390 | // sql_mogel = new QSqlTableModel(this);
|
- | |
391 | sql_mogel->setTable(inctance); |
417 | sql_mogel->setTable(inctance); |
392 | // sql_mogel->setEditStrategy(QSqlTableModel::OnFieldChange);
|
418 | // sql_mogel->setEditStrategy(QSqlTableModel::OnFieldChange);
|
393 | sql_mogel->setEditStrategy(QSqlTableModel::OnManualSubmit); |
419 | sql_mogel->setEditStrategy(QSqlTableModel::OnManualSubmit); |
394 | 420 | ||
395 | filtr_tmp.append(tr("`")); |
421 | filtr_tmp.append(tr("`")); |
396 | filtr_tmp.append(tr("ID")); |
422 | filtr_tmp.append(tr("ID")); |
397 | filtr_tmp.append(tr("`")); |
423 | filtr_tmp.append(tr("`")); |
398 | filtr_tmp.append(tr(" = '")); |
424 | filtr_tmp.append(tr(" = '")); |
399 | filtr_tmp.append(ID); |
425 | filtr_tmp.append(ID); |
400 | filtr_tmp.append(tr("'")); |
426 | filtr_tmp.append(tr("'")); |
401 | sql_mogel->setFilter(filtr_tmp); |
- | |
402 | sql_mogel->select(); |
- | |
403 | - | ||
404 | - | ||
405 | ui->tableView->setModel(sql_mogel); |
- | |
406 | ui->tableView->resizeColumnsToContents(); |
- | |
407 | ui->tableView->hideColumn(0); |
- | |
408 | 427 | ||
409 | connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex))); |
- | |
410 | - | ||
411 | //sql_mogel->clear();
|
- | |
412 | //sql_mogel->select();
|
- | |
413 | // ui->tableView->setVisible(false);
|
- | |
414 | // i++;
|
- | |
415 | }
|
428 | }
|
416 | if (item_type == tr("class")) |
429 | if (item_type == tr("class")) |
417 | {
|
430 | {
|
418 | QString parent_object_id; // èäåíòèôèêàòîð ðîäèòåëüñêîãî îáúåêòà |
431 | QString parent_object_id; // èäåíòèôèêàòîð ðîäèòåëüñêîãî îáúåêòà |
419 | 432 | ||
420 | QString class_id; // èäåíòèôèêàòîð âûáðàííîãî êëàññà |
- | |
421 | QString inctance;
|
- | |
422 | QString parent_class_inctance;
|
433 | QString parent_class_inctance;
|
423 | QString pointer_name;
|
- | |
424 | QString filtr_tmp;
|
- | |
425 | - | ||
426 | 434 | ||
427 | 435 | ||
428 | // sql_mogel->clear();
|
- | |
429 | - | ||
430 | ui->pushButton->setEnabled(true); |
436 | ui->pushButton->setEnabled(true); |
431 | ui->pushButton_2->setEnabled(true); |
437 | ui->pushButton_2->setEnabled(true); |
432 | 438 | ||
433 | disconnect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex))); |
- | |
434 | - | ||
435 | parent_object_id = parent_item->text(2); |
439 | parent_object_id = parent_item->text(2); |
436 | 440 | ||
437 | parentObject_id = parent_item->text(2); |
441 | parentObject_id = parent_item->text(2); |
438 | 442 | ||
439 | class_id = item->text(2); |
443 | class_id = item->text(2); |
440 | inctance = item->text(3); |
444 | inctance = item->text(3); |
441 | 445 | ||
442 | // parent_class_inctance = parent_item->parent()->text(3); // óçíàåì õðàíèëèùå îáúåêòîâ ðîäèòåëüñêîãî êëàññà
|
- | |
443 | - | ||
444 | // pointer_name = parent_item->text(4);
|
- | |
445 | pointer_name = item->text(4); |
446 | pointer_name = item->text(4); |
446 | delete sql_mogel; |
447 | delete sql_mogel; |
447 | 448 | ||
448 | - | ||
449 | ////// sql_mogel = new QSqlTableModel();
|
- | |
450 | - | ||
451 | sql_mogel = new MyModel(); |
449 | sql_mogel = new MyModel(); |
452 | 450 | ||
453 | // sql_mogel = new QSqlTableModel(this);
|
451 | // sql_mogel = new QSqlTableModel(this);
|
454 | sql_mogel->setTable(inctance); |
452 | sql_mogel->setTable(inctance); |
455 | // sql_mogel->setEditStrategy(QSqlTableModel::OnFieldChange);
|
453 | // sql_mogel->setEditStrategy(QSqlTableModel::OnFieldChange);
|
Строка 461... | Строка 459... | ||
461 | filtr_tmp.append(pointer_name); |
459 | filtr_tmp.append(pointer_name); |
462 | filtr_tmp.append(tr("`")); |
460 | filtr_tmp.append(tr("`")); |
463 | filtr_tmp.append(tr(" = '")); |
461 | filtr_tmp.append(tr(" = '")); |
464 | filtr_tmp.append(parent_object_id); |
462 | filtr_tmp.append(parent_object_id); |
465 | filtr_tmp.append(tr("'")); |
463 | filtr_tmp.append(tr("'")); |
466 | sql_mogel->setFilter(filtr_tmp); |
- | |
467 | }
|
- | |
468 | - | ||
469 | /****************************************
|
- | |
470 | spinDelegate.setInctance(parent_class_inctance);
|
- | |
471 | spinDelegate.getItems();
|
- | |
472 | ui->tableView->setItemDelegateForColumn(2, &spinDelegate);
|
- | |
473 | ***************************************/
|
- | |
474 | - | ||
475 | - | ||
476 | sql_mogel->select(); |
- | |
477 | - | ||
478 | QMap <QString, QString> pointersList = getPointersList(class_id); // ïîëó÷àåì ñïèñîê ïîëåé-óêàçàòåëåé |
- | |
479 | QStringList dateFieldList = getDataFieldList(class_id); // ïîëó÷àåì ñïèñîê ïîëåé c òèïîì "DATE" |
- | |
480 | 464 | ||
481 | QMap <int, QString> pointersToModel; |
465 | }
|
482 | 466 | ||
483 | //QStringList pointersNames;
|
- | |
484 | static QList<int> colomns_indexes; // ñïèñîê íîìåðîâ ñòîëáöîâ òàáëèöû ñ íåñòàíäàðòíûìè äåëåãàòàìè |
- | |
485 | static QList<int> date_colomns_indexes; // ñïèñîê íîìåðîâ ñòîëáöîâ òàáëèöû ñ äåëåãàòàìè äëÿ òèïà "DATE" |
- | |
486 | static QList<SpinBoxDelegate *> spin_delegate_list;// ñïèñîê óêàçàòåëåé íà íåñòàíäàðòíûå äåëåãàòû |
- | |
487 | SpinBoxDelegate * spin_delegate_tmp; |
- | |
488 | 467 | ||
- | 468 | }
|
|
489 | 469 | ||
490 | // Ñïåðâà "î÷èñòèì" òàáëèöó îò íåñòàíäàðòíûõ äåëåãàòîâ
|
- | |
491 | for (i=0; i < colomns_indexes.size(); i++){ // äëÿ âñåõ ïîëåé-óêàçàòåëåé: |
- | |
492 | ui->tableView->setItemDelegateForColumn(colomns_indexes.at(i), &standart_delegate ); // è ïðèñâàèâàåì ñòàíäàðòíûé äåëåãàò |
- | |
493 | // ui->tableView->setItemDelegateForColumn(colomns_indexes.at(i), &picture_delegate);
|
- | |
494 | 470 | ||
495 | }
|
- | |
496 | colomns_indexes.clear(); // î÷èùàåñ ñïèñîê ñòîëáöîâ ñ íåñòàíäàðòíûìè äåëåãàòàìè |
- | |
497 | 471 | ||
498 | // "Î÷èñòèì" òàáëèöó îò äåëåãàòîâ äëÿ òèïà "DATE"
|
- | |
499 | for (i=0; i < date_colomns_indexes.size(); i++){ // äëÿ âñåõ ïîëåé-óêàçàòåëåé: |
472 | pointersList = getPointersList(class_id); // ïîëó÷àåì ñïèñîê ïîëåé-óêàçàòåëåé |
500 | ui->tableView->setItemDelegateForColumn(date_colomns_indexes.at(i), &standart_delegate ); // è ïðèñâàèâàåì ñòàíäàðòíûé äåëåãàò |
- | |
501 | // ui->tableView->setItemDelegateForColumn(colomns_indexes.at(i), &picture_delegate);
|
473 | dateFieldList = getDataFieldList(class_id); // ïîëó÷àåì ñïèñîê ïîëåé c òèïîì "DATE" |
502 | 474 | ||
503 | }
|
- | |
504 | date_colomns_indexes.clear(); // î÷èùàåì ñïèñîê ñòîëáöîâ ñ äåëåãàòàìè äëÿ òèïà "DATE" |
475 | QMap <int, QString> pointersToModel; |
505 | 476 | ||
506 | 477 | ||
507 | 478 | ||
508 | for (int i=0; i < dateFieldList.count(); i++){ // äëÿ âñåõ ïîëåé ñ òèïîì "DATA" |
479 | for (int i=0; i < dateFieldList.count(); i++){ // äëÿ âñåõ ïîëåé ñ òèïîì "DATA" |
509 | static MyDEDelegate dateDelegate; |
480 | static MyDEDelegate dateDelegate; |
Строка 568... | Строка 539... | ||
568 | 539 | ||
569 | sql_mogel->setPointers(pointersToModel); // ïåðåäàåì ñïèñîê ìîäåëè |
540 | sql_mogel->setPointers(pointersToModel); // ïåðåäàåì ñïèñîê ìîäåëè |
570 | 541 | ||
571 | pointer_index = sql_mogel->record().indexOf(pointer_name); // ýòî ãëîáàëüíàÿ ïåðåìåííàÿ, íå òðîãàåì, íóæíà! :-) |
542 | pointer_index = sql_mogel->record().indexOf(pointer_name); // ýòî ãëîáàëüíàÿ ïåðåìåííàÿ, íå òðîãàåì, íóæíà! :-) |
572 | 543 | ||
573 | ui->tableView->setModel(sql_mogel); |
- | |
574 | - | ||
575 | ui->tableView->resizeColumnsToContents(); |
- | |
576 | ui->tableView->hideColumn(0); |
- | |
577 | - | ||
578 | - | ||
579 | - | ||
580 | - | ||
581 | - | ||
582 | - | ||
583 | - | ||
584 | /**********************************************************/
|
- | |
585 | - | ||
586 | // for (int i; i < sql_mogel->rowCount(); i++ ) {
|
- | |
587 | // ui->tableView->setRowHeight(i, 100);
|
- | |
588 | // }
|
- | |
589 | - | ||
590 | /**********************************************************/
|
- | |
591 | - | ||
592 | - | ||
593 | 544 | ||
594 | 545 | ||
595 | 546 | ||
- | 547 | sql_mogel->setFilter(filtr_tmp); |
|
- | 548 | sql_mogel->select(); |
|
596 | 549 | ||
597 | connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex))); |
550 | connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex))); |
598 | 551 | ||
- | 552 | ui->tableView->setModel(sql_mogel); |
|
599 | 553 | ||
600 | // ui->tableView->setVisible(true);;
|
554 | ui->tableView->resizeColumnsToContents(); |
601 | i++; |
- | |
602 | }
|
- | |
603 | - | ||
604 | //parent_object_id = parent_object_item->text(1);
|
555 | ui->tableView->hideColumn(0); |
605 | - | ||
606 | - | ||
607 | - | ||
608 | 556 | ||
609 | 557 | ||
610 | i++; |
558 | }
|
611 | 559 | ||
612 | }
|
560 | }
|
613 | 561 | ||
614 | 562 | ||
615 | void MainWindow::on_pushButton_clicked(){ // íàæàòèå êíîïêè "äîáàâèòü ñòðîêó" |
563 | void MainWindow::on_pushButton_clicked(){ // íàæàòèå êíîïêè "äîáàâèòü ñòðîêó" |