Редакция 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 |