Хранилища Subversion OpenInventory

Редакция

Редакция 145 | Редакция 147 | К новейшей редакции | Содержимое файла | Сравнить с предыдущей | Последнее изменение | Открыть журнал | RSS

Редакция Автор № строки Строка
88 pingvin 1
#include "mainwindow.h"
2
#include "ui_mainwindow.h"
3
 
4
MainWindow::MainWindow(QWidget *parent) :
5
    QMainWindow(parent),
6
    ui(new Ui::MainWindow)
7
{
8
    ui->setupUi(this);
106 pingvin 9
   // connect( ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_currentIndexChanged(int)));
118 pingvin 10
    model_is_build = false;
145 pingvin 11
   // MainWindow::readModel();
89 pingvin 12
 
91 pingvin 13
   //QString model_str;
140 pingvin 14
 
15
 
16
   /*
91 pingvin 17
   MainWindow::creatModelString();
18
   int i;
19
   i++;
93 pingvin 20
    QFile file_tmp("./temp.txt");
92 pingvin 21
    bool ok;
22
    ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
23
    QTextStream out(&file_tmp);
24
    out << MainWindow::modelString;
25
    file_tmp.close();
140 pingvin 26
*/
114 pingvin 27
    ui->treeWidget->setAlternatingRowColors(true);
28
    ui->treeWidget_2->setAlternatingRowColors(true);
132 pingvin 29
 
30
 
31
    MainWindow::readSettings();
32
 
93 pingvin 33
    MainWindow::openDataBase();
136 pingvin 34
 
104 pingvin 35
    MainWindow::initComboBox();
136 pingvin 36
 
145 pingvin 37
//    MainWindow::buildPreviewModel(tr(" "), tr("11"));
136 pingvin 38
 
142 pingvin 39
    MainWindow::initListModelsTablle();
140 pingvin 40
 
144 pingvin 41
    MainWindow::readModels();
42
 
145 pingvin 43
 //   MainWindow::creatModelString();
140 pingvin 44
    //int i;
45
    //i++;
145 pingvin 46
 
47
    /*
48
    QFile file_tmp("./modelstring.txt");
140 pingvin 49
     bool ok;
50
     file_tmp.remove();
51
     ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
52
     QTextStream out(&file_tmp);
53
     out.setCodec("cp1251");
54
     out << MainWindow::modelString;
55
     file_tmp.close();
145 pingvin 56
    */
140 pingvin 57
 
58
 
59
 
109 pingvin 60
    getDatabaseData();
127 pingvin 61
    //// sql_mogel = new QSqlTableModel();
62
    sql_mogel = new MyModel();
63
 
64
 
118 pingvin 65
    model_is_build = true;
119 pingvin 66
    connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
146 pingvin 67
    connect(model_for_ListModelsTable, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_model_for_ListModelsTable_dataChanged(QModelIndex,QModelIndex)));
68
 
119 pingvin 69
    ui->pushButton_3->setEnabled(false);
70
    ui->pushButton_4->setEnabled(false);
71
 
132 pingvin 72
   // setFrm.show();
119 pingvin 73
 
132 pingvin 74
    connect(ui->getsettingAct, SIGNAL(triggered()), this, SLOT(getSetting())); //       " "  " "
75
    connect(setFrm.pushButton, SIGNAL(clicked()), this, SLOT(applySetting()));
76
 
138 pingvin 77
picture_delegate = new CPictureDelegate(this);
132 pingvin 78
 
88 pingvin 79
}
80
 
81
MainWindow::~MainWindow()
82
{
117 pingvin 83
    delete sql_mogel;
88 pingvin 84
    delete ui;
85
}
86
 
87
void MainWindow::changeEvent(QEvent *e)
88
{
89
    QMainWindow::changeEvent(e);
90
    switch (e->type()) {
91
    case QEvent::LanguageChange:
92
        ui->retranslateUi(this);
93
        break;
94
    default:
95
        break;
96
    }
97
}
89 pingvin 98
 
99
 
100
bool MainWindow::readModel(){
101
    bool result;
102
    QString model_str;
140 pingvin 103
    QFile file("modelstring.txt");
141 pingvin 104
  //  QFile file("model.txt");
91 pingvin 105
   rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
89 pingvin 106
    rootItem1->setText(0, tr(" 1"));
107
   // rootItem2 = new  QTreeWidgetItem(rootItem1);
108
   // rootItem2->setText(0, tr(" 2"));
109
    rootItem1->setCheckState(0,Qt::Checked);
110
   // rootItem2->setCheckState(0,Qt::Checked);
111
 
112
 
113
 
114
    result = file.open(QIODevice::ReadOnly);
115
    if (result) {
90 pingvin 116
                     model_str = QString(tr(file.readAll()));
89 pingvin 117
                }
118
 
91 pingvin 119
    setupModelData(model_str.split(QString("\n")), rootItem1);
89 pingvin 120
 
121
 
122
    return result;
123
 
124
}
125
 
126
 
127
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent)
128
{
129
    QList<QTreeWidgetItem*> parents;
130
    QList<int> indentations;
131
    parents << parent;
132
    indentations << 0;
133
 
134
    int number = 0;
135
 
136
    while (number < lines.count()) {
137
        int position = 0;
138
        while (position < lines[number].length()) {
139
            if (lines[number].mid(position, 1) != " ")
140
                break;
141
            position++;
142
        }
143
 
144
        QString lineData = lines[number].mid(position).trimmed();
145
 
146
        if (!lineData.isEmpty()) {
147
            // Read the column data from the rest of the line.
148
            QStringList columnStrings = lineData.split("\t", QString::SkipEmptyParts);
149
            QList<QVariant> columnData;
150
            for (int column = 0; column < columnStrings.count(); ++column)
151
                columnData << columnStrings[column];
152
 
153
            if (position > indentations.last()) {
154
                // The last child of the current parent is now the new parent
155
                // unless the current parent has no children.
156
 
157
                if (parents.last()->childCount() > 0) {
158
                    parents << parents.last()->child(parents.last()->childCount()-1);
159
                    indentations << position;
160
                }
161
            } else {
162
                while (position < indentations.last() && parents.count() > 0) {
163
                    parents.pop_back();
164
                    indentations.pop_back();
165
                }
166
            }
167
 
168
            // Append a new item to the current parent's list of children.
169
          // // //  parents.last()->appendChild(new QTreeWidgetItem(columnData, parents.last()));
170
            QTreeWidgetItem* itm_tmp;
171
            itm_tmp = new QTreeWidgetItem( parents.last());
172
 
173
            itm_tmp->setText(0, QString(columnData.at(0).toString()));
174
            if (columnData.at(1).toString() == "true") {
175
                                                            itm_tmp->setCheckState(0,Qt::Checked);
176
                                                        }
177
            else itm_tmp->setCheckState(0,Qt::Unchecked);
141 pingvin 178
            if (columnData.count()>2)
179
            {
90 pingvin 180
            itm_tmp->setText(1, QString(columnData.at(2).toString()));
181
            itm_tmp->setText(2, QVariant(number).toString()); //    - 
182
            itm_tmp->setText(3, QVariant(indentations.size()).toString());
141 pingvin 183
            }
89 pingvin 184
        }
185
 
186
        number++;
187
    }
188
}
189
 
190
 
191
/*
192
void MainWindow::openBase()
193
{
194
 
195
        db = QSqlDatabase::addDatabase("QMYSQL");
196
        pdb = &db;
197
        raportFrm.pdb = &db;
198
 
199
        pdb->setHostName(hostName);
200
        pdb->setDatabaseName(baseName);
201
        pdb->setUserName(userName);
202
        pdb->setPassword(password);
203
        bool ok = pdb->open();
204
        if (!ok) {
205
                                QMessageBox::critical( //     .
206
                                                                                this,                      //  .
207
                                                                                QObject::tr("Database Error"),   // .
208
                                                                                pdb->lastError().text());          //  .
209
                         }
210
        if (ok)
211
        {lineEdit-> insert(tr("  "));
212
        }
213
        else {lineEdit-> insert(tr(" .  : "));
214
                  lineEdit-> insert(pdb->lastError().text());
215
                 }
216
 
217
 
218
 
219
        model = new QSqlTableModel(this);
220
        model->setTable(tableName);
221
 
222
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
223
        model->setSort(0, Qt::AscendingOrder);
224
 
225
        model->select();
226
 
227
 
228
        QSqlField field(tr("age"), QVariant::Int);
229
        field.setValue(QString(tr("123")));
230
 
231
        bool okey;
232
        int index;
233
        QSqlRecord record;
234
 
235
 
236
        tableView->setModel(model);
237
        view.setModel(model);
238
 
239
 
240
        tableView->setAlternatingRowColors(true);
241
        view.setAlternatingRowColors(true);
242
 
243
        tableView->resizeColumnsToContents();
244
 
245
 
246
        view.resizeColumnsToContents();
247
 
248
        tableView->show();
249
 
250
 
251
 
252
        initTreeWidget();
253
}
254
*/
91 pingvin 255
 
256
 
146 pingvin 257
QString MainWindow::creatModelString(QTreeWidgetItem* model){
91 pingvin 258
 
259
    MainWindow::modelString.clear(); //   
260
 //   for (int i =0; i < rootItem1->childCount(); ++i )
261
 
146 pingvin 262
    {MainWindow::addChildsString(model, 0);}
263
 
264
    return MainWindow::modelString;
145 pingvin 265
// {MainWindow::addChildsString(ui->treeWidget, 0);}
266
 /*
91 pingvin 267
    int root_item_child_count;
268
    int i;
269
    root_item_child_count = rootItem1->childCount();
270
    i++;
145 pingvin 271
*/
91 pingvin 272
}
273
 
274
 
275
void MainWindow::addChildsString(QTreeWidgetItem *parentItem, int level){
276
    int child_count;
277
    child_count = parentItem->childCount();
278
    for (int i=0; i < child_count; ++i){
279
        for (int m=0; m < level; ++m){
280
        modelString.append(tr("    ")); //   -  ,     
281
    }
282
        modelString.append(parentItem->child(i)->text(0)); //    -  
283
        modelString.append(tr("\t\t\t\t")); //   -   
284
        if (parentItem->child(i)->checkState(0) ==  Qt::Checked) {modelString.append(tr("true"));} //   ,  "true",      
285
            else {modelString.append(tr("false"));} //     -  "false",       
286
        modelString.append(tr("\t\t\t\t")); //   -   
287
        modelString.append(parentItem->child(i)->text(1)); //    - ID 
288
         modelString.append(tr("\n")); //  
289
        if (parentItem->child(i)->childCount() > 0) { MainWindow::addChildsString(parentItem->child(i), level+1);}
290
 
291
    }
292
int i;
293
i++;
294
}
93 pingvin 295
 
296
 
297
bool MainWindow::openDataBase(){
298
    QString errorString;
299
    sql = QSqlDatabase::addDatabase("QMYSQL");
131 pingvin 300
//    sql.setDatabaseName(tr("an_db"));
301
 
132 pingvin 302
    // // // sql.setDatabaseName(tr("inventory"));
131 pingvin 303
 
132 pingvin 304
    sql.setDatabaseName(baseName);
131 pingvin 305
 
306
 
307
 
132 pingvin 308
    // // // sql.setHostName(tr("localhost"));
93 pingvin 309
 
132 pingvin 310
    sql.setHostName(hostName);
311
 
312
 
313
    // // // sql.setUserName(tr("an"));
314
 
315
    sql.setUserName(userName);
316
 
317
 
318
 
319
   // // //  sql.setPassword(tr("393939"));
320
 
321
 
322
    sql.setPassword(password);
323
 
324
 
325
 
93 pingvin 326
    bool ok;
327
    ok = sql.open();
328
 
329
    /*
330
    if (!ok) {
331
                                QMessageBox::critical( //     .
332
                                                                                this,                      //  .
333
                                                                                QObject::tr("Database Error"),   // .
334
                                                                                sql.lastError().text() );         //  .
335
 
336
 
337
                            }
338
 
339
*/
340
    if (!ok) {
341
                            QMessageBox::critical( //     .
342
                                                                            this,                      //  .
343
                                                                            QObject::tr("Database Error"),   // .
344
                                                                            sql.lastError().text());          //  .
345
                     }
346
else {
347
 
348
        QMessageBox::information( //     .
349
                                                        this,                      //  .
350
                                                        QObject::tr("Database Connect"),   // .
351
                                                        QObject::tr("     ."));         //  .
352
 
353
 
354
 
355
 
356
 
357
    }
358
 
359
     return ok;
360
}
94 pingvin 361
 
362
 
97 pingvin 363
bool MainWindow::buildPreviewModel(QString modelName, QString rootClassID){
94 pingvin 364
QSqlQuery q;
365
QString sql_str;
95 pingvin 366
QString field_name_str;
367
QString root_class_name;
368
bool ok;
94 pingvin 369
int field_name;
95 pingvin 370
 
371
//ui->treeWidget->clear();
372
 
373
root_class_name = MainWindow::ClassName(rootClassID); //   
374
 
145 pingvin 375
 
95 pingvin 376
rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
145 pingvin 377
 root_items_list << rootItem1;
97 pingvin 378
 rootItem1->setText(0, modelName);
379
 
95 pingvin 380
 rootItem1->setCheckState(0,Qt::Checked);
104 pingvin 381
 rootItems.append(rootItem1);
95 pingvin 382
 
383
 
104 pingvin 384
 
145 pingvin 385
 rootItem2 = new  QTreeWidgetItem(rootItem1);
386
 rootItem2->setText(0, root_class_name);
387
 rootItem2->setText(1, rootClassID);
388
 rootItem2->setCheckState(0,Qt::Checked);
95 pingvin 389
 
145 pingvin 390
 addChildsItems(rootItem2);
95 pingvin 391
 
145 pingvin 392
 
393
/*
394
 
94 pingvin 395
sql_str = tr("select * "
95 pingvin 396
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       // ,     
94 pingvin 397
             );
398
sql_str.append(rootClassID);
399
 
95 pingvin 400
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
94 pingvin 401
 
95 pingvin 402
q.prepare(sql_str);
403
 
404
ok = q.exec();
405
if (!ok) {
406
                        QMessageBox::critical( //     .
407
                                                                        this,                      //  .
408
                                                                        QObject::tr("Database Error"),   // .
409
                                                                        q.lastError().text());          //  .
410
                 }
411
field_name = q.record().indexOf(tr("FieldName"));
412
while(q.next()){
413
 
414
                field_name_str = q.value(field_name).toString();
415
 
416
                }
417
 
100 pingvin 418
 
419
 
420
 
145 pingvin 421
*/
422
 
423
 
94 pingvin 424
}
95 pingvin 425
 
426
 
107 pingvin 427
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID){
428
QSqlQuery q;
429
QString sql_str;
430
QString field_name_str;
431
QString root_class_name;
432
bool ok;
433
int field_name;
95 pingvin 434
 
107 pingvin 435
//ui->treeWidget->clear();
436
 
437
root_class_name = MainWindow::ClassName(rootClassID); //   
438
 
439
 
440
// rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
441
// root_items_list << rootItem1;
442
// rootItem1->setText(0, modelName);
443
 
444
// rootItem1->setCheckState(0,Qt::Checked);
445
// rootItems.append(rootItem1);
446
 
447
// root_item->removeChild(root_item->child(0)); //    
145 pingvin 448
if (root_item->childCount()==0){ //   ,  
449
    QTreeWidgetItem* item_tmp;
450
    item_tmp = new QTreeWidgetItem (root_item);
451
 
452
}
453
 
454
if (root_item->childCount()==1){ //      ,    
107 pingvin 455
root_item->child(0)->setText(0, root_class_name);
456
root_item->child(0)->setText(1, rootClassID);
457
root_item->child(0)->setCheckState(0,Qt::Checked);}
458
 
145 pingvin 459
 
460
 
107 pingvin 461
//delete rootItem2;
462
 
463
 
464
// rootItem2 = new  QTreeWidgetItem(rootItem1);
465
 
466
 
467
 
468
// rootItem2->setText(0, root_class_name);
469
// rootItem2->setText(1, rootClassID);
470
// rootItem2->setCheckState(0,Qt::Checked);
471
 
472
int child_count = root_item->child(0)->childCount();
473
 
474
 
145 pingvin 475
for (int i=0; i < child_count; i++){ //       ,  
107 pingvin 476
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
477
}
478
 
479
child_count = root_item->child(0)->childCount();
480
addChildsItems(root_item->child(0));
481
/*
482
sql_str = tr("select * "
483
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       // ,     
484
             );
485
sql_str.append(rootClassID);
486
 
487
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
488
 
489
q.prepare(sql_str);
490
 
491
ok = q.exec();
492
if (!ok) {
493
                        QMessageBox::critical( //     .
494
                                                                        this,                      //  .
495
                                                                        QObject::tr("Database Error"),   // .
496
                                                                        q.lastError().text());          //  .
497
                 }
498
field_name = q.record().indexOf(tr("FieldName"));
499
while(q.next()){
500
 
501
                field_name_str = q.value(field_name).toString();
502
 
503
                }
504
 
505
*/
506
 
507
 
508
}
509
 
510
 
511
 
512
 
95 pingvin 513
QString MainWindow::ClassName(QString class_id){ //     ID
514
    QSqlQuery q;
515
    QString sql_str;
516
    QString class_name_str;
517
    bool ok;
518
    int field_class_name;
519
 
520
    sql_str = tr("select * "
521
                 " from ListOfClasses where ListOfClasses.ID = '"       // ,     
522
                 );
523
 
524
    sql_str.append(class_id);
525
    sql_str.append(tr("' "));
526
 
527
    q.prepare(sql_str);
528
 
529
    ok = q.exec();
530
 
531
 
532
    if (!ok) {
533
                            QMessageBox::critical( //     .
534
                                                                            this,                      //  .
535
                                                                            QObject::tr("Database Error"),   // .
536
                                                                            q.lastError().text());          //  .
537
                     }
538
 
539
    field_class_name = q.record().indexOf(tr("ClassName"));
540
    while(q.next()){
541
 
542
                    class_name_str = q.value(field_class_name).toString();
543
 
544
                    }
545
 
546
    return class_name_str;
547
 
548
}
98 pingvin 549
 
550
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item){ //          ,      
100 pingvin 551
QStringList chields_list;
552
QString parent_ID;
553
QTreeWidgetItem *Item_tmp;
554
parent_ID = perent_class_item->text(1);
555
int chields_count, i;
98 pingvin 556
 
100 pingvin 557
chields_list = MainWindow::classChields(parent_ID);
558
if(chields_list.isEmpty()) return;
559
chields_count = chields_list.size();
560
for (int l = 0; l < chields_count; ++l){
561
    QString chield_class_name, chield_id;
562
    chield_id = chields_list.at(l);
563
    chield_class_name = MainWindow::ClassName(chield_id);
564
    Item_tmp = new QTreeWidgetItem(perent_class_item);
565
    Item_tmp->setText(0, chield_class_name);
566
    Item_tmp->setText(1, chield_id);
567
    Item_tmp->setCheckState(0, Qt::Checked);
101 pingvin 568
    MainWindow::addChildsItems(Item_tmp);
98 pingvin 569
}
570
 
100 pingvin 571
i++;
99 pingvin 572
 
100 pingvin 573
}
574
 
575
 
99 pingvin 576
/********************************************************
577
*    "" 
578
*
579
*
580
*
581
********************************************************/
582
 
583
QStringList MainWindow::classChields(QString class_id){
584
   // QMap<QString, QString> map;
585
   // TClass class_tmp;
586
   // QList <TClass> chields_class_list; //   
587
    QStringList result;
588
    QSqlQuery q;
589
    QString sql_str;
590
    QString classIdentifer_str; //      -
591
    QString field_id_str;
592
    bool ok;
593
    int field_classIdentifer;
594
    sql_str = tr("select * "
595
                 " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       // ,     
596
                 );
597
    sql_str.append(class_id);
598
 
599
    sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
600
 
601
    q.prepare(sql_str);
602
 
603
    ok = q.exec();
604
    if (!ok) {
605
                            QMessageBox::critical( //     .
606
                                                                            this,                      //  .
607
                                                                            QObject::tr("Database Error"),   // .
608
                                                                            q.lastError().text());          //  .
609
                     }
610
    field_classIdentifer = q.record().indexOf(tr("ClassIdentifer"));
611
      while(q.next()){
612
 
613
                    classIdentifer_str = q.value(field_classIdentifer).toString();
614
                    result.append(classIdentifer_str);
615
                    }
616
 
617
    return result;
618
 
619
  }
102 pingvin 620
 
621
 
622
QMap <QString, QString> MainWindow::getClassList(){ //   
623
QMap <QString, QString> result_map;
624
QSqlQuery q;
625
QString sql_str;
103 pingvin 626
QString class_name_str, class_id_str;
627
 
102 pingvin 628
int field_class_id, field_class_name;
629
bool ok;
630
sql_str = tr("select * "
631
             " from ListOfClasses "       // ,     
632
             );
633
 q.prepare(sql_str);
634
 ok = q.exec();
635
 if (!ok) {
636
                         QMessageBox::critical( //     .
637
                                                                         this,                      //  .
638
                                                                         QObject::tr("Database Error"),   // .
639
                                                                         q.lastError().text());          //  .
640
                         return result_map; //   -   
641
                  }
642
field_class_id = q.record().indexOf(tr("ID"));
643
field_class_name = q.record().indexOf(tr("ClassName"));
644
 
103 pingvin 645
while(q.next()){
102 pingvin 646
 
103 pingvin 647
                class_name_str = q.value(field_class_name).toString();
648
                class_id_str = q.value(field_class_id).toString();
649
                result_map[class_id_str] = class_name_str;
650
                }
102 pingvin 651
 return result_map;
652
}
104 pingvin 653
 
654
 
655
 
656
 
657
 
658
void MainWindow::initComboBox(){
659
 
106 pingvin 660
 
104 pingvin 661
    QStringList classesNameList;
662
    QStringList classesID_list;
663
    QStringList tmp_stringList;
664
 
665
 
666
 
667
    QString tmp_str;
668
 
669
    class_list_map = MainWindow::getClassList();
670
    classesID_list = class_list_map.keys();
671
    classesNameList = class_list_map.values();
672
    QMapIterator<QString, QString> interator(class_list_map);
673
//    ui->comboBox->addItems(classesID_list);
674
  //  ui->comboBox->addItems(classesNameList);
675
    while (interator.hasNext()) {
676
         interator.next();
677
         tmp_str =  interator.value();
678
         tmp_str.append(tr(" \t(ID="));
679
         tmp_str.append(interator.key());
680
         tmp_str.append(tr(")"));
681
         tmp_stringList << tmp_str;
682
 
683
     }
132 pingvin 684
//    int count = ui->comboBox->count();
685
 
686
    ui->comboBox->clear();
104 pingvin 687
    ui->comboBox->addItems(tmp_stringList);
688
 
689
 
690
}
105 pingvin 691
 
692
 
106 pingvin 693
void MainWindow::on_comboBox_currentIndexChanged( int index ){
694
QStringList classesNameList;
695
QStringList classesID_list;
696
QString ID_str;
132 pingvin 697
if (index == -1) return;
698
 
106 pingvin 699
classesID_list = class_list_map.keys();
700
classesNameList = class_list_map.values();
701
ID_str =  classesID_list[index];
702
ui->label->setText(ID_str);
145 pingvin 703
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1)
704
{
705
    model_is_build = false; //     on_treeWidget_itemChanged
706
    rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str);
707
    model_is_build = true; //   
708
}
709
    getDatabaseData();
107 pingvin 710
 
711
 
105 pingvin 712
}
713
 
106 pingvin 714
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
715
    int i;
716
    i++;
717
 
118 pingvin 718
    if ((column) == 0 && (model_is_build)) getDatabaseData();
719
 
106 pingvin 720
}
721
 
722
 
723
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
724
    int i;
725
    i++;
108 pingvin 726
    if (root_items_list.indexOf(item) != -1) {
727
        QStringList classesNameList;
728
        QStringList classesID_list;
106 pingvin 729
 
108 pingvin 730
        int index;
731
        classesID_list = class_list_map.keys();
732
        classesNameList = class_list_map.values();
145 pingvin 733
        if (item->childCount()>0) index = classesID_list.indexOf(item->child(0)->text(1)); //    ,   
734
        else { //  
735
        ui->comboBox->setEnabled(true);
736
        return;
737
 
738
        }
132 pingvin 739
        if (index != -1) ui->comboBox->setCurrentIndex(index);
108 pingvin 740
 
741
        ui->comboBox->setEnabled(true);
742
 
743
 
744
    }
106 pingvin 745
  //  if ((rootItem1) == (item) ) ui->comboBox->setEnabled(true);
746
else ( ui->comboBox->setEnabled(false));
747
}
110 pingvin 748
 
125 pingvin 749
QMap <QString, QString> MainWindow::getFieldsList(QString class_id){ //    
110 pingvin 750
 
125 pingvin 751
}
142 pingvin 752
 
753
 
754
void MainWindow::initListModelsTablle(){
755
    model_for_ListModelsTable = new QSqlTableModel(this);
756
 
757
    model_for_ListModelsTable->setTable(tr("ListOfModels"));
146 pingvin 758
 //   model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnFieldChange);
759
    model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnManualSubmit);
142 pingvin 760
    ui->tableView_2->setModel(model_for_ListModelsTable);
761
    model_for_ListModelsTable->select();
146 pingvin 762
    ui->pushButton_7->setEnabled(false);
763
    ui->pushButton_8->setEnabled(false);
142 pingvin 764
}