Хранилища Subversion OpenInventory

Редакция

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

Редакция Автор № строки Строка
111 pingvin 1
#include "mainwindow.h"
2
#include "ui_mainwindow.h"
3
 
4
 
5
 
6
void MainWindow::getDatabaseData(){
7
int list_count;
8
 
9
if (rootItems.isEmpty()) return;
10
 
11
list_count = rootItems.count();
12
 
13
for (int i=0; i < list_count; i++){
14
 
15
    buildTree(rootItems.at(i));
16
 
17
}
18
 
19
}
20
 
21
void MainWindow::buildTree(QTreeWidgetItem * model_item){
112 pingvin 22
 
23
 
24
 
25
 
111 pingvin 26
QString model_name;
27
QString rootClassID;
28
QString rootClassInctance;
113 pingvin 29
QFont font;
111 pingvin 30
 
31
QTreeWidgetItem * item;
32
model_name = model_item->text(0);
33
if (model_item->checkState(0) == false) return;
113 pingvin 34
 
118 pingvin 35
ui->treeWidget_2->clear();
114 pingvin 36
//font.setWeight(20);
113 pingvin 37
font.setItalic(true);
111 pingvin 38
item = new QTreeWidgetItem (ui->treeWidget_2);
113 pingvin 39
item->setFont(0, font);
111 pingvin 40
item->setText(0, model_name);
114 pingvin 41
item->setTextColor(0, Qt::darkGreen);
144 pingvin 42
if (!(model_item->childCount() > 0)) return;
113 pingvin 43
 
111 pingvin 44
rootClassID = model_item->child(0)->text(1);
45
rootClassInctance = getClassInctance(rootClassID);
144 pingvin 46
 
47
 
111 pingvin 48
if (model_item->child(0)->checkState(0)) //         ( ), 
49
    {
113 pingvin 50
     /////   QTreeWidgetItem * item_tmp;
51
   /////     item_tmp = new QTreeWidgetItem(item);                  //  ,   ,   
52
   /////     item_tmp->setText(0, model_item->child(0)->text(0));    //   
111 pingvin 53
 
112 pingvin 54
        //showClassObjects(item_tmp, model_item->child(0));  //      
55
 
113 pingvin 56
        ///// showObjects(item_tmp, model_item->child(0), tr(""));
57
    showObjects(item, model_item->child(0), tr(""));
111 pingvin 58
    }
112 pingvin 59
 
60
 
61
/*****************************************************/
62
 
63
 
111 pingvin 64
}
65
 
66
 
67
//    -   
68
QString MainWindow::getClassInctance(QString class_id){
69
    QSqlQuery q;
70
    QString sql_str;
71
    QString result;
72
    QString classInctance;
73
    int field_inctance;
74
    bool ok;
75
    sql_str = tr("select * "
76
                 " from ListOfClasses where  ListOfClasses.ID = '"       // ,     
77
                 );
78
    sql_str.append(class_id);
79
     sql_str.append(tr("'"));
80
    q.prepare(sql_str);
81
 
82
    ok = q.exec();
83
    if (!ok) {
84
                            QMessageBox::critical( //     .
85
                                                                            this,                      //  .
86
                                                                            QObject::tr("Database Error"),   // .
87
                                                                            q.lastError().text());          //  .
88
                                                                            return result;
89
                     }
90
    field_inctance = q.record().indexOf(tr("TableWhithInstance"));
91
    while(q.next()){
92
 
93
                  classInctance = q.value(field_inctance).toString();
94
                  result.append(classInctance);
95
                  }
96
 
97
  return result;
98
 
99
}
100
 
101
void MainWindow::showClassObjects(QTreeWidgetItem * parent_item, QTreeWidgetItem * model_item){
102
    QString classID; //  
103
    QString inctance; //  , 
104
    QSqlQuery q;
105
    QString sql_str;
106
    QString str_tmp;
107
    bool ok;
108
    int field_ID;
109
    int i;
110
    classID = model_item->text(1);
111
    inctance = getClassInctance(classID);
112
 
113
    sql_str = tr("select * "
114
                 " from "       //      -   
115
                 );
116
    sql_str.append(inctance);
117
    q.prepare(sql_str);
118
 
119
    ok = q.exec();
120
    if (!ok) {
121
                            QMessageBox::critical( //     .
122
                                                                            this,                      //  .
123
                                                                            QObject::tr("Database Error"),   // .
124
                                                                            q.lastError().text());          //  .
125
                                                                            return;
126
                     }
127
 
128
    field_ID = q.record().indexOf(tr("ID"));
129
 
130
 
131
    while(q.next()){
132
                  if (q.record().count() > 1)
133
                  {
134
                    QString value_tmp;
135
                    QString ID_tmp;
136
                    QTreeWidgetItem * itm;
137
                    ID_tmp = q.value(field_ID).toString(); //   
138
                    value_tmp = q.value(1).toString(); //    (    )
139
                    itm = new QTreeWidgetItem(parent_item); //    ,  
140
                    itm->setText(0, value_tmp);
141
                    for (int i; i < model_item->childCount(); i++) // ,      
142
                    {
143
                        QTreeWidgetItem * model_item_tmp;           //  
144
                        model_item_tmp = model_item->child(i);      //    
145
                        MainWindow::showObjectChildrens(ID_tmp, itm, model_item_tmp);
146
 
147
                    }
148
                  }
149
 
150
             }
151
 
152
 
153
    i++;
154
}
155
 
156
 
157
 
158
void MainWindow::showObjectChildrens(QString object_ID, QTreeWidgetItem * object_item, QTreeWidgetItem * model_item){ //   
159
 
160
    QString classID; //  
161
 
162
    QString inctance; //  , 
163
    QSqlQuery q;
164
    QString sql_str;
165
    QString str_tmp;
166
    bool ok;
167
    classID = model_item->text(1);
168
    inctance = getClassInctance(classID);
169
 
170
    sql_str = tr("select * "
171
                 " from '"       //      -   
172
                 );
173
    sql_str.append(inctance);
174
    sql_str.append(tr("' where "));
175
 
176
 
177
    q.prepare(sql_str);
178
 
179
    ok = q.exec();
180
    if (!ok) {
181
                            QMessageBox::critical( //     .
182
                                                                            this,                      //  .
183
                                                                            QObject::tr("Database Error"),   // .
184
                                                                            q.lastError().text());          //  .
185
                                                                            return;
186
                     }
187
}
188
 
189
 
112 pingvin 190
void MainWindow::showObjects(QTreeWidgetItem * parent_object_item, QTreeWidgetItem * model_item, QString filtr){
191
    QString classID; //  
126 pingvin 192
    QString parentClassID; //   
193
    QString pointerField; //  -   
112 pingvin 194
    QString inctance; //  , 
195
    QString className; //  
196
    int field_ID;
197
    bool filtr_empty;
198
    bool ok;
199
    QSqlQuery q;
200
    QString sql_str;
201
    QString str_tmp;
113 pingvin 202
    QTreeWidgetItem * title_item;
203
    QFont font;
114 pingvin 204
   // font.setWeight(40);
205
    font.setBold(true);
112 pingvin 206
    filtr_empty = filtr.isEmpty();
207
    classID = model_item->text(1);
126 pingvin 208
 
209
    parentClassID = model_item->parent()->text(1);
210
 
211
    pointerField = getPointerFieldName(parentClassID, classID);
212
 
112 pingvin 213
    className = model_item->text(0);
214
    inctance = getClassInctance(classID);
114 pingvin 215
 
118 pingvin 216
    if  (!model_item->checkState(0)) return;
217
 
113 pingvin 218
    title_item = new  QTreeWidgetItem(parent_object_item);
219
    title_item->setFont(0, font);
220
    title_item->setText(0, className);
114 pingvin 221
    title_item->setText(1, tr("class"));
222
    title_item->setText(2, classID);
115 pingvin 223
    title_item->setText(3, inctance);
126 pingvin 224
    title_item->setText(4, pointerField);
114 pingvin 225
    title_item->setTextColor(0, Qt::darkBlue);
226
 
126 pingvin 227
 
112 pingvin 228
    sql_str = tr("select * "
229
                 " from "       //      -   
230
                 );
231
    sql_str.append(inctance);
232
    if (!filtr.isEmpty())   { //    
233
                                 sql_str.append(tr(" "));
234
                                 sql_str.append(filtr); //    
235
                            }
236
 
237
    q.prepare(sql_str);
238
 
239
    ok = q.exec();
240
    if (!ok) {
118 pingvin 241
                            QString debug_str;
242
                            debug_str.append(tr(" showObjects(): Database Error "));
243
                            debug_str.append(tr(" : "));
244
                            debug_str.append(inctance);
245
                            debug_str.append(tr(" : "));
246
                            debug_str.append(filtr);
247
                            debug_str.append(q.lastError().text());
112 pingvin 248
                            QMessageBox::critical( //     .
249
                                                                            this,                      //  .
118 pingvin 250
                                                                            QObject::tr(" showObjects(): Database Error"),   // .
251
                                                                            debug_str
252
                                                                           // q.lastError().text()
253
                                                                             );          //  .
112 pingvin 254
                                                                            return;
255
                     }
256
 
257
    field_ID = q.record().indexOf(tr("ID"));
114 pingvin 258
 
259
    /*
113 pingvin 260
    if (q.size() <= 0) return;
261
    title_item = new  QTreeWidgetItem(parent_object_item);
262
    title_item->setFont(0, font);
263
    title_item->setText(0, className);
114 pingvin 264
    */
112 pingvin 265
 
266
    while(q.next()){
267
                  if (q.record().count() > 1)
268
                  {
269
                    QString value_tmp;
270
                    QString ID_tmp;
271
                    QTreeWidgetItem * itm;
272
                    ID_tmp = q.value(field_ID).toString(); //   
273
                    value_tmp = q.value(1).toString(); //    (    )
113 pingvin 274
               //     itm = new QTreeWidgetItem(parent_object_item); //    ,  
275
                    itm = new QTreeWidgetItem(title_item); //    ,  
112 pingvin 276
                    itm->setText(0, value_tmp);
114 pingvin 277
                    itm->setText(1, tr("object"));
278
                    itm->setText(2, ID_tmp);
112 pingvin 279
                    for (int i=0; i < model_item->childCount(); i++) // ,      
280
                    {
281
                        QTreeWidgetItem * model_item_tmp;           //  
282
                        QString pointer_name;
283
                        QString filtr_tmp;
284
                        bool pointer_isEmpty;
285
                        model_item_tmp = model_item->child(i);      //    
286
                        pointer_name = getPointerFieldName(classID, model_item->child(i)->text(1));
115 pingvin 287
                        itm->setText(4, pointer_name);
126 pingvin 288
 
289
                      //  title_item->setText(4, pointer_name);
290
 
291
 
112 pingvin 292
                        pointer_isEmpty = pointer_name.isEmpty();
293
                        filtr_tmp = tr("where ");
294
                        filtr_tmp.append(tr("`"));
295
                        filtr_tmp.append(pointer_name);
296
                        filtr_tmp.append(tr("` = '"));
297
                        filtr_tmp.append(ID_tmp);
298
                         filtr_tmp.append(tr("'"));
299
                        showObjects(itm,  model_item_tmp, filtr_tmp);
300
                        //MainWindow::showObjectChildrens(ID_tmp, itm, model_item_tmp);
301
 
302
                    }
303
 
304
 
305
                }
306
 
307
              }
308
 
309
 
310
 
311
 
312
    for (int i; i < model_item->childCount(); i++) // ,      
313
        {
314
 
315
 
316
        }
317
 
111 pingvin 318
}
319
 
115 pingvin 320
 
112 pingvin 321
QString MainWindow::getPointerFieldName(QString parent_class_id, QString chield_class_id){
322
 
323
    QSqlQuery q;
324
    QString sql_str;
325
    QString str_tmp;
326
    QString field;
327
    QString result;
328
    int field_name;
329
    bool ok;
330
    sql_str = tr("select * "
331
                 " from `DescriptionOfClasses` where `DescriptionOfClasses`.`FieldType` = 'pointer' and  `DescriptionOfClasses`.`DefaultValue` = "       //      -   
332
                 );
333
 
334
    sql_str.append(tr("'"));
335
    sql_str.append(parent_class_id);
336
    sql_str.append(tr("' "));
337
    sql_str.append(tr(" and  `DescriptionOfClasses`.`ClassIdentifer` = '"));
338
    sql_str.append(chield_class_id);
339
    sql_str.append(tr("'"));
340
    q.prepare(sql_str);
341
 
342
    ok = q.exec();
343
    if (!ok) {
344
                            QMessageBox::critical( //     .
345
                                                                            this,                      //  .
346
                                                                            QObject::tr("Database Error"),   // .
347
                                                                            q.lastError().text());          //  .
348
                                                                            return result;
349
                     }
350
field_name =  q.record().indexOf(tr("FieldName"));
351
while(q.next()){
352
        result = q.value(field_name).toString();
353
    }
354
return result;
355
}
356
 
115 pingvin 357
 
358
 
359
void MainWindow::on_treeWidget_2_itemClicked ( QTreeWidgetItem * item, int column ){
360
QString item_type; //   (   )
361
QString parent_object_id;
362
int i;
363
QTreeWidgetItem * parent_item;
364
item_type = item->text(1);
365
parent_item = item->parent();
366
if (item_type == tr("object"))
367
    {
368
        QString  class_id;
116 pingvin 369
        QString ID;
370
        QString inctance;
371
        QString filtr_tmp;
119 pingvin 372
 
373
        disconnect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
374
 
375
        ui->pushButton->setEnabled(false);
376
        ui->pushButton_2->setEnabled(false);
377
 
115 pingvin 378
        class_id = parent_item->text(2);
116 pingvin 379
        ID = item->text(2);
380
        inctance = parent_item->text(3);
381
        delete sql_mogel;
127 pingvin 382
 
383
        ///////sql_mogel = new QSqlTableModel();
384
        sql_mogel = new MyModel();
385
 
386
        //        sql_mogel = new QSqlTableModel(this);
116 pingvin 387
        sql_mogel->setTable(inctance);
119 pingvin 388
        // sql_mogel->setEditStrategy(QSqlTableModel::OnFieldChange);
389
        sql_mogel->setEditStrategy(QSqlTableModel::OnManualSubmit);
116 pingvin 390
 
391
        filtr_tmp.append(tr("`"));
392
        filtr_tmp.append(tr("ID"));
393
        filtr_tmp.append(tr("`"));
394
        filtr_tmp.append(tr(" = '"));
395
        filtr_tmp.append(ID);
396
        filtr_tmp.append(tr("'"));
397
        sql_mogel->setFilter(filtr_tmp);
398
        sql_mogel->select();
128 pingvin 399
 
400
 
116 pingvin 401
        ui->tableView->setModel(sql_mogel);
118 pingvin 402
        ui->tableView->resizeColumnsToContents();
116 pingvin 403
 
119 pingvin 404
        connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
405
 
116 pingvin 406
        //sql_mogel->clear();
407
        //sql_mogel->select();
408
     //   ui->tableView->setVisible(false);
409
     //   i++;
115 pingvin 410
    }
411
if (item_type == tr("class"))
412
    {
413
        QString parent_object_id; //   
125 pingvin 414
 
115 pingvin 415
        QString class_id; //   
416
        QString inctance;
126 pingvin 417
        QString parent_class_inctance;
115 pingvin 418
        QString pointer_name;
419
        QString filtr_tmp;
138 pingvin 420
 
421
 
422
 
116 pingvin 423
   //     sql_mogel->clear();
424
 
119 pingvin 425
        ui->pushButton->setEnabled(true);
426
        ui->pushButton_2->setEnabled(true);
427
 
428
        disconnect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
429
 
115 pingvin 430
        parent_object_id = parent_item->text(2);
118 pingvin 431
 
432
        parentObject_id = parent_item->text(2);
433
 
115 pingvin 434
        class_id = item->text(2);
435
        inctance = item->text(3);
436
 
126 pingvin 437
    //    parent_class_inctance = parent_item->parent()->text(3); //     
438
 
439
       // pointer_name = parent_item->text(4);
440
        pointer_name = item->text(4);
116 pingvin 441
        delete sql_mogel;
127 pingvin 442
 
443
 
444
        ////// sql_mogel = new QSqlTableModel();
445
 
446
        sql_mogel = new MyModel();
447
 
448
        //        sql_mogel = new QSqlTableModel(this);
115 pingvin 449
        sql_mogel->setTable(inctance);
119 pingvin 450
        // sql_mogel->setEditStrategy(QSqlTableModel::OnFieldChange);
451
        sql_mogel->setEditStrategy(QSqlTableModel::OnManualSubmit);
116 pingvin 452
 
453
        if (!parent_object_id.isEmpty())
454
        {
455
            filtr_tmp.append(tr("`"));
456
            filtr_tmp.append(pointer_name);
457
            filtr_tmp.append(tr("`"));
458
            filtr_tmp.append(tr(" = '"));
459
            filtr_tmp.append(parent_object_id);
460
            filtr_tmp.append(tr("'"));
461
            sql_mogel->setFilter(filtr_tmp);
462
        }
126 pingvin 463
 
464
        /****************************************
465
         spinDelegate.setInctance(parent_class_inctance);
466
         spinDelegate.getItems();
467
         ui->tableView->setItemDelegateForColumn(2, &spinDelegate);
468
        ***************************************/
469
 
470
 
115 pingvin 471
        sql_mogel->select();
116 pingvin 472
 
129 pingvin 473
        QMap <QString, QString> pointersList = getPointersList(class_id); //   -
128 pingvin 474
        QMap <int, QString> pointersToModel;
126 pingvin 475
 
130 pingvin 476
        QStringList pointersNames;
477
        static QList<int> colomns_indexes; //       
478
 
479
        //  ""    
480
        for (i=0; i < colomns_indexes.size(); i++){ //   -:
481
 
482
 
483
 
484
            ui->tableView->setItemDelegateForColumn(colomns_indexes.at(i), &standart_delegate ); //    
138 pingvin 485
        // ui->tableView->setItemDelegateForColumn(colomns_indexes.at(i), &picture_delegate);
130 pingvin 486
 
487
        }
488
 
489
        colomns_indexes.clear(); //      
490
 
491
 
492
        pointersNames = pointersList.keys(); //   -   
493
 
494
 
495
 
496
 
497
 
138 pingvin 498
 
140 pingvin 499
    //    ui->tableView->setItemDelegateForColumn(2, picture_delegate);
138 pingvin 500
 
139 pingvin 501
       // ui->tableView->setRowHeight(1, 100);
138 pingvin 502
 
503
 
504
 
505
 
506
 
129 pingvin 507
        QStringList parentInctancesList = pointersList.values(); //    
126 pingvin 508
 
130 pingvin 509
        for (i=0; i < pointersNames.size(); i++){ //   -:
128 pingvin 510
            QString pointerName;
511
 
512
            int pointerIndex;
130 pingvin 513
            pointerName = pointersNames.at(i);  //   -
514
            pointerIndex = sql_mogel->record().indexOf(pointerName); //     
515
            colomns_indexes.append(pointerIndex); //      
516
            spinDelegate.setInctance(parentInctancesList.at(i)); //       
517
            spinDelegate.getItems();                             //       
518
            ui->tableView->setItemDelegateForColumn(pointerIndex, &spinDelegate); //       
129 pingvin 519
 
520
 
130 pingvin 521
            pointersToModel.insert(pointerIndex, parentInctancesList.at(i)); //     
128 pingvin 522
        }
523
 
130 pingvin 524
        sql_mogel->setPointers(pointersToModel); //   
128 pingvin 525
 
130 pingvin 526
        pointer_index = sql_mogel->record().indexOf(pointer_name); //   ,  , ! :-)
118 pingvin 527
 
115 pingvin 528
        ui->tableView->setModel(sql_mogel);
529
 
140 pingvin 530
 
531
 
532
 
533
 
534
 
535
 
536
        /**********************************************************/
537
 
538
  //      for (int i; i < sql_mogel->rowCount(); i++ ) {
539
  //          ui->tableView->setRowHeight(i, 100);
540
  //      }
541
 
542
        /**********************************************************/
543
 
544
 
545
 
546
 
547
 
548
 
119 pingvin 549
        connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
550
 
551
 
552
        //     ui->tableView->setVisible(true);;
115 pingvin 553
        i++;
554
    }
555
 
556
//parent_object_id = parent_object_item->text(1);
557
 
558
 
559
 
560
 
561
 
562
i++;
563
 
564
}
565
 
566
 
118 pingvin 567
void MainWindow::on_pushButton_clicked(){ //   " "
568
     int row = sql_mogel->rowCount();
569
      sql_mogel->insertRows(row, 1);
570
      sql_mogel->setData(sql_mogel->index(row, 1), QVariant(tr(" ")), Qt::EditRole); //     " "
571
      if (pointer_index > 0) {
572
                                    sql_mogel->setData(sql_mogel->index(row, pointer_index), QVariant(parentObject_id), Qt::EditRole); //     " "
573
                                }
119 pingvin 574
    //  sql_mogel->submitAll();
118 pingvin 575
 
576
}
119 pingvin 577
 
578
void MainWindow::on_pushButton_2_clicked(){ //   "  "
579
int i;
580
i++;
120 pingvin 581
QModelIndex model_index;
582
QItemSelectionModel *selectionModel = ui->tableView->selectionModel();
583
QModelIndexList indexes = selectionModel->selectedIndexes();
584
QList<int> selectedRows;
585
selectedRows.clear();
586
foreach (model_index, indexes){ //    
587
    if (!selectedRows.contains(model_index.row()) && (model_index.column()==1))  selectedRows.append(model_index.row()); //        
119 pingvin 588
 
589
}
120 pingvin 590
qSort(selectedRows.begin(),selectedRows.end(), qGreater<int>()); //    
119 pingvin 591
 
592
 
120 pingvin 593
for (int m =0; m < selectedRows.size(); ++m){
594
 
595
// ClassEditor::removeClass(selectedRows.at(m));
596
 
597
sql_mogel->removeRow(selectedRows.at(m));
598
 
599
}
600
sql_mogel->submitAll();
601
getDatabaseData();
602
 
603
}
604
 
605
 
119 pingvin 606
void MainWindow::on_pushButton_3_clicked(){ //   ""
607
    int i;
608
    i++;
609
    sql_mogel->submitAll();
610
    getDatabaseData();
611
    ui->pushButton_3->setEnabled(false);
612
    ui->pushButton_4->setEnabled(false);
613
    sql_mogel->select();
614
 
615
}
616
 
617
 
618
void MainWindow::on_pushButton_4_clicked(){ //   " "
619
    int i;
620
    i++;
621
    sql_mogel->select();
622
    ui->pushButton_3->setEnabled(false);
623
    ui->pushButton_4->setEnabled(false);
624
}
625
 
626
 
144 pingvin 627
void MainWindow::on_pushButton_5_clicked(){//   "  "
628
 
629
    int i;
630
    i++;
631
    int row = model_for_ListModelsTable->rowCount();
632
    model_for_ListModelsTable->insertRows(row, 1);
633
    model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row, 1), QVariant(tr(" ")), Qt::EditRole); //     " "
634
    // model_for_ListModelsTable->setData(sql_mogel->index(row, pointer_index), QVariant(parentObject_id), Qt::EditRole); //     " "
635
 
636
   //  sql_mogel->submitAll();
637
 
638
 
639
}
640
 
641
void MainWindow::on_pushButton_6_clicked(){//   "  "
642
 
643
    QModelIndex model_index;
644
    QItemSelectionModel *selectionModel = ui->tableView_2->selectionModel();
645
    QModelIndexList indexes = selectionModel->selectedIndexes();
646
    QList<int> selectedRows;
647
    selectedRows.clear();
648
    foreach (model_index, indexes){ //    
649
        if (!selectedRows.contains(model_index.row()) && (model_index.column()==1))  selectedRows.append(model_index.row()); //        
650
 
651
    }
652
    qSort(selectedRows.begin(),selectedRows.end(), qGreater<int>()); //    
653
 
654
 
655
    for (int m =0; m < selectedRows.size(); ++m){
656
 
657
    // ClassEditor::removeClass(selectedRows.at(m));
658
 
659
    model_for_ListModelsTable->removeRow(selectedRows.at(m));
660
 
661
    }
662
    model_for_ListModelsTable->submitAll();
663
   // getDatabaseData();
664
 
665
}
666
 
667
 
668
 
119 pingvin 669
void MainWindow::on_sql_mogel_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ){ //       
670
int i;
671
i++;
672
ui->pushButton_3->setEnabled(true);
673
ui->pushButton_4->setEnabled(true);
674
 
675
 
676
}
128 pingvin 677
 
678
 
679
//    -,      -
680
//      -   
681
 
682
QMap <QString, QString>  MainWindow::getPointersList(QString class_id){
683
    QMap <QString, QString>  result_map;
684
    QSqlQuery q;
685
    QString sql_str;
686
    QString str_tmp;
687
    QString field;
688
    QString result;
689
    int field_name, field_default_value;
690
    bool ok;
691
    sql_str = tr("select * "
692
                 " from `DescriptionOfClasses` where `DescriptionOfClasses`.`FieldType` = 'pointer' and  `DescriptionOfClasses`.`ClassIdentifer` = "       //      -   
693
                 );
694
 
695
    sql_str.append(tr("'"));
696
    sql_str.append(class_id);
697
    sql_str.append(tr("' "));
698
    // sql_str.append(tr(" and  `DescriptionOfClasses`.`ClassIdentifer` = '"));
699
    // sql_str.append(chield_class_id);
700
    // sql_str.append(tr("'"));
701
    q.prepare(sql_str);
702
 
703
    ok = q.exec();
704
    if (!ok) {
705
                            QMessageBox::critical( //     .
706
                                                                            this,                      //  .
707
                                                                            QObject::tr("Database Error"),   // .
708
                                                                            q.lastError().text());          //  .
709
                                                                            return result_map;
710
                     }
711
field_name =  q.record().indexOf(tr("FieldName"));
712
field_default_value = q.record().indexOf(tr("DefaultValue"));
713
while(q.next()){
714
        QString pointerFieldName;
715
        QString parentClassID;
716
        QString parentClassInctance;
717
 
718
         pointerFieldName = q.value(field_name).toString();
719
         parentClassID = q.value(field_default_value).toString();
720
         parentClassInctance =  getClassInctance(parentClassID);
721
         result_map.insert(pointerFieldName, parentClassInctance);
722
 
723
 
724
    }
725
 
726
return result_map;
727
}
728
 
132 pingvin 729
 
730
 
731
 
732
 
733
 
734
//  
735
 
736
void MainWindow::readSettings()
737
{
738
        QSettings settings("Trolltech", "Application Example");
739
        baseName = settings.value("baseName", "an_db").toString();
740
        userName = settings.value("userName", "an").toString();
741
        password = settings.value("password", "393939").toString();
742
        tableName = settings.value("tableName", "inventar").toString();
743
        hostName = settings.value("hostName", "server").toString();
744
//     resize(size);
745
//     move(pos);tableName
746
}
747
 
748
 
749
void MainWindow::writeSettings()
750
{
751
        QSettings settings("Trolltech", "Application Example");
752
        settings.setValue("baseName", baseName);
753
        settings.setValue("userName", userName);
754
        settings.setValue("password", password);
755
        settings.setValue("tableName", tableName);
756
        settings.setValue("hostName", hostName);
757
}
758
 
759
 
760
 
761
void MainWindow::applySetting()
762
{
763
        bool ok;
764
        baseName = setFrm.lineEdit->text();
765
        userName = setFrm.lineEdit_2->text();
766
        password = setFrm.lineEdit_3->text();
767
        // tableName = setFrm->lineEdit_4->text();
768
        hostName = setFrm.lineEdit_5->text();
769
        writeSettings();
770
 
771
 
772
        ok=openDataBase();
773
        if (!ok) return;
774
   // // //     ui->treeWidget->clear(); //    
775
 
776
   // // //      buildPreviewModel(tr(" "), tr("1"));
777
        class_list_map.clear(); //   
778
        initComboBox();
779
  // // //      getDatabaseData();
780
        // delete setFrm;
781
        setFrm.close();
782
}
783
 
784
 
785
void MainWindow::getSetting()
786
{
787
        // setFrm = new settingForm;
788
    // // //     connect(setFrm.pushButton, SIGNAL(clicked()), this, SLOT(applySetting()));
789
        setFrm.lineEdit->setText(baseName);
790
        setFrm.lineEdit_2->setText(userName);
791
        setFrm.lineEdit_3->setText(password);
792
//      setFrm->lineEdit_4->setText(tableName);
793
        setFrm.lineEdit_5->setText(hostName);
794
        setFrm.show();
795
 
796
 
797
 
798
}
144 pingvin 799
 
800
 
801
 
802
 
803
void MainWindow::readModels(){
804
int row = model_for_ListModelsTable->rowCount();
805
// rootItems.clear();
806
 
807
for (int i=0; i < row; i++){
808
    QTreeWidgetItem * item_tmp;
809
    QString modelName;
810
    bool enabled;
811
    modelName = model_for_ListModelsTable->data(model_for_ListModelsTable->index(i, 1)).toString();
812
    enabled = model_for_ListModelsTable->data(model_for_ListModelsTable->index(i, 3)).toBool();
813
    item_tmp = new QTreeWidgetItem(ui->treeWidget);
814
    item_tmp->setText(0, modelName);
815
    if (enabled) item_tmp->setCheckState(0,Qt::Checked);
816
    else  item_tmp->setCheckState(0,Qt::Unchecked);
817
    rootItems.append(item_tmp);
818
 
819
 
820
        }
821
}