Хранилища Subversion OpenInventory

Редакция

Редакция 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
    {
-
 
372
        QString  class_id;
-
 
373
        QString ID;
-
 
374
        QString inctance;
-
 
375
        QString filtr_tmp;
-
 
376
370
-
 
371
QString  class_id; // èäåíòèôèêàòîð âûáðàííîãî êëàññà
-
 
372
QString inctance;
-
 
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")){
-
 
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)));
-
 
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
378
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
427
404
-
 
405
        ui->tableView->setModel(sql_mogel);
-
 
406
        ui->tableView->resizeColumnsToContents();
-
 
407
        ui->tableView->hideColumn(0);
-
 
408
-
 
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
434
426
435
427
-
 
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
-
 
481
        QMap <int, QString> pointersToModel;
-
 
482
-
 
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
-
 
489
-
 
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
-
 
495
        }
-
 
496
        colomns_indexes.clear(); // î÷èùàåñ ñïèñîê ñòîëáöîâ ñ íåñòàíäàðòíûìè äåëåãàòàìè
-
 
497
-
 
498
        // "Î÷èñòèì" òàáëèöó îò äåëåãàòîâ äëÿ òèïà "DATE"
-
 
499
        for (i=0; i < date_colomns_indexes.size(); i++){ // äëÿ âñåõ ïîëåé-óêàçàòåëåé:
-
 
500
            ui->tableView->setItemDelegateForColumn(date_colomns_indexes.at(i), &standart_delegate ); // è ïðèñâàèâàåì ñòàíäàðòíûé äåëåãàò
-
 
501
        // ui->tableView->setItemDelegateForColumn(colomns_indexes.at(i), &picture_delegate);
-
 
502
-
 
503
        }
-
 
504
        date_colomns_indexes.clear(); // î÷èùàåì ñïèñîê ñòîëáöîâ ñ äåëåãàòàìè äëÿ òèïà "DATE"
-
 
505
-
 
506
-
 
507
-
 
508
        for (int i=0; i < dateFieldList.count(); i++){ // äëÿ âñåõ ïîëåé ñ òèïîì "DATA"
-
 
509
            static MyDEDelegate dateDelegate;
-
 
510
            QString dateFieldName; // èìÿ ïîëÿ
-
 
511
            int dataFieldIndex; //
-
 
512
            dateFieldName = dateFieldList.at(i); // îïðåäåëÿåì èìÿ ïîëÿ ñ òèïîì "DATA"
-
 
513
            dataFieldIndex = sql_mogel->record().indexOf(dateFieldName); // îïðåäåëÿåì íîìåð ñòîëáöà â ìîäåëå
-
 
514
            date_colomns_indexes.append(dataFieldIndex);// çàïîìíèì íîìåð ñòîëáöà ñ äåëåãàòîì äëÿ òèïà "DATA"
-
 
515
            ui->tableView->setItemDelegateForColumn(dataFieldIndex, &dateDelegate);
-
 
516
464
517
        }
465
        }
518
466
519
467
-
 
468
    }
520
469
521
470
522
        for (int i=0; i < spin_delegate_list.count(); i++){ // óäàëÿåì íåñòàíäàðòíûå äåëåãàòû
-
 
523
        delete spin_delegate_list.at(i);
-
 
524
         }
-
 
525
471
526
        spin_delegate_list.clear(); // î÷èùàåì ñïèñîê óêàçàòåëåé íà íåñòàíäàðòíûå äåëåãàòû
472
pointersList = getPointersList(class_id); // ïîëó÷àåì ñïèñîê ïîëåé-óêàçàòåëåé
-
 
473
dateFieldList = getDataFieldList(class_id); // ïîëó÷àåì ñïèñîê ïîëåé c òèïîì "DATE"
527
474
528
        QStringList pointersNames;
475
QMap <int, QString> pointersToModel;
529
        pointersNames = pointersList.keys(); //çäåñü ñïèñîê èìåí ïîëåé-óêàçàòåëåé íà ðîäèòåëüñêèå êëàññû
-
 
530
476
531
477
532
478
-
 
479
for (int i=0; i < dateFieldList.count(); i++){ // äëÿ âñåõ ïîëåé ñ òèïîì "DATA"
-
 
480
    static MyDEDelegate dateDelegate;
-
 
481
    QString dateFieldName; // èìÿ ïîëÿ
-
 
482
    int dataFieldIndex; //
-
 
483
    dateFieldName = dateFieldList.at(i); // îïðåäåëÿåì èìÿ ïîëÿ ñ òèïîì "DATA"
-
 
484
    dataFieldIndex = sql_mogel->record().indexOf(dateFieldName); // îïðåäåëÿåì íîìåð ñòîëáöà â ìîäåëå
-
 
485
    date_colomns_indexes.append(dataFieldIndex);// çàïîìíèì íîìåð ñòîëáöà ñ äåëåãàòîì äëÿ òèïà "DATA"
-
 
486
    ui->tableView->setItemDelegateForColumn(dataFieldIndex, &dateDelegate);
533
487
-
 
488
}
534
489
535
    //    ui->tableView->setItemDelegateForColumn(2, picture_delegate);
-
 
536
490
537
       // ui->tableView->setRowHeight(1, 100);
-
 
538
491
539
492
-
 
493
for (int i=0; i < spin_delegate_list.count(); i++){ // óäàëÿåì íåñòàíäàðòíûå äåëåãàòû
-
 
494
delete spin_delegate_list.at(i);
-
 
495
 }
540
496
-
 
497
spin_delegate_list.clear(); // î÷èùàåì ñïèñîê óêàçàòåëåé íà íåñòàíäàðòíûå äåëåãàòû
541
498
-
 
499
QStringList pointersNames;
-
 
500
pointersNames = pointersList.keys(); //çäåñü ñïèñîê èìåí ïîëåé-óêàçàòåëåé íà ðîäèòåëüñêèå êëàññû
542
501
543
        QStringList parentInctancesList = pointersList.values(); // çäåñü ñïèñîê ñîîòâåòñòâóþùèõ õðàíèëèù
-
 
544
502
545
        for (i=0; i < pointersNames.size(); i++){ // äëÿ âñåõ ïîëåé-óêàçàòåëåé:
-
 
546
            QString pointerName;
-
 
547
503
548
            int pointerIndex;
-
 
549
            pointerName = pointersNames.at(i);  // îïðåäåëÿåì èìÿ ïîëÿ-óêàçàòåëÿ
-
 
550
            pointerIndex = sql_mogel->record().indexOf(pointerName); // îïðåäåëÿåì íîìåð ñòîëáöà â ìîäåëå
-
 
551
            colomns_indexes.append(pointerIndex); // çàïîìíèì íîìåð ñòîëáöà ñ íåñòàíäàðòíûì äåëåãàòîì
-
 
552
            spin_delegate_tmp = new SpinBoxDelegate();
-
 
553
504
554
            // // spinDelegate.setInctance(parentInctancesList.at(i)); // äåëåãàòó ïåðåäàåì èìÿ õðàíèëèùà îáúåêòîâ ðîäèòåëüñêîãî êëàññà
-
 
555
            // // spinDelegate.getItems();                             // ïðîñèì äåëåãàòà ñîñòàâèòü ñïèñîê îáúåêòîâ â õðàíèëèùå
-
 
556
505
557
            spin_delegate_tmp->setInctance(parentInctancesList.at(i));
506
//    ui->tableView->setItemDelegateForColumn(2, picture_delegate);
558
            spin_delegate_tmp->getItems();
-
 
559
507
560
            spin_delegate_list.append(spin_delegate_tmp);
508
// ui->tableView->setRowHeight(1, 100);
561
509
562
          // // ui->tableView->setItemDelegateForColumn(pointerIndex, &spinDelegate); // è ïðèñâàèâàåì åãî ñîîòâåòñòâóþùåìó ñòîëáöó íàøåé òàáëèöû
-
 
563
510
564
            ui->tableView->setItemDelegateForColumn(pointerIndex, spin_delegate_tmp);
-
 
565
511
566
            pointersToModel.insert(pointerIndex, parentInctancesList.at(i)); // ôîðìèðóåì ñïèñîê ñòîëáöîâ ñ óêàçàòåëÿìè
-
 
567
        }
-
 
568
512
569
        sql_mogel->setPointers(pointersToModel); // ïåðåäàåì ñïèñîê ìîäåëè
-
 
570
513
571
        pointer_index = sql_mogel->record().indexOf(pointer_name); // ýòî ãëîáàëüíàÿ ïåðåìåííàÿ, íå òðîãàåì, íóæíà! :-)
514
QStringList parentInctancesList = pointersList.values(); // çäåñü ñïèñîê ñîîòâåòñòâóþùèõ õðàíèëèù
572
515
-
 
516
for (i=0; i < pointersNames.size(); i++){ // äëÿ âñåõ ïîëåé-óêàçàòåëåé:
573
        ui->tableView->setModel(sql_mogel);
517
    QString pointerName;
574
518
-
 
519
    int pointerIndex;
575
        ui->tableView->resizeColumnsToContents();
520
    pointerName = pointersNames.at(i);  // îïðåäåëÿåì èìÿ ïîëÿ-óêàçàòåëÿ
-
 
521
    pointerIndex = sql_mogel->record().indexOf(pointerName); // îïðåäåëÿåì íîìåð ñòîëáöà â ìîäåëå
-
 
522
    colomns_indexes.append(pointerIndex); // çàïîìíèì íîìåð ñòîëáöà ñ íåñòàíäàðòíûì äåëåãàòîì
576
        ui->tableView->hideColumn(0);
523
    spin_delegate_tmp = new SpinBoxDelegate();
577
524
-
 
525
    // // spinDelegate.setInctance(parentInctancesList.at(i)); // äåëåãàòó ïåðåäàåì èìÿ õðàíèëèùà îáúåêòîâ ðîäèòåëüñêîãî êëàññà
-
 
526
    // // spinDelegate.getItems();                             // ïðîñèì äåëåãàòà ñîñòàâèòü ñïèñîê îáúåêòîâ â õðàíèëèùå
578
527
-
 
528
    spin_delegate_tmp->setInctance(parentInctancesList.at(i));
-
 
529
    spin_delegate_tmp->getItems();
579
530
-
 
531
    spin_delegate_list.append(spin_delegate_tmp);
580
532
-
 
533
  // // ui->tableView->setItemDelegateForColumn(pointerIndex, &spinDelegate); // è ïðèñâàèâàåì åãî ñîîòâåòñòâóþùåìó ñòîëáöó íàøåé òàáëèöû
581
534
-
 
535
    ui->tableView->setItemDelegateForColumn(pointerIndex, spin_delegate_tmp);
582
536
-
 
537
    pointersToModel.insert(pointerIndex, parentInctancesList.at(i)); // ôîðìèðóåì ñïèñîê ñòîëáöîâ ñ óêàçàòåëÿìè
-
 
538
}
583
539
584
        /**********************************************************/
540
sql_mogel->setPointers(pointersToModel); // ïåðåäàåì ñïèñîê ìîäåëè
585
541
586
  //      for (int i; i < sql_mogel->rowCount(); i++ ) {
542
pointer_index = sql_mogel->record().indexOf(pointer_name); // ýòî ãëîáàëüíàÿ ïåðåìåííàÿ, íå òðîãàåì, íóæíà! :-)
587
  //          ui->tableView->setRowHeight(i, 100);
-
 
588
  //      }
-
 
589
543
590
        /**********************************************************/
-
 
591
544
592
545
593
546
-
 
547
sql_mogel->setFilter(filtr_tmp);
-
 
548
sql_mogel->select();
594
549
-
 
550
connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
595
551
-
 
552
ui->tableView->setModel(sql_mogel);
596
553
597
        connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
554
ui->tableView->resizeColumnsToContents();
-
 
555
ui->tableView->hideColumn(0);
598
556
599
557
600
        //     ui->tableView->setVisible(true);;
-
 
601
        i++;
-
 
602
    }
558
    }
603
559
604
//parent_object_id = parent_object_item->text(1);
-
 
605
-
 
606
-
 
607
-
 
608
-
 
609
-
 
610
i++;
-
 
611
-
 
612
}
560
}
613
561
614
562
615
void MainWindow::on_pushButton_clicked(){ // íàæàòèå êíîïêè "äîáàâèòü ñòðîêó"
563
void MainWindow::on_pushButton_clicked(){ // íàæàòèå êíîïêè "äîáàâèòü ñòðîêó"
616
     int row = sql_mogel->rowCount();
564
     int row = sql_mogel->rowCount();