Subversion Repositories OpenInventory

Rev

Rev 227 | Rev 229 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
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);
222 pingvin 9
/*
10
    QPalette p = this->palette();
11
    p.setBrush(this->backgroundRole(), QBrush(QColor(255,255,255,128)));
12
    this->setAutoFillBackground(true);
13
    this->setPalette(p);
14
*/
15
 
205 pingvin 16
    ui->centralWidget->setLayout(ui->verticalLayout);
17
    ui->tab->setLayout(ui->horizontalLayout);
18
    ui->tab_2->setLayout(ui->horizontalLayout_3);
106 pingvin 19
   // connect( ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_currentIndexChanged(int)));
118 pingvin 20
    model_is_build = false;
145 pingvin 21
   // MainWindow::readModel();
89 pingvin 22
 
91 pingvin 23
   //QString model_str;
140 pingvin 24
 
25
 
26
   /*
91 pingvin 27
   MainWindow::creatModelString();
28
   int i;
29
   i++;
93 pingvin 30
    QFile file_tmp("./temp.txt");
92 pingvin 31
    bool ok;
32
    ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
33
    QTextStream out(&file_tmp);
34
    out << MainWindow::modelString;
35
    file_tmp.close();
140 pingvin 36
*/
174 pingvin 37
 
38
 
39
 
40
 
114 pingvin 41
    ui->treeWidget->setAlternatingRowColors(true);
42
    ui->treeWidget_2->setAlternatingRowColors(true);
132 pingvin 43
 
177 pingvin 44
    ui->treeWidget->setIconSize(QSize(30,30));
209 pingvin 45
    ui->treeWidget->setColumnWidth(0, 400);
193 pingvin 46
    ui->treeWidget_2->setIconSize(QSize(128,128));
132 pingvin 47
 
48
    MainWindow::readSettings();
49
 
93 pingvin 50
    MainWindow::openDataBase();
136 pingvin 51
 
174 pingvin 52
    classesIcons = MainWindow::getClassesIcons(); //    
53
 
104 pingvin 54
    MainWindow::initComboBox();
136 pingvin 55
 
145 pingvin 56
//    MainWindow::buildPreviewModel(tr(" "), tr("11"));
136 pingvin 57
 
142 pingvin 58
    MainWindow::initListModelsTablle();
140 pingvin 59
 
144 pingvin 60
    MainWindow::readModels();
61
 
145 pingvin 62
 //   MainWindow::creatModelString();
140 pingvin 63
    //int i;
64
    //i++;
145 pingvin 65
 
66
    /*
67
    QFile file_tmp("./modelstring.txt");
140 pingvin 68
     bool ok;
69
     file_tmp.remove();
70
     ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
71
     QTextStream out(&file_tmp);
72
     out.setCodec("cp1251");
73
     out << MainWindow::modelString;
74
     file_tmp.close();
145 pingvin 75
    */
140 pingvin 76
 
77
 
151 pingvin 78
    ui->treeWidget_2->hideColumn(1);
79
    ui->treeWidget_2->hideColumn(2);
80
    ui->treeWidget_2->hideColumn(3);
81
    ui->treeWidget_2->hideColumn(4);
140 pingvin 82
 
151 pingvin 83
 
109 pingvin 84
    getDatabaseData();
127 pingvin 85
    //// sql_mogel = new QSqlTableModel();
86
    sql_mogel = new MyModel();
87
 
223 pingvin 88
    /// filter_model = new MyModel();
89
    filter_model = new QSqlTableModel();
227 pingvin 90
    filter_model->setEditStrategy(QSqlTableModel::OnManualSubmit);
127 pingvin 91
 
118 pingvin 92
    model_is_build = true;
119 pingvin 93
    connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
146 pingvin 94
    connect(model_for_ListModelsTable, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_model_for_ListModelsTable_dataChanged(QModelIndex,QModelIndex)));
221 pingvin 95
    connect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
146 pingvin 96
 
221 pingvin 97
 
119 pingvin 98
    ui->pushButton_3->setEnabled(false);
99
    ui->pushButton_4->setEnabled(false);
100
 
217 pingvin 101
 
102
    ui->pushButton_9->setEnabled(false);
103
    ui->pushButton_10->setEnabled(false);
104
    ui->pushButton_11->setEnabled(false);
105
    ui->pushButton_12->setEnabled(false);
106
 
132 pingvin 107
   // setFrm.show();
119 pingvin 108
 
212 pingvin 109
    // treeForm.show();
110
 
132 pingvin 111
    connect(ui->getsettingAct, SIGNAL(triggered()), this, SLOT(getSetting())); //       " "  " "
112
    connect(setFrm.pushButton, SIGNAL(clicked()), this, SLOT(applySetting()));
113
 
158 pingvin 114
 //   connect(ui->tableView_2,SIGNAL(activated(QModelIndex)),ui->tableView_2,SLOT(edit(QModelIndex)));
132 pingvin 115
 
158 pingvin 116
    picture_delegate = new CPictureDelegate(this);
189 pingvin 117
    iconDelegate = new IconDelegate(this);
201 pingvin 118
    fileDelegate = new FileDelegate(this);
158 pingvin 119
 
200 pingvin 120
 //   fileForm.show();
196 pingvin 121
 
228 pingvin 122
 
123
    cursor = new QTextCursor(&doc);
124
    buildReport(true);
125
 
126
 
88 pingvin 127
}
128
 
129
MainWindow::~MainWindow()
130
{
117 pingvin 131
    delete sql_mogel;
221 pingvin 132
    delete filter_model;
88 pingvin 133
    delete ui;
149 pingvin 134
    delete model_for_ListModelsTable;
88 pingvin 135
}
136
 
137
void MainWindow::changeEvent(QEvent *e)
138
{
139
    QMainWindow::changeEvent(e);
140
    switch (e->type()) {
141
    case QEvent::LanguageChange:
142
        ui->retranslateUi(this);
143
        break;
144
    default:
145
        break;
146
    }
147
}
89 pingvin 148
 
149
 
150
bool MainWindow::readModel(){
151
    bool result;
152
    QString model_str;
140 pingvin 153
    QFile file("modelstring.txt");
141 pingvin 154
  //  QFile file("model.txt");
91 pingvin 155
   rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
89 pingvin 156
    rootItem1->setText(0, tr(" 1"));
157
   // rootItem2 = new  QTreeWidgetItem(rootItem1);
158
   // rootItem2->setText(0, tr(" 2"));
159
    rootItem1->setCheckState(0,Qt::Checked);
160
   // rootItem2->setCheckState(0,Qt::Checked);
161
 
162
 
163
 
164
    result = file.open(QIODevice::ReadOnly);
165
    if (result) {
90 pingvin 166
                     model_str = QString(tr(file.readAll()));
89 pingvin 167
                }
168
 
215 pingvin 169
    setupModelData(model_str.split(QString("\n")), rootItem1, -1, tr("1"));
89 pingvin 170
 
171
 
172
    return result;
173
 
174
}
175
 
176
 
215 pingvin 177
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row, QString model_id)
89 pingvin 178
{
179
    QList<QTreeWidgetItem*> parents;
180
    QList<int> indentations;
181
    parents << parent;
182
    indentations << 0;
183
 
184
    int number = 0;
185
 
186
    while (number < lines.count()) {
187
        int position = 0;
188
        while (position < lines[number].length()) {
189
            if (lines[number].mid(position, 1) != " ")
190
                break;
191
            position++;
192
        }
193
 
194
        QString lineData = lines[number].mid(position).trimmed();
195
 
196
        if (!lineData.isEmpty()) {
197
            // Read the column data from the rest of the line.
198
            QStringList columnStrings = lineData.split("\t", QString::SkipEmptyParts);
199
            QList<QVariant> columnData;
200
            for (int column = 0; column < columnStrings.count(); ++column)
201
                columnData << columnStrings[column];
202
 
203
            if (position > indentations.last()) {
204
                // The last child of the current parent is now the new parent
205
                // unless the current parent has no children.
206
 
207
                if (parents.last()->childCount() > 0) {
208
                    parents << parents.last()->child(parents.last()->childCount()-1);
209
                    indentations << position;
210
                }
211
            } else {
212
                while (position < indentations.last() && parents.count() > 0) {
213
                    parents.pop_back();
214
                    indentations.pop_back();
215
                }
216
            }
217
 
218
            // Append a new item to the current parent's list of children.
219
          // // //  parents.last()->appendChild(new QTreeWidgetItem(columnData, parents.last()));
220
            QTreeWidgetItem* itm_tmp;
221
            itm_tmp = new QTreeWidgetItem( parents.last());
215 pingvin 222
        //    itm_tmp->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
89 pingvin 223
 
209 pingvin 224
/*
225
            QLineEdit * edit_line;
226
            edit_line = new QLineEdit(this);
227
            ui->treeWidget->setItemWidget(itm_tmp, 5, edit_line);
228
*/
229
//static QStandartDelegate delegate;
230
            ui->treeWidget->setItemDelegateForColumn(5, &standart_delegate);
231
 
232
 
89 pingvin 233
            itm_tmp->setText(0, QString(columnData.at(0).toString()));
234
            if (columnData.at(1).toString() == "true") {
235
                                                            itm_tmp->setCheckState(0,Qt::Checked);
236
                                                        }
237
            else itm_tmp->setCheckState(0,Qt::Unchecked);
141 pingvin 238
            if (columnData.count()>2)
239
            {
173 pingvin 240
            QString class_id;
222 pingvin 241
            QString filtr_str;
174 pingvin 242
            QPixmap pxmp;
243
            QIcon icon;
173 pingvin 244
            class_id = QString(columnData.at(2).toString());
174 pingvin 245
            pxmp = MainWindow::classesIcons.value(class_id);
246
 
173 pingvin 247
           // itm_tmp->setText(1, QString(columnData.at(2).toString())); // id 
248
            itm_tmp->setText(1, class_id); // id 
215 pingvin 249
            itm_tmp->setText(6, model_id); // id 
90 pingvin 250
            itm_tmp->setText(2, QVariant(number).toString()); //    - 
173 pingvin 251
            itm_tmp->setText(3, QVariant(indentations.size()).toString()); //  
252
            itm_tmp->setText(4, QVariant(row).toString()); //    
222 pingvin 253
            filtr_str = getFiltrString(model_id,class_id);
254
            itm_tmp->setText(5,filtr_str);
174 pingvin 255
 
256
            if (!pxmp.isNull())
257
                {
258
                    icon.addPixmap(pxmp);
175 pingvin 259
                    itm_tmp->setIcon(0, icon);                  
174 pingvin 260
                }
141 pingvin 261
            }
89 pingvin 262
        }
263
 
264
        number++;
265
    }
266
}
267
 
268
 
269
/*
270
void MainWindow::openBase()
271
{
272
 
273
        db = QSqlDatabase::addDatabase("QMYSQL");
274
        pdb = &db;
275
        raportFrm.pdb = &db;
276
 
277
        pdb->setHostName(hostName);
278
        pdb->setDatabaseName(baseName);
279
        pdb->setUserName(userName);
280
        pdb->setPassword(password);
281
        bool ok = pdb->open();
282
        if (!ok) {
283
                                QMessageBox::critical( //     .
284
                                                                                this,                      //  .
285
                                                                                QObject::tr("Database Error"),   // .
286
                                                                                pdb->lastError().text());          //  .
287
                         }
288
        if (ok)
289
        {lineEdit-> insert(tr("  "));
290
        }
291
        else {lineEdit-> insert(tr(" .  : "));
292
                  lineEdit-> insert(pdb->lastError().text());
293
                 }
294
 
295
 
296
 
297
        model = new QSqlTableModel(this);
298
        model->setTable(tableName);
299
 
300
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
301
        model->setSort(0, Qt::AscendingOrder);
302
 
303
        model->select();
304
 
305
 
306
        QSqlField field(tr("age"), QVariant::Int);
307
        field.setValue(QString(tr("123")));
308
 
309
        bool okey;
310
        int index;
311
        QSqlRecord record;
312
 
313
 
314
        tableView->setModel(model);
315
        view.setModel(model);
316
 
317
 
318
        tableView->setAlternatingRowColors(true);
319
        view.setAlternatingRowColors(true);
320
 
321
        tableView->resizeColumnsToContents();
322
 
323
 
324
        view.resizeColumnsToContents();
325
 
326
        tableView->show();
327
 
328
 
329
 
330
        initTreeWidget();
331
}
332
*/
91 pingvin 333
 
334
 
146 pingvin 335
QString MainWindow::creatModelString(QTreeWidgetItem* model){
91 pingvin 336
 
337
    MainWindow::modelString.clear(); //   
338
 //   for (int i =0; i < rootItem1->childCount(); ++i )
339
 
146 pingvin 340
    {MainWindow::addChildsString(model, 0);}
341
 
342
    return MainWindow::modelString;
145 pingvin 343
// {MainWindow::addChildsString(ui->treeWidget, 0);}
344
 /*
91 pingvin 345
    int root_item_child_count;
346
    int i;
347
    root_item_child_count = rootItem1->childCount();
348
    i++;
145 pingvin 349
*/
91 pingvin 350
}
351
 
352
 
353
void MainWindow::addChildsString(QTreeWidgetItem *parentItem, int level){
354
    int child_count;
355
    child_count = parentItem->childCount();
356
    for (int i=0; i < child_count; ++i){
357
        for (int m=0; m < level; ++m){
358
        modelString.append(tr("    ")); //   -  ,     
359
    }
360
        modelString.append(parentItem->child(i)->text(0)); //    -  
361
        modelString.append(tr("\t\t\t\t")); //   -   
362
        if (parentItem->child(i)->checkState(0) ==  Qt::Checked) {modelString.append(tr("true"));} //   ,  "true",      
363
            else {modelString.append(tr("false"));} //     -  "false",       
364
        modelString.append(tr("\t\t\t\t")); //   -   
365
        modelString.append(parentItem->child(i)->text(1)); //    - ID 
366
         modelString.append(tr("\n")); //  
367
        if (parentItem->child(i)->childCount() > 0) { MainWindow::addChildsString(parentItem->child(i), level+1);}
368
 
369
    }
370
int i;
371
i++;
372
}
93 pingvin 373
 
374
 
375
bool MainWindow::openDataBase(){
376
    QString errorString;
377
    sql = QSqlDatabase::addDatabase("QMYSQL");
131 pingvin 378
//    sql.setDatabaseName(tr("an_db"));
379
 
132 pingvin 380
    // // // sql.setDatabaseName(tr("inventory"));
131 pingvin 381
 
132 pingvin 382
    sql.setDatabaseName(baseName);
131 pingvin 383
 
384
 
385
 
132 pingvin 386
    // // // sql.setHostName(tr("localhost"));
93 pingvin 387
 
132 pingvin 388
    sql.setHostName(hostName);
389
 
390
 
391
    // // // sql.setUserName(tr("an"));
392
 
393
    sql.setUserName(userName);
394
 
395
 
396
 
397
   // // //  sql.setPassword(tr("393939"));
398
 
399
 
400
    sql.setPassword(password);
401
 
402
 
403
 
93 pingvin 404
    bool ok;
405
    ok = sql.open();
406
 
407
    /*
408
    if (!ok) {
409
                                QMessageBox::critical( //     .
410
                                                                                this,                      //  .
411
                                                                                QObject::tr("Database Error"),   // .
412
                                                                                sql.lastError().text() );         //  .
413
 
414
 
415
                            }
416
 
417
*/
418
    if (!ok) {
419
                            QMessageBox::critical( //     .
420
                                                                            this,                      //  .
421
                                                                            QObject::tr("Database Error"),   // .
422
                                                                            sql.lastError().text());          //  .
423
                     }
424
else {
425
 
426
        QMessageBox::information( //     .
427
                                                        this,                      //  .
428
                                                        QObject::tr("Database Connect"),   // .
429
                                                        QObject::tr("     ."));         //  .
430
 
431
 
432
 
433
 
434
 
435
    }
436
 
437
     return ok;
438
}
94 pingvin 439
 
440
 
97 pingvin 441
bool MainWindow::buildPreviewModel(QString modelName, QString rootClassID){
94 pingvin 442
QSqlQuery q;
443
QString sql_str;
95 pingvin 444
QString field_name_str;
445
QString root_class_name;
192 pingvin 446
//bool ok;
447
//int field_name;
95 pingvin 448
 
449
//ui->treeWidget->clear();
450
 
451
root_class_name = MainWindow::ClassName(rootClassID); //   
452
 
145 pingvin 453
 
95 pingvin 454
rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
145 pingvin 455
 root_items_list << rootItem1;
97 pingvin 456
 rootItem1->setText(0, modelName);
457
 
95 pingvin 458
 rootItem1->setCheckState(0,Qt::Checked);
104 pingvin 459
 rootItems.append(rootItem1);
95 pingvin 460
 
461
 
104 pingvin 462
 
145 pingvin 463
 rootItem2 = new  QTreeWidgetItem(rootItem1);
464
 rootItem2->setText(0, root_class_name);
465
 rootItem2->setText(1, rootClassID);
466
 rootItem2->setCheckState(0,Qt::Checked);
95 pingvin 467
 
147 pingvin 468
 addChildsItems(rootItem2, -1);
95 pingvin 469
 
145 pingvin 470
 
471
/*
472
 
94 pingvin 473
sql_str = tr("select * "
95 pingvin 474
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       // ,     
94 pingvin 475
             );
476
sql_str.append(rootClassID);
477
 
95 pingvin 478
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
94 pingvin 479
 
95 pingvin 480
q.prepare(sql_str);
481
 
482
ok = q.exec();
483
if (!ok) {
484
                        QMessageBox::critical( //     .
485
                                                                        this,                      //  .
486
                                                                        QObject::tr("Database Error"),   // .
487
                                                                        q.lastError().text());          //  .
488
                 }
489
field_name = q.record().indexOf(tr("FieldName"));
490
while(q.next()){
491
 
492
                field_name_str = q.value(field_name).toString();
493
 
494
                }
495
 
100 pingvin 496
 
497
 
498
 
145 pingvin 499
*/
500
 
501
 
94 pingvin 502
}
95 pingvin 503
 
504
 
147 pingvin 505
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row){
107 pingvin 506
QSqlQuery q;
507
QString sql_str;
508
QString field_name_str;
509
QString root_class_name;
192 pingvin 510
//bool ok;
511
//int field_name;
95 pingvin 512
 
107 pingvin 513
//ui->treeWidget->clear();
514
 
515
root_class_name = MainWindow::ClassName(rootClassID); //   
516
 
517
 
518
// rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
519
// root_items_list << rootItem1;
520
// rootItem1->setText(0, modelName);
521
 
522
// rootItem1->setCheckState(0,Qt::Checked);
523
// rootItems.append(rootItem1);
524
 
525
// root_item->removeChild(root_item->child(0)); //    
145 pingvin 526
if (root_item->childCount()==0){ //   ,  
527
    QTreeWidgetItem* item_tmp;
528
    item_tmp = new QTreeWidgetItem (root_item);
147 pingvin 529
    item_tmp->setText(4, QVariant(row).toString());
145 pingvin 530
 
531
}
532
 
533
if (root_item->childCount()==1){ //      ,    
107 pingvin 534
root_item->child(0)->setText(0, root_class_name);
535
root_item->child(0)->setText(1, rootClassID);
147 pingvin 536
root_item->child(0)->setCheckState(0,Qt::Checked);
537
root_item->setText(4, QVariant(row).toString());
107 pingvin 538
 
147 pingvin 539
}
145 pingvin 540
 
541
 
147 pingvin 542
 
107 pingvin 543
//delete rootItem2;
544
 
545
 
546
// rootItem2 = new  QTreeWidgetItem(rootItem1);
547
 
548
 
549
 
550
// rootItem2->setText(0, root_class_name);
551
// rootItem2->setText(1, rootClassID);
552
// rootItem2->setCheckState(0,Qt::Checked);
553
 
554
int child_count = root_item->child(0)->childCount();
555
 
556
 
145 pingvin 557
for (int i=0; i < child_count; i++){ //       ,  
107 pingvin 558
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
559
}
560
 
561
child_count = root_item->child(0)->childCount();
147 pingvin 562
addChildsItems(root_item->child(0), row);
107 pingvin 563
/*
564
sql_str = tr("select * "
565
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       // ,     
566
             );
567
sql_str.append(rootClassID);
568
 
569
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
570
 
571
q.prepare(sql_str);
572
 
573
ok = q.exec();
574
if (!ok) {
575
                        QMessageBox::critical( //     .
576
                                                                        this,                      //  .
577
                                                                        QObject::tr("Database Error"),   // .
578
                                                                        q.lastError().text());          //  .
579
                 }
580
field_name = q.record().indexOf(tr("FieldName"));
581
while(q.next()){
582
 
583
                field_name_str = q.value(field_name).toString();
584
 
585
                }
586
 
587
*/
588
 
589
 
590
}
591
 
592
 
593
 
594
 
95 pingvin 595
QString MainWindow::ClassName(QString class_id){ //     ID
596
    QSqlQuery q;
597
    QString sql_str;
598
    QString class_name_str;
599
    bool ok;
600
    int field_class_name;
601
 
602
    sql_str = tr("select * "
603
                 " from ListOfClasses where ListOfClasses.ID = '"       // ,     
604
                 );
605
 
606
    sql_str.append(class_id);
607
    sql_str.append(tr("' "));
608
 
609
    q.prepare(sql_str);
610
 
611
    ok = q.exec();
612
 
613
 
614
    if (!ok) {
615
                            QMessageBox::critical( //     .
616
                                                                            this,                      //  .
617
                                                                            QObject::tr("Database Error"),   // .
618
                                                                            q.lastError().text());          //  .
619
                     }
620
 
621
    field_class_name = q.record().indexOf(tr("ClassName"));
622
    while(q.next()){
623
 
624
                    class_name_str = q.value(field_class_name).toString();
625
 
626
                    }
627
 
628
    return class_name_str;
629
 
630
}
98 pingvin 631
 
147 pingvin 632
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item, int row){ //          ,      
100 pingvin 633
QStringList chields_list;
634
QString parent_ID;
635
QTreeWidgetItem *Item_tmp;
636
parent_ID = perent_class_item->text(1);
637
int chields_count, i;
98 pingvin 638
 
100 pingvin 639
chields_list = MainWindow::classChields(parent_ID);
640
if(chields_list.isEmpty()) return;
641
chields_count = chields_list.size();
642
for (int l = 0; l < chields_count; ++l){
643
    QString chield_class_name, chield_id;
644
    chield_id = chields_list.at(l);
645
    chield_class_name = MainWindow::ClassName(chield_id);
646
    Item_tmp = new QTreeWidgetItem(perent_class_item);
647
    Item_tmp->setText(0, chield_class_name);
648
    Item_tmp->setText(1, chield_id);
649
    Item_tmp->setCheckState(0, Qt::Checked);
147 pingvin 650
    Item_tmp->setText(4, QVariant(row).toString());
651
    MainWindow::addChildsItems(Item_tmp, row);
98 pingvin 652
}
653
 
100 pingvin 654
i++;
99 pingvin 655
 
100 pingvin 656
}
657
 
658
 
99 pingvin 659
/********************************************************
660
*    "" 
661
*
662
*
663
*
664
********************************************************/
665
 
666
QStringList MainWindow::classChields(QString class_id){
667
   // QMap<QString, QString> map;
668
   // TClass class_tmp;
669
   // QList <TClass> chields_class_list; //   
670
    QStringList result;
671
    QSqlQuery q;
672
    QString sql_str;
673
    QString classIdentifer_str; //      -
674
    QString field_id_str;
675
    bool ok;
676
    int field_classIdentifer;
677
    sql_str = tr("select * "
678
                 " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       // ,     
679
                 );
680
    sql_str.append(class_id);
681
 
682
    sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
683
 
684
    q.prepare(sql_str);
685
 
686
    ok = q.exec();
687
    if (!ok) {
688
                            QMessageBox::critical( //     .
689
                                                                            this,                      //  .
690
                                                                            QObject::tr("Database Error"),   // .
691
                                                                            q.lastError().text());          //  .
692
                     }
693
    field_classIdentifer = q.record().indexOf(tr("ClassIdentifer"));
694
      while(q.next()){
695
 
696
                    classIdentifer_str = q.value(field_classIdentifer).toString();
697
                    result.append(classIdentifer_str);
698
                    }
699
 
700
    return result;
701
 
702
  }
102 pingvin 703
 
704
 
705
QMap <QString, QString> MainWindow::getClassList(){ //   
706
QMap <QString, QString> result_map;
707
QSqlQuery q;
708
QString sql_str;
103 pingvin 709
QString class_name_str, class_id_str;
710
 
102 pingvin 711
int field_class_id, field_class_name;
712
bool ok;
713
sql_str = tr("select * "
714
             " from ListOfClasses "       // ,     
715
             );
716
 q.prepare(sql_str);
717
 ok = q.exec();
718
 if (!ok) {
719
                         QMessageBox::critical( //     .
720
                                                                         this,                      //  .
721
                                                                         QObject::tr("Database Error"),   // .
722
                                                                         q.lastError().text());          //  .
723
                         return result_map; //   -   
724
                  }
725
field_class_id = q.record().indexOf(tr("ID"));
726
field_class_name = q.record().indexOf(tr("ClassName"));
727
 
103 pingvin 728
while(q.next()){
102 pingvin 729
 
103 pingvin 730
                class_name_str = q.value(field_class_name).toString();
731
                class_id_str = q.value(field_class_id).toString();
732
                result_map[class_id_str] = class_name_str;
733
                }
102 pingvin 734
 return result_map;
735
}
104 pingvin 736
 
737
 
738
 
739
 
740
 
741
void MainWindow::initComboBox(){
742
 
106 pingvin 743
 
104 pingvin 744
    QStringList classesNameList;
745
    QStringList classesID_list;
746
    QStringList tmp_stringList;
747
 
748
 
749
 
750
    QString tmp_str;
751
 
752
    class_list_map = MainWindow::getClassList();
753
    classesID_list = class_list_map.keys();
754
    classesNameList = class_list_map.values();
755
    QMapIterator<QString, QString> interator(class_list_map);
756
//    ui->comboBox->addItems(classesID_list);
757
  //  ui->comboBox->addItems(classesNameList);
758
    while (interator.hasNext()) {
759
         interator.next();
760
         tmp_str =  interator.value();
761
         tmp_str.append(tr(" \t(ID="));
762
         tmp_str.append(interator.key());
763
         tmp_str.append(tr(")"));
764
         tmp_stringList << tmp_str;
765
 
766
     }
132 pingvin 767
//    int count = ui->comboBox->count();
768
 
769
    ui->comboBox->clear();
104 pingvin 770
    ui->comboBox->addItems(tmp_stringList);
771
 
772
 
773
}
105 pingvin 774
 
775
 
106 pingvin 776
void MainWindow::on_comboBox_currentIndexChanged( int index ){
777
QStringList classesNameList;
778
QStringList classesID_list;
779
QString ID_str;
132 pingvin 780
if (index == -1) return;
152 pingvin 781
if (!comboBox_slot_enable) return; //   ,     , 
147 pingvin 782
int row;
132 pingvin 783
 
106 pingvin 784
classesID_list = class_list_map.keys();
785
classesNameList = class_list_map.values();
786
ID_str =  classesID_list[index];
787
ui->label->setText(ID_str);
145 pingvin 788
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1)
789
{
147 pingvin 790
    row = QVariant(ui->treeWidget->currentItem()->text(4)).toInt();
145 pingvin 791
    model_is_build = false; //     on_treeWidget_itemChanged
147 pingvin 792
    rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str, row);
145 pingvin 793
    model_is_build = true; //   
147 pingvin 794
    QString mdl_str = MainWindow::creatModelString(ui->treeWidget->currentItem()); //
795
    model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row, 2), QVariant(mdl_str));
145 pingvin 796
}
797
    getDatabaseData();
107 pingvin 798
 
799
 
105 pingvin 800
}
801
 
106 pingvin 802
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
803
    int i;
804
    i++;
147 pingvin 805
    QTreeWidgetItem * item_tmp;
806
    QString mdl_str;
807
    QString row; //     ,   
148 pingvin 808
    QList <QTreeWidgetItem *> mdl_itm_list;
147 pingvin 809
    QList <int> rows_list;
106 pingvin 810
 
147 pingvin 811
 
812
    if ((column) == 0 && (model_is_build)) {
813
    // if (!model_is_build) return; //    
148 pingvin 814
 
815
    mdl_itm_list = models_items.values();
147 pingvin 816
    rows_list =  models_items.keys();
148 pingvin 817
    row= item->text(4);
147 pingvin 818
 
148 pingvin 819
 
820
    if ( mdl_itm_list.indexOf(item) != -1){ //    ( )
821
        if (item->checkState(0)) model_for_ListModelsTable->setData(model_for_ListModelsTable->index(QVariant(row).toInt(), 3), QVariant(1));
822
        else model_for_ListModelsTable->setData(model_for_ListModelsTable->index(QVariant(row).toInt(), 3), QVariant(0));
823
        }
824
 
825
 
826
 
827
 
147 pingvin 828
    if (!row.isEmpty()){
829
 
830
 
831
        int row_int;
832
    row_int = QVariant(row).toInt();
833
     if (rows_list.indexOf(row_int) != -1)
834
        {
835
            item_tmp = models_items[row_int];
836
            mdl_str = MainWindow::creatModelString(item_tmp);
837
            model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row_int, 2), QVariant(mdl_str));
838
        }
839
 
840
 
841
    }
842
 
843
 
844
}
845
 
846
/*
847
    QTreeWidgetItem * item_tmp;
848
    item_tmp = item;
849
    while (item_tmp ){
850
        item_tmp = item_tmp->parent();
851
    }
852
  */
118 pingvin 853
    if ((column) == 0 && (model_is_build)) getDatabaseData();
854
 
147 pingvin 855
 
106 pingvin 856
}
857
 
858
 
859
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
860
    int i;
861
    i++;
214 pingvin 862
    if (root_items_list.indexOf(item) != -1) { //      
108 pingvin 863
        QStringList classesNameList;
864
        QStringList classesID_list;
106 pingvin 865
 
217 pingvin 866
        ui->pushButton_9->setEnabled(false);
867
        ui->pushButton_10->setEnabled(false);
868
        ui->pushButton_11->setEnabled(false);
869
        ui->pushButton_12->setEnabled(false);
870
     //   ui->tableView->reset();
871
     //   MainWindow::filtr_model->clear();
221 pingvin 872
          disconnect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
873
        delete filter_model;
223 pingvin 874
 
875
        filter_model = new QSqlTableModel();
876
       /// filter_model = new MyModel();
227 pingvin 877
    filter_model->setEditStrategy(QSqlTableModel::OnManualSubmit);
223 pingvin 878
 
879
        connect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
108 pingvin 880
        int index;
881
        classesID_list = class_list_map.keys();
882
        classesNameList = class_list_map.values();
145 pingvin 883
        if (item->childCount()>0) index = classesID_list.indexOf(item->child(0)->text(1)); //    ,   
884
        else { //  
885
        ui->comboBox->setEnabled(true);
206 pingvin 886
        comboBox_slot_enable = true;
145 pingvin 887
        return;
888
 
889
        }
152 pingvin 890
        comboBox_slot_enable = false; //   comboBox    
132 pingvin 891
        if (index != -1) ui->comboBox->setCurrentIndex(index);
152 pingvin 892
        comboBox_slot_enable = true;
108 pingvin 893
        ui->comboBox->setEnabled(true);
894
 
895
 
896
    }
106 pingvin 897
  //  if ((rootItem1) == (item) ) ui->comboBox->setEnabled(true);
214 pingvin 898
else //     
899
    {
215 pingvin 900
        QString class_id;
901
        QString model_id;
902
        QString filtr_str;
221 pingvin 903
        QString inctance;
219 pingvin 904
        QStringList conditionList;
215 pingvin 905
        class_id = item->text(1);
906
        model_id = item->text(6);
221 pingvin 907
        inctance = MainWindow::getClassInctance(class_id);
908
 
217 pingvin 909
        filtr_str = tr("`Model_ID` = ");
215 pingvin 910
        filtr_str.append(model_id);
217 pingvin 911
        filtr_str.append(tr(" AND `Class_ID` = "));
215 pingvin 912
        filtr_str.append(class_id);
217 pingvin 913
       // filtr_str.append(tr("`"));
215 pingvin 914
 
221 pingvin 915
        disconnect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
916
        delete filter_model;
223 pingvin 917
  ///      filter_model = new MyModel();
215 pingvin 918
 
221 pingvin 919
        filter_model = new QSqlTableModel();
227 pingvin 920
       filter_model->setEditStrategy(QSqlTableModel::OnManualSubmit);
921
 
221 pingvin 922
        connect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
923
        filter_model->setTable(tr("Filters"));
924
        filter_model->setFilter(filtr_str);
226 pingvin 925
 
926
 
927
 
221 pingvin 928
        filter_model->select();
226 pingvin 929
 
930
        filter_model->sort(0,Qt::AscendingOrder);
931
 
221 pingvin 932
        ui->tableView_3->setModel(filter_model);
215 pingvin 933
 
219 pingvin 934
 
935
        ui->tableView_3->hideColumn(0);
936
        ui->tableView_3->hideColumn(1);
937
        ui->tableView_3->hideColumn(2);
938
 
939
 
940
        filterSpinDelegate.setClassID(class_id);
941
        filterSpinDelegate.getItems();
942
        ui->tableView_3->setItemDelegateForColumn(4, &filterSpinDelegate);
943
 
224 pingvin 944
       // ui->tableView_3->setItemDelegate();
219 pingvin 945
        conditionList <<"" << "and" << "or" << "(" << "and (" << "or (";
946
        filterConditionDelegate.setItems(conditionList);
947
        ui->tableView_3->setItemDelegateForColumn(3, &filterConditionDelegate);
948
 
949
        conditionList.clear();
227 pingvin 950
        conditionList <<"" << "=" << "<" << ">" << "IS NULL" << "IS NOT NULL";
219 pingvin 951
        filterConditionDelegate_1.setItems(conditionList);
952
        ui->tableView_3->setItemDelegateForColumn(5, &filterConditionDelegate_1);
953
 
954
 
227 pingvin 955
 
956
 
228 pingvin 957
        conditionList.clear();
958
        conditionList <<"" << ")";
959
        filterConditionDelegate_2.setItems(conditionList);
960
        ui->tableView_3->setItemDelegateForColumn(7, &filterConditionDelegate_2);
227 pingvin 961
 
224 pingvin 962
        ui->tableView_3->setItemDelegateForColumn(6, &filterValueDelegate);
219 pingvin 963
 
224 pingvin 964
 
965
 
966
 
217 pingvin 967
        ui->pushButton_9->setEnabled(true);
968
        ui->pushButton_10->setEnabled(true);
969
 
215 pingvin 970
        ui->comboBox->setEnabled(false);
971
 
972
 
214 pingvin 973
    }
106 pingvin 974
}
110 pingvin 975
 
125 pingvin 976
QMap <QString, QString> MainWindow::getFieldsList(QString class_id){ //    
110 pingvin 977
 
125 pingvin 978
}
142 pingvin 979
 
980
 
981
void MainWindow::initListModelsTablle(){
149 pingvin 982
    model_for_ListModelsTable = new QSqlTableModel();
142 pingvin 983
 
984
    model_for_ListModelsTable->setTable(tr("ListOfModels"));
146 pingvin 985
 //   model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnFieldChange);
986
    model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnManualSubmit);
142 pingvin 987
    ui->tableView_2->setModel(model_for_ListModelsTable);
151 pingvin 988
 
142 pingvin 989
    model_for_ListModelsTable->select();
151 pingvin 990
 
223 pingvin 991
 
151 pingvin 992
    ui->treeWidget->hideColumn(1);
993
    ui->treeWidget->hideColumn(2);
994
    ui->treeWidget->hideColumn(3);
995
    ui->treeWidget->hideColumn(4);
221 pingvin 996
//    ui->treeWidget->hideColumn(5);
215 pingvin 997
    ui->treeWidget->hideColumn(6);
223 pingvin 998
 
151 pingvin 999
    ui->tableView_2->hideColumn(0);
1000
    ui->tableView_2->hideColumn(2);
1001
    ui->tableView_2->hideColumn(3);
1002
    ui->tableView_2->hideColumn(4);
1003
 
1004
    ui->tableView_2->resizeColumnsToContents();
1005
    ui->tableView_2->setAlternatingRowColors(true);
1006
 
146 pingvin 1007
    ui->pushButton_7->setEnabled(false);
1008
    ui->pushButton_8->setEnabled(false);
151 pingvin 1009
 
1010
 
142 pingvin 1011
}
228 pingvin 1012
 
1013
void MainWindow::buildReport(bool advanced){
1014
 
1015
  //  QTreeWidgetItem * hitm;
1016
 
1017
  //   hitm = ui->treeWidget_2->headerItem();
1018
 
1019
  //   int count = root_items_list.count();
1020
 
1021
    //int count = ui->treeWidget_2->rootIndex();
1022
 
1023
    doc.clear();// 
1024
 
1025
    int list_count;
1026
    if (rootItems.isEmpty()) return;
1027
 
1028
 
1029
 
1030
    list_count = rootItems.count();
1031
 
1032
    for (int i=0; i < list_count; i++){
1033
 
1034
       getReport(rootItems.at(i), advanced);
1035
 
1036
    }
1037
 (bool)QTextDocumentWriter("test.odt").write(&doc);
1038
}
1039
 
1040
 
1041
void MainWindow::getReport(QTreeWidgetItem * model_item, bool advanced){ //     
1042
 
1043
 
1044
 //   QTextDocument doc;
1045
 //   QTextCursor cursor(&doc);
1046
    QTextCharFormat char_fmt;
1047
    bool ok;
1048
 
1049
    /**************
1050
 
1051
    //  char_fmt.setBackground(Qt::red);
1052
    cursor.insertText(tr("1\n"),char_fmt);
1053
    QImage img;
1054
    ok = img.load("./hdd5.png");
1055
     doc.addResource(QTextDocument::ImageResource, QUrl("myimage"), img);
1056
     cursor.insertImage("myimage");
1057
    cursor.insertText(tr(" \n"),char_fmt);
1058
 
1059
    (bool)QTextDocumentWriter("test.odt").write(&doc);
1060
    ***************/
1061
 
1062
    QString model_name;
1063
    QString rootClassID;
1064
    QString rootClassInctance;
1065
    QFont font;
1066
 
1067
    model_name = model_item->text(0);
1068
    if (model_item->checkState(0) == false) return; //     
1069
 
1070
 
1071
    if (!(model_item->childCount() > 0)) return; //   (  )
1072
 
1073
    rootClassID = model_item->child(0)->text(1);
1074
    rootClassInctance = getClassInctance(rootClassID);
1075
 
1076
    cursor->insertText(model_name);
1077
    cursor->insertText(tr("\n"));
1078
 
1079
    if (model_item->child(0)->checkState(0)) //         ( ), 
1080
        {
1081
         /////   QTreeWidgetItem * item_tmp;
1082
       /////     item_tmp = new QTreeWidgetItem(item);                  //  ,   ,   
1083
       /////     item_tmp->setText(0, model_item->child(0)->text(0));    //   
1084
 
1085
            //showClassObjects(item_tmp, model_item->child(0));  //      
1086
 
1087
            ///// showObjects(item_tmp, model_item->child(0), tr(""));
1088
        printChild(model_item->child(0), tr(""), advanced, 1);
1089
        }
1090
 
1091
 
1092
 
1093
 
1094
}
1095
 
1096
void MainWindow::printChild(QTreeWidgetItem * model_item, QString filtr, bool advanced, int pos){//    
1097
    QString classID; //  
1098
    QString parentClassID; //   
1099
    QString pointerField; //  -   
1100
    QString inctance; //  , 
1101
    QString className; //  
1102
    QString modelID; //  
1103
    QString add_filtr; //  
1104
    int field_ID;
1105
    int icon_field_index;
1106
    bool filtr_empty;
1107
    bool ok;
1108
    QSqlQuery q;
1109
    QString sql_str;
1110
    QString str_tmp;
1111
    QTreeWidgetItem * title_item;
1112
    QFont font;
1113
    QIcon icon;
1114
 
1115
    font.setBold(true);
1116
    filtr_empty = filtr.isEmpty();
1117
 
1118
    classID = model_item->text(1);
1119
    modelID = model_item->text(6);
1120
    add_filtr = MainWindow::getFiltrString(modelID, classID);
1121
 
1122
 
1123
    icon = model_item->icon(0);
1124
 
1125
    parentClassID = model_item->parent()->text(1);
1126
 
1127
    pointerField = getPointerFieldName(parentClassID, classID);
1128
 
1129
    className = model_item->text(0);
1130
    inctance = getClassInctance(classID);
1131
 
1132
    if  (!model_item->checkState(0)) return;
1133
 
1134
 
1135
    cursor->insertText(className);
1136
    cursor->insertText(tr("\n"));
1137
 
1138
    sql_str = tr("select * "
1139
                 " from "       //      -   
1140
                 );
1141
    sql_str.append(inctance);
1142
 
1143
 
1144
    if (filtr.isEmpty() && (!add_filtr.isEmpty())) //  ,    
1145
                            {
1146
                                filtr.append(tr ("where "));
1147
                                filtr.append(add_filtr);
1148
                             }
1149
 
1150
 
1151
    if (!filtr.isEmpty())   { //    
1152
                                 sql_str.append(tr(" "));
1153
                                 sql_str.append(filtr); //    
1154
                            }
1155
 
1156
    q.prepare(sql_str);
1157
 
1158
    ok = q.exec();
1159
 
1160
    if (!ok) {
1161
                            QString debug_str;
1162
                            debug_str.append(tr(" showObjects(): Database Error "));
1163
                            debug_str.append(tr(" : "));
1164
                            debug_str.append(inctance);
1165
                            debug_str.append(tr(" : "));
1166
                            debug_str.append(filtr);
1167
                            debug_str.append(q.lastError().text());
1168
                            QMessageBox::critical( //     .
1169
                                                                            this,                      //  .
1170
                                                                            QObject::tr(" showObjects(): Database Error"),   // .
1171
                                                                            debug_str
1172
                                                                           // q.lastError().text()
1173
                                                                             );          //  .
1174
                                                                            return;
1175
                     }
1176
 
1177
    field_ID = q.record().indexOf(tr("ID"));
1178
 
1179
    icon_field_index = q.record().indexOf(tr("Icon"));
1180
 
1181
 
1182
 
1183
 
1184
    while(q.next()){
1185
                  if (q.record().count() > 1)
1186
                  {
1187
                    QString value_tmp;
1188
                    QString ID_tmp;
1189
                    QString space;
1190
 
1191
                    // // // //                QTreeWidgetItem * itm;
1192
                    ID_tmp = q.value(field_ID).toString(); //   
1193
                    value_tmp = q.value(1).toString(); //    (    )
1194
               //     itm = new QTreeWidgetItem(parent_object_item); //    ,  
1195
 
1196
 
1197
 
1198
 
1199
                    /***************************
1200
                    itm = new QTreeWidgetItem(title_item); //    ,  
1201
                    itm->setText(0, value_tmp);
1202
                    itm->setText(1, tr("object"));
1203
                    itm->setText(2, ID_tmp);
1204
                    ******************************/
1205
 
1206
                    if  (icon_field_index != -1){ //     
1207
 
1208
                        QVariant data;
1209
                        QByteArray bytes;
1210
                        QPixmap pix;
1211
                        QIcon icn;
1212
                        QMap <QString, QPixmap> pixmap_map;
1213
                        QList <QString> id_list;
1214
                        QList <QPixmap> pixmap_list;
1215
                        pixmap_map = MainWindow::getObjectsIcon(inctance);
1216
                        if (!pixmap_map.isEmpty()) {
1217
                            id_list = pixmap_map.keys();
1218
                            pixmap_list =  pixmap_map.values();
1219
                        }
1220
                        if (id_list.indexOf(ID_tmp) != -1) {
1221
                            pix = pixmap_list.at(id_list.indexOf(ID_tmp));
1222
                        }
1223
                      // data = q.record().value(icon_field_index);
1224
                      //  bytes = q.record().value(icon_field_index).toByteArray();
1225
                        // if (data.isValid() && (!data.isNull())) {
1226
                     //   if (!bytes.isEmpty()){
1227
                        // pix.loadFromData(data.toByteArray());
1228
                        // pix.loadFromData(bytes);
1229
 
1230
 
1231
                    if(!pix.isNull())    {
1232
                            if (pix.height() > 128) pix = pix.scaledToHeight(128);
1233
                            QString fname = value_tmp;
1234
                            fname.append(tr(".png"));
1235
 
1236
 
1237
                            pix.toImage().save(fname);
1238
                            doc.addResource(QTextDocument::ImageResource, QUrl(fname), pix.toImage());
1239
 
1240
                        // for(int i=0; i<pos; i++){ cursor->insertText( tr(" "));}//  
1241
 
1242
 
1243
                            for(int i=0; i<pos; i++){ cursor->insertText( tr("\t"));}//  
1244
                            cursor->insertImage(fname);
1245
                          //  cursor->insertText(tr("\n"));
1246
 
1247
                        }
1248
 
1249
 
1250
 
1251
 
1252
                        // // // icn.addPixmap(pix);
1253
                        // // // itm->setIcon(0, icn);
1254
                     //  }
1255
 
1256
 
1257
 
1258
                    }
1259
 
1260
                    for(int i=0; i<pos; i++){ cursor->insertText( tr("\t"));}//  
1261
 
1262
                    cursor->insertText( value_tmp);
1263
                    cursor->insertText( tr("\n"));
1264
 
1265
//                    itm->setIcon(0, icon);
1266
 
1267
 
1268
                    for (int i=0; i < model_item->childCount(); i++) // ,      
1269
                    {
1270
                        QTreeWidgetItem * model_item_tmp;           //  
1271
                        QString pointer_name;
1272
                        QString filtr_tmp;
1273
                        bool pointer_isEmpty;
1274
                        model_item_tmp = model_item->child(i);      //    
1275
                        pointer_name = getPointerFieldName(classID, model_item->child(i)->text(1));
1276
                        // // // // itm->setText(4, pointer_name);
1277
 
1278
                      //  title_item->setText(4, pointer_name);
1279
 
1280
 
1281
                        pointer_isEmpty = pointer_name.isEmpty();
1282
                        filtr_tmp = tr("where ");
1283
                        filtr_tmp.append(tr("`"));
1284
                        filtr_tmp.append(pointer_name);
1285
                        filtr_tmp.append(tr("` = '"));
1286
                        filtr_tmp.append(ID_tmp);
1287
                         filtr_tmp.append(tr("'"));
1288
                        // // // // showObjects(itm,  model_item_tmp, filtr_tmp);
1289
                        //MainWindow::showObjectChildrens(ID_tmp, itm, model_item_tmp);
1290
 
1291
                    }
1292
 
1293
 
1294
                }
1295
 
1296
              }
1297
 
1298
 
1299
 
1300
 
1301
 
1302
 
1303
 
1304
 
1305
 
1306
 
1307
}
1308
 
1309