Хранилища Subversion OpenInventory

Редакция

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

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

188

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

192

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

210

210

211

211

212

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

215

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

218

218
        model->select();
219
        model->select();
219

220

220

221

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

224

224
        bool okey;
225
        bool okey;
225
        int index;
226
        int index;
226
        QSqlRecord record;
227
        QSqlRecord record;
227

228

228

229

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

232

232

233

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

236

236
        tableView->resizeColumnsToContents();
237
        tableView->resizeColumnsToContents();
237

238

238

239

239
        view.resizeColumnsToContents();
240
        view.resizeColumnsToContents();
240

241

241
        tableView->show();
242
        tableView->show();
242

243

243

244

244

245

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

326

326

327

327
                            }
328
                            }
328

329

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

463

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

465

465
q.prepare(sql_str);
466
q.prepare(sql_str);
466

467

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

477

477
                field_name_str = q.value(field_name).toString();
478
                field_name_str = q.value(field_name).toString();
478

479

479
                }
480
                }
480

481

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