Хранилища Subversion OpenInventory

Редакция

Редакция 146 | Редакция 148 | К новейшей редакции | Весь файл | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS

Редакция 146 Редакция 147
Строка 114... Строка 114...
114
    result = file.open(QIODevice::ReadOnly);
114
    result = file.open(QIODevice::ReadOnly);
115
    if (result) {
115
    if (result) {
116
                     model_str = QString(tr(file.readAll()));
116
                     model_str = QString(tr(file.readAll()));
117
                }
117
                }
118
118
119
    setupModelData(model_str.split(QString("\n")), rootItem1);
119
    setupModelData(model_str.split(QString("\n")), rootItem1, -1);
120
120
121
121
122
    return result;
122
    return result;
123
123
124
}
124
}
125
125
126
126
127
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent)
127
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row)
128
{
128
{
129
    QList<QTreeWidgetItem*> parents;
129
    QList<QTreeWidgetItem*> parents;
130
    QList<int> indentations;
130
    QList<int> indentations;
131
    parents << parent;
131
    parents << parent;
132
    indentations << 0;
132
    indentations << 0;
Строка 178... Строка 178...
178
            if (columnData.count()>2)
178
            if (columnData.count()>2)
179
            {
179
            {
180
            itm_tmp->setText(1, QString(columnData.at(2).toString()));
180
            itm_tmp->setText(1, QString(columnData.at(2).toString()));
181
            itm_tmp->setText(2, QVariant(number).toString()); // íîìåð ñòðîêè â ôàéëå-ìîäåëè îòîáðàæåíèÿ
181
            itm_tmp->setText(2, QVariant(number).toString()); // íîìåð ñòðîêè â ôàéëå-ìîäåëè îòîáðàæåíèÿ
182
            itm_tmp->setText(3, QVariant(indentations.size()).toString());
182
            itm_tmp->setText(3, QVariant(indentations.size()).toString());
-
 
183
            itm_tmp->setText(4, QVariant(row).toString());
183
            }
184
            }
184
        }
185
        }
185
186
186
        number++;
187
        number++;
187
    }
188
    }
Строка 385... Строка 386...
385
 rootItem2 = new  QTreeWidgetItem(rootItem1);
386
 rootItem2 = new  QTreeWidgetItem(rootItem1);
386
 rootItem2->setText(0, root_class_name);
387
 rootItem2->setText(0, root_class_name);
387
 rootItem2->setText(1, rootClassID);
388
 rootItem2->setText(1, rootClassID);
388
 rootItem2->setCheckState(0,Qt::Checked);
389
 rootItem2->setCheckState(0,Qt::Checked);
389
390
390
 addChildsItems(rootItem2);
391
 addChildsItems(rootItem2, -1);
391
392
392
393
393
/*
394
/*
394

395

395
sql_str = tr("select * "
396
sql_str = tr("select * "
Строка 422... Строка 423...
422
423
423
424
424
}
425
}
425
426
426
427
427
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID){
428
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row){
428
QSqlQuery q;
429
QSqlQuery q;
429
QString sql_str;
430
QString sql_str;
430
QString field_name_str;
431
QString field_name_str;
431
QString root_class_name;
432
QString root_class_name;
432
bool ok;
433
bool ok;
Строка 446... Строка 447...
446
447
447
// root_item->removeChild(root_item->child(0)); // î÷èùàåì ñïèñîê äî÷åðíèõ êëàññîâ
448
// root_item->removeChild(root_item->child(0)); // î÷èùàåì ñïèñîê äî÷åðíèõ êëàññîâ
448
if (root_item->childCount()==0){ // íåò êîðíåâîãî êëàññà, ñîçäàäèì åãî
449
if (root_item->childCount()==0){ // íåò êîðíåâîãî êëàññà, ñîçäàäèì åãî
449
    QTreeWidgetItem* item_tmp;
450
    QTreeWidgetItem* item_tmp;
450
    item_tmp = new QTreeWidgetItem (root_item);
451
    item_tmp = new QTreeWidgetItem (root_item);
-
 
452
    item_tmp->setText(4, QVariant(row).toString());
451
453
452
}
454
}
453
455
454
if (root_item->childCount()==1){ // êîðíåâîé êëàññ åñòü è îí ïóñòîé, î÷èùàòü åãî íå íàäî
456
if (root_item->childCount()==1){ // êîðíåâîé êëàññ åñòü è îí ïóñòîé, î÷èùàòü åãî íå íàäî
455
root_item->child(0)->setText(0, root_class_name);
457
root_item->child(0)->setText(0, root_class_name);
456
root_item->child(0)->setText(1, rootClassID);
458
root_item->child(0)->setText(1, rootClassID);
457
root_item->child(0)->setCheckState(0,Qt::Checked);}
459
root_item->child(0)->setCheckState(0,Qt::Checked);
-
 
460
root_item->setText(4, QVariant(row).toString());
-
 
461
-
 
462
}
458
463
459
464
460
465
461
//delete rootItem2;
466
//delete rootItem2;
462
467
Строка 475... Строка 480...
475
for (int i=0; i < child_count; i++){ // åñëè êîðíåâîé êëàññ åñòü è íå ïóñòîé, î÷èùàåì åãî
480
for (int i=0; i < child_count; i++){ // åñëè êîðíåâîé êëàññ åñòü è íå ïóñòîé, î÷èùàåì åãî
476
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
481
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
477
}
482
}
478
483
479
child_count = root_item->child(0)->childCount();
484
child_count = root_item->child(0)->childCount();
480
addChildsItems(root_item->child(0));
485
addChildsItems(root_item->child(0), row);
481
/*
486
/*
482
sql_str = tr("select * "
487
sql_str = tr("select * "
483
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
488
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
484
             );
489
             );
485
sql_str.append(rootClassID);
490
sql_str.append(rootClassID);
Строка 545... Строка 550...
545
550
546
    return class_name_str;
551
    return class_name_str;
547
552
548
}
553
}
549
554
550
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
555
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item, int row){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
551
QStringList chields_list;
556
QStringList chields_list;
552
QString parent_ID;
557
QString parent_ID;
553
QTreeWidgetItem *Item_tmp;
558
QTreeWidgetItem *Item_tmp;
554
parent_ID = perent_class_item->text(1);
559
parent_ID = perent_class_item->text(1);
555
int chields_count, i;
560
int chields_count, i;
Строка 563... Строка 568...
563
    chield_class_name = MainWindow::ClassName(chield_id);
568
    chield_class_name = MainWindow::ClassName(chield_id);
564
    Item_tmp = new QTreeWidgetItem(perent_class_item);
569
    Item_tmp = new QTreeWidgetItem(perent_class_item);
565
    Item_tmp->setText(0, chield_class_name);
570
    Item_tmp->setText(0, chield_class_name);
566
    Item_tmp->setText(1, chield_id);
571
    Item_tmp->setText(1, chield_id);
567
    Item_tmp->setCheckState(0, Qt::Checked);
572
    Item_tmp->setCheckState(0, Qt::Checked);
-
 
573
    Item_tmp->setText(4, QVariant(row).toString());
568
    MainWindow::addChildsItems(Item_tmp);
574
    MainWindow::addChildsItems(Item_tmp, row);
569
}
575
}
570
576
571
i++;
577
i++;
572
578
573
}
579
}
Строка 693... Строка 699...
693
void MainWindow::on_comboBox_currentIndexChanged( int index ){
699
void MainWindow::on_comboBox_currentIndexChanged( int index ){
694
QStringList classesNameList;
700
QStringList classesNameList;
695
QStringList classesID_list;
701
QStringList classesID_list;
696
QString ID_str;
702
QString ID_str;
697
if (index == -1) return;
703
if (index == -1) return;
-
 
704
int row;
698
705
699
classesID_list = class_list_map.keys();
706
classesID_list = class_list_map.keys();
700
classesNameList = class_list_map.values();
707
classesNameList = class_list_map.values();
701
ID_str =  classesID_list[index];
708
ID_str =  classesID_list[index];
702
ui->label->setText(ID_str);
709
ui->label->setText(ID_str);
703
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1)
710
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1)
704
{
711
{
-
 
712
    row = QVariant(ui->treeWidget->currentItem()->text(4)).toInt();
705
    model_is_build = false; // ÷òîáû íå âûçûâàëîñü ñîáûòèå on_treeWidget_itemChanged
713
    model_is_build = false; // ÷òîáû íå âûçûâàëîñü ñîáûòèå on_treeWidget_itemChanged
706
    rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str);
714
    rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str, row);
707
    model_is_build = true; // òåïåðü ïóñòü âûçûâàåòñÿ
715
    model_is_build = true; // òåïåðü ïóñòü âûçûâàåòñÿ
-
 
716
    QString mdl_str = MainWindow::creatModelString(ui->treeWidget->currentItem()); //
-
 
717
    model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row, 2), QVariant(mdl_str));
708
}
718
}
709
    getDatabaseData();
719
    getDatabaseData();
710
720
711
721
712
}
722
}
713
723
714
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
724
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
715
    int i;
725
    int i;
716
    i++;
726
    i++;
-
 
727
    QTreeWidgetItem * item_tmp;
-
 
728
    QString mdl_str;
-
 
729
    QString row; // íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé èçìåíåííîé ìîäåëå
-
 
730
    QList <int> rows_list;
-
 
731
-
 
732
-
 
733
    if ((column) == 0 && (model_is_build)) {
-
 
734
    // if (!model_is_build) return; // ìîäåëü åù¸ íå ïîñòðîåíà
-
 
735
    rows_list =  models_items.keys();
-
 
736
-
 
737
    row= item->text(4);
-
 
738
    if (!row.isEmpty()){
-
 
739
-
 
740
-
 
741
        int row_int;
-
 
742
    row_int = QVariant(row).toInt();
-
 
743
     if (rows_list.indexOf(row_int) != -1)
-
 
744
        {
-
 
745
            item_tmp = models_items[row_int];
-
 
746
            mdl_str = MainWindow::creatModelString(item_tmp);
-
 
747
            model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row_int, 2), QVariant(mdl_str));
-
 
748
        }
-
 
749
-
 
750
-
 
751
    }
717
752
-
 
753
-
 
754
}
-
 
755
-
 
756
/*
-
 
757
    QTreeWidgetItem * item_tmp;
-
 
758
    item_tmp = item;
-
 
759
    while (item_tmp ){
-
 
760
        item_tmp = item_tmp->parent();
-
 
761
    }
-
 
762
  */
718
    if ((column) == 0 && (model_is_build)) getDatabaseData();
763
    if ((column) == 0 && (model_is_build)) getDatabaseData();
719
764
-
 
765
720
}
766
}
721
767
722
768
723
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
769
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
724
    int i;
770
    int i;