Хранилища Subversion OpenInventory

Редакция

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

Редакция 142 Редакция 144
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
   // connect( ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_currentIndexChanged(int)));
9
   // connect( ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_currentIndexChanged(int)));
10
    model_is_build = false;
10
    model_is_build = false;
11
   MainWindow::readModel();
11
   MainWindow::readModel();
12
12
13
   //QString model_str;
13
   //QString model_str;
14
14
15
15
16
   /*
16
   /*
17
   MainWindow::creatModelString();
17
   MainWindow::creatModelString();
18
   int i;
18
   int i;
19
   i++;
19
   i++;
20
    QFile file_tmp("./temp.txt");
20
    QFile file_tmp("./temp.txt");
21
    bool ok;
21
    bool ok;
22
    ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
22
    ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
23
    QTextStream out(&file_tmp);
23
    QTextStream out(&file_tmp);
24
    out << MainWindow::modelString;
24
    out << MainWindow::modelString;
25
    file_tmp.close();
25
    file_tmp.close();
26
*/
26
*/
27
    ui->treeWidget->setAlternatingRowColors(true);
27
    ui->treeWidget->setAlternatingRowColors(true);
28
    ui->treeWidget_2->setAlternatingRowColors(true);
28
    ui->treeWidget_2->setAlternatingRowColors(true);
29
29
30
30
31
    MainWindow::readSettings();
31
    MainWindow::readSettings();
32
32
33
    MainWindow::openDataBase();
33
    MainWindow::openDataBase();
34
34
35
    MainWindow::initComboBox();
35
    MainWindow::initComboBox();
36
36
37
    MainWindow::buildPreviewModel(tr("Ìîÿ ìîäåëü"), tr("46"));
37
    MainWindow::buildPreviewModel(tr("Ìîÿ ìîäåëü"), tr("7"));
38
38
39
    MainWindow::initListModelsTablle();
39
    MainWindow::initListModelsTablle();
40
40
-
 
41
    MainWindow::readModels();
-
 
42
41
    MainWindow::creatModelString();
43
    MainWindow::creatModelString();
42
    //int i;
44
    //int i;
43
    //i++;
45
    //i++;
44
     QFile file_tmp("./modelstring.txt");
46
     QFile file_tmp("./modelstring.txt");
45
     bool ok;
47
     bool ok;
46
     file_tmp.remove();
48
     file_tmp.remove();
47
     ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
49
     ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
48
     QTextStream out(&file_tmp);
50
     QTextStream out(&file_tmp);
49
     out.setCodec("cp1251");
51
     out.setCodec("cp1251");
50
     out << MainWindow::modelString;
52
     out << MainWindow::modelString;
51
     file_tmp.close();
53
     file_tmp.close();
52
54
53
55
54
56
55
57
56
    getDatabaseData();
58
    getDatabaseData();
57
    //// sql_mogel = new QSqlTableModel();
59
    //// sql_mogel = new QSqlTableModel();
58
    sql_mogel = new MyModel();
60
    sql_mogel = new MyModel();
59
61
60
62
61
    model_is_build = true;
63
    model_is_build = true;
62
    connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
64
    connect(sql_mogel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_sql_mogel_dataChanged(QModelIndex,QModelIndex)));
63
    ui->pushButton_3->setEnabled(false);
65
    ui->pushButton_3->setEnabled(false);
64
    ui->pushButton_4->setEnabled(false);
66
    ui->pushButton_4->setEnabled(false);
65
67
66
   // setFrm.show();
68
   // setFrm.show();
67
69
68
    connect(ui->getsettingAct, SIGNAL(triggered()), this, SLOT(getSetting())); // âûáîð â ãëàâíîé ôîðìå â ìåíþ "Áàçà äàííûõ" ïóíêòà "Ïàðàìåòðû ñîåäèíåíèÿ"
70
    connect(ui->getsettingAct, SIGNAL(triggered()), this, SLOT(getSetting())); // âûáîð â ãëàâíîé ôîðìå â ìåíþ "Áàçà äàííûõ" ïóíêòà "Ïàðàìåòðû ñîåäèíåíèÿ"
69
    connect(setFrm.pushButton, SIGNAL(clicked()), this, SLOT(applySetting()));
71
    connect(setFrm.pushButton, SIGNAL(clicked()), this, SLOT(applySetting()));
70
72
71
picture_delegate = new CPictureDelegate(this);
73
picture_delegate = new CPictureDelegate(this);
72
74
73
}
75
}
74
76
75
MainWindow::~MainWindow()
77
MainWindow::~MainWindow()
76
{
78
{
77
    delete sql_mogel;
79
    delete sql_mogel;
78
    delete ui;
80
    delete ui;
79
}
81
}
80
82
81
void MainWindow::changeEvent(QEvent *e)
83
void MainWindow::changeEvent(QEvent *e)
82
{
84
{
83
    QMainWindow::changeEvent(e);
85
    QMainWindow::changeEvent(e);
84
    switch (e->type()) {
86
    switch (e->type()) {
85
    case QEvent::LanguageChange:
87
    case QEvent::LanguageChange:
86
        ui->retranslateUi(this);
88
        ui->retranslateUi(this);
87
        break;
89
        break;
88
    default:
90
    default:
89
        break;
91
        break;
90
    }
92
    }
91
}
93
}
92
94
93
95
94
bool MainWindow::readModel(){
96
bool MainWindow::readModel(){
95
    bool result;
97
    bool result;
96
    QString model_str;
98
    QString model_str;
97
    QFile file("modelstring.txt");
99
    QFile file("modelstring.txt");
98
  //  QFile file("model.txt");
100
  //  QFile file("model.txt");
99
   rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
101
   rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
100
    rootItem1->setText(0, tr("Óðîâåíü 1"));
102
    rootItem1->setText(0, tr("Óðîâåíü 1"));
101
   // rootItem2 = new  QTreeWidgetItem(rootItem1);
103
   // rootItem2 = new  QTreeWidgetItem(rootItem1);
102
   // rootItem2->setText(0, tr("óðîâåíü 2"));
104
   // rootItem2->setText(0, tr("óðîâåíü 2"));
103
    rootItem1->setCheckState(0,Qt::Checked);
105
    rootItem1->setCheckState(0,Qt::Checked);
104
   // rootItem2->setCheckState(0,Qt::Checked);
106
   // rootItem2->setCheckState(0,Qt::Checked);
105
107
106
108
107
109
108
    result = file.open(QIODevice::ReadOnly);
110
    result = file.open(QIODevice::ReadOnly);
109
    if (result) {
111
    if (result) {
110
                     model_str = QString(tr(file.readAll()));
112
                     model_str = QString(tr(file.readAll()));
111
                }
113
                }
112
114
113
    setupModelData(model_str.split(QString("\n")), rootItem1);
115
    setupModelData(model_str.split(QString("\n")), rootItem1);
114
116
115
117
116
    return result;
118
    return result;
117
119
118
}
120
}
119
121
120
122
121
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent)
123
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent)
122
{
124
{
123
    QList<QTreeWidgetItem*> parents;
125
    QList<QTreeWidgetItem*> parents;
124
    QList<int> indentations;
126
    QList<int> indentations;
125
    parents << parent;
127
    parents << parent;
126
    indentations << 0;
128
    indentations << 0;
127
129
128
    int number = 0;
130
    int number = 0;
129
131
130
    while (number < lines.count()) {
132
    while (number < lines.count()) {
131
        int position = 0;
133
        int position = 0;
132
        while (position < lines[number].length()) {
134
        while (position < lines[number].length()) {
133
            if (lines[number].mid(position, 1) != " ")
135
            if (lines[number].mid(position, 1) != " ")
134
                break;
136
                break;
135
            position++;
137
            position++;
136
        }
138
        }
137
139
138
        QString lineData = lines[number].mid(position).trimmed();
140
        QString lineData = lines[number].mid(position).trimmed();
139
141
140
        if (!lineData.isEmpty()) {
142
        if (!lineData.isEmpty()) {
141
            // Read the column data from the rest of the line.
143
            // Read the column data from the rest of the line.
142
            QStringList columnStrings = lineData.split("\t", QString::SkipEmptyParts);
144
            QStringList columnStrings = lineData.split("\t", QString::SkipEmptyParts);
143
            QList<QVariant> columnData;
145
            QList<QVariant> columnData;
144
            for (int column = 0; column < columnStrings.count(); ++column)
146
            for (int column = 0; column < columnStrings.count(); ++column)
145
                columnData << columnStrings[column];
147
                columnData << columnStrings[column];
146
148
147
            if (position > indentations.last()) {
149
            if (position > indentations.last()) {
148
                // The last child of the current parent is now the new parent
150
                // The last child of the current parent is now the new parent
149
                // unless the current parent has no children.
151
                // unless the current parent has no children.
150
152
151
                if (parents.last()->childCount() > 0) {
153
                if (parents.last()->childCount() > 0) {
152
                    parents << parents.last()->child(parents.last()->childCount()-1);
154
                    parents << parents.last()->child(parents.last()->childCount()-1);
153
                    indentations << position;
155
                    indentations << position;
154
                }
156
                }
155
            } else {
157
            } else {
156
                while (position < indentations.last() && parents.count() > 0) {
158
                while (position < indentations.last() && parents.count() > 0) {
157
                    parents.pop_back();
159
                    parents.pop_back();
158
                    indentations.pop_back();
160
                    indentations.pop_back();
159
                }
161
                }
160
            }
162
            }
161
163
162
            // Append a new item to the current parent's list of children.
164
            // Append a new item to the current parent's list of children.
163
          // // //  parents.last()->appendChild(new QTreeWidgetItem(columnData, parents.last()));
165
          // // //  parents.last()->appendChild(new QTreeWidgetItem(columnData, parents.last()));
164
            QTreeWidgetItem* itm_tmp;
166
            QTreeWidgetItem* itm_tmp;
165
            itm_tmp = new QTreeWidgetItem( parents.last());
167
            itm_tmp = new QTreeWidgetItem( parents.last());
166
168
167
            itm_tmp->setText(0, QString(columnData.at(0).toString()));
169
            itm_tmp->setText(0, QString(columnData.at(0).toString()));
168
            if (columnData.at(1).toString() == "true") {
170
            if (columnData.at(1).toString() == "true") {
169
                                                            itm_tmp->setCheckState(0,Qt::Checked);
171
                                                            itm_tmp->setCheckState(0,Qt::Checked);
170
                                                        }
172
                                                        }
171
            else itm_tmp->setCheckState(0,Qt::Unchecked);
173
            else itm_tmp->setCheckState(0,Qt::Unchecked);
172
            if (columnData.count()>2)
174
            if (columnData.count()>2)
173
            {
175
            {
174
            itm_tmp->setText(1, QString(columnData.at(2).toString()));
176
            itm_tmp->setText(1, QString(columnData.at(2).toString()));
175
            itm_tmp->setText(2, QVariant(number).toString()); // íîìåð ñòðîêè â ôàéëå-ìîäåëè îòîáðàæåíèÿ
177
            itm_tmp->setText(2, QVariant(number).toString()); // íîìåð ñòðîêè â ôàéëå-ìîäåëè îòîáðàæåíèÿ
176
            itm_tmp->setText(3, QVariant(indentations.size()).toString());
178
            itm_tmp->setText(3, QVariant(indentations.size()).toString());
177
            }
179
            }
178
        }
180
        }
179
181
180
        number++;
182
        number++;
181
    }
183
    }
182
}
184
}
183
185
184
186
185
/*
187
/*
186
void MainWindow::openBase()
188
void MainWindow::openBase()
187
{
189
{
188

190

189
        db = QSqlDatabase::addDatabase("QMYSQL");
191
        db = QSqlDatabase::addDatabase("QMYSQL");
190
        pdb = &db;
192
        pdb = &db;
191
        raportFrm.pdb = &db;
193
        raportFrm.pdb = &db;
192

194

193
        pdb->setHostName(hostName);
195
        pdb->setHostName(hostName);
194
        pdb->setDatabaseName(baseName);
196
        pdb->setDatabaseName(baseName);
195
        pdb->setUserName(userName);
197
        pdb->setUserName(userName);
196
        pdb->setPassword(password);
198
        pdb->setPassword(password);
197
        bool ok = pdb->open();
199
        bool ok = pdb->open();
198
        if (!ok) {
200
        if (!ok) {
199
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
201
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
200
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
202
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
201
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
203
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
202
                                                                                pdb->lastError().text());          // Òåêñò ñîîáùåíèÿ.
204
                                                                                pdb->lastError().text());          // Òåêñò ñîîáùåíèÿ.
203
                         }
205
                         }
204
        if (ok)
206
        if (ok)
205
        {lineEdit-> insert(tr("Áàçà óñïåøíî îòêðûòà"));
207
        {lineEdit-> insert(tr("Áàçà óñïåøíî îòêðûòà"));
206
        }
208
        }
207
        else {lineEdit-> insert(tr("Áàçà íåäîñòóïíà. Êîä îøèáêè: "));
209
        else {lineEdit-> insert(tr("Áàçà íåäîñòóïíà. Êîä îøèáêè: "));
208
                  lineEdit-> insert(pdb->lastError().text());
210
                  lineEdit-> insert(pdb->lastError().text());
209
                 }
211
                 }
210

212

211

213

212

214

213
        model = new QSqlTableModel(this);
215
        model = new QSqlTableModel(this);
214
        model->setTable(tableName);
216
        model->setTable(tableName);
215

217

216
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
218
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
217
        model->setSort(0, Qt::AscendingOrder);
219
        model->setSort(0, Qt::AscendingOrder);
218

220

219
        model->select();
221
        model->select();
220

222

221

223

222
        QSqlField field(tr("age"), QVariant::Int);
224
        QSqlField field(tr("age"), QVariant::Int);
223
        field.setValue(QString(tr("123")));
225
        field.setValue(QString(tr("123")));
224

226

225
        bool okey;
227
        bool okey;
226
        int index;
228
        int index;
227
        QSqlRecord record;
229
        QSqlRecord record;
228

230

229

231

230
        tableView->setModel(model);
232
        tableView->setModel(model);
231
        view.setModel(model);
233
        view.setModel(model);
232

234

233

235

234
        tableView->setAlternatingRowColors(true);
236
        tableView->setAlternatingRowColors(true);
235
        view.setAlternatingRowColors(true);
237
        view.setAlternatingRowColors(true);
236

238

237
        tableView->resizeColumnsToContents();
239
        tableView->resizeColumnsToContents();
238

240

239

241

240
        view.resizeColumnsToContents();
242
        view.resizeColumnsToContents();
241

243

242
        tableView->show();
244
        tableView->show();
243

245

244

246

245

247

246
        initTreeWidget();
248
        initTreeWidget();
247
}
249
}
248
*/
250
*/
249
251
250
252
251
void MainWindow::creatModelString(){
253
void MainWindow::creatModelString(){
252
254
253
    MainWindow::modelString.clear(); // î÷èùàåì ñòðîêó ìîäåëè
255
    MainWindow::modelString.clear(); // î÷èùàåì ñòðîêó ìîäåëè
254
 //   for (int i =0; i < rootItem1->childCount(); ++i )
256
 //   for (int i =0; i < rootItem1->childCount(); ++i )
255
257
256
    {MainWindow::addChildsString(rootItem1, 0);}
258
    {MainWindow::addChildsString(rootItem1, 0);}
257
259
258
    int root_item_child_count;
260
    int root_item_child_count;
259
    int i;
261
    int i;
260
    root_item_child_count = rootItem1->childCount();
262
    root_item_child_count = rootItem1->childCount();
261
    i++;
263
    i++;
262
264
263
}
265
}
264
266
265
267
266
void MainWindow::addChildsString(QTreeWidgetItem *parentItem, int level){
268
void MainWindow::addChildsString(QTreeWidgetItem *parentItem, int level){
267
    int child_count;
269
    int child_count;
268
    child_count = parentItem->childCount();
270
    child_count = parentItem->childCount();
269
    for (int i=0; i < child_count; ++i){
271
    for (int i=0; i < child_count; ++i){
270
        for (int m=0; m < level; ++m){
272
        for (int m=0; m < level; ++m){
271
        modelString.append(tr("    ")); // ÷åòûðå ïðîáåëà - ïðèçíàê òîãî, ÷òî ýòî íîâûé óðîâåíü âëîæåíèÿ
273
        modelString.append(tr("    ")); // ÷åòûðå ïðîáåëà - ïðèçíàê òîãî, ÷òî ýòî íîâûé óðîâåíü âëîæåíèÿ
272
    }
274
    }
273
        modelString.append(parentItem->child(i)->text(0)); // â ïåðâîé êîëîíêå - èìÿ êëàññà
275
        modelString.append(parentItem->child(i)->text(0)); // â ïåðâîé êîëîíêå - èìÿ êëàññà
274
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
276
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
275
        if (parentItem->child(i)->checkState(0) ==  Qt::Checked) {modelString.append(tr("true"));} // åñëè ãàëî÷êà ñòîèò, çàíîñèì "true", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ áóäóò
277
        if (parentItem->child(i)->checkState(0) ==  Qt::Checked) {modelString.append(tr("true"));} // åñëè ãàëî÷êà ñòîèò, çàíîñèì "true", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ áóäóò
276
            else {modelString.append(tr("false"));} // åñëè êëàññ íå âûáðàí - çàíîñèì "false", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ íå áóäóò
278
            else {modelString.append(tr("false"));} // åñëè êëàññ íå âûáðàí - çàíîñèì "false", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ íå áóäóò
277
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
279
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
278
        modelString.append(parentItem->child(i)->text(1)); // âî âòîðîé êîëîíêå - ID êëàññà
280
        modelString.append(parentItem->child(i)->text(1)); // âî âòîðîé êîëîíêå - ID êëàññà
279
         modelString.append(tr("\n")); // êîíåö ñòðîêè
281
         modelString.append(tr("\n")); // êîíåö ñòðîêè
280
        if (parentItem->child(i)->childCount() > 0) { MainWindow::addChildsString(parentItem->child(i), level+1);}
282
        if (parentItem->child(i)->childCount() > 0) { MainWindow::addChildsString(parentItem->child(i), level+1);}
281
283
282
    }
284
    }
283
int i;
285
int i;
284
i++;
286
i++;
285
}
287
}
286
288
287
289
288
bool MainWindow::openDataBase(){
290
bool MainWindow::openDataBase(){
289
    QString errorString;
291
    QString errorString;
290
    sql = QSqlDatabase::addDatabase("QMYSQL");
292
    sql = QSqlDatabase::addDatabase("QMYSQL");
291
//    sql.setDatabaseName(tr("an_db"));
293
//    sql.setDatabaseName(tr("an_db"));
292
294
293
    // // // sql.setDatabaseName(tr("inventory"));
295
    // // // sql.setDatabaseName(tr("inventory"));
294
296
295
    sql.setDatabaseName(baseName);
297
    sql.setDatabaseName(baseName);
296
298
297
299
298
300
299
    // // // sql.setHostName(tr("localhost"));
301
    // // // sql.setHostName(tr("localhost"));
300
302
301
    sql.setHostName(hostName);
303
    sql.setHostName(hostName);
302
304
303
305
304
    // // // sql.setUserName(tr("an"));
306
    // // // sql.setUserName(tr("an"));
305
307
306
    sql.setUserName(userName);
308
    sql.setUserName(userName);
307
309
308
310
309
311
310
   // // //  sql.setPassword(tr("393939"));
312
   // // //  sql.setPassword(tr("393939"));
311
313
312
314
313
    sql.setPassword(password);
315
    sql.setPassword(password);
314
316
315
317
316
318
317
    bool ok;
319
    bool ok;
318
    ok = sql.open();
320
    ok = sql.open();
319
321
320
    /*
322
    /*
321
    if (!ok) {
323
    if (!ok) {
322
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
324
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
323
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
325
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
324
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
326
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
325
                                                                                sql.lastError().text() );         // Òåêñò ñîîáùåíèÿ.
327
                                                                                sql.lastError().text() );         // Òåêñò ñîîáùåíèÿ.
326

328

327

329

328
                            }
330
                            }
329

331

330
*/
332
*/
331
    if (!ok) {
333
    if (!ok) {
332
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
334
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
333
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
335
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
334
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
336
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
335
                                                                            sql.lastError().text());          // Òåêñò ñîîáùåíèÿ.
337
                                                                            sql.lastError().text());          // Òåêñò ñîîáùåíèÿ.
336
                     }
338
                     }
337
else {
339
else {
338
340
339
        QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
341
        QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
340
                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
342
                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
341
                                                        QObject::tr("Database Connect"),   // Çàãîëîâîê.
343
                                                        QObject::tr("Database Connect"),   // Çàãîëîâîê.
342
                                                        QObject::tr("Ñîåäèíåíèå ñ áàçîé äàííûõ óñïåøíî óñòàíîâëåíî."));         // Òåêñò ñîîáùåíèÿ.
344
                                                        QObject::tr("Ñîåäèíåíèå ñ áàçîé äàííûõ óñïåøíî óñòàíîâëåíî."));         // Òåêñò ñîîáùåíèÿ.
343
345
344
346
345
347
346
348
347
349
348
    }
350
    }
349
351
350
     return ok;
352
     return ok;
351
}
353
}
352
354
353
355
354
bool MainWindow::buildPreviewModel(QString modelName, QString rootClassID){
356
bool MainWindow::buildPreviewModel(QString modelName, QString rootClassID){
355
QSqlQuery q;
357
QSqlQuery q;
356
QString sql_str;
358
QString sql_str;
357
QString field_name_str;
359
QString field_name_str;
358
QString root_class_name;
360
QString root_class_name;
359
bool ok;
361
bool ok;
360
int field_name;
362
int field_name;
361
363
362
//ui->treeWidget->clear();
364
//ui->treeWidget->clear();
363
365
364
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
366
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
365
367
366
rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
368
rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
367
root_items_list << rootItem1;
369
root_items_list << rootItem1;
368
 rootItem1->setText(0, modelName);
370
 rootItem1->setText(0, modelName);
369
371
370
 rootItem1->setCheckState(0,Qt::Checked);
372
 rootItem1->setCheckState(0,Qt::Checked);
371
 rootItems.append(rootItem1);
373
 rootItems.append(rootItem1);
372
374
373
375
374
376
375
rootItem2 = new  QTreeWidgetItem(rootItem1);
377
rootItem2 = new  QTreeWidgetItem(rootItem1);
376
rootItem2->setText(0, root_class_name);
378
rootItem2->setText(0, root_class_name);
377
rootItem2->setText(1, rootClassID);
379
rootItem2->setText(1, rootClassID);
378
rootItem2->setCheckState(0,Qt::Checked);
380
rootItem2->setCheckState(0,Qt::Checked);
379
381
380
addChildsItems(rootItem2);
382
addChildsItems(rootItem2);
381
383
382
sql_str = tr("select * "
384
sql_str = tr("select * "
383
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
385
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
384
             );
386
             );
385
sql_str.append(rootClassID);
387
sql_str.append(rootClassID);
386
388
387
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
389
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
388
390
389
q.prepare(sql_str);
391
q.prepare(sql_str);
390
392
391
ok = q.exec();
393
ok = q.exec();
392
if (!ok) {
394
if (!ok) {
393
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
395
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
394
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
396
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
395
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
397
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
396
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
398
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
397
                 }
399
                 }
398
field_name = q.record().indexOf(tr("FieldName"));
400
field_name = q.record().indexOf(tr("FieldName"));
399
while(q.next()){
401
while(q.next()){
400
402
401
                field_name_str = q.value(field_name).toString();
403
                field_name_str = q.value(field_name).toString();
402
404
403
                }
405
                }
404
406
405
407
406
408
407
409
408
}
410
}
409
411
410
412
411
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID){
413
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID){
412
QSqlQuery q;
414
QSqlQuery q;
413
QString sql_str;
415
QString sql_str;
414
QString field_name_str;
416
QString field_name_str;
415
QString root_class_name;
417
QString root_class_name;
416
bool ok;
418
bool ok;
417
int field_name;
419
int field_name;
418
420
419
//ui->treeWidget->clear();
421
//ui->treeWidget->clear();
420
422
421
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
423
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
422
424
423
425
424
// rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
426
// rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
425
// root_items_list << rootItem1;
427
// root_items_list << rootItem1;
426
// rootItem1->setText(0, modelName);
428
// rootItem1->setText(0, modelName);
427
429
428
// rootItem1->setCheckState(0,Qt::Checked);
430
// rootItem1->setCheckState(0,Qt::Checked);
429
// rootItems.append(rootItem1);
431
// rootItems.append(rootItem1);
430
432
431
// root_item->removeChild(root_item->child(0)); // î÷èùàåì ñïèñîê äî÷åðíèõ êëàññîâ
433
// root_item->removeChild(root_item->child(0)); // î÷èùàåì ñïèñîê äî÷åðíèõ êëàññîâ
432
if (root_item->childCount()==1){
434
if (root_item->childCount()==1){
433
root_item->child(0)->setText(0, root_class_name);
435
root_item->child(0)->setText(0, root_class_name);
434
root_item->child(0)->setText(1, rootClassID);
436
root_item->child(0)->setText(1, rootClassID);
435
root_item->child(0)->setCheckState(0,Qt::Checked);}
437
root_item->child(0)->setCheckState(0,Qt::Checked);}
436
438
437
//delete rootItem2;
439
//delete rootItem2;
438
440
439
441
440
// rootItem2 = new  QTreeWidgetItem(rootItem1);
442
// rootItem2 = new  QTreeWidgetItem(rootItem1);
441
443
442
444
443
445
444
// rootItem2->setText(0, root_class_name);
446
// rootItem2->setText(0, root_class_name);
445
// rootItem2->setText(1, rootClassID);
447
// rootItem2->setText(1, rootClassID);
446
// rootItem2->setCheckState(0,Qt::Checked);
448
// rootItem2->setCheckState(0,Qt::Checked);
447
449
448
int child_count = root_item->child(0)->childCount();
450
int child_count = root_item->child(0)->childCount();
449
451
450
452
451
453
452
for (int i=0; i < child_count; i++){
454
for (int i=0; i < child_count; i++){
453
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
455
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
454
}
456
}
455
457
456
child_count = root_item->child(0)->childCount();
458
child_count = root_item->child(0)->childCount();
457
addChildsItems(root_item->child(0));
459
addChildsItems(root_item->child(0));
458
/*
460
/*
459
sql_str = tr("select * "
461
sql_str = tr("select * "
460
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
462
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
461
             );
463
             );
462
sql_str.append(rootClassID);
464
sql_str.append(rootClassID);
463

465

464
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
466
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
465

467

466
q.prepare(sql_str);
468
q.prepare(sql_str);
467

469

468
ok = q.exec();
470
ok = q.exec();
469
if (!ok) {
471
if (!ok) {
470
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
472
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
471
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
473
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
472
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
474
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
473
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
475
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
474
                 }
476
                 }
475
field_name = q.record().indexOf(tr("FieldName"));
477
field_name = q.record().indexOf(tr("FieldName"));
476
while(q.next()){
478
while(q.next()){
477

479

478
                field_name_str = q.value(field_name).toString();
480
                field_name_str = q.value(field_name).toString();
479

481

480
                }
482
                }
481

483

482
*/
484
*/
483
485
484
486
485
}
487
}
486
488
487
489
488
490
489
491
490
QString MainWindow::ClassName(QString class_id){ //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
492
QString MainWindow::ClassName(QString class_id){ //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
491
    QSqlQuery q;
493
    QSqlQuery q;
492
    QString sql_str;
494
    QString sql_str;
493
    QString class_name_str;
495
    QString class_name_str;
494
    bool ok;
496
    bool ok;
495
    int field_class_name;
497
    int field_class_name;
496
498
497
    sql_str = tr("select * "
499
    sql_str = tr("select * "
498
                 " from ListOfClasses where ListOfClasses.ID = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
500
                 " from ListOfClasses where ListOfClasses.ID = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
499
                 );
501
                 );
500
502
501
    sql_str.append(class_id);
503
    sql_str.append(class_id);
502
    sql_str.append(tr("' "));
504
    sql_str.append(tr("' "));
503
505
504
    q.prepare(sql_str);
506
    q.prepare(sql_str);
505
507
506
    ok = q.exec();
508
    ok = q.exec();
507
509
508
510
509
    if (!ok) {
511
    if (!ok) {
510
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
512
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
511
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
513
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
512
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
514
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
513
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
515
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
514
                     }
516
                     }
515
517
516
    field_class_name = q.record().indexOf(tr("ClassName"));
518
    field_class_name = q.record().indexOf(tr("ClassName"));
517
    while(q.next()){
519
    while(q.next()){
518
520
519
                    class_name_str = q.value(field_class_name).toString();
521
                    class_name_str = q.value(field_class_name).toString();
520
522
521
                    }
523
                    }
522
524
523
    return class_name_str;
525
    return class_name_str;
524
526
525
}
527
}
526
528
527
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
529
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
528
QStringList chields_list;
530
QStringList chields_list;
529
QString parent_ID;
531
QString parent_ID;
530
QTreeWidgetItem *Item_tmp;
532
QTreeWidgetItem *Item_tmp;
531
parent_ID = perent_class_item->text(1);
533
parent_ID = perent_class_item->text(1);
532
int chields_count, i;
534
int chields_count, i;
533
535
534
chields_list = MainWindow::classChields(parent_ID);
536
chields_list = MainWindow::classChields(parent_ID);
535
if(chields_list.isEmpty()) return;
537
if(chields_list.isEmpty()) return;
536
chields_count = chields_list.size();
538
chields_count = chields_list.size();
537
for (int l = 0; l < chields_count; ++l){
539
for (int l = 0; l < chields_count; ++l){
538
    QString chield_class_name, chield_id;
540
    QString chield_class_name, chield_id;
539
    chield_id = chields_list.at(l);
541
    chield_id = chields_list.at(l);
540
    chield_class_name = MainWindow::ClassName(chield_id);
542
    chield_class_name = MainWindow::ClassName(chield_id);
541
    Item_tmp = new QTreeWidgetItem(perent_class_item);
543
    Item_tmp = new QTreeWidgetItem(perent_class_item);
542
    Item_tmp->setText(0, chield_class_name);
544
    Item_tmp->setText(0, chield_class_name);
543
    Item_tmp->setText(1, chield_id);
545
    Item_tmp->setText(1, chield_id);
544
    Item_tmp->setCheckState(0, Qt::Checked);
546
    Item_tmp->setCheckState(0, Qt::Checked);
545
    MainWindow::addChildsItems(Item_tmp);
547
    MainWindow::addChildsItems(Item_tmp);
546
}
548
}
547
549
548
i++;
550
i++;
549
551
550
}
552
}
551
553
552
554
553
/********************************************************
555
/********************************************************
554
* Ôóíêöèÿ âîçâðàùàåò ñïèñîê "äî÷åðíèõ" êëàññîâ
556
* Ôóíêöèÿ âîçâðàùàåò ñïèñîê "äî÷åðíèõ" êëàññîâ
555
*
557
*
556
*
558
*
557
*
559
*
558
********************************************************/
560
********************************************************/
559
561
560
QStringList MainWindow::classChields(QString class_id){
562
QStringList MainWindow::classChields(QString class_id){
561
   // QMap<QString, QString> map;
563
   // QMap<QString, QString> map;
562
   // TClass class_tmp;
564
   // TClass class_tmp;
563
   // QList <TClass> chields_class_list; // ñïèñîê äî÷åðíèõ êëàññîâ
565
   // QList <TClass> chields_class_list; // ñïèñîê äî÷åðíèõ êëàññîâ
564
    QStringList result;
566
    QStringList result;
565
    QSqlQuery q;
567
    QSqlQuery q;
566
    QString sql_str;
568
    QString sql_str;
567
    QString classIdentifer_str; // â ýòîì ïîëå ëåæèò èäåíòèôèêàòîð êëàññà-êîíòåéíåðà
569
    QString classIdentifer_str; // â ýòîì ïîëå ëåæèò èäåíòèôèêàòîð êëàññà-êîíòåéíåðà
568
    QString field_id_str;
570
    QString field_id_str;
569
    bool ok;
571
    bool ok;
570
    int field_classIdentifer;
572
    int field_classIdentifer;
571
    sql_str = tr("select * "
573
    sql_str = tr("select * "
572
                 " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
574
                 " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
573
                 );
575
                 );
574
    sql_str.append(class_id);
576
    sql_str.append(class_id);
575
577
576
    sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
578
    sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
577
579
578
    q.prepare(sql_str);
580
    q.prepare(sql_str);
579
581
580
    ok = q.exec();
582
    ok = q.exec();
581
    if (!ok) {
583
    if (!ok) {
582
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
584
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
583
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
585
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
584
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
586
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
585
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
587
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
586
                     }
588
                     }
587
    field_classIdentifer = q.record().indexOf(tr("ClassIdentifer"));
589
    field_classIdentifer = q.record().indexOf(tr("ClassIdentifer"));
588
      while(q.next()){
590
      while(q.next()){
589
591
590
                    classIdentifer_str = q.value(field_classIdentifer).toString();
592
                    classIdentifer_str = q.value(field_classIdentifer).toString();
591
                    result.append(classIdentifer_str);
593
                    result.append(classIdentifer_str);
592
                    }
594
                    }
593
595
594
    return result;
596
    return result;
595
597
596
  }
598
  }
597
599
598
600
599
QMap <QString, QString> MainWindow::getClassList(){ // ïîëó÷àåì ñïèñîê êëàññîâ
601
QMap <QString, QString> MainWindow::getClassList(){ // ïîëó÷àåì ñïèñîê êëàññîâ
600
QMap <QString, QString> result_map;
602
QMap <QString, QString> result_map;
601
QSqlQuery q;
603
QSqlQuery q;
602
QString sql_str;
604
QString sql_str;
603
QString class_name_str, class_id_str;
605
QString class_name_str, class_id_str;
604
606
605
int field_class_id, field_class_name;
607
int field_class_id, field_class_name;
606
bool ok;
608
bool ok;
607
sql_str = tr("select * "
609
sql_str = tr("select * "
608
             " from ListOfClasses "       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
610
             " from ListOfClasses "       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
609
             );
611
             );
610
 q.prepare(sql_str);
612
 q.prepare(sql_str);
611
 ok = q.exec();
613
 ok = q.exec();
612
 if (!ok) {
614
 if (!ok) {
613
                         QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
615
                         QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
614
                                                                         this,                      // Ðîäèòåëüñêèé âèäæåò.
616
                                                                         this,                      // Ðîäèòåëüñêèé âèäæåò.
615
                                                                         QObject::tr("Database Error"),   // Çàãîëîâîê.
617
                                                                         QObject::tr("Database Error"),   // Çàãîëîâîê.
616
                                                                         q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
618
                                                                         q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
617
                         return result_map; // åñëè îøèáêà - âîçâðàùàåì ïóñòîé ñïèñîê
619
                         return result_map; // åñëè îøèáêà - âîçâðàùàåì ïóñòîé ñïèñîê
618
                  }
620
                  }
619
field_class_id = q.record().indexOf(tr("ID"));
621
field_class_id = q.record().indexOf(tr("ID"));
620
field_class_name = q.record().indexOf(tr("ClassName"));
622
field_class_name = q.record().indexOf(tr("ClassName"));
621
623
622
while(q.next()){
624
while(q.next()){
623
625
624
                class_name_str = q.value(field_class_name).toString();
626
                class_name_str = q.value(field_class_name).toString();
625
                class_id_str = q.value(field_class_id).toString();
627
                class_id_str = q.value(field_class_id).toString();
626
                result_map[class_id_str] = class_name_str;
628
                result_map[class_id_str] = class_name_str;
627
                }
629
                }
628
 return result_map;
630
 return result_map;
629
}
631
}
630
632
631
633
632
634
633
635
634
636
635
void MainWindow::initComboBox(){
637
void MainWindow::initComboBox(){
636
638
637
639
638
    QStringList classesNameList;
640
    QStringList classesNameList;
639
    QStringList classesID_list;
641
    QStringList classesID_list;
640
    QStringList tmp_stringList;
642
    QStringList tmp_stringList;
641
643
642
644
643
645
644
    QString tmp_str;
646
    QString tmp_str;
645
647
646
    class_list_map = MainWindow::getClassList();
648
    class_list_map = MainWindow::getClassList();
647
    classesID_list = class_list_map.keys();
649
    classesID_list = class_list_map.keys();
648
    classesNameList = class_list_map.values();
650
    classesNameList = class_list_map.values();
649
    QMapIterator<QString, QString> interator(class_list_map);
651
    QMapIterator<QString, QString> interator(class_list_map);
650
//    ui->comboBox->addItems(classesID_list);
652
//    ui->comboBox->addItems(classesID_list);
651
  //  ui->comboBox->addItems(classesNameList);
653
  //  ui->comboBox->addItems(classesNameList);
652
    while (interator.hasNext()) {
654
    while (interator.hasNext()) {
653
         interator.next();
655
         interator.next();
654
         tmp_str =  interator.value();
656
         tmp_str =  interator.value();
655
         tmp_str.append(tr(" \t(ID="));
657
         tmp_str.append(tr(" \t(ID="));
656
         tmp_str.append(interator.key());
658
         tmp_str.append(interator.key());
657
         tmp_str.append(tr(")"));
659
         tmp_str.append(tr(")"));
658
         tmp_stringList << tmp_str;
660
         tmp_stringList << tmp_str;
659
661
660
     }
662
     }
661
//    int count = ui->comboBox->count();
663
//    int count = ui->comboBox->count();
662
664
663
    ui->comboBox->clear();
665
    ui->comboBox->clear();
664
    ui->comboBox->addItems(tmp_stringList);
666
    ui->comboBox->addItems(tmp_stringList);
665
667
666
668
667
}
669
}
668
670
669
671
670
void MainWindow::on_comboBox_currentIndexChanged( int index ){
672
void MainWindow::on_comboBox_currentIndexChanged( int index ){
671
QStringList classesNameList;
673
QStringList classesNameList;
672
QStringList classesID_list;
674
QStringList classesID_list;
673
QString ID_str;
675
QString ID_str;
674
if (index == -1) return;
676
if (index == -1) return;
675
677
676
classesID_list = class_list_map.keys();
678
classesID_list = class_list_map.keys();
677
classesNameList = class_list_map.values();
679
classesNameList = class_list_map.values();
678
ID_str =  classesID_list[index];
680
ID_str =  classesID_list[index];
679
ui->label->setText(ID_str);
681
ui->label->setText(ID_str);
680
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1) rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str);
682
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1) rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str);
681
getDatabaseData();
683
getDatabaseData();
682
684
683
685
684
}
686
}
685
687
686
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
688
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
687
    int i;
689
    int i;
688
    i++;
690
    i++;
689
691
690
    if ((column) == 0 && (model_is_build)) getDatabaseData();
692
    if ((column) == 0 && (model_is_build)) getDatabaseData();
691
693
692
}
694
}
693
695
694
696
695
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
697
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
696
    int i;
698
    int i;
697
    i++;
699
    i++;
698
    if (root_items_list.indexOf(item) != -1) {
700
    if (root_items_list.indexOf(item) != -1) {
699
        QStringList classesNameList;
701
        QStringList classesNameList;
700
        QStringList classesID_list;
702
        QStringList classesID_list;
701
703
702
        int index;
704
        int index;
703
        classesID_list = class_list_map.keys();
705
        classesID_list = class_list_map.keys();
704
        classesNameList = class_list_map.values();
706
        classesNameList = class_list_map.values();
705
        index = classesID_list.indexOf(item->child(0)->text(1));
707
        index = classesID_list.indexOf(item->child(0)->text(1));
706
        if (index != -1) ui->comboBox->setCurrentIndex(index);
708
        if (index != -1) ui->comboBox->setCurrentIndex(index);
707
709
708
        ui->comboBox->setEnabled(true);
710
        ui->comboBox->setEnabled(true);
709
711
710
712
711
    }
713
    }
712
  //  if ((rootItem1) == (item) ) ui->comboBox->setEnabled(true);
714
  //  if ((rootItem1) == (item) ) ui->comboBox->setEnabled(true);
713
else ( ui->comboBox->setEnabled(false));
715
else ( ui->comboBox->setEnabled(false));
714
}
716
}
715
717
716
QMap <QString, QString> MainWindow::getFieldsList(QString class_id){ // ïîëó÷àåì ñïèñîê ïîëåé êëàññà
718
QMap <QString, QString> MainWindow::getFieldsList(QString class_id){ // ïîëó÷àåì ñïèñîê ïîëåé êëàññà
717
719
718
}
720
}
719
721
720
722
721
void MainWindow::initListModelsTablle(){
723
void MainWindow::initListModelsTablle(){
722
    model_for_ListModelsTable = new QSqlTableModel(this);
724
    model_for_ListModelsTable = new QSqlTableModel(this);
723
725
724
    model_for_ListModelsTable->setTable(tr("ListOfModels"));
726
    model_for_ListModelsTable->setTable(tr("ListOfModels"));
725
    model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnFieldChange);
727
    model_for_ListModelsTable->setEditStrategy(QSqlTableModel::OnFieldChange);
726
728
727
    ui->tableView_2->setModel(model_for_ListModelsTable);
729
    ui->tableView_2->setModel(model_for_ListModelsTable);
728
    model_for_ListModelsTable->select();
730
    model_for_ListModelsTable->select();
729
}
731
}
730
 
732