Хранилища Subversion OpenInventory

Редакция

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

Редакция 223 Редакция 224
1
#include "mainwindow.h"
1
#include "mainwindow.h"
2
#include "ui_mainwindow.h"
2
#include "ui_mainwindow.h"
3
3
4
MainWindow::MainWindow(QWidget *parent) :
4
MainWindow::MainWindow(QWidget *parent) :
5
    QMainWindow(parent),
5
    QMainWindow(parent),
6
    ui(new Ui::MainWindow)
6
    ui(new Ui::MainWindow)
7
{
7
{
8
    ui->setupUi(this);
8
    ui->setupUi(this);
9
/*
9
/*
10
    QPalette p = this->palette();
10
    QPalette p = this->palette();
11
    p.setBrush(this->backgroundRole(), QBrush(QColor(255,255,255,128)));
11
    p.setBrush(this->backgroundRole(), QBrush(QColor(255,255,255,128)));
12
    this->setAutoFillBackground(true);
12
    this->setAutoFillBackground(true);
13
    this->setPalette(p);
13
    this->setPalette(p);
14
*/
14
*/
15
15
16
    ui->centralWidget->setLayout(ui->verticalLayout);
16
    ui->centralWidget->setLayout(ui->verticalLayout);
17
    ui->tab->setLayout(ui->horizontalLayout);
17
    ui->tab->setLayout(ui->horizontalLayout);
18
    ui->tab_2->setLayout(ui->horizontalLayout_3);
18
    ui->tab_2->setLayout(ui->horizontalLayout_3);
19
   // connect( ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_currentIndexChanged(int)));
19
   // connect( ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_currentIndexChanged(int)));
20
    model_is_build = false;
20
    model_is_build = false;
21
   // MainWindow::readModel();
21
   // MainWindow::readModel();
22
22
23
   //QString model_str;
23
   //QString model_str;
24
24
25
25
26
   /*
26
   /*
27
   MainWindow::creatModelString();
27
   MainWindow::creatModelString();
28
   int i;
28
   int i;
29
   i++;
29
   i++;
30
    QFile file_tmp("./temp.txt");
30
    QFile file_tmp("./temp.txt");
31
    bool ok;
31
    bool ok;
32
    ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
32
    ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
33
    QTextStream out(&file_tmp);
33
    QTextStream out(&file_tmp);
34
    out << MainWindow::modelString;
34
    out << MainWindow::modelString;
35
    file_tmp.close();
35
    file_tmp.close();
36
*/
36
*/
37
37
38
38
39
39
40
40
41
    ui->treeWidget->setAlternatingRowColors(true);
41
    ui->treeWidget->setAlternatingRowColors(true);
42
    ui->treeWidget_2->setAlternatingRowColors(true);
42
    ui->treeWidget_2->setAlternatingRowColors(true);
43
43
44
    ui->treeWidget->setIconSize(QSize(30,30));
44
    ui->treeWidget->setIconSize(QSize(30,30));
45
    ui->treeWidget->setColumnWidth(0, 400);
45
    ui->treeWidget->setColumnWidth(0, 400);
46
    ui->treeWidget_2->setIconSize(QSize(128,128));
46
    ui->treeWidget_2->setIconSize(QSize(128,128));
47
47
48
    MainWindow::readSettings();
48
    MainWindow::readSettings();
49
49
50
    MainWindow::openDataBase();
50
    MainWindow::openDataBase();
51
51
52
    classesIcons = MainWindow::getClassesIcons(); // ïîëó÷èì èêîíêè äëÿ êëàññîâ
52
    classesIcons = MainWindow::getClassesIcons(); // ïîëó÷èì èêîíêè äëÿ êëàññîâ
53
53
54
    MainWindow::initComboBox();
54
    MainWindow::initComboBox();
55
55
56
//    MainWindow::buildPreviewModel(tr("Ìîÿ ìîäåëü"), tr("11"));
56
//    MainWindow::buildPreviewModel(tr("Ìîÿ ìîäåëü"), tr("11"));
57
57
58
    MainWindow::initListModelsTablle();
58
    MainWindow::initListModelsTablle();
59
59
60
    MainWindow::readModels();
60
    MainWindow::readModels();
61
61
62
 //   MainWindow::creatModelString();
62
 //   MainWindow::creatModelString();
63
    //int i;
63
    //int i;
64
    //i++;
64
    //i++;
65
65
66
    /*
66
    /*
67
    QFile file_tmp("./modelstring.txt");
67
    QFile file_tmp("./modelstring.txt");
68
     bool ok;
68
     bool ok;
69
     file_tmp.remove();
69
     file_tmp.remove();
70
     ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
70
     ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
71
     QTextStream out(&file_tmp);
71
     QTextStream out(&file_tmp);
72
     out.setCodec("cp1251");
72
     out.setCodec("cp1251");
73
     out << MainWindow::modelString;
73
     out << MainWindow::modelString;
74
     file_tmp.close();
74
     file_tmp.close();
75
    */
75
    */
76
76
77
77
78
    ui->treeWidget_2->hideColumn(1);
78
    ui->treeWidget_2->hideColumn(1);
79
    ui->treeWidget_2->hideColumn(2);
79
    ui->treeWidget_2->hideColumn(2);
80
    ui->treeWidget_2->hideColumn(3);
80
    ui->treeWidget_2->hideColumn(3);
81
    ui->treeWidget_2->hideColumn(4);
81
    ui->treeWidget_2->hideColumn(4);
82
82
83
83
84
    getDatabaseData();
84
    getDatabaseData();
85
    //// sql_mogel = new QSqlTableModel();
85
    //// sql_mogel = new QSqlTableModel();
86
    sql_mogel = new MyModel();
86
    sql_mogel = new MyModel();
87
87
88
    /// filter_model = new MyModel();
88
    /// filter_model = new MyModel();
89
    filter_model = new QSqlTableModel();
89
    filter_model = new QSqlTableModel();
90
90
91
91
92
    model_is_build = true;
92
    model_is_build = true;
93
    connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
93
    connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
94
    connect(model_for_ListModelsTable, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_model_for_ListModelsTable_dataChanged(QModelIndex,QModelIndex)));
94
    connect(model_for_ListModelsTable, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_model_for_ListModelsTable_dataChanged(QModelIndex,QModelIndex)));
95
    connect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
95
    connect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
96
96
97
97
98
    ui->pushButton_3->setEnabled(false);
98
    ui->pushButton_3->setEnabled(false);
99
    ui->pushButton_4->setEnabled(false);
99
    ui->pushButton_4->setEnabled(false);
100
100
101
101
102
    ui->pushButton_9->setEnabled(false);
102
    ui->pushButton_9->setEnabled(false);
103
    ui->pushButton_10->setEnabled(false);
103
    ui->pushButton_10->setEnabled(false);
104
    ui->pushButton_11->setEnabled(false);
104
    ui->pushButton_11->setEnabled(false);
105
    ui->pushButton_12->setEnabled(false);
105
    ui->pushButton_12->setEnabled(false);
106
106
107
   // setFrm.show();
107
   // setFrm.show();
108
108
109
    // treeForm.show();
109
    // treeForm.show();
110
110
111
    connect(ui->getsettingAct, SIGNAL(triggered()), this, SLOT(getSetting())); // âûáîð â ãëàâíîé ôîðìå â ìåíþ "Áàçà äàííûõ" ïóíêòà "Ïàðàìåòðû ñîåäèíåíèÿ"
111
    connect(ui->getsettingAct, SIGNAL(triggered()), this, SLOT(getSetting())); // âûáîð â ãëàâíîé ôîðìå â ìåíþ "Áàçà äàííûõ" ïóíêòà "Ïàðàìåòðû ñîåäèíåíèÿ"
112
    connect(setFrm.pushButton, SIGNAL(clicked()), this, SLOT(applySetting()));
112
    connect(setFrm.pushButton, SIGNAL(clicked()), this, SLOT(applySetting()));
113
113
114
 //   connect(ui->tableView_2,SIGNAL(activated(QModelIndex)),ui->tableView_2,SLOT(edit(QModelIndex)));
114
 //   connect(ui->tableView_2,SIGNAL(activated(QModelIndex)),ui->tableView_2,SLOT(edit(QModelIndex)));
115
115
116
    picture_delegate = new CPictureDelegate(this);
116
    picture_delegate = new CPictureDelegate(this);
117
    iconDelegate = new IconDelegate(this);
117
    iconDelegate = new IconDelegate(this);
118
    fileDelegate = new FileDelegate(this);
118
    fileDelegate = new FileDelegate(this);
119
119
120
 //   fileForm.show();
120
 //   fileForm.show();
121
121
122
}
122
}
123
123
124
MainWindow::~MainWindow()
124
MainWindow::~MainWindow()
125
{
125
{
126
    delete sql_mogel;
126
    delete sql_mogel;
127
    delete filter_model;
127
    delete filter_model;
128
    delete ui;
128
    delete ui;
129
    delete model_for_ListModelsTable;
129
    delete model_for_ListModelsTable;
130
}
130
}
131
131
132
void MainWindow::changeEvent(QEvent *e)
132
void MainWindow::changeEvent(QEvent *e)
133
{
133
{
134
    QMainWindow::changeEvent(e);
134
    QMainWindow::changeEvent(e);
135
    switch (e->type()) {
135
    switch (e->type()) {
136
    case QEvent::LanguageChange:
136
    case QEvent::LanguageChange:
137
        ui->retranslateUi(this);
137
        ui->retranslateUi(this);
138
        break;
138
        break;
139
    default:
139
    default:
140
        break;
140
        break;
141
    }
141
    }
142
}
142
}
143
143
144
144
145
bool MainWindow::readModel(){
145
bool MainWindow::readModel(){
146
    bool result;
146
    bool result;
147
    QString model_str;
147
    QString model_str;
148
    QFile file("modelstring.txt");
148
    QFile file("modelstring.txt");
149
  //  QFile file("model.txt");
149
  //  QFile file("model.txt");
150
   rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
150
   rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
151
    rootItem1->setText(0, tr("Óðîâåíü 1"));
151
    rootItem1->setText(0, tr("Óðîâåíü 1"));
152
   // rootItem2 = new  QTreeWidgetItem(rootItem1);
152
   // rootItem2 = new  QTreeWidgetItem(rootItem1);
153
   // rootItem2->setText(0, tr("óðîâåíü 2"));
153
   // rootItem2->setText(0, tr("óðîâåíü 2"));
154
    rootItem1->setCheckState(0,Qt::Checked);
154
    rootItem1->setCheckState(0,Qt::Checked);
155
   // rootItem2->setCheckState(0,Qt::Checked);
155
   // rootItem2->setCheckState(0,Qt::Checked);
156
156
157
157
158
158
159
    result = file.open(QIODevice::ReadOnly);
159
    result = file.open(QIODevice::ReadOnly);
160
    if (result) {
160
    if (result) {
161
                     model_str = QString(tr(file.readAll()));
161
                     model_str = QString(tr(file.readAll()));
162
                }
162
                }
163
163
164
    setupModelData(model_str.split(QString("\n")), rootItem1, -1, tr("1"));
164
    setupModelData(model_str.split(QString("\n")), rootItem1, -1, tr("1"));
165
165
166
166
167
    return result;
167
    return result;
168
168
169
}
169
}
170
170
171
171
172
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row, QString model_id)
172
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row, QString model_id)
173
{
173
{
174
    QList<QTreeWidgetItem*> parents;
174
    QList<QTreeWidgetItem*> parents;
175
    QList<int> indentations;
175
    QList<int> indentations;
176
    parents << parent;
176
    parents << parent;
177
    indentations << 0;
177
    indentations << 0;
178
178
179
    int number = 0;
179
    int number = 0;
180
180
181
    while (number < lines.count()) {
181
    while (number < lines.count()) {
182
        int position = 0;
182
        int position = 0;
183
        while (position < lines[number].length()) {
183
        while (position < lines[number].length()) {
184
            if (lines[number].mid(position, 1) != " ")
184
            if (lines[number].mid(position, 1) != " ")
185
                break;
185
                break;
186
            position++;
186
            position++;
187
        }
187
        }
188
188
189
        QString lineData = lines[number].mid(position).trimmed();
189
        QString lineData = lines[number].mid(position).trimmed();
190
190
191
        if (!lineData.isEmpty()) {
191
        if (!lineData.isEmpty()) {
192
            // Read the column data from the rest of the line.
192
            // Read the column data from the rest of the line.
193
            QStringList columnStrings = lineData.split("\t", QString::SkipEmptyParts);
193
            QStringList columnStrings = lineData.split("\t", QString::SkipEmptyParts);
194
            QList<QVariant> columnData;
194
            QList<QVariant> columnData;
195
            for (int column = 0; column < columnStrings.count(); ++column)
195
            for (int column = 0; column < columnStrings.count(); ++column)
196
                columnData << columnStrings[column];
196
                columnData << columnStrings[column];
197
197
198
            if (position > indentations.last()) {
198
            if (position > indentations.last()) {
199
                // The last child of the current parent is now the new parent
199
                // The last child of the current parent is now the new parent
200
                // unless the current parent has no children.
200
                // unless the current parent has no children.
201
201
202
                if (parents.last()->childCount() > 0) {
202
                if (parents.last()->childCount() > 0) {
203
                    parents << parents.last()->child(parents.last()->childCount()-1);
203
                    parents << parents.last()->child(parents.last()->childCount()-1);
204
                    indentations << position;
204
                    indentations << position;
205
                }
205
                }
206
            } else {
206
            } else {
207
                while (position < indentations.last() && parents.count() > 0) {
207
                while (position < indentations.last() && parents.count() > 0) {
208
                    parents.pop_back();
208
                    parents.pop_back();
209
                    indentations.pop_back();
209
                    indentations.pop_back();
210
                }
210
                }
211
            }
211
            }
212
212
213
            // Append a new item to the current parent's list of children.
213
            // Append a new item to the current parent's list of children.
214
          // // //  parents.last()->appendChild(new QTreeWidgetItem(columnData, parents.last()));
214
          // // //  parents.last()->appendChild(new QTreeWidgetItem(columnData, parents.last()));
215
            QTreeWidgetItem* itm_tmp;
215
            QTreeWidgetItem* itm_tmp;
216
            itm_tmp = new QTreeWidgetItem( parents.last());
216
            itm_tmp = new QTreeWidgetItem( parents.last());
217
        //    itm_tmp->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
217
        //    itm_tmp->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
218
218
219
/*
219
/*
220
            QLineEdit * edit_line;
220
            QLineEdit * edit_line;
221
            edit_line = new QLineEdit(this);
221
            edit_line = new QLineEdit(this);
222
            ui->treeWidget->setItemWidget(itm_tmp, 5, edit_line);
222
            ui->treeWidget->setItemWidget(itm_tmp, 5, edit_line);
223
*/
223
*/
224
//static QStandartDelegate delegate;
224
//static QStandartDelegate delegate;
225
            ui->treeWidget->setItemDelegateForColumn(5, &standart_delegate);
225
            ui->treeWidget->setItemDelegateForColumn(5, &standart_delegate);
226
226
227
227
228
            itm_tmp->setText(0, QString(columnData.at(0).toString()));
228
            itm_tmp->setText(0, QString(columnData.at(0).toString()));
229
            if (columnData.at(1).toString() == "true") {
229
            if (columnData.at(1).toString() == "true") {
230
                                                            itm_tmp->setCheckState(0,Qt::Checked);
230
                                                            itm_tmp->setCheckState(0,Qt::Checked);
231
                                                        }
231
                                                        }
232
            else itm_tmp->setCheckState(0,Qt::Unchecked);
232
            else itm_tmp->setCheckState(0,Qt::Unchecked);
233
            if (columnData.count()>2)
233
            if (columnData.count()>2)
234
            {
234
            {
235
            QString class_id;
235
            QString class_id;
236
            QString filtr_str;
236
            QString filtr_str;
237
            QPixmap pxmp;
237
            QPixmap pxmp;
238
            QIcon icon;
238
            QIcon icon;
239
            class_id = QString(columnData.at(2).toString());
239
            class_id = QString(columnData.at(2).toString());
240
            pxmp = MainWindow::classesIcons.value(class_id);
240
            pxmp = MainWindow::classesIcons.value(class_id);
241
241
242
           // itm_tmp->setText(1, QString(columnData.at(2).toString())); // id êëàññà
242
           // itm_tmp->setText(1, QString(columnData.at(2).toString())); // id êëàññà
243
            itm_tmp->setText(1, class_id); // id êëàññà
243
            itm_tmp->setText(1, class_id); // id êëàññà
244
            itm_tmp->setText(6, model_id); // id ìîäåëè
244
            itm_tmp->setText(6, model_id); // id ìîäåëè
245
            itm_tmp->setText(2, QVariant(number).toString()); // íîìåð ñòðîêè â ôàéëå-ìîäåëè îòîáðàæåíèÿ
245
            itm_tmp->setText(2, QVariant(number).toString()); // íîìåð ñòðîêè â ôàéëå-ìîäåëè îòîáðàæåíèÿ
246
            itm_tmp->setText(3, QVariant(indentations.size()).toString()); // óðîâåíü âëîæåíèÿ
246
            itm_tmp->setText(3, QVariant(indentations.size()).toString()); // óðîâåíü âëîæåíèÿ
247
            itm_tmp->setText(4, QVariant(row).toString()); // íîìåð ñòðîêè â ôàéëå
247
            itm_tmp->setText(4, QVariant(row).toString()); // íîìåð ñòðîêè â ôàéëå
248
            filtr_str = getFiltrString(model_id,class_id);
248
            filtr_str = getFiltrString(model_id,class_id);
249
            itm_tmp->setText(5,filtr_str);
249
            itm_tmp->setText(5,filtr_str);
250
250
251
            if (!pxmp.isNull())
251
            if (!pxmp.isNull())
252
                {
252
                {
253
                    icon.addPixmap(pxmp);
253
                    icon.addPixmap(pxmp);
254
                    itm_tmp->setIcon(0, icon);                  
254
                    itm_tmp->setIcon(0, icon);                  
255
                }
255
                }
256
            }
256
            }
257
        }
257
        }
258
258
259
        number++;
259
        number++;
260
    }
260
    }
261
}
261
}
262
262
263
263
264
/*
264
/*
265
void MainWindow::openBase()
265
void MainWindow::openBase()
266
{
266
{
267

267

268
        db = QSqlDatabase::addDatabase("QMYSQL");
268
        db = QSqlDatabase::addDatabase("QMYSQL");
269
        pdb = &db;
269
        pdb = &db;
270
        raportFrm.pdb = &db;
270
        raportFrm.pdb = &db;
271

271

272
        pdb->setHostName(hostName);
272
        pdb->setHostName(hostName);
273
        pdb->setDatabaseName(baseName);
273
        pdb->setDatabaseName(baseName);
274
        pdb->setUserName(userName);
274
        pdb->setUserName(userName);
275
        pdb->setPassword(password);
275
        pdb->setPassword(password);
276
        bool ok = pdb->open();
276
        bool ok = pdb->open();
277
        if (!ok) {
277
        if (!ok) {
278
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
278
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
279
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
279
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
280
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
280
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
281
                                                                                pdb->lastError().text());          // Òåêñò ñîîáùåíèÿ.
281
                                                                                pdb->lastError().text());          // Òåêñò ñîîáùåíèÿ.
282
                         }
282
                         }
283
        if (ok)
283
        if (ok)
284
        {lineEdit-> insert(tr("Áàçà óñïåøíî îòêðûòà"));
284
        {lineEdit-> insert(tr("Áàçà óñïåøíî îòêðûòà"));
285
        }
285
        }
286
        else {lineEdit-> insert(tr("Áàçà íåäîñòóïíà. Êîä îøèáêè: "));
286
        else {lineEdit-> insert(tr("Áàçà íåäîñòóïíà. Êîä îøèáêè: "));
287
                  lineEdit-> insert(pdb->lastError().text());
287
                  lineEdit-> insert(pdb->lastError().text());
288
                 }
288
                 }
289

289

290

290

291

291

292
        model = new QSqlTableModel(this);
292
        model = new QSqlTableModel(this);
293
        model->setTable(tableName);
293
        model->setTable(tableName);
294

294

295
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
295
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
296
        model->setSort(0, Qt::AscendingOrder);
296
        model->setSort(0, Qt::AscendingOrder);
297

297

298
        model->select();
298
        model->select();
299

299

300

300

301
        QSqlField field(tr("age"), QVariant::Int);
301
        QSqlField field(tr("age"), QVariant::Int);
302
        field.setValue(QString(tr("123")));
302
        field.setValue(QString(tr("123")));
303

303

304
        bool okey;
304
        bool okey;
305
        int index;
305
        int index;
306
        QSqlRecord record;
306
        QSqlRecord record;
307

307

308

308

309
        tableView->setModel(model);
309
        tableView->setModel(model);
310
        view.setModel(model);
310
        view.setModel(model);
311

311

312

312

313
        tableView->setAlternatingRowColors(true);
313
        tableView->setAlternatingRowColors(true);
314
        view.setAlternatingRowColors(true);
314
        view.setAlternatingRowColors(true);
315

315

316
        tableView->resizeColumnsToContents();
316
        tableView->resizeColumnsToContents();
317

317

318

318

319
        view.resizeColumnsToContents();
319
        view.resizeColumnsToContents();
320

320

321
        tableView->show();
321
        tableView->show();
322

322

323

323

324

324

325
        initTreeWidget();
325
        initTreeWidget();
326
}
326
}
327
*/
327
*/
328
328
329
329
330
QString MainWindow::creatModelString(QTreeWidgetItem* model){
330
QString MainWindow::creatModelString(QTreeWidgetItem* model){
331
331
332
    MainWindow::modelString.clear(); // î÷èùàåì ñòðîêó ìîäåëè
332
    MainWindow::modelString.clear(); // î÷èùàåì ñòðîêó ìîäåëè
333
 //   for (int i =0; i < rootItem1->childCount(); ++i )
333
 //   for (int i =0; i < rootItem1->childCount(); ++i )
334
334
335
    {MainWindow::addChildsString(model, 0);}
335
    {MainWindow::addChildsString(model, 0);}
336
336
337
    return MainWindow::modelString;
337
    return MainWindow::modelString;
338
// {MainWindow::addChildsString(ui->treeWidget, 0);}
338
// {MainWindow::addChildsString(ui->treeWidget, 0);}
339
 /*
339
 /*
340
    int root_item_child_count;
340
    int root_item_child_count;
341
    int i;
341
    int i;
342
    root_item_child_count = rootItem1->childCount();
342
    root_item_child_count = rootItem1->childCount();
343
    i++;
343
    i++;
344
*/
344
*/
345
}
345
}
346
346
347
347
348
void MainWindow::addChildsString(QTreeWidgetItem *parentItem, int level){
348
void MainWindow::addChildsString(QTreeWidgetItem *parentItem, int level){
349
    int child_count;
349
    int child_count;
350
    child_count = parentItem->childCount();
350
    child_count = parentItem->childCount();
351
    for (int i=0; i < child_count; ++i){
351
    for (int i=0; i < child_count; ++i){
352
        for (int m=0; m < level; ++m){
352
        for (int m=0; m < level; ++m){
353
        modelString.append(tr("    ")); // ÷åòûðå ïðîáåëà - ïðèçíàê òîãî, ÷òî ýòî íîâûé óðîâåíü âëîæåíèÿ
353
        modelString.append(tr("    ")); // ÷åòûðå ïðîáåëà - ïðèçíàê òîãî, ÷òî ýòî íîâûé óðîâåíü âëîæåíèÿ
354
    }
354
    }
355
        modelString.append(parentItem->child(i)->text(0)); // â ïåðâîé êîëîíêå - èìÿ êëàññà
355
        modelString.append(parentItem->child(i)->text(0)); // â ïåðâîé êîëîíêå - èìÿ êëàññà
356
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
356
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
357
        if (parentItem->child(i)->checkState(0) ==  Qt::Checked) {modelString.append(tr("true"));} // åñëè ãàëî÷êà ñòîèò, çàíîñèì "true", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ áóäóò
357
        if (parentItem->child(i)->checkState(0) ==  Qt::Checked) {modelString.append(tr("true"));} // åñëè ãàëî÷êà ñòîèò, çàíîñèì "true", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ áóäóò
358
            else {modelString.append(tr("false"));} // åñëè êëàññ íå âûáðàí - çàíîñèì "false", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ íå áóäóò
358
            else {modelString.append(tr("false"));} // åñëè êëàññ íå âûáðàí - çàíîñèì "false", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ íå áóäóò
359
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
359
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
360
        modelString.append(parentItem->child(i)->text(1)); // âî âòîðîé êîëîíêå - ID êëàññà
360
        modelString.append(parentItem->child(i)->text(1)); // âî âòîðîé êîëîíêå - ID êëàññà
361
         modelString.append(tr("\n")); // êîíåö ñòðîêè
361
         modelString.append(tr("\n")); // êîíåö ñòðîêè
362
        if (parentItem->child(i)->childCount() > 0) { MainWindow::addChildsString(parentItem->child(i), level+1);}
362
        if (parentItem->child(i)->childCount() > 0) { MainWindow::addChildsString(parentItem->child(i), level+1);}
363
363
364
    }
364
    }
365
int i;
365
int i;
366
i++;
366
i++;
367
}
367
}
368
368
369
369
370
bool MainWindow::openDataBase(){
370
bool MainWindow::openDataBase(){
371
    QString errorString;
371
    QString errorString;
372
    sql = QSqlDatabase::addDatabase("QMYSQL");
372
    sql = QSqlDatabase::addDatabase("QMYSQL");
373
//    sql.setDatabaseName(tr("an_db"));
373
//    sql.setDatabaseName(tr("an_db"));
374
374
375
    // // // sql.setDatabaseName(tr("inventory"));
375
    // // // sql.setDatabaseName(tr("inventory"));
376
376
377
    sql.setDatabaseName(baseName);
377
    sql.setDatabaseName(baseName);
378
378
379
379
380
380
381
    // // // sql.setHostName(tr("localhost"));
381
    // // // sql.setHostName(tr("localhost"));
382
382
383
    sql.setHostName(hostName);
383
    sql.setHostName(hostName);
384
384
385
385
386
    // // // sql.setUserName(tr("an"));
386
    // // // sql.setUserName(tr("an"));
387
387
388
    sql.setUserName(userName);
388
    sql.setUserName(userName);
389
389
390
390
391
391
392
   // // //  sql.setPassword(tr("393939"));
392
   // // //  sql.setPassword(tr("393939"));
393
393
394
394
395
    sql.setPassword(password);
395
    sql.setPassword(password);
396
396
397
397
398
398
399
    bool ok;
399
    bool ok;
400
    ok = sql.open();
400
    ok = sql.open();
401
401
402
    /*
402
    /*
403
    if (!ok) {
403
    if (!ok) {
404
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
404
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
405
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
405
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
406
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
406
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
407
                                                                                sql.lastError().text() );         // Òåêñò ñîîáùåíèÿ.
407
                                                                                sql.lastError().text() );         // Òåêñò ñîîáùåíèÿ.
408

408

409

409

410
                            }
410
                            }
411

411

412
*/
412
*/
413
    if (!ok) {
413
    if (!ok) {
414
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
414
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
415
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
415
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
416
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
416
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
417
                                                                            sql.lastError().text());          // Òåêñò ñîîáùåíèÿ.
417
                                                                            sql.lastError().text());          // Òåêñò ñîîáùåíèÿ.
418
                     }
418
                     }
419
else {
419
else {
420
420
421
        QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
421
        QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
422
                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
422
                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
423
                                                        QObject::tr("Database Connect"),   // Çàãîëîâîê.
423
                                                        QObject::tr("Database Connect"),   // Çàãîëîâîê.
424
                                                        QObject::tr("Ñîåäèíåíèå ñ áàçîé äàííûõ óñïåøíî óñòàíîâëåíî."));         // Òåêñò ñîîáùåíèÿ.
424
                                                        QObject::tr("Ñîåäèíåíèå ñ áàçîé äàííûõ óñïåøíî óñòàíîâëåíî."));         // Òåêñò ñîîáùåíèÿ.
425
425
426
426
427
427
428
428
429
429
430
    }
430
    }
431
431
432
     return ok;
432
     return ok;
433
}
433
}
434
434
435
435
436
bool MainWindow::buildPreviewModel(QString modelName, QString rootClassID){
436
bool MainWindow::buildPreviewModel(QString modelName, QString rootClassID){
437
QSqlQuery q;
437
QSqlQuery q;
438
QString sql_str;
438
QString sql_str;
439
QString field_name_str;
439
QString field_name_str;
440
QString root_class_name;
440
QString root_class_name;
441
//bool ok;
441
//bool ok;
442
//int field_name;
442
//int field_name;
443
443
444
//ui->treeWidget->clear();
444
//ui->treeWidget->clear();
445
445
446
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
446
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
447
447
448
448
449
rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
449
rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
450
 root_items_list << rootItem1;
450
 root_items_list << rootItem1;
451
 rootItem1->setText(0, modelName);
451
 rootItem1->setText(0, modelName);
452
452
453
 rootItem1->setCheckState(0,Qt::Checked);
453
 rootItem1->setCheckState(0,Qt::Checked);
454
 rootItems.append(rootItem1);
454
 rootItems.append(rootItem1);
455
455
456
456
457
457
458
 rootItem2 = new  QTreeWidgetItem(rootItem1);
458
 rootItem2 = new  QTreeWidgetItem(rootItem1);
459
 rootItem2->setText(0, root_class_name);
459
 rootItem2->setText(0, root_class_name);
460
 rootItem2->setText(1, rootClassID);
460
 rootItem2->setText(1, rootClassID);
461
 rootItem2->setCheckState(0,Qt::Checked);
461
 rootItem2->setCheckState(0,Qt::Checked);
462
462
463
 addChildsItems(rootItem2, -1);
463
 addChildsItems(rootItem2, -1);
464
464
465
465
466
/*
466
/*
467

467

468
sql_str = tr("select * "
468
sql_str = tr("select * "
469
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
469
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
470
             );
470
             );
471
sql_str.append(rootClassID);
471
sql_str.append(rootClassID);
472

472

473
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
473
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
474

474

475
q.prepare(sql_str);
475
q.prepare(sql_str);
476

476

477
ok = q.exec();
477
ok = q.exec();
478
if (!ok) {
478
if (!ok) {
479
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
479
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
480
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
480
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
481
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
481
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
482
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
482
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
483
                 }
483
                 }
484
field_name = q.record().indexOf(tr("FieldName"));
484
field_name = q.record().indexOf(tr("FieldName"));
485
while(q.next()){
485
while(q.next()){
486

486

487
                field_name_str = q.value(field_name).toString();
487
                field_name_str = q.value(field_name).toString();
488

488

489
                }
489
                }
490

490

491

491

492

492

493

493

494
*/
494
*/
495
495
496
496
497
}
497
}
498
498
499
499
500
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row){
500
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row){
501
QSqlQuery q;
501
QSqlQuery q;
502
QString sql_str;
502
QString sql_str;
503
QString field_name_str;
503
QString field_name_str;
504
QString root_class_name;
504
QString root_class_name;
505
//bool ok;
505
//bool ok;
506
//int field_name;
506
//int field_name;
507
507
508
//ui->treeWidget->clear();
508
//ui->treeWidget->clear();
509
509
510
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
510
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
511
511
512
512
513
// rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
513
// rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
514
// root_items_list << rootItem1;
514
// root_items_list << rootItem1;
515
// rootItem1->setText(0, modelName);
515
// rootItem1->setText(0, modelName);
516
516
517
// rootItem1->setCheckState(0,Qt::Checked);
517
// rootItem1->setCheckState(0,Qt::Checked);
518
// rootItems.append(rootItem1);
518
// rootItems.append(rootItem1);
519
519
520
// root_item->removeChild(root_item->child(0)); // î÷èùàåì ñïèñîê äî÷åðíèõ êëàññîâ
520
// root_item->removeChild(root_item->child(0)); // î÷èùàåì ñïèñîê äî÷åðíèõ êëàññîâ
521
if (root_item->childCount()==0){ // íåò êîðíåâîãî êëàññà, ñîçäàäèì åãî
521
if (root_item->childCount()==0){ // íåò êîðíåâîãî êëàññà, ñîçäàäèì åãî
522
    QTreeWidgetItem* item_tmp;
522
    QTreeWidgetItem* item_tmp;
523
    item_tmp = new QTreeWidgetItem (root_item);
523
    item_tmp = new QTreeWidgetItem (root_item);
524
    item_tmp->setText(4, QVariant(row).toString());
524
    item_tmp->setText(4, QVariant(row).toString());
525
525
526
}
526
}
527
527
528
if (root_item->childCount()==1){ // êîðíåâîé êëàññ åñòü è îí ïóñòîé, î÷èùàòü åãî íå íàäî
528
if (root_item->childCount()==1){ // êîðíåâîé êëàññ åñòü è îí ïóñòîé, î÷èùàòü åãî íå íàäî
529
root_item->child(0)->setText(0, root_class_name);
529
root_item->child(0)->setText(0, root_class_name);
530
root_item->child(0)->setText(1, rootClassID);
530
root_item->child(0)->setText(1, rootClassID);
531
root_item->child(0)->setCheckState(0,Qt::Checked);
531
root_item->child(0)->setCheckState(0,Qt::Checked);
532
root_item->setText(4, QVariant(row).toString());
532
root_item->setText(4, QVariant(row).toString());
533
533
534
}
534
}
535
535
536
536
537
537
538
//delete rootItem2;
538
//delete rootItem2;
539
539
540
540
541
// rootItem2 = new  QTreeWidgetItem(rootItem1);
541
// rootItem2 = new  QTreeWidgetItem(rootItem1);
542
542
543
543
544
544
545
// rootItem2->setText(0, root_class_name);
545
// rootItem2->setText(0, root_class_name);
546
// rootItem2->setText(1, rootClassID);
546
// rootItem2->setText(1, rootClassID);
547
// rootItem2->setCheckState(0,Qt::Checked);
547
// rootItem2->setCheckState(0,Qt::Checked);
548
548
549
int child_count = root_item->child(0)->childCount();
549
int child_count = root_item->child(0)->childCount();
550
550
551
551
552
for (int i=0; i < child_count; i++){ // åñëè êîðíåâîé êëàññ åñòü è íå ïóñòîé, î÷èùàåì åãî
552
for (int i=0; i < child_count; i++){ // åñëè êîðíåâîé êëàññ åñòü è íå ïóñòîé, î÷èùàåì åãî
553
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
553
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
554
}
554
}
555
555
556
child_count = root_item->child(0)->childCount();
556
child_count = root_item->child(0)->childCount();
557
addChildsItems(root_item->child(0), row);
557
addChildsItems(root_item->child(0), row);
558
/*
558
/*
559
sql_str = tr("select * "
559
sql_str = tr("select * "
560
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
560
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
561
             );
561
             );
562
sql_str.append(rootClassID);
562
sql_str.append(rootClassID);
563

563

564
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
564
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
565

565

566
q.prepare(sql_str);
566
q.prepare(sql_str);
567

567

568
ok = q.exec();
568
ok = q.exec();
569
if (!ok) {
569
if (!ok) {
570
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
570
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
571
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
571
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
572
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
572
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
573
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
573
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
574
                 }
574
                 }
575
field_name = q.record().indexOf(tr("FieldName"));
575
field_name = q.record().indexOf(tr("FieldName"));
576
while(q.next()){
576
while(q.next()){
577

577

578
                field_name_str = q.value(field_name).toString();
578
                field_name_str = q.value(field_name).toString();
579

579

580
                }
580
                }
581

581

582
*/
582
*/
583
583
584
584
585
}
585
}
586
586
587
587
588
588
589
589
590
QString MainWindow::ClassName(QString class_id){ //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
590
QString MainWindow::ClassName(QString class_id){ //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
591
    QSqlQuery q;
591
    QSqlQuery q;
592
    QString sql_str;
592
    QString sql_str;
593
    QString class_name_str;
593
    QString class_name_str;
594
    bool ok;
594
    bool ok;
595
    int field_class_name;
595
    int field_class_name;
596
596
597
    sql_str = tr("select * "
597
    sql_str = tr("select * "
598
                 " from ListOfClasses where ListOfClasses.ID = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
598
                 " from ListOfClasses where ListOfClasses.ID = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
599
                 );
599
                 );
600
600
601
    sql_str.append(class_id);
601
    sql_str.append(class_id);
602
    sql_str.append(tr("' "));
602
    sql_str.append(tr("' "));
603
603
604
    q.prepare(sql_str);
604
    q.prepare(sql_str);
605
605
606
    ok = q.exec();
606
    ok = q.exec();
607
607
608
608
609
    if (!ok) {
609
    if (!ok) {
610
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
610
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
611
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
611
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
612
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
612
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
613
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
613
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
614
                     }
614
                     }
615
615
616
    field_class_name = q.record().indexOf(tr("ClassName"));
616
    field_class_name = q.record().indexOf(tr("ClassName"));
617
    while(q.next()){
617
    while(q.next()){
618
618
619
                    class_name_str = q.value(field_class_name).toString();
619
                    class_name_str = q.value(field_class_name).toString();
620
620
621
                    }
621
                    }
622
622
623
    return class_name_str;
623
    return class_name_str;
624
624
625
}
625
}
626
626
627
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item, int row){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
627
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item, int row){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
628
QStringList chields_list;
628
QStringList chields_list;
629
QString parent_ID;
629
QString parent_ID;
630
QTreeWidgetItem *Item_tmp;
630
QTreeWidgetItem *Item_tmp;
631
parent_ID = perent_class_item->text(1);
631
parent_ID = perent_class_item->text(1);
632
int chields_count, i;
632
int chields_count, i;
633
633
634
chields_list = MainWindow::classChields(parent_ID);
634
chields_list = MainWindow::classChields(parent_ID);
635
if(chields_list.isEmpty()) return;
635
if(chields_list.isEmpty()) return;
636
chields_count = chields_list.size();
636
chields_count = chields_list.size();
637
for (int l = 0; l < chields_count; ++l){
637
for (int l = 0; l < chields_count; ++l){
638
    QString chield_class_name, chield_id;
638
    QString chield_class_name, chield_id;
639
    chield_id = chields_list.at(l);
639
    chield_id = chields_list.at(l);
640
    chield_class_name = MainWindow::ClassName(chield_id);
640
    chield_class_name = MainWindow::ClassName(chield_id);
641
    Item_tmp = new QTreeWidgetItem(perent_class_item);
641
    Item_tmp = new QTreeWidgetItem(perent_class_item);
642
    Item_tmp->setText(0, chield_class_name);
642
    Item_tmp->setText(0, chield_class_name);
643
    Item_tmp->setText(1, chield_id);
643
    Item_tmp->setText(1, chield_id);
644
    Item_tmp->setCheckState(0, Qt::Checked);
644
    Item_tmp->setCheckState(0, Qt::Checked);
645
    Item_tmp->setText(4, QVariant(row).toString());
645
    Item_tmp->setText(4, QVariant(row).toString());
646
    MainWindow::addChildsItems(Item_tmp, row);
646
    MainWindow::addChildsItems(Item_tmp, row);
647
}
647
}
648
648
649
i++;
649
i++;
650
650
651
}
651
}
652
652
653
653
654
/********************************************************
654
/********************************************************
655
* Ôóíêöèÿ âîçâðàùàåò ñïèñîê "äî÷åðíèõ" êëàññîâ
655
* Ôóíêöèÿ âîçâðàùàåò ñïèñîê "äî÷åðíèõ" êëàññîâ
656
*
656
*
657
*
657
*
658
*
658
*
659
********************************************************/
659
********************************************************/
660
660
661
QStringList MainWindow::classChields(QString class_id){
661
QStringList MainWindow::classChields(QString class_id){
662
   // QMap<QString, QString> map;
662
   // QMap<QString, QString> map;
663
   // TClass class_tmp;
663
   // TClass class_tmp;
664
   // QList <TClass> chields_class_list; // ñïèñîê äî÷åðíèõ êëàññîâ
664
   // QList <TClass> chields_class_list; // ñïèñîê äî÷åðíèõ êëàññîâ
665
    QStringList result;
665
    QStringList result;
666
    QSqlQuery q;
666
    QSqlQuery q;
667
    QString sql_str;
667
    QString sql_str;
668
    QString classIdentifer_str; // â ýòîì ïîëå ëåæèò èäåíòèôèêàòîð êëàññà-êîíòåéíåðà
668
    QString classIdentifer_str; // â ýòîì ïîëå ëåæèò èäåíòèôèêàòîð êëàññà-êîíòåéíåðà
669
    QString field_id_str;
669
    QString field_id_str;
670
    bool ok;
670
    bool ok;
671
    int field_classIdentifer;
671
    int field_classIdentifer;
672
    sql_str = tr("select * "
672
    sql_str = tr("select * "
673
                 " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
673
                 " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
674
                 );
674
                 );
675
    sql_str.append(class_id);
675
    sql_str.append(class_id);
676
676
677
    sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
677
    sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
678
678
679
    q.prepare(sql_str);
679
    q.prepare(sql_str);
680
680
681
    ok = q.exec();
681
    ok = q.exec();
682
    if (!ok) {
682
    if (!ok) {
683
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
683
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
684
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
684
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
685
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
685
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
686
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
686
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
687
                     }
687
                     }
688
    field_classIdentifer = q.record().indexOf(tr("ClassIdentifer"));
688
    field_classIdentifer = q.record().indexOf(tr("ClassIdentifer"));
689
      while(q.next()){
689
      while(q.next()){
690
690
691
                    classIdentifer_str = q.value(field_classIdentifer).toString();
691
                    classIdentifer_str = q.value(field_classIdentifer).toString();
692
                    result.append(classIdentifer_str);
692
                    result.append(classIdentifer_str);
693
                    }
693
                    }
694
694
695
    return result;
695
    return result;
696
696
697
  }
697
  }
698
698
699
699
700
QMap <QString, QString> MainWindow::getClassList(){ // ïîëó÷àåì ñïèñîê êëàññîâ
700
QMap <QString, QString> MainWindow::getClassList(){ // ïîëó÷àåì ñïèñîê êëàññîâ
701
QMap <QString, QString> result_map;
701
QMap <QString, QString> result_map;
702
QSqlQuery q;
702
QSqlQuery q;
703
QString sql_str;
703
QString sql_str;
704
QString class_name_str, class_id_str;
704
QString class_name_str, class_id_str;
705
705
706
int field_class_id, field_class_name;
706
int field_class_id, field_class_name;
707
bool ok;
707
bool ok;
708
sql_str = tr("select * "
708
sql_str = tr("select * "
709
             " from ListOfClasses "       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
709
             " from ListOfClasses "       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
710
             );
710
             );
711
 q.prepare(sql_str);
711
 q.prepare(sql_str);
712
 ok = q.exec();
712
 ok = q.exec();
713
 if (!ok) {
713
 if (!ok) {
714
                         QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
714
                         QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
715
                                                                         this,                      // Ðîäèòåëüñêèé âèäæåò.
715
                                                                         this,                      // Ðîäèòåëüñêèé âèäæåò.
716
                                                                         QObject::tr("Database Error"),   // Çàãîëîâîê.
716
                                                                         QObject::tr("Database Error"),   // Çàãîëîâîê.
717
                                                                         q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
717
                                                                         q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
718
                         return result_map; // åñëè îøèáêà - âîçâðàùàåì ïóñòîé ñïèñîê
718
                         return result_map; // åñëè îøèáêà - âîçâðàùàåì ïóñòîé ñïèñîê
719
                  }
719
                  }
720
field_class_id = q.record().indexOf(tr("ID"));
720
field_class_id = q.record().indexOf(tr("ID"));
721
field_class_name = q.record().indexOf(tr("ClassName"));
721
field_class_name = q.record().indexOf(tr("ClassName"));
722
722
723
while(q.next()){
723
while(q.next()){
724
724
725
                class_name_str = q.value(field_class_name).toString();
725
                class_name_str = q.value(field_class_name).toString();
726
                class_id_str = q.value(field_class_id).toString();
726
                class_id_str = q.value(field_class_id).toString();
727
                result_map[class_id_str] = class_name_str;
727
                result_map[class_id_str] = class_name_str;
728
                }
728
                }
729
 return result_map;
729
 return result_map;
730
}
730
}
731
731
732
732
733
733
734
734
735
735
736
void MainWindow::initComboBox(){
736
void MainWindow::initComboBox(){
737
737
738
738
739
    QStringList classesNameList;
739
    QStringList classesNameList;
740
    QStringList classesID_list;
740
    QStringList classesID_list;
741
    QStringList tmp_stringList;
741
    QStringList tmp_stringList;
742
742
743
743
744
744
745
    QString tmp_str;
745
    QString tmp_str;
746
746
747
    class_list_map = MainWindow::getClassList();
747
    class_list_map = MainWindow::getClassList();
748
    classesID_list = class_list_map.keys();
748
    classesID_list = class_list_map.keys();
749
    classesNameList = class_list_map.values();
749
    classesNameList = class_list_map.values();
750
    QMapIterator<QString, QString> interator(class_list_map);
750
    QMapIterator<QString, QString> interator(class_list_map);
751
//    ui->comboBox->addItems(classesID_list);
751
//    ui->comboBox->addItems(classesID_list);
752
  //  ui->comboBox->addItems(classesNameList);
752
  //  ui->comboBox->addItems(classesNameList);
753
    while (interator.hasNext()) {
753
    while (interator.hasNext()) {
754
         interator.next();
754
         interator.next();
755
         tmp_str =  interator.value();
755
         tmp_str =  interator.value();
756
         tmp_str.append(tr(" \t(ID="));
756
         tmp_str.append(tr(" \t(ID="));
757
         tmp_str.append(interator.key());
757
         tmp_str.append(interator.key());
758
         tmp_str.append(tr(")"));
758
         tmp_str.append(tr(")"));
759
         tmp_stringList << tmp_str;
759
         tmp_stringList << tmp_str;
760
760
761
     }
761
     }
762
//    int count = ui->comboBox->count();
762
//    int count = ui->comboBox->count();
763
763
764
    ui->comboBox->clear();
764
    ui->comboBox->clear();
765
    ui->comboBox->addItems(tmp_stringList);
765
    ui->comboBox->addItems(tmp_stringList);
766
766
767
767
768
}
768
}
769
769
770
770
771
void MainWindow::on_comboBox_currentIndexChanged( int index ){
771
void MainWindow::on_comboBox_currentIndexChanged( int index ){
772
QStringList classesNameList;
772
QStringList classesNameList;
773
QStringList classesID_list;
773
QStringList classesID_list;
774
QString ID_str;
774
QString ID_str;
775
if (index == -1) return;
775
if (index == -1) return;
776
if (!comboBox_slot_enable) return; // èíäåêñ ïîìåíÿëà ïðîãðàììà, îí íå áûë èçìåíåí âðó÷íóþ, âûõîäèì
776
if (!comboBox_slot_enable) return; // èíäåêñ ïîìåíÿëà ïðîãðàììà, îí íå áûë èçìåíåí âðó÷íóþ, âûõîäèì
777
int row;
777
int row;
778
778
779
classesID_list = class_list_map.keys();
779
classesID_list = class_list_map.keys();
780
classesNameList = class_list_map.values();
780
classesNameList = class_list_map.values();
781
ID_str =  classesID_list[index];
781
ID_str =  classesID_list[index];
782
ui->label->setText(ID_str);
782
ui->label->setText(ID_str);
783
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1)
783
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1)
784
{
784
{
785
    row = QVariant(ui->treeWidget->currentItem()->text(4)).toInt();
785
    row = QVariant(ui->treeWidget->currentItem()->text(4)).toInt();
786
    model_is_build = false; // ÷òîáû íå âûçûâàëîñü ñîáûòèå on_treeWidget_itemChanged
786
    model_is_build = false; // ÷òîáû íå âûçûâàëîñü ñîáûòèå on_treeWidget_itemChanged
787
    rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str, row);
787
    rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str, row);
788
    model_is_build = true; // òåïåðü ïóñòü âûçûâàåòñÿ
788
    model_is_build = true; // òåïåðü ïóñòü âûçûâàåòñÿ
789
    QString mdl_str = MainWindow::creatModelString(ui->treeWidget->currentItem()); //
789
    QString mdl_str = MainWindow::creatModelString(ui->treeWidget->currentItem()); //
790
    model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row, 2), QVariant(mdl_str));
790
    model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row, 2), QVariant(mdl_str));
791
}
791
}
792
    getDatabaseData();
792
    getDatabaseData();
793
793
794
794
795
}
795
}
796
796
797
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
797
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
798
    int i;
798
    int i;
799
    i++;
799
    i++;
800
    QTreeWidgetItem * item_tmp;
800
    QTreeWidgetItem * item_tmp;
801
    QString mdl_str;
801
    QString mdl_str;
802
    QString row; // íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé èçìåíåííîé ìîäåëå
802
    QString row; // íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé èçìåíåííîé ìîäåëå
803
    QList <QTreeWidgetItem *> mdl_itm_list;
803
    QList <QTreeWidgetItem *> mdl_itm_list;
804
    QList <int> rows_list;
804
    QList <int> rows_list;
805
805
806
806
807
    if ((column) == 0 && (model_is_build)) {
807
    if ((column) == 0 && (model_is_build)) {
808
    // if (!model_is_build) return; // ìîäåëü åù¸ íå ïîñòðîåíà
808
    // if (!model_is_build) return; // ìîäåëü åù¸ íå ïîñòðîåíà
809
809
810
    mdl_itm_list = models_items.values();
810
    mdl_itm_list = models_items.values();
811
    rows_list =  models_items.keys();
811
    rows_list =  models_items.keys();
812
    row= item->text(4);
812
    row= item->text(4);
813
813
814
814
815
    if ( mdl_itm_list.indexOf(item) != -1){ // èçìåí¸í êîðíåâîé èòåì (ñàìà ìîäåëü)
815
    if ( mdl_itm_list.indexOf(item) != -1){ // èçìåí¸í êîðíåâîé èòåì (ñàìà ìîäåëü)
816
        if (item->checkState(0)) model_for_ListModelsTable->setData(model_for_ListModelsTable->index(QVariant(row).toInt(), 3), QVariant(1));
816
        if (item->checkState(0)) model_for_ListModelsTable->setData(model_for_ListModelsTable->index(QVariant(row).toInt(), 3), QVariant(1));
817
        else model_for_ListModelsTable->setData(model_for_ListModelsTable->index(QVariant(row).toInt(), 3), QVariant(0));
817
        else model_for_ListModelsTable->setData(model_for_ListModelsTable->index(QVariant(row).toInt(), 3), QVariant(0));
818
        }
818
        }
819
819
820
820
821
821
822
822
823
    if (!row.isEmpty()){
823
    if (!row.isEmpty()){
824
824
825
825
826
        int row_int;
826
        int row_int;
827
    row_int = QVariant(row).toInt();
827
    row_int = QVariant(row).toInt();
828
     if (rows_list.indexOf(row_int) != -1)
828
     if (rows_list.indexOf(row_int) != -1)
829
        {
829
        {
830
            item_tmp = models_items[row_int];
830
            item_tmp = models_items[row_int];
831
            mdl_str = MainWindow::creatModelString(item_tmp);
831
            mdl_str = MainWindow::creatModelString(item_tmp);
832
            model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row_int, 2), QVariant(mdl_str));
832
            model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row_int, 2), QVariant(mdl_str));
833
        }
833
        }
834
834
835
835
836
    }
836
    }
837
837
838
838
839
}
839
}
840
840
841
/*
841
/*
842
    QTreeWidgetItem * item_tmp;
842
    QTreeWidgetItem * item_tmp;
843
    item_tmp = item;
843
    item_tmp = item;
844
    while (item_tmp ){
844
    while (item_tmp ){
845
        item_tmp = item_tmp->parent();
845
        item_tmp = item_tmp->parent();
846
    }
846
    }
847
  */
847
  */
848
    if ((column) == 0 && (model_is_build)) getDatabaseData();
848
    if ((column) == 0 && (model_is_build)) getDatabaseData();
849
849
850
850
851
}
851
}
852
852
853
853
854
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
854
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
855
    int i;
855
    int i;
856
    i++;
856
    i++;
857
    if (root_items_list.indexOf(item) != -1) { // Åñëè âûáðàííûé èòåì ñîäåðæèò íàçâàíèå ìîäåëè
857
    if (root_items_list.indexOf(item) != -1) { // Åñëè âûáðàííûé èòåì ñîäåðæèò íàçâàíèå ìîäåëè
858
        QStringList classesNameList;
858
        QStringList classesNameList;
859
        QStringList classesID_list;
859
        QStringList classesID_list;
860
860
861
        ui->pushButton_9->setEnabled(false);
861
        ui->pushButton_9->setEnabled(false);
862
        ui->pushButton_10->setEnabled(false);
862
        ui->pushButton_10->setEnabled(false);
863
        ui->pushButton_11->setEnabled(false);
863
        ui->pushButton_11->setEnabled(false);
864
        ui->pushButton_12->setEnabled(false);
864
        ui->pushButton_12->setEnabled(false);
865
     //   ui->tableView->reset();
865
     //   ui->tableView->reset();
866
     //   MainWindow::filtr_model->clear();
866
     //   MainWindow::filtr_model->clear();
867
          disconnect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
867
          disconnect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
868
        delete filter_model;
868
        delete filter_model;
869
869
870
        filter_model = new QSqlTableModel();
870
        filter_model = new QSqlTableModel();
871
       /// filter_model = new MyModel();
871
       /// filter_model = new MyModel();
872
872
873
        connect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
873
        connect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
874
        int index;
874
        int index;
875
        classesID_list = class_list_map.keys();
875
        classesID_list = class_list_map.keys();
876
        classesNameList = class_list_map.values();
876
        classesNameList = class_list_map.values();
877
        if (item->childCount()>0) index = classesID_list.indexOf(item->child(0)->text(1)); // åñëè ìîäåëü íå ïóñòàÿ, óçíàåì êîðíåâîé êëàññ
877
        if (item->childCount()>0) index = classesID_list.indexOf(item->child(0)->text(1)); // åñëè ìîäåëü íå ïóñòàÿ, óçíàåì êîðíåâîé êëàññ
878
        else { // åñëè ïóñòàÿ
878
        else { // åñëè ïóñòàÿ
879
        ui->comboBox->setEnabled(true);
879
        ui->comboBox->setEnabled(true);
880
        comboBox_slot_enable = true;
880
        comboBox_slot_enable = true;
881
        return;
881
        return;
882
882
883
        }
883
        }
884
        comboBox_slot_enable = false; // ÷òîáû ñëîò comboBox íå ìåíÿë ñòðîêó ìîäåëè
884
        comboBox_slot_enable = false; // ÷òîáû ñëîò comboBox íå ìåíÿë ñòðîêó ìîäåëè
885
        if (index != -1) ui->comboBox->setCurrentIndex(index);
885
        if (index != -1) ui->comboBox->setCurrentIndex(index);
886
        comboBox_slot_enable = true;
886
        comboBox_slot_enable = true;
887
        ui->comboBox->setEnabled(true);
887
        ui->comboBox->setEnabled(true);
888
888
889
889
890
    }
890
    }
891
  //  if ((rootItem1) == (item) ) ui->comboBox->setEnabled(true);
891
  //  if ((rootItem1) == (item) ) ui->comboBox->setEnabled(true);
892
else // âûáðàííûé èòåì ñîäåðæèò íàçâàíèå êëàññà
892
else // âûáðàííûé èòåì ñîäåðæèò íàçâàíèå êëàññà
893
    {
893
    {
894
        QString class_id;
894
        QString class_id;
895
        QString model_id;
895
        QString model_id;
896
        QString filtr_str;
896
        QString filtr_str;
897
        QString inctance;
897
        QString inctance;
898
        QStringList conditionList;
898
        QStringList conditionList;
899
        class_id = item->text(1);
899
        class_id = item->text(1);
900
        model_id = item->text(6);
900
        model_id = item->text(6);
901
        inctance = MainWindow::getClassInctance(class_id);
901
        inctance = MainWindow::getClassInctance(class_id);
902
902
903
        filtr_str = tr("`Model_ID` = ");
903
        filtr_str = tr("`Model_ID` = ");
904
        filtr_str.append(model_id);
904
        filtr_str.append(model_id);
905
        filtr_str.append(tr(" AND `Class_ID` = "));
905
        filtr_str.append(tr(" AND `Class_ID` = "));
906
        filtr_str.append(class_id);
906
        filtr_str.append(class_id);
907
       // filtr_str.append(tr("`"));
907
       // filtr_str.append(tr("`"));
908
908
909
        disconnect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
909
        disconnect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
910
        delete filter_model;
910
        delete filter_model;
911
  ///      filter_model = new MyModel();
911
  ///      filter_model = new MyModel();
912
912
913
        filter_model = new QSqlTableModel();
913
        filter_model = new QSqlTableModel();
914
        connect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
914
        connect(filter_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_filter_model_dataChanged(QModelIndex,QModelIndex)));
915
        filter_model->setTable(tr("Filters"));
915
        filter_model->setTable(tr("Filters"));
916
        filter_model->setFilter(filtr_str);
916
        filter_model->setFilter(filtr_str);
917
        filter_model->select();
917
        filter_model->select();
918
        ui->tableView_3->setModel(filter_model);
918
        ui->tableView_3->setModel(filter_model);
919
919
920
920
921
        ui->tableView_3->hideColumn(0);
921
        ui->tableView_3->hideColumn(0);
922
        ui->tableView_3->hideColumn(1);
922
        ui->tableView_3->hideColumn(1);
923
        ui->tableView_3->hideColumn(2);
923
        ui->tableView_3->hideColumn(2);
924
924
925
925
926
        filterSpinDelegate.setClassID(class_id);
926
        filterSpinDelegate.setClassID(class_id);
927
        filterSpinDelegate.getItems();
927
        filterSpinDelegate.getItems();
928
        ui->tableView_3->setItemDelegateForColumn(4, &filterSpinDelegate);
928
        ui->tableView_3->setItemDelegateForColumn(4, &filterSpinDelegate);
929
929
930
-
 
-
 
930
       // ui->tableView_3->setItemDelegate();
931
        conditionList <<"" << "and" << "or" << "(" << "and (" << "or (";
931
        conditionList <<"" << "and" << "or" << "(" << "and (" << "or (";
932
        filterConditionDelegate.setItems(conditionList);
932
        filterConditionDelegate.setItems(conditionList);
933
        ui->tableView_3->setItemDelegateForColumn(3, &filterConditionDelegate);
933
        ui->tableView_3->setItemDelegateForColumn(3, &filterConditionDelegate);
934
934
935
        conditionList.clear();
935
        conditionList.clear();
936
        conditionList <<"" << "=" << "<" << ">" ;
936
        conditionList <<"" << "=" << "<" << ">" ;
937
        filterConditionDelegate_1.setItems(conditionList);
937
        filterConditionDelegate_1.setItems(conditionList);
938
        ui->tableView_3->setItemDelegateForColumn(5, &filterConditionDelegate_1);
938
        ui->tableView_3->setItemDelegateForColumn(5, &filterConditionDelegate_1);
939
939
-
 
940
-
 
941
        ui->tableView_3->setItemDelegateForColumn(6, &filterValueDelegate);
-
 
942
-
 
943
940
944
941
945
942
        ui->pushButton_9->setEnabled(true);
946
        ui->pushButton_9->setEnabled(true);
943
        ui->pushButton_10->setEnabled(true);
947
        ui->pushButton_10->setEnabled(true);
944
948
945
        ui->comboBox->setEnabled(false);
949
        ui->comboBox->setEnabled(false);
946
950
947
951
948
    }
952
    }
949
}
953
}
950
954
951
QMap <QString, QString> MainWindow::getFieldsList(QString class_id){ // ïîëó÷àåì ñïèñîê ïîëåé êëàññà
955
QMap <QString, QString> MainWindow::getFieldsList(QString class_id){ // ïîëó÷àåì ñïèñîê ïîëåé êëàññà
952
956
953
}
957
}
954
958
955
959
956
void MainWindow::initListModelsTablle(){
960
void MainWindow::initListModelsTablle(){
957
    model_for_ListModelsTable = new QSqlTableModel();
961
    model_for_ListModelsTable = new QSqlTableModel();
958
962
959
    model_for_ListModelsTable->setTable(tr("ListOfModels"));
963
    model_for_ListModelsTable->setTable(tr("ListOfModels"));
960
 //   model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnFieldChange);
964
 //   model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnFieldChange);
961
    model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnManualSubmit);
965
    model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnManualSubmit);
962
    ui->tableView_2->setModel(model_for_ListModelsTable);
966
    ui->tableView_2->setModel(model_for_ListModelsTable);
963
967
964
    model_for_ListModelsTable->select();
968
    model_for_ListModelsTable->select();
965
969
966
970
967
    ui->treeWidget->hideColumn(1);
971
    ui->treeWidget->hideColumn(1);
968
    ui->treeWidget->hideColumn(2);
972
    ui->treeWidget->hideColumn(2);
969
    ui->treeWidget->hideColumn(3);
973
    ui->treeWidget->hideColumn(3);
970
    ui->treeWidget->hideColumn(4);
974
    ui->treeWidget->hideColumn(4);
971
//    ui->treeWidget->hideColumn(5);
975
//    ui->treeWidget->hideColumn(5);
972
    ui->treeWidget->hideColumn(6);
976
    ui->treeWidget->hideColumn(6);
973
977
974
    ui->tableView_2->hideColumn(0);
978
    ui->tableView_2->hideColumn(0);
975
    ui->tableView_2->hideColumn(2);
979
    ui->tableView_2->hideColumn(2);
976
    ui->tableView_2->hideColumn(3);
980
    ui->tableView_2->hideColumn(3);
977
    ui->tableView_2->hideColumn(4);
981
    ui->tableView_2->hideColumn(4);
978
982
979
    ui->tableView_2->resizeColumnsToContents();
983
    ui->tableView_2->resizeColumnsToContents();
980
    ui->tableView_2->setAlternatingRowColors(true);
984
    ui->tableView_2->setAlternatingRowColors(true);
981
985
982
    ui->pushButton_7->setEnabled(false);
986
    ui->pushButton_7->setEnabled(false);
983
    ui->pushButton_8->setEnabled(false);
987
    ui->pushButton_8->setEnabled(false);
984
988
985
989
986
}
990
}
987
 
991