Хранилища Subversion OpenInventory

Редакция

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

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

162

153
        db = QSqlDatabase::addDatabase("QMYSQL");
163
        db = QSqlDatabase::addDatabase("QMYSQL");
154
        pdb = &db;
164
        pdb = &db;
155
        raportFrm.pdb = &db;
165
        raportFrm.pdb = &db;
156

166

157
        pdb->setHostName(hostName);
167
        pdb->setHostName(hostName);
158
        pdb->setDatabaseName(baseName);
168
        pdb->setDatabaseName(baseName);
159
        pdb->setUserName(userName);
169
        pdb->setUserName(userName);
160
        pdb->setPassword(password);
170
        pdb->setPassword(password);
161
        bool ok = pdb->open();
171
        bool ok = pdb->open();
162
        if (!ok) {
172
        if (!ok) {
163
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
173
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
164
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
174
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
165
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
175
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
166
                                                                                pdb->lastError().text());          // Òåêñò ñîîáùåíèÿ.
176
                                                                                pdb->lastError().text());          // Òåêñò ñîîáùåíèÿ.
167
                         }
177
                         }
168
        if (ok)
178
        if (ok)
169
        {lineEdit-> insert(tr("Áàçà óñïåøíî îòêðûòà"));
179
        {lineEdit-> insert(tr("Áàçà óñïåøíî îòêðûòà"));
170
        }
180
        }
171
        else {lineEdit-> insert(tr("Áàçà íåäîñòóïíà. Êîä îøèáêè: "));
181
        else {lineEdit-> insert(tr("Áàçà íåäîñòóïíà. Êîä îøèáêè: "));
172
                  lineEdit-> insert(pdb->lastError().text());
182
                  lineEdit-> insert(pdb->lastError().text());
173
                 }
183
                 }
174

184

175

185

176

186

177
        model = new QSqlTableModel(this);
187
        model = new QSqlTableModel(this);
178
        model->setTable(tableName);
188
        model->setTable(tableName);
179

189

180
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
190
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
181
        model->setSort(0, Qt::AscendingOrder);
191
        model->setSort(0, Qt::AscendingOrder);
182

192

183
        model->select();
193
        model->select();
184

194

185

195

186
        QSqlField field(tr("age"), QVariant::Int);
196
        QSqlField field(tr("age"), QVariant::Int);
187
        field.setValue(QString(tr("123")));
197
        field.setValue(QString(tr("123")));
188

198

189
        bool okey;
199
        bool okey;
190
        int index;
200
        int index;
191
        QSqlRecord record;
201
        QSqlRecord record;
192

202

193

203

194
        tableView->setModel(model);
204
        tableView->setModel(model);
195
        view.setModel(model);
205
        view.setModel(model);
196

206

197

207

198
        tableView->setAlternatingRowColors(true);
208
        tableView->setAlternatingRowColors(true);
199
        view.setAlternatingRowColors(true);
209
        view.setAlternatingRowColors(true);
200

210

201
        tableView->resizeColumnsToContents();
211
        tableView->resizeColumnsToContents();
202

212

203

213

204
        view.resizeColumnsToContents();
214
        view.resizeColumnsToContents();
205

215

206
        tableView->show();
216
        tableView->show();
207

217

208

218

209

219

210
        initTreeWidget();
220
        initTreeWidget();
211
}
221
}
212
*/
222
*/
213
223
214
224
215
void MainWindow::creatModelString(){
225
void MainWindow::creatModelString(){
216
226
217
    MainWindow::modelString.clear(); // î÷èùàåì ñòðîêó ìîäåëè
227
    MainWindow::modelString.clear(); // î÷èùàåì ñòðîêó ìîäåëè
218
 //   for (int i =0; i < rootItem1->childCount(); ++i )
228
 //   for (int i =0; i < rootItem1->childCount(); ++i )
219
229
220
    {MainWindow::addChildsString(rootItem1, 0);}
230
    {MainWindow::addChildsString(rootItem1, 0);}
221
231
222
    int root_item_child_count;
232
    int root_item_child_count;
223
    int i;
233
    int i;
224
    root_item_child_count = rootItem1->childCount();
234
    root_item_child_count = rootItem1->childCount();
225
    i++;
235
    i++;
226
236
227
}
237
}
228
238
229
239
230
void MainWindow::addChildsString(QTreeWidgetItem *parentItem, int level){
240
void MainWindow::addChildsString(QTreeWidgetItem *parentItem, int level){
231
    int child_count;
241
    int child_count;
232
    child_count = parentItem->childCount();
242
    child_count = parentItem->childCount();
233
    for (int i=0; i < child_count; ++i){
243
    for (int i=0; i < child_count; ++i){
234
        for (int m=0; m < level; ++m){
244
        for (int m=0; m < level; ++m){
235
        modelString.append(tr("    ")); // ÷åòûðå ïðîáåëà - ïðèçíàê òîãî, ÷òî ýòî íîâûé óðîâåíü âëîæåíèÿ
245
        modelString.append(tr("    ")); // ÷åòûðå ïðîáåëà - ïðèçíàê òîãî, ÷òî ýòî íîâûé óðîâåíü âëîæåíèÿ
236
    }
246
    }
237
        modelString.append(parentItem->child(i)->text(0)); // â ïåðâîé êîëîíêå - èìÿ êëàññà
247
        modelString.append(parentItem->child(i)->text(0)); // â ïåðâîé êîëîíêå - èìÿ êëàññà
238
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
248
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
239
        if (parentItem->child(i)->checkState(0) ==  Qt::Checked) {modelString.append(tr("true"));} // åñëè ãàëî÷êà ñòîèò, çàíîñèì "true", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ áóäóò
249
        if (parentItem->child(i)->checkState(0) ==  Qt::Checked) {modelString.append(tr("true"));} // åñëè ãàëî÷êà ñòîèò, çàíîñèì "true", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ áóäóò
240
            else {modelString.append(tr("false"));} // åñëè êëàññ íå âûáðàí - çàíîñèì "false", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ íå áóäóò
250
            else {modelString.append(tr("false"));} // åñëè êëàññ íå âûáðàí - çàíîñèì "false", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ íå áóäóò
241
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
251
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
242
        modelString.append(parentItem->child(i)->text(1)); // âî âòîðîé êîëîíêå - ID êëàññà
252
        modelString.append(parentItem->child(i)->text(1)); // âî âòîðîé êîëîíêå - ID êëàññà
243
         modelString.append(tr("\n")); // êîíåö ñòðîêè
253
         modelString.append(tr("\n")); // êîíåö ñòðîêè
244
        if (parentItem->child(i)->childCount() > 0) { MainWindow::addChildsString(parentItem->child(i), level+1);}
254
        if (parentItem->child(i)->childCount() > 0) { MainWindow::addChildsString(parentItem->child(i), level+1);}
245
255
246
    }
256
    }
247
int i;
257
int i;
248
i++;
258
i++;
249
}
259
}
250
260
251
261
252
bool MainWindow::openDataBase(){
262
bool MainWindow::openDataBase(){
253
    QString errorString;
263
    QString errorString;
254
    sql = QSqlDatabase::addDatabase("QMYSQL");
264
    sql = QSqlDatabase::addDatabase("QMYSQL");
255
//    sql.setDatabaseName(tr("an_db"));
265
//    sql.setDatabaseName(tr("an_db"));
256
266
257
    sql.setDatabaseName(tr("inventory"));
267
    // // // sql.setDatabaseName(tr("inventory"));
-
 
268
-
 
269
    sql.setDatabaseName(baseName);
-
 
270
-
 
271
-
 
272
258
    sql.setHostName(tr("localhost"));
273
    // // // sql.setHostName(tr("localhost"));
259
274
-
 
275
    sql.setHostName(hostName);
260
276
261
277
-
 
278
    // // // sql.setUserName(tr("an"));
-
 
279
-
 
280
    sql.setUserName(userName);
-
 
281
-
 
282
-
 
283
-
 
284
   // // //  sql.setPassword(tr("393939"));
-
 
285
-
 
286
-
 
287
    sql.setPassword(password);
-
 
288
262
289
263
    sql.setUserName(tr("an"));
-
 
264
    sql.setPassword(tr("393939"));
-
 
265
290
266
    bool ok;
291
    bool ok;
267
    ok = sql.open();
292
    ok = sql.open();
268
293
269
    /*
294
    /*
270
    if (!ok) {
295
    if (!ok) {
271
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
296
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
272
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
297
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
273
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
298
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
274
                                                                                sql.lastError().text() );         // Òåêñò ñîîáùåíèÿ.
299
                                                                                sql.lastError().text() );         // Òåêñò ñîîáùåíèÿ.
275

300

276

301

277
                            }
302
                            }
278

303

279
*/
304
*/
280
    if (!ok) {
305
    if (!ok) {
281
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
306
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
282
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
307
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
283
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
308
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
284
                                                                            sql.lastError().text());          // Òåêñò ñîîáùåíèÿ.
309
                                                                            sql.lastError().text());          // Òåêñò ñîîáùåíèÿ.
285
                     }
310
                     }
286
else {
311
else {
287
312
288
        QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
313
        QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
289
                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
314
                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
290
                                                        QObject::tr("Database Connect"),   // Çàãîëîâîê.
315
                                                        QObject::tr("Database Connect"),   // Çàãîëîâîê.
291
                                                        QObject::tr("Ñîåäèíåíèå ñ áàçîé äàííûõ óñïåøíî óñòàíîâëåíî."));         // Òåêñò ñîîáùåíèÿ.
316
                                                        QObject::tr("Ñîåäèíåíèå ñ áàçîé äàííûõ óñïåøíî óñòàíîâëåíî."));         // Òåêñò ñîîáùåíèÿ.
292
317
293
318
294
319
295
320
296
321
297
    }
322
    }
298
323
299
     return ok;
324
     return ok;
300
}
325
}
301
326
302
327
303
bool MainWindow::buildPreviewModel(QString modelName, QString rootClassID){
328
bool MainWindow::buildPreviewModel(QString modelName, QString rootClassID){
304
QSqlQuery q;
329
QSqlQuery q;
305
QString sql_str;
330
QString sql_str;
306
QString field_name_str;
331
QString field_name_str;
307
QString root_class_name;
332
QString root_class_name;
308
bool ok;
333
bool ok;
309
int field_name;
334
int field_name;
310
335
311
//ui->treeWidget->clear();
336
//ui->treeWidget->clear();
312
337
313
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
338
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
314
339
315
rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
340
rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
316
root_items_list << rootItem1;
341
root_items_list << rootItem1;
317
 rootItem1->setText(0, modelName);
342
 rootItem1->setText(0, modelName);
318
343
319
 rootItem1->setCheckState(0,Qt::Checked);
344
 rootItem1->setCheckState(0,Qt::Checked);
320
 rootItems.append(rootItem1);
345
 rootItems.append(rootItem1);
321
346
322
347
323
348
324
rootItem2 = new  QTreeWidgetItem(rootItem1);
349
rootItem2 = new  QTreeWidgetItem(rootItem1);
325
rootItem2->setText(0, root_class_name);
350
rootItem2->setText(0, root_class_name);
326
rootItem2->setText(1, rootClassID);
351
rootItem2->setText(1, rootClassID);
327
rootItem2->setCheckState(0,Qt::Checked);
352
rootItem2->setCheckState(0,Qt::Checked);
328
353
329
addChildsItems(rootItem2);
354
addChildsItems(rootItem2);
330
355
331
sql_str = tr("select * "
356
sql_str = tr("select * "
332
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
357
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
333
             );
358
             );
334
sql_str.append(rootClassID);
359
sql_str.append(rootClassID);
335
360
336
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
361
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
337
362
338
q.prepare(sql_str);
363
q.prepare(sql_str);
339
364
340
ok = q.exec();
365
ok = q.exec();
341
if (!ok) {
366
if (!ok) {
342
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
367
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
343
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
368
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
344
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
369
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
345
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
370
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
346
                 }
371
                 }
347
field_name = q.record().indexOf(tr("FieldName"));
372
field_name = q.record().indexOf(tr("FieldName"));
348
while(q.next()){
373
while(q.next()){
349
374
350
                field_name_str = q.value(field_name).toString();
375
                field_name_str = q.value(field_name).toString();
351
376
352
                }
377
                }
353
378
354
379
355
380
356
381
357
}
382
}
358
383
359
384
360
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID){
385
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID){
361
QSqlQuery q;
386
QSqlQuery q;
362
QString sql_str;
387
QString sql_str;
363
QString field_name_str;
388
QString field_name_str;
364
QString root_class_name;
389
QString root_class_name;
365
bool ok;
390
bool ok;
366
int field_name;
391
int field_name;
367
392
368
//ui->treeWidget->clear();
393
//ui->treeWidget->clear();
369
394
370
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
395
root_class_name = MainWindow::ClassName(rootClassID); // îïðåäåëÿåì èìÿ êëàññà
371
396
372
397
373
// rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
398
// rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
374
// root_items_list << rootItem1;
399
// root_items_list << rootItem1;
375
// rootItem1->setText(0, modelName);
400
// rootItem1->setText(0, modelName);
376
401
377
// rootItem1->setCheckState(0,Qt::Checked);
402
// rootItem1->setCheckState(0,Qt::Checked);
378
// rootItems.append(rootItem1);
403
// rootItems.append(rootItem1);
379
404
380
// root_item->removeChild(root_item->child(0)); // î÷èùàåì ñïèñîê äî÷åðíèõ êëàññîâ
405
// root_item->removeChild(root_item->child(0)); // î÷èùàåì ñïèñîê äî÷åðíèõ êëàññîâ
381
if (root_item->childCount()==1){
406
if (root_item->childCount()==1){
382
root_item->child(0)->setText(0, root_class_name);
407
root_item->child(0)->setText(0, root_class_name);
383
root_item->child(0)->setText(1, rootClassID);
408
root_item->child(0)->setText(1, rootClassID);
384
root_item->child(0)->setCheckState(0,Qt::Checked);}
409
root_item->child(0)->setCheckState(0,Qt::Checked);}
385
410
386
//delete rootItem2;
411
//delete rootItem2;
387
412
388
413
389
// rootItem2 = new  QTreeWidgetItem(rootItem1);
414
// rootItem2 = new  QTreeWidgetItem(rootItem1);
390
415
391
416
392
417
393
// rootItem2->setText(0, root_class_name);
418
// rootItem2->setText(0, root_class_name);
394
// rootItem2->setText(1, rootClassID);
419
// rootItem2->setText(1, rootClassID);
395
// rootItem2->setCheckState(0,Qt::Checked);
420
// rootItem2->setCheckState(0,Qt::Checked);
396
421
397
int child_count = root_item->child(0)->childCount();
422
int child_count = root_item->child(0)->childCount();
398
423
399
424
400
425
401
for (int i=0; i < child_count; i++){
426
for (int i=0; i < child_count; i++){
402
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
427
    root_item->child(0)->removeChild(root_item->child(0)->child(0));
403
}
428
}
404
429
405
child_count = root_item->child(0)->childCount();
430
child_count = root_item->child(0)->childCount();
406
addChildsItems(root_item->child(0));
431
addChildsItems(root_item->child(0));
407
/*
432
/*
408
sql_str = tr("select * "
433
sql_str = tr("select * "
409
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
434
             " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
410
             );
435
             );
411
sql_str.append(rootClassID);
436
sql_str.append(rootClassID);
412

437

413
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
438
sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
414

439

415
q.prepare(sql_str);
440
q.prepare(sql_str);
416

441

417
ok = q.exec();
442
ok = q.exec();
418
if (!ok) {
443
if (!ok) {
419
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
444
                        QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
420
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
445
                                                                        this,                      // Ðîäèòåëüñêèé âèäæåò.
421
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
446
                                                                        QObject::tr("Database Error"),   // Çàãîëîâîê.
422
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
447
                                                                        q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
423
                 }
448
                 }
424
field_name = q.record().indexOf(tr("FieldName"));
449
field_name = q.record().indexOf(tr("FieldName"));
425
while(q.next()){
450
while(q.next()){
426

451

427
                field_name_str = q.value(field_name).toString();
452
                field_name_str = q.value(field_name).toString();
428

453

429
                }
454
                }
430

455

431
*/
456
*/
432
457
433
458
434
}
459
}
435
460
436
461
437
462
438
463
439
QString MainWindow::ClassName(QString class_id){ //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
464
QString MainWindow::ClassName(QString class_id){ //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
440
    QSqlQuery q;
465
    QSqlQuery q;
441
    QString sql_str;
466
    QString sql_str;
442
    QString class_name_str;
467
    QString class_name_str;
443
    bool ok;
468
    bool ok;
444
    int field_class_name;
469
    int field_class_name;
445
470
446
    sql_str = tr("select * "
471
    sql_str = tr("select * "
447
                 " from ListOfClasses where ListOfClasses.ID = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
472
                 " from ListOfClasses where ListOfClasses.ID = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
448
                 );
473
                 );
449
474
450
    sql_str.append(class_id);
475
    sql_str.append(class_id);
451
    sql_str.append(tr("' "));
476
    sql_str.append(tr("' "));
452
477
453
    q.prepare(sql_str);
478
    q.prepare(sql_str);
454
479
455
    ok = q.exec();
480
    ok = q.exec();
456
481
457
482
458
    if (!ok) {
483
    if (!ok) {
459
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
484
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
460
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
485
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
461
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
486
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
462
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
487
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
463
                     }
488
                     }
464
489
465
    field_class_name = q.record().indexOf(tr("ClassName"));
490
    field_class_name = q.record().indexOf(tr("ClassName"));
466
    while(q.next()){
491
    while(q.next()){
467
492
468
                    class_name_str = q.value(field_class_name).toString();
493
                    class_name_str = q.value(field_class_name).toString();
469
494
470
                    }
495
                    }
471
496
472
    return class_name_str;
497
    return class_name_str;
473
498
474
}
499
}
475
500
476
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
501
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
477
QStringList chields_list;
502
QStringList chields_list;
478
QString parent_ID;
503
QString parent_ID;
479
QTreeWidgetItem *Item_tmp;
504
QTreeWidgetItem *Item_tmp;
480
parent_ID = perent_class_item->text(1);
505
parent_ID = perent_class_item->text(1);
481
int chields_count, i;
506
int chields_count, i;
482
507
483
chields_list = MainWindow::classChields(parent_ID);
508
chields_list = MainWindow::classChields(parent_ID);
484
if(chields_list.isEmpty()) return;
509
if(chields_list.isEmpty()) return;
485
chields_count = chields_list.size();
510
chields_count = chields_list.size();
486
for (int l = 0; l < chields_count; ++l){
511
for (int l = 0; l < chields_count; ++l){
487
    QString chield_class_name, chield_id;
512
    QString chield_class_name, chield_id;
488
    chield_id = chields_list.at(l);
513
    chield_id = chields_list.at(l);
489
    chield_class_name = MainWindow::ClassName(chield_id);
514
    chield_class_name = MainWindow::ClassName(chield_id);
490
    Item_tmp = new QTreeWidgetItem(perent_class_item);
515
    Item_tmp = new QTreeWidgetItem(perent_class_item);
491
    Item_tmp->setText(0, chield_class_name);
516
    Item_tmp->setText(0, chield_class_name);
492
    Item_tmp->setText(1, chield_id);
517
    Item_tmp->setText(1, chield_id);
493
    Item_tmp->setCheckState(0, Qt::Checked);
518
    Item_tmp->setCheckState(0, Qt::Checked);
494
    MainWindow::addChildsItems(Item_tmp);
519
    MainWindow::addChildsItems(Item_tmp);
495
}
520
}
496
521
497
i++;
522
i++;
498
523
499
}
524
}
500
525
501
526
502
/********************************************************
527
/********************************************************
503
* Ôóíêöèÿ âîçâðàùàåò ñïèñîê "äî÷åðíèõ" êëàññîâ
528
* Ôóíêöèÿ âîçâðàùàåò ñïèñîê "äî÷åðíèõ" êëàññîâ
504
*
529
*
505
*
530
*
506
*
531
*
507
********************************************************/
532
********************************************************/
508
533
509
QStringList MainWindow::classChields(QString class_id){
534
QStringList MainWindow::classChields(QString class_id){
510
   // QMap<QString, QString> map;
535
   // QMap<QString, QString> map;
511
   // TClass class_tmp;
536
   // TClass class_tmp;
512
   // QList <TClass> chields_class_list; // ñïèñîê äî÷åðíèõ êëàññîâ
537
   // QList <TClass> chields_class_list; // ñïèñîê äî÷åðíèõ êëàññîâ
513
    QStringList result;
538
    QStringList result;
514
    QSqlQuery q;
539
    QSqlQuery q;
515
    QString sql_str;
540
    QString sql_str;
516
    QString classIdentifer_str; // â ýòîì ïîëå ëåæèò èäåíòèôèêàòîð êëàññà-êîíòåéíåðà
541
    QString classIdentifer_str; // â ýòîì ïîëå ëåæèò èäåíòèôèêàòîð êëàññà-êîíòåéíåðà
517
    QString field_id_str;
542
    QString field_id_str;
518
    bool ok;
543
    bool ok;
519
    int field_classIdentifer;
544
    int field_classIdentifer;
520
    sql_str = tr("select * "
545
    sql_str = tr("select * "
521
                 " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
546
                 " from DescriptionOfClasses where  DescriptionOfClasses.DefaultValue = '"       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
522
                 );
547
                 );
523
    sql_str.append(class_id);
548
    sql_str.append(class_id);
524
549
525
    sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
550
    sql_str.append(tr("' and DescriptionOfClasses.FieldType = 'pointer' "));
526
551
527
    q.prepare(sql_str);
552
    q.prepare(sql_str);
528
553
529
    ok = q.exec();
554
    ok = q.exec();
530
    if (!ok) {
555
    if (!ok) {
531
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
556
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
532
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
557
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
533
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
558
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
534
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
559
                                                                            q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
535
                     }
560
                     }
536
    field_classIdentifer = q.record().indexOf(tr("ClassIdentifer"));
561
    field_classIdentifer = q.record().indexOf(tr("ClassIdentifer"));
537
      while(q.next()){
562
      while(q.next()){
538
563
539
                    classIdentifer_str = q.value(field_classIdentifer).toString();
564
                    classIdentifer_str = q.value(field_classIdentifer).toString();
540
                    result.append(classIdentifer_str);
565
                    result.append(classIdentifer_str);
541
                    }
566
                    }
542
567
543
    return result;
568
    return result;
544
569
545
  }
570
  }
546
571
547
572
548
QMap <QString, QString> MainWindow::getClassList(){ // ïîëó÷àåì ñïèñîê êëàññîâ
573
QMap <QString, QString> MainWindow::getClassList(){ // ïîëó÷àåì ñïèñîê êëàññîâ
549
QMap <QString, QString> result_map;
574
QMap <QString, QString> result_map;
550
QSqlQuery q;
575
QSqlQuery q;
551
QString sql_str;
576
QString sql_str;
552
QString class_name_str, class_id_str;
577
QString class_name_str, class_id_str;
553
578
554
int field_class_id, field_class_name;
579
int field_class_id, field_class_name;
555
bool ok;
580
bool ok;
556
sql_str = tr("select * "
581
sql_str = tr("select * "
557
             " from ListOfClasses "       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
582
             " from ListOfClasses "       //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
558
             );
583
             );
559
 q.prepare(sql_str);
584
 q.prepare(sql_str);
560
 ok = q.exec();
585
 ok = q.exec();
561
 if (!ok) {
586
 if (!ok) {
562
                         QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
587
                         QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
563
                                                                         this,                      // Ðîäèòåëüñêèé âèäæåò.
588
                                                                         this,                      // Ðîäèòåëüñêèé âèäæåò.
564
                                                                         QObject::tr("Database Error"),   // Çàãîëîâîê.
589
                                                                         QObject::tr("Database Error"),   // Çàãîëîâîê.
565
                                                                         q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
590
                                                                         q.lastError().text());          // Òåêñò ñîîáùåíèÿ.
566
                         return result_map; // åñëè îøèáêà - âîçâðàùàåì ïóñòîé ñïèñîê
591
                         return result_map; // åñëè îøèáêà - âîçâðàùàåì ïóñòîé ñïèñîê
567
                  }
592
                  }
568
field_class_id = q.record().indexOf(tr("ID"));
593
field_class_id = q.record().indexOf(tr("ID"));
569
field_class_name = q.record().indexOf(tr("ClassName"));
594
field_class_name = q.record().indexOf(tr("ClassName"));
570
595
571
while(q.next()){
596
while(q.next()){
572
597
573
                class_name_str = q.value(field_class_name).toString();
598
                class_name_str = q.value(field_class_name).toString();
574
                class_id_str = q.value(field_class_id).toString();
599
                class_id_str = q.value(field_class_id).toString();
575
                result_map[class_id_str] = class_name_str;
600
                result_map[class_id_str] = class_name_str;
576
                }
601
                }
577
 return result_map;
602
 return result_map;
578
}
603
}
579
604
580
605
581
606
582
607
583
608
584
void MainWindow::initComboBox(){
609
void MainWindow::initComboBox(){
585
610
586
611
587
    QStringList classesNameList;
612
    QStringList classesNameList;
588
    QStringList classesID_list;
613
    QStringList classesID_list;
589
    QStringList tmp_stringList;
614
    QStringList tmp_stringList;
590
615
591
616
592
617
593
    QString tmp_str;
618
    QString tmp_str;
594
619
595
    class_list_map = MainWindow::getClassList();
620
    class_list_map = MainWindow::getClassList();
596
    classesID_list = class_list_map.keys();
621
    classesID_list = class_list_map.keys();
597
    classesNameList = class_list_map.values();
622
    classesNameList = class_list_map.values();
598
    QMapIterator<QString, QString> interator(class_list_map);
623
    QMapIterator<QString, QString> interator(class_list_map);
599
//    ui->comboBox->addItems(classesID_list);
624
//    ui->comboBox->addItems(classesID_list);
600
  //  ui->comboBox->addItems(classesNameList);
625
  //  ui->comboBox->addItems(classesNameList);
601
    while (interator.hasNext()) {
626
    while (interator.hasNext()) {
602
         interator.next();
627
         interator.next();
603
         tmp_str =  interator.value();
628
         tmp_str =  interator.value();
604
         tmp_str.append(tr(" \t(ID="));
629
         tmp_str.append(tr(" \t(ID="));
605
         tmp_str.append(interator.key());
630
         tmp_str.append(interator.key());
606
         tmp_str.append(tr(")"));
631
         tmp_str.append(tr(")"));
607
         tmp_stringList << tmp_str;
632
         tmp_stringList << tmp_str;
608
633
609
     }
634
     }
-
 
635
//    int count = ui->comboBox->count();
-
 
636
-
 
637
    ui->comboBox->clear();
610
    ui->comboBox->addItems(tmp_stringList);
638
    ui->comboBox->addItems(tmp_stringList);
611
639
612
640
613
}
641
}
614
642
615
643
616
void MainWindow::on_comboBox_currentIndexChanged( int index ){
644
void MainWindow::on_comboBox_currentIndexChanged( int index ){
617
QStringList classesNameList;
645
QStringList classesNameList;
618
QStringList classesID_list;
646
QStringList classesID_list;
619
QString ID_str;
647
QString ID_str;
-
 
648
if (index == -1) return;
-
 
649
620
classesID_list = class_list_map.keys();
650
classesID_list = class_list_map.keys();
621
classesNameList = class_list_map.values();
651
classesNameList = class_list_map.values();
622
ID_str =  classesID_list[index];
652
ID_str =  classesID_list[index];
623
ui->label->setText(ID_str);
653
ui->label->setText(ID_str);
624
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1) rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str);
654
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1) rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str);
625
getDatabaseData();
655
getDatabaseData();
626
656
627
657
628
}
658
}
629
659
630
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
660
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
631
    int i;
661
    int i;
632
    i++;
662
    i++;
633
663
634
    if ((column) == 0 && (model_is_build)) getDatabaseData();
664
    if ((column) == 0 && (model_is_build)) getDatabaseData();
635
665
636
}
666
}
637
667
638
668
639
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
669
void MainWindow::on_treeWidget_itemClicked ( QTreeWidgetItem * item, int column ){
640
    int i;
670
    int i;
641
    i++;
671
    i++;
642
    if (root_items_list.indexOf(item) != -1) {
672
    if (root_items_list.indexOf(item) != -1) {
643
        QStringList classesNameList;
673
        QStringList classesNameList;
644
        QStringList classesID_list;
674
        QStringList classesID_list;
645
675
646
        int index;
676
        int index;
647
        classesID_list = class_list_map.keys();
677
        classesID_list = class_list_map.keys();
648
        classesNameList = class_list_map.values();
678
        classesNameList = class_list_map.values();
649
        index = classesID_list.indexOf(item->child(0)->text(1));
679
        index = classesID_list.indexOf(item->child(0)->text(1));
650
        ui->comboBox->setCurrentIndex(index);
680
        if (index != -1) ui->comboBox->setCurrentIndex(index);
651
681
652
        ui->comboBox->setEnabled(true);
682
        ui->comboBox->setEnabled(true);
653
683
654
684
655
    }
685
    }
656
  //  if ((rootItem1) == (item) ) ui->comboBox->setEnabled(true);
686
  //  if ((rootItem1) == (item) ) ui->comboBox->setEnabled(true);
657
else ( ui->comboBox->setEnabled(false));
687
else ( ui->comboBox->setEnabled(false));
658
}
688
}
659
689
660
QMap <QString, QString> MainWindow::getFieldsList(QString class_id){ // ïîëó÷àåì ñïèñîê ïîëåé êëàññà
690
QMap <QString, QString> MainWindow::getFieldsList(QString class_id){ // ïîëó÷àåì ñïèñîê ïîëåé êëàññà
661
691
662
}
692
}
663
 
693