Редакция 78 | Редакция 82 | К новейшей редакции | Только различия | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 78 | Редакция 81 | ||
---|---|---|---|
1 | #include "classeditor.h"
|
1 | #include "classeditor.h"
|
2 | #include "ui_classeditor.h"
|
2 | #include "ui_classeditor.h"
|
3 | 3 | ||
4 | 4 | ||
5 | ClassEditor::ClassEditor(QWidget *parent) : |
5 | ClassEditor::ClassEditor(QWidget *parent) : |
6 | QMainWindow(parent), |
6 | QMainWindow(parent), |
7 | ui(new Ui::ClassEditor) |
7 | ui(new Ui::ClassEditor) |
8 | {
|
8 | {
|
9 | ui->setupUi(this); |
9 | ui->setupUi(this); |
10 | 10 | ||
11 | 11 | ||
12 | 12 | ||
13 | // settdialog = new SettingsDialog(this);
|
13 | // settdialog = new SettingsDialog(this);
|
14 | ///////////////////////////////////////////////////// settdialog.show();
|
14 | ///////////////////////////////////////////////////// settdialog.show();
|
15 | sql.setDatabaseName(tr("an_db")); |
15 | sql.setDatabaseName(tr("an_db")); |
16 | 16 | ||
17 | /*
|
17 | /*
|
18 | field = new TableField(tr("Ñîòðóäíèêè"), this);
|
18 | field = new TableField(tr("Ñîòðóäíèêè"), this);
|
19 | field->setNotNull(true);
|
19 | field->setNotNull(true);
|
20 | field->setDefaultValue(tr("ñîòðóäíèê"));
|
20 | field->setDefaultValue(tr("ñîòðóäíèê"));
|
21 | 21 | ||
22 | table = new SqlTable (tr("NewTable"), this);
|
22 | table = new SqlTable (tr("NewTable"), this);
|
23 | table->setName(tr("NewTable"));
|
23 | table->setName(tr("NewTable"));
|
24 | table->fields().at(0)->setNotNull(true);
|
24 | table->fields().at(0)->setNotNull(true);
|
25 | if (!(table->setPrimaryKey(tr("ID")))) {
|
25 | if (!(table->setPrimaryKey(tr("ID")))) {
|
26 | ui->label_3->setText(table->lastError());
|
26 | ui->label_3->setText(table->lastError());
|
27 | }
|
27 | }
|
28 | else ui->label_3->setText(table->primaryKey());
|
28 | else ui->label_3->setText(table->primaryKey());
|
29 | table->append(field);
|
29 | table->append(field);
|
30 | 30 | ||
31 | field = new TableField(tr("Êîìïüþòåðû"), this);
|
31 | field = new TableField(tr("Êîìïüþòåðû"), this);
|
32 | field->setNotNull(true);
|
32 | field->setNotNull(true);
|
33 | field->setDefaultValue(tr("êîìïüþòåð"));
|
33 | field->setDefaultValue(tr("êîìïüþòåð"));
|
34 | table->append(field);
|
34 | table->append(field);
|
35 | 35 | ||
36 | field = new TableField(tr("Ìîíèòîðû"), this);
|
36 | field = new TableField(tr("Ìîíèòîðû"), this);
|
37 | field->setNotNull(true);
|
37 | field->setNotNull(true);
|
38 | field->setDefaultValue(tr("ìîíèòîð"));
|
38 | field->setDefaultValue(tr("ìîíèòîð"));
|
39 | table->append(field);
|
39 | table->append(field);
|
40 | 40 | ||
41 | field = new TableField(tr("Êîëè÷åñòâî (øòóê)"), this);
|
41 | field = new TableField(tr("Êîëè÷åñòâî (øòóê)"), this);
|
42 | field->setNotNull(true);
|
42 | field->setNotNull(true);
|
43 | field->setType(tr("INTEGER"));
|
43 | field->setType(tr("INTEGER"));
|
44 | field->setDefaultValue(tr("1"));
|
44 | field->setDefaultValue(tr("1"));
|
45 | table->append(field);
|
45 | table->append(field);
|
46 | 46 | ||
47 | field = new TableField(tr("Äåíü ðîæäåíèÿ"), this);
|
47 | field = new TableField(tr("Äåíü ðîæäåíèÿ"), this);
|
48 | field->setNotNull(false);
|
48 | field->setNotNull(false);
|
49 | field->setType(tr("DATE"));
|
49 | field->setType(tr("DATE"));
|
50 | field->setDefaultValue(tr("NULL"));
|
50 | field->setDefaultValue(tr("NULL"));
|
51 | table->append(field);
|
51 | table->append(field);
|
52 | 52 | ||
53 | ui->label_2->setText(table->name());
|
53 | ui->label_2->setText(table->name());
|
54 | ui->label->setText(table->fields().at(0)->sqlString());
|
54 | ui->label->setText(table->fields().at(0)->sqlString());
|
55 | ui->label_4->setText(table->sqlString());
|
55 | ui->label_4->setText(table->sqlString());
|
56 | ////// ui->lineEdit->insert(table->sqlString());
|
56 | ////// ui->lineEdit->insert(table->sqlString());
|
57 | 57 | ||
58 | */
|
58 | */
|
59 | /**********************************************
|
59 | /**********************************************
|
60 | 60 | ||
61 | QTextDocument *document;
|
61 | QTextDocument *document;
|
62 | // = ui->textEdit->document();
|
62 | // = ui->textEdit->document();
|
63 | QTextCursor *cursor;
|
63 | QTextCursor *cursor;
|
64 | 64 | ||
65 | document = ui->textEdit->document();
|
65 | document = ui->textEdit->document();
|
66 | cursor = new QTextCursor(document);
|
66 | cursor = new QTextCursor(document);
|
67 | cursor->movePosition(QTextCursor::Start);
|
67 | cursor->movePosition(QTextCursor::Start);
|
68 | QTextCharFormat format(cursor->charFormat());
|
68 | QTextCharFormat format(cursor->charFormat());
|
69 | //format.setFontFamily("Courier");
|
69 | //format.setFontFamily("Courier");
|
70 | format.setFontFamily("Arial");
|
70 | format.setFontFamily("Arial");
|
71 | //format.setFontItalic(false);
|
71 | //format.setFontItalic(false);
|
72 | 72 | ||
73 | format.setFontWeight(QFont::Normal);
|
73 | format.setFontWeight(QFont::Normal);
|
74 | QTextCharFormat boldFormat = format;
|
74 | QTextCharFormat boldFormat = format;
|
75 | boldFormat.setFontWeight(QFont::Bold);
|
75 | boldFormat.setFontWeight(QFont::Bold);
|
76 | 76 | ||
77 | QTextCharFormat italicFormat = format;
|
77 | QTextCharFormat italicFormat = format;
|
78 | //format.setFontFamily("Courier");
|
78 | //format.setFontFamily("Courier");
|
79 | // format.setFontFamily("Arial");
|
79 | // format.setFontFamily("Arial");
|
80 | italicFormat.setFontItalic(true);
|
80 | italicFormat.setFontItalic(true);
|
81 | 81 | ||
82 | cursor->insertText(table->sqlString(), format);
|
82 | cursor->insertText(table->sqlString(), format);
|
83 | 83 | ||
84 | ****************************************************/
|
84 | ****************************************************/
|
85 | 85 | ||
86 | QString errorString;
|
86 | QString errorString;
|
87 | 87 | ||
88 | sql.setDatabaseName(tr("an_db")); |
88 | sql.setDatabaseName(tr("an_db")); |
89 | sql.setHostName(tr("localhost")); |
89 | sql.setHostName(tr("localhost")); |
90 | sql.setUserName(tr("an")); |
90 | sql.setUserName(tr("an")); |
91 | sql.setPassword(tr("393939")); |
91 | sql.setPassword(tr("393939")); |
92 | 92 | ||
93 | bool ok; |
93 | bool ok; |
94 | ok = sql.connect(); |
94 | ok = sql.connect(); |
95 | if (!ok) { |
95 | if (!ok) { |
96 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
96 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
97 | this, // Ðîäèòåëüñêèé âèäæåò. |
97 | this, // Ðîäèòåëüñêèé âèäæåò. |
98 | QObject::tr("Database Error"), // Çàãîëîâîê. |
98 | QObject::tr("Database Error"), // Çàãîëîâîê. |
99 | sql.lasError()); // Òåêñò ñîîáùåíèÿ. |
99 | sql.lasError()); // Òåêñò ñîîáùåíèÿ. |
100 | 100 | ||
101 | }
|
101 | }
|
102 | else { |
102 | else { |
103 | 103 | ||
104 | QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
104 | QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
105 | this, // Ðîäèòåëüñêèé âèäæåò. |
105 | this, // Ðîäèòåëüñêèé âèäæåò. |
106 | QObject::tr("Database Connect"), // Çàãîëîâîê. |
106 | QObject::tr("Database Connect"), // Çàãîëîâîê. |
107 | QObject::tr("Ñîåäèíåíèå ñ áàçîé äàííûõ óñïåøíî óñòàíîâëåíî.")); // Òåêñò ñîîáùåíèÿ. |
107 | QObject::tr("Ñîåäèíåíèå ñ áàçîé äàííûõ óñïåøíî óñòàíîâëåíî.")); // Òåêñò ñîîáùåíèÿ. |
108 | 108 | ||
109 | 109 | ||
110 | 110 | ||
111 | 111 | ||
112 | 112 | ||
113 | }
|
113 | }
|
114 | 114 | ||
115 | /*
|
115 | /*
|
116 | ok = sql.createTable(table);
|
116 | ok = sql.createTable(table);
|
117 | if (!ok) {
|
117 | if (!ok) {
|
118 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
|
118 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
|
119 | this, // Ðîäèòåëüñêèé âèäæåò.
|
119 | this, // Ðîäèòåëüñêèé âèäæåò.
|
120 | QObject::tr("Database Error"), // Çàãîëîâîê.
|
120 | QObject::tr("Database Error"), // Çàãîëîâîê.
|
121 | sql.lasError()); // Òåêñò ñîîáùåíèÿ.
|
121 | sql.lasError()); // Òåêñò ñîîáùåíèÿ.
|
122 | }
|
122 | }
|
123 | else {
|
123 | else {
|
124 | 124 | ||
125 | QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
|
125 | QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
|
126 | this, // Ðîäèòåëüñêèé âèäæåò.
|
126 | this, // Ðîäèòåëüñêèé âèäæåò.
|
127 | QObject::tr("Database Connect"), // Çàãîëîâîê.
|
127 | QObject::tr("Database Connect"), // Çàãîëîâîê.
|
128 | QObject::tr("Òàáëèöà â áàçå äàííûõ óñïåøíî ñîçäàíà.")); // Òåêñò ñîîáùåíèÿ.
|
128 | QObject::tr("Òàáëèöà â áàçå äàííûõ óñïåøíî ñîçäàíà.")); // Òåêñò ñîîáùåíèÿ.
|
129 | }
|
129 | }
|
130 | 130 | ||
131 | 131 | ||
132 | 132 | ||
133 | */
|
133 | */
|
134 | 134 | ||
135 | ok = sql.createListOfClassesTable(); |
135 | ok = sql.createListOfClassesTable(); |
136 | 136 | ||
137 | if (!ok) { |
137 | if (!ok) { |
138 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
138 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
139 | this, // Ðîäèòåëüñêèé âèäæåò. |
139 | this, // Ðîäèòåëüñêèé âèäæåò. |
140 | QObject::tr("Database Error"), // Çàãîëîâîê. |
140 | QObject::tr("Database Error"), // Çàãîëîâîê. |
141 | sql.lasError()); // Òåêñò ñîîáùåíèÿ. |
141 | sql.lasError()); // Òåêñò ñîîáùåíèÿ. |
142 | 142 | ||
143 | }
|
143 | }
|
144 | else { |
144 | else { |
145 | 145 | ||
146 | QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
146 | QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
147 | this, // Ðîäèòåëüñêèé âèäæåò. |
147 | this, // Ðîäèòåëüñêèé âèäæåò. |
148 | QObject::tr("Database Create"), // Çàãîëîâîê. |
148 | QObject::tr("Database Create"), // Çàãîëîâîê. |
149 | QObject::tr("Áàçà äàííûõ óñïåøíî ñîçäàíà.")); // Òåêñò ñîîáùåíèÿ. |
149 | QObject::tr("Áàçà äàííûõ óñïåøíî ñîçäàíà.")); // Òåêñò ñîîáùåíèÿ. |
150 | }
|
150 | }
|
151 | 151 | ||
152 | 152 | ||
153 | 153 | ||
154 | 154 | ||
155 | ok = sql.createDescriptionOfClassesTable(); |
155 | ok = sql.createDescriptionOfClassesTable(); |
156 | 156 | ||
157 | if (!ok) { |
157 | if (!ok) { |
158 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
158 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
159 | this, // Ðîäèòåëüñêèé âèäæåò. |
159 | this, // Ðîäèòåëüñêèé âèäæåò. |
160 | QObject::tr("Database Error"), // Çàãîëîâîê. |
160 | QObject::tr("Database Error"), // Çàãîëîâîê. |
161 | sql.lasError()); // Òåêñò ñîîáùåíèÿ. |
161 | sql.lasError()); // Òåêñò ñîîáùåíèÿ. |
162 | 162 | ||
163 | }
|
163 | }
|
164 | else { |
164 | else { |
165 | 165 | ||
166 | QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
166 | QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
167 | this, // Ðîäèòåëüñêèé âèäæåò. |
167 | this, // Ðîäèòåëüñêèé âèäæåò. |
168 | QObject::tr("Database Create"), // Çàãîëîâîê. |
168 | QObject::tr("Database Create"), // Çàãîëîâîê. |
169 | QObject::tr("Áàçà äàííûõ óñïåøíî ñîçäàíà.")); // Òåêñò ñîîáùåíèÿ. |
169 | QObject::tr("Áàçà äàííûõ óñïåøíî ñîçäàíà.")); // Òåêñò ñîîáùåíèÿ. |
170 | }
|
170 | }
|
171 | 171 | ||
172 | 172 | ||
173 | 173 | ||
174 | 174 | ||
175 | 175 | ||
176 | 176 | ||
177 | 177 | ||
178 | model = new QSqlTableModel(); // õðàíèëèùå îáúåêòîâ êëàññà |
178 | model = new QSqlTableModel(); // õðàíèëèùå îáúåêòîâ êëàññà |
179 | tableForInstance = new QTableView(); |
179 | tableForInstance = new QTableView(); |
180 | mymodel = new MyModel(this); |
180 | mymodel = new MyModel(this); |
181 | //modelForDescription = new QSqlTableModel(this);
|
181 | //modelForDescription = new QSqlTableModel(this);
|
182 | modelForDescription = new ModelForDescriptionTable(this); |
182 | modelForDescription = new ModelForDescriptionTable(this); |
183 | 183 | ||
184 | 184 | ||
185 | /////////////////model->setTable(tr("ListOfClasses"));
|
185 | /////////////////model->setTable(tr("ListOfClasses"));
|
186 | mymodel->setTable(tr("ListOfClasses")); |
186 | mymodel->setTable(tr("ListOfClasses")); |
187 | modelForDescription->setTable(tr("DescriptionOfClasses")); |
187 | modelForDescription->setTable(tr("DescriptionOfClasses")); |
188 | modelForDescription->setEditStrategy(QSqlTableModel::OnFieldChange); |
188 | modelForDescription->setEditStrategy(QSqlTableModel::OnFieldChange); |
189 | 189 | ||
190 | /////model->setEditStrategy(QSqlTableModel::OnManualSubmit);
|
190 | /////model->setEditStrategy(QSqlTableModel::OnManualSubmit);
|
191 | 191 | ||
192 | 192 | ||
193 | 193 | ||
194 | //mymodel->setEditStrategy(QSqlTableModel::OnFieldChange);
|
194 | //mymodel->setEditStrategy(QSqlTableModel::OnFieldChange);
|
195 | 195 | ||
196 | 196 | ||
197 | 197 | ||
198 | //////////////////model->setSort(0, Qt::AscendingOrder);
|
198 | //////////////////model->setSort(0, Qt::AscendingOrder);
|
199 | mymodel->setSort(0, Qt::AscendingOrder); |
199 | mymodel->setSort(0, Qt::AscendingOrder); |
200 | modelForDescription->setSort(0, Qt::AscendingOrder); |
200 | modelForDescription->setSort(0, Qt::AscendingOrder); |
201 | 201 | ||
202 | 202 | ||
203 | // model->setFilter(tr("Èäåíòèôèêàòîð_ñèñòåìíîãî_áëîêà = '7' and Èíâåíòàðíûé_íîìåð = 'i09090909'"));
|
203 | // model->setFilter(tr("Èäåíòèôèêàòîð_ñèñòåìíîãî_áëîêà = '7' and Èíâåíòàðíûé_íîìåð = 'i09090909'"));
|
204 | ////////////////////model->select();
|
204 | ////////////////////model->select();
|
205 | mymodel->select(); |
205 | mymodel->select(); |
206 | 206 | ||
207 | 207 | ||
208 | 208 | ||
209 | 209 | ||
210 | /////////////////////////model->setHeaderData(1, Qt::Horizontal, tr("Èìÿ êëàññà"));
|
210 | /////////////////////////model->setHeaderData(1, Qt::Horizontal, tr("Èìÿ êëàññà"));
|
211 | mymodel->setHeaderData(1, Qt::Horizontal, tr("Èìÿ êëàññà")); |
211 | mymodel->setHeaderData(1, Qt::Horizontal, tr("Èìÿ êëàññà")); |
212 | 212 | ||
213 | 213 | ||
214 | 214 | ||
215 | ////////////////////////model->setHeaderData(2, Qt::Horizontal, tr("Ïñåâäîíèì êëàññà"));
|
215 | ////////////////////////model->setHeaderData(2, Qt::Horizontal, tr("Ïñåâäîíèì êëàññà"));
|
216 | mymodel->setHeaderData(2, Qt::Horizontal, tr("Ïñåâäîíèì êëàññà")); |
216 | mymodel->setHeaderData(2, Qt::Horizontal, tr("Ïñåâäîíèì êëàññà")); |
217 | mymodel->setHeaderData(4, Qt::Horizontal, tr("Êîìåíòàðèé")); |
217 | mymodel->setHeaderData(4, Qt::Horizontal, tr("Êîìåíòàðèé")); |
218 | 218 | ||
219 | 219 | ||
220 | //ui->tableView->setModel(model);
|
220 | //ui->tableView->setModel(model);
|
221 | ui->tableView->setModel(mymodel); |
221 | ui->tableView->setModel(mymodel); |
222 | //tableForDescription = new QTableView();
|
222 | //tableForDescription = new QTableView();
|
223 | ui->tableView_2->setModel(modelForDescription); |
223 | ui->tableView_2->setModel(modelForDescription); |
224 | ui->tableView_2->setAlternatingRowColors(true); |
224 | ui->tableView_2->setAlternatingRowColors(true); |
225 | ui->tableView_2->resizeColumnsToContents(); |
225 | ui->tableView_2->resizeColumnsToContents(); |
226 | //tableForDescription->show();
|
226 | //tableForDescription->show();
|
227 | 227 | ||
228 | 228 | ||
229 | ui->tableView->setAlternatingRowColors(true); |
229 | ui->tableView->setAlternatingRowColors(true); |
230 | ui->tableView->resizeColumnsToContents(); |
230 | ui->tableView->resizeColumnsToContents(); |
231 | 231 | ||
232 | ui->tableView->hideColumn(0); |
232 | ui->tableView->hideColumn(0); |
233 | ui->tableView->hideColumn(3); |
233 | ui->tableView->hideColumn(3); |
234 | ui->tableView->hideColumn(2); |
234 | ui->tableView->hideColumn(2); |
235 | 235 | ||
236 | /*
|
236 | /*
|
237 | ui->tableView_2->hideColumn(0);
|
237 | ui->tableView_2->hideColumn(0);
|
238 | ui->tableView_2->hideColumn(5);
|
238 | ui->tableView_2->hideColumn(5);
|
239 | ui->tableView_2->hideColumn(2);
|
239 | ui->tableView_2->hideColumn(2);
|
240 | */
|
240 | */
|
241 | ui->tableView_2->setItemDelegateForColumn(3, &classTableDelegate); |
241 | ui->tableView_2->setItemDelegateForColumn(3, &classTableDelegate); |
242 | 242 | ||
243 | currIndexOfClassesTable = mymodel->index(0, 1); |
243 | currIndexOfClassesTable = mymodel->index(0, 1); |
244 | QModelIndex index_temp;
|
244 | QModelIndex index_temp;
|
245 | 245 | ||
246 | 246 | ||
247 | 247 | ||
248 | currClassID = mymodel->data(mymodel->index(0,0)).toString(); |
248 | currClassID = mymodel->data(mymodel->index(0,0)).toString(); |
249 | QItemSelectionModel *selectionModel = ui->tableView->selectionModel(); |
249 | QItemSelectionModel *selectionModel = ui->tableView->selectionModel(); |
250 | 250 | ||
251 | QModelIndex topLeft;
|
251 | QModelIndex topLeft;
|
252 | QModelIndex bottomRight;
|
252 | QModelIndex bottomRight;
|
253 | 253 | ||
254 | topLeft = mymodel->index(0, 0, QModelIndex()); |
254 | topLeft = mymodel->index(0, 0, QModelIndex()); |
255 | bottomRight = mymodel->index(0, 1, QModelIndex()); |
255 | bottomRight = mymodel->index(0, 1, QModelIndex()); |
256 | 256 | ||
257 | QItemSelection selection(topLeft, bottomRight); |
257 | QItemSelection selection(topLeft, bottomRight); |
258 | selectionModel->select(selection, QItemSelectionModel::Select); |
258 | selectionModel->select(selection, QItemSelectionModel::Select); |
259 | 259 | ||
260 | 260 | ||
261 | QString class_indx, class_instance;
|
261 | QString class_indx, class_instance;
|
262 | QString str_fltr = tr("ClassIdentifer = "); |
262 | QString str_fltr = tr("ClassIdentifer = "); |
263 | class_indx = mymodel->data(mymodel->index(0,0)).toString(); |
263 | class_indx = mymodel->data(mymodel->index(0,0)).toString(); |
264 | class_instance = mymodel->data(mymodel->index(0,3)).toString(); |
264 | class_instance = mymodel->data(mymodel->index(0,3)).toString(); |
265 | 265 | ||
266 | currInctanceTable = class_instance; // |
266 | currInctanceTable = class_instance; // |
267 | modelForDescription->setInctance(class_instance); // ïåðåäàåì â ìîäåëü ïîëåé èìÿ òåêóùåé òàáëèöû-õðàíèëèùà |
267 | modelForDescription->setInctance(class_instance); // ïåðåäàåì â ìîäåëü ïîëåé èìÿ òåêóùåé òàáëèöû-õðàíèëèùà |
268 | //class_instance.append(tr("_inctance"));
|
268 | //class_instance.append(tr("_inctance"));
|
269 | str_fltr.append(class_indx); |
269 | str_fltr.append(class_indx); |
270 | 270 | ||
271 | model->setTable(class_instance); |
271 | model->setTable(class_instance); |
272 | //model->setTable(tr("memory"));
|
272 | //model->setTable(tr("memory"));
|
273 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
273 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
274 | model->select(); |
274 | model->select(); |
275 | tableForInstance->setModel(model); |
275 | tableForInstance->setModel(model); |
276 | tableForInstance->resizeColumnsToContents(); |
276 | tableForInstance->resizeColumnsToContents(); |
277 | tableForInstance->setWindowTitle(class_instance); |
277 | tableForInstance->setWindowTitle(class_instance); |
278 | tableForInstance->show(); |
278 | tableForInstance->show(); |
279 | 279 | ||
280 | modelForDescription->setFilter(str_fltr); |
280 | modelForDescription->setFilter(str_fltr); |
281 | modelForDescription->select(); |
281 | modelForDescription->select(); |
282 | ui->tableView_2->resizeColumnsToContents(); |
282 | ui->tableView_2->resizeColumnsToContents(); |
283 | 283 | ||
284 | 284 | ||
285 | 285 | ||
286 | //connect(ui->tableView, SIGNAL(clicked(const QModelIndex)), this, SLOT(on_tableView_clicked(const QModelIndex)));
|
286 | //connect(ui->tableView, SIGNAL(clicked(const QModelIndex)), this, SLOT(on_tableView_clicked(const QModelIndex)));
|
287 | connect(mymodel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_myModel_dataChanged(QModelIndex,QModelIndex))); |
287 | connect(mymodel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_myModel_dataChanged(QModelIndex,QModelIndex))); |
288 | connect(modelForDescription, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_modelForDescription_dataChanged(QModelIndex,QModelIndex))); |
288 | connect(modelForDescription, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(on_modelForDescription_dataChanged(QModelIndex,QModelIndex))); |
289 | //connect(ui->newClassAction, SIGNAL(triggered(bool)), this, SLOT(on_pushButton_clicked(bool)));
|
289 | //connect(ui->newClassAction, SIGNAL(triggered(bool)), this, SLOT(on_pushButton_clicked(bool)));
|
290 | connect(ui->action_ID, SIGNAL(triggered(bool)), this, SLOT(on_action_ID_triggered(bool))); |
290 | connect(ui->action_ID, SIGNAL(triggered(bool)), this, SLOT(on_action_ID_triggered(bool))); |
291 | connect(ui->action_showAlias, SIGNAL(triggered(bool)), this, SLOT(on_action_showAlias_triggered(bool))); // ïîêàçûâàòü ïñåâäîíèìû |
291 | connect(ui->action_showAlias, SIGNAL(triggered(bool)), this, SLOT(on_action_showAlias_triggered(bool))); // ïîêàçûâàòü ïñåâäîíèìû |
292 | connect(ui->action_showInstance, SIGNAL(triggered(bool)), this, SLOT(on_action_showInstance_triggered(bool))); // ïîêàçûâàòü õðàíèëèùà îáúåêòîâ |
292 | connect(ui->action_showInstance, SIGNAL(triggered(bool)), this, SLOT(on_action_showInstance_triggered(bool))); // ïîêàçûâàòü õðàíèëèùà îáúåêòîâ |
293 | connect(ui->action_removeSelectedFields, SIGNAL(triggered()), this, SLOT(on_pushButton_4_clicked())); // óäàëèòü âûäåëåííûå ïîëÿ |
293 | connect(ui->action_removeSelectedFields, SIGNAL(triggered()), this, SLOT(on_pushButton_4_clicked())); // óäàëèòü âûäåëåííûå ïîëÿ |
294 | connect(ui->action_removeAllFields, SIGNAL(triggered()), this, SLOT(on_pushButton_5_clicked())); // óäàëèòü âñå ïîëÿ |
294 | connect(ui->action_removeAllFields, SIGNAL(triggered()), this, SLOT(on_pushButton_5_clicked())); // óäàëèòü âñå ïîëÿ |
295 | connect(ui->action_removeSelectedClasses, SIGNAL(triggered()), this, SLOT(on_pushButton_2_clicked())); // óäàëèòü âûäåëåííûå êëàññû |
295 | connect(ui->action_removeSelectedClasses, SIGNAL(triggered()), this, SLOT(on_pushButton_2_clicked())); // óäàëèòü âûäåëåííûå êëàññû |
296 | connect(ui->action_removeAllClasses, SIGNAL(triggered()), this, SLOT(on_action_removeAllClasses())); // óäàëèòü âñå êëàññû |
296 | connect(ui->action_removeAllClasses, SIGNAL(triggered()), this, SLOT(on_action_removeAllClasses())); // óäàëèòü âñå êëàññû |
297 | connect(ui->action_newClass, SIGNAL(triggered()), this, SLOT(on_pushButton_clicked())); // äîáàâèòü íîâûé êëàññ |
297 | connect(ui->action_newClass, SIGNAL(triggered()), this, SLOT(on_pushButton_clicked())); // äîáàâèòü íîâûé êëàññ |
298 | connect(ui->action_newField, SIGNAL(triggered()), this, SLOT(on_pushButton_3_clicked())); // äîáàâèòü íîâîå ïîëå |
298 | connect(ui->action_newField, SIGNAL(triggered()), this, SLOT(on_pushButton_3_clicked())); // äîáàâèòü íîâîå ïîëå |
299 | connect(ClassEditor::modelForDescription, SIGNAL(field_changed()), this, SLOT(on_field_changed())); // äîáàâèòü íîâîå ïîëå |
299 | connect(ClassEditor::modelForDescription, SIGNAL(field_changed()), this, SLOT(on_field_changed())); // äîáàâèòü íîâîå ïîëå |
300 | }
|
300 | }
|
301 | 301 | ||
302 | 302 | ||
303 | 303 | ||
304 | 304 | ||
305 | 305 | ||
306 | 306 | ||
307 | 307 | ||
308 | 308 | ||
309 | 309 | ||
310 | 310 | ||
311 | 311 | ||
312 | ClassEditor::~ClassEditor() |
312 | ClassEditor::~ClassEditor() |
313 | {
|
313 | {
|
314 | delete ui; |
314 | delete ui; |
315 | delete model; |
315 | delete model; |
316 | delete tableForInstance; |
316 | delete tableForInstance; |
317 | // delete field;
|
317 | // delete field;
|
318 | // delete settdialog;
|
318 | // delete settdialog;
|
319 | }
|
319 | }
|
320 | 320 | ||
321 | void ClassEditor::changeEvent(QEvent *e) |
321 | void ClassEditor::changeEvent(QEvent *e) |
322 | {
|
322 | {
|
323 | QMainWindow::changeEvent(e); |
323 | QMainWindow::changeEvent(e); |
324 | switch (e->type()) { |
324 | switch (e->type()) { |
325 | case QEvent::LanguageChange: |
325 | case QEvent::LanguageChange: |
326 | ui->retranslateUi(this); |
326 | ui->retranslateUi(this); |
327 | break; |
327 | break; |
328 | default: |
328 | default: |
329 | break; |
329 | break; |
330 | }
|
330 | }
|
331 | }
|
331 | }
|
332 | 332 | ||
333 | 333 | ||
334 | /*
|
334 | /*
|
335 | void ClassEditor::addNewClass(){
|
335 | void ClassEditor::addNewClass(){
|
336 | 336 | ||
337 | int row = model->rowCount();
|
337 | int row = model->rowCount();
|
338 | 338 | ||
339 | model->insertRows(row, 1);
|
339 | model->insertRows(row, 1);
|
340 | model->setData(model->index(row, 1), tr("New class")); // ïðèñâàèâàåì íîâîå çíà÷åíèå ïîëþ "èìÿ êëàññà"
|
340 | model->setData(model->index(row, 1), tr("New class")); // ïðèñâàèâàåì íîâîå çíà÷åíèå ïîëþ "èìÿ êëàññà"
|
341 | 341 | ||
342 | 342 | ||
343 | // model->setData(model->index(row, 1), tr("Âàñÿ Ïóïê èí"));
|
343 | // model->setData(model->index(row, 1), tr("Âàñÿ Ïóïê èí"));
|
344 | // model->setData(model->index(row, 2) , tr("Ìóõîñðà íñê, Çàæîïèíñêèå âûñåëêè ä 1"));
|
344 | // model->setData(model->index(row, 2) , tr("Ìóõîñðà íñê, Çàæîïèíñêèå âûñåëêè ä 1"));
|
345 | 345 | ||
346 | 346 | ||
347 | model->submitAll();
|
347 | model->submitAll();
|
348 | 348 | ||
349 | row = model->rowCount();
|
349 | row = model->rowCount();
|
350 | QString tmp_str;
|
350 | QString tmp_str;
|
351 | int i_tmp;
|
351 | int i_tmp;
|
352 | i_tmp = model->data(model->index(row-1, 0)).toInt();
|
352 | i_tmp = model->data(model->index(row-1, 0)).toInt();
|
353 | tmp_str = model->data(model->index(row-1, 0)).toString(); // ãåíåðèì èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ êëàññà
|
353 | tmp_str = model->data(model->index(row-1, 0)).toString(); // ãåíåðèì èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ êëàññà
|
354 | 354 | ||
355 | tmp_str.append(tr("_Inctance"));
|
355 | tmp_str.append(tr("_Inctance"));
|
356 | model->setData(model->index(row-1, 3), tmp_str ); // è çàíîñèì çíà÷åíèå â òàáëèöó
|
356 | model->setData(model->index(row-1, 3), tmp_str ); // è çàíîñèì çíà÷åíèå â òàáëèöó
|
357 | 357 | ||
358 | model->submitAll();
|
358 | model->submitAll();
|
359 | mymodel->select();
|
359 | mymodel->select();
|
360 | 360 | ||
361 | 361 | ||
362 | }
|
362 | }
|
363 | */
|
363 | */
|
364 | 364 | ||
365 | void ClassEditor::addNewClass_new(){ |
365 | void ClassEditor::addNewClass_new(){ |
366 | 366 | ||
367 | int row = mymodel->rowCount(); |
367 | int row = mymodel->rowCount(); |
368 | 368 | ||
369 | mymodel->insertRows(row, 1); |
369 | mymodel->insertRows(row, 1); |
370 | mymodel->setData(mymodel->index(row, 1), QVariant(tr("New class")), Qt::EditRole); // ïðèñâàèâàåì íîâîå çíà÷åíèå ïîëþ "èìÿ êëàññà" |
370 | mymodel->setData(mymodel->index(row, 1), QVariant(tr("New class")), Qt::EditRole); // ïðèñâàèâàåì íîâîå çíà÷åíèå ïîëþ "èìÿ êëàññà" |
371 | 371 | ||
372 | 372 | ||
373 | mymodel->submitAll(); |
373 | mymodel->submitAll(); |
374 | row = mymodel->rowCount(); |
374 | row = mymodel->rowCount(); |
375 | QString tmp_str1, sql_str;
|
375 | QString tmp_str1, sql_str;
|
376 | int i_tmp1; |
376 | int i_tmp1; |
377 | i_tmp1 = mymodel->data(mymodel->index(row-1, 0)).toInt(); |
377 | i_tmp1 = mymodel->data(mymodel->index(row-1, 0)).toInt(); |
378 | tmp_str1 = mymodel->data(mymodel->index(row-1, 0)).toString(); // ãåíåðèì èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ êëàññà |
378 | tmp_str1 = mymodel->data(mymodel->index(row-1, 0)).toString(); // ãåíåðèì èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ êëàññà |
379 | 379 | ||
380 | tmp_str1.append(tr("_Inctance")); |
380 | tmp_str1.append(tr("_Inctance")); |
381 | SqlTable* tbl; |
381 | SqlTable* tbl; |
382 | tbl = new SqlTable(tmp_str1); // ñîçäàåì õðàíèëèùå îáúåêòîâ |
382 | tbl = new SqlTable(tmp_str1); // ñîçäàåì õðàíèëèùå îáúåêòîâ |
383 | sql_str = tbl->sqlString(); |
383 | sql_str = tbl->sqlString(); |
384 | bool ok; |
384 | bool ok; |
385 | 385 | ||
386 | ok = sql.createTable(tbl); |
386 | ok = sql.createTable(tbl); |
387 | 387 | ||
388 | if (!ok) { |
388 | if (!ok) { |
389 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
389 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
390 | this, // Ðîäèòåëüñêèé âèäæåò. |
390 | this, // Ðîäèòåëüñêèé âèäæåò. |
391 | QObject::tr("Database Error"), // Çàãîëîâîê. |
391 | QObject::tr("Database Error"), // Çàãîëîâîê. |
392 | sql.lasError()); // Òåêñò ñîîáùåíèÿ. |
392 | sql.lasError()); // Òåêñò ñîîáùåíèÿ. |
393 | delete tbl; |
393 | delete tbl; |
394 | mymodel->removeRow(row-1); |
394 | mymodel->removeRow(row-1); |
395 | mymodel->submitAll(); |
395 | mymodel->submitAll(); |
396 | mymodel->select(); |
396 | mymodel->select(); |
397 | ui->tableView_2->resizeRowsToContents(); |
397 | ui->tableView_2->resizeRowsToContents(); |
398 | return; // âûõîäèì íå ïðèìåíÿÿ èçìåíåíèé |
398 | return; // âûõîäèì íå ïðèìåíÿÿ èçìåíåíèé |
399 | 399 | ||
400 | }
|
400 | }
|
401 | 401 | ||
402 | delete tbl; |
402 | delete tbl; |
403 | mymodel->setData(mymodel->index(row-1, 3), QVariant(tmp_str1), Qt::EditRole); // è çàíîñèì çíà÷åíèå â òàáëèöó |
403 | mymodel->setData(mymodel->index(row-1, 3), QVariant(tmp_str1), Qt::EditRole); // è çàíîñèì çíà÷åíèå â òàáëèöó |
404 | 404 | ||
405 | 405 | ||
406 | 406 | ||
407 | // model->setData(model->index(row, 1), tr("Âàñÿ Ïóïê èí"));
|
407 | // model->setData(model->index(row, 1), tr("Âàñÿ Ïóïê èí"));
|
408 | // model->setData(model->index(row, 2) , tr("Ìóõîñðà íñê, Çàæîïèíñêèå âûñåëêè ä 1"));
|
408 | // model->setData(model->index(row, 2) , tr("Ìóõîñðà íñê, Çàæîïèíñêèå âûñåëêè ä 1"));
|
409 | 409 | ||
410 | 410 | ||
411 | //mymodel->submitAll();
|
411 | //mymodel->submitAll();
|
412 | 412 | ||
413 | //row = mymodel->rowCount();
|
413 | //row = mymodel->rowCount();
|
414 | 414 | ||
415 | 415 | ||
416 | //mymodel->select();
|
416 | //mymodel->select();
|
417 | 417 | ||
418 | 418 | ||
419 | }
|
419 | }
|
420 | 420 | ||
421 | 421 | ||
422 | void ClassEditor::addNewField(){ |
422 | void ClassEditor::addNewField(){ |
423 | // QSqlRecord rec = mymodel->record(1);
|
423 | // QSqlRecord rec = mymodel->record(1);
|
424 | //bool ok;
|
424 | //bool ok;
|
425 | //ok = rec.isEmpty();
|
425 | //ok = rec.isEmpty();
|
426 | //QString currientClassID;
|
426 | //QString currientClassID;
|
427 | //currientClassID = rec.value(1).toString();
|
427 | //currientClassID = rec.value(1).toString();
|
428 | QString Inctance_str; // èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ äëÿ âûáðàííîãî êëàññà |
428 | QString Inctance_str; // èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ äëÿ âûáðàííîãî êëàññà |
429 | QString query_str = tr("ALTER TABLE "); |
429 | QString query_str = tr("ALTER TABLE "); |
430 | QString db_error;
|
430 | QString db_error;
|
431 | QSqlQuery q;
|
431 | QSqlQuery q;
|
432 | int currRow = ClassEditor::currIndexOfClassesTable.row(); // |
432 | int currRow = ClassEditor::currIndexOfClassesTable.row(); // |
433 | Inctance_str = mymodel->data(mymodel->index(currRow, 3)).toString(); |
433 | Inctance_str = mymodel->data(mymodel->index(currRow, 3)).toString(); |
434 | query_str.append( Inctance_str); |
434 | query_str.append( Inctance_str); |
435 | query_str.append(tr(" ADD COLUMN `New field` CHAR(10)")); |
435 | query_str.append(tr(" ADD COLUMN `New field` CHAR(10)")); |
436 | bool ok = q.prepare(query_str); |
436 | bool ok = q.prepare(query_str); |
437 | 437 | ||
438 | ok = q.exec(); |
438 | ok = q.exec(); |
439 | if (!ok) { |
439 | if (!ok) { |
440 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
440 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
441 | this, // Ðîäèòåëüñêèé âèäæåò. |
441 | this, // Ðîäèòåëüñêèé âèäæåò. |
442 | QObject::tr("Database Error"), // Çàãîëîâîê. |
442 | QObject::tr("Database Error"), // Çàãîëîâîê. |
443 | q.lastError().text()); // Òåêñò ñîîáùåíèÿ. |
443 | q.lastError().text()); // Òåêñò ñîîáùåíèÿ. |
444 | 444 | ||
445 | return; // âûõîäèì íå ïðèìåíÿÿ èçìåíåíèé |
445 | return; // âûõîäèì íå ïðèìåíÿÿ èçìåíåíèé |
446 | 446 | ||
447 | }
|
447 | }
|
448 | 448 | ||
449 | int row = modelForDescription->rowCount(); |
449 | int row = modelForDescription->rowCount(); |
450 | modelForDescription->insertRows(row, 1); |
450 | modelForDescription->insertRows(row, 1); |
451 | modelForDescription->setData(modelForDescription->index(row, 5), QVariant(currClassID), Qt::EditRole); |
451 | modelForDescription->onlySetData(modelForDescription->index(row, 5), QVariant(currClassID), Qt::EditRole); |
452 | modelForDescription->setData(modelForDescription->index(row, 4), QVariant(tr("NULL")), Qt::EditRole); |
452 | modelForDescription->onlySetData(modelForDescription->index(row, 4), QVariant(tr("NULL")), Qt::EditRole); |
453 | 453 | ||
454 | modelForDescription->submitAll(); |
454 | modelForDescription->submitAll(); |
455 | 455 | ||
456 | delete model; |
456 | delete model; |
457 | delete tableForInstance; |
457 | delete tableForInstance; |
458 | model = new QSqlTableModel(); |
458 | model = new QSqlTableModel(); |
459 | tableForInstance = new QTableView(); |
459 | tableForInstance = new QTableView(); |
460 | model->setTable(Inctance_str); |
460 | model->setTable(Inctance_str); |
461 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
461 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
462 | tableForInstance->setModel(model); |
462 | tableForInstance->setModel(model); |
463 | tableForInstance->setWindowTitle(Inctance_str); |
463 | tableForInstance->setWindowTitle(Inctance_str); |
464 | tableForInstance->show(); |
464 | tableForInstance->show(); |
465 | }
|
465 | }
|
466 | 466 | ||
467 | 467 | ||
468 | 468 | ||
469 | 469 | ||
470 | 470 | ||
471 | 471 | ||
472 | 472 | ||
473 | 473 | ||
474 | 474 | ||
475 | 475 | ||
476 | // äîáàâëÿåì íîâûé êëàññ
|
476 | // äîáàâëÿåì íîâûé êëàññ
|
477 | void ClassEditor::on_pushButton_clicked(){ |
477 | void ClassEditor::on_pushButton_clicked(){ |
478 | //int i;
|
478 | //int i;
|
479 | //i++;
|
479 | //i++;
|
480 | /////ClassEditor::addNewClass();
|
480 | /////ClassEditor::addNewClass();
|
481 | ClassEditor::addNewClass_new(); |
481 | ClassEditor::addNewClass_new(); |
482 | mymodel->select(); |
482 | mymodel->select(); |
483 | //ui->tableView->setModel(mymodel);
|
483 | //ui->tableView->setModel(mymodel);
|
484 | 484 | ||
485 | }
|
485 | }
|
486 | 486 | ||
487 | void ClassEditor::on_tableView_clicked(const QModelIndex & index ){ |
487 | void ClassEditor::on_tableView_clicked(const QModelIndex & index ){ |
488 | int i, row, column; |
488 | int i, row, column; |
489 | i++; |
489 | i++; |
490 | row = index.row(); |
490 | row = index.row(); |
491 | column = index.column(); |
491 | column = index.column(); |
492 | currIndexOfClassesTable = index; |
492 | currIndexOfClassesTable = index; |
493 | QModelIndex index_tmp, index_instance;
|
493 | QModelIndex index_tmp, index_instance;
|
494 | QString tmp_str, filter_str, instance_str;
|
494 | QString tmp_str, filter_str, instance_str;
|
495 | index_tmp = ui->tableView->model()->index(row, 0); |
495 | index_tmp = ui->tableView->model()->index(row, 0); |
496 | index_instance = ui->tableView->model()->index(row, 3); |
496 | index_instance = ui->tableView->model()->index(row, 3); |
497 | tmp_str = ui->tableView->model()->data(index_tmp).toString(); |
497 | tmp_str = ui->tableView->model()->data(index_tmp).toString(); |
498 | instance_str = ui->tableView->model()->data(index_instance).toString(); |
498 | instance_str = ui->tableView->model()->data(index_instance).toString(); |
499 | modelForDescription->setInctance(instance_str); // ïåðåäàåì â ìîäåëü ïîëåé èìÿ òåêóùåé òàáëèöû-õðàíèëèùà |
499 | modelForDescription->setInctance(instance_str); // ïåðåäàåì â ìîäåëü ïîëåé èìÿ òåêóùåé òàáëèöû-õðàíèëèùà |
500 | 500 | ||
501 | 501 | ||
502 | 502 | ||
503 | 503 | ||
504 | // instance_str.append(tr("_inctance"));
|
504 | // instance_str.append(tr("_inctance"));
|
505 | /*
|
505 | /*
|
506 | Inctance_model.clear();
|
506 | Inctance_model.clear();
|
507 | Inctance_model.setTable(instance_str);
|
507 | Inctance_model.setTable(instance_str);
|
508 | Inctance_model.select();
|
508 | Inctance_model.select();
|
509 | tableForInstance_new.setModel(&Inctance_model);
|
509 | tableForInstance_new.setModel(&Inctance_model);
|
510 | tableForInstance_new.show();
|
510 | tableForInstance_new.show();
|
511 | */
|
511 | */
|
512 | // model->clear();
|
512 | // model->clear();
|
513 | tableForInstance->close(); |
513 | tableForInstance->close(); |
514 | delete model; |
514 | delete model; |
515 | delete tableForInstance; |
515 | delete tableForInstance; |
516 | model = new QSqlTableModel(); |
516 | model = new QSqlTableModel(); |
517 | tableForInstance = new QTableView(); |
517 | tableForInstance = new QTableView(); |
518 | model->setTable(instance_str); |
518 | model->setTable(instance_str); |
519 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
519 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
520 | tableForInstance->setModel(model); |
520 | tableForInstance->setModel(model); |
521 | 521 | ||
522 | model->select(); |
522 | model->select(); |
523 | tableForInstance->setWindowTitle(instance_str); |
523 | tableForInstance->setWindowTitle(instance_str); |
524 | tableForInstance->show(); |
524 | tableForInstance->show(); |
525 | 525 | ||
526 | // tableForInstance.setModel(model);
|
526 | // tableForInstance.setModel(model);
|
527 | tableForInstance->resizeColumnsToContents(); |
527 | tableForInstance->resizeColumnsToContents(); |
528 | 528 | ||
529 | currClassID = tmp_str; |
529 | currClassID = tmp_str; |
530 | // ui->label->setText(QVariant(currIndexOfClassesTable.row()).toString());
|
530 | // ui->label->setText(QVariant(currIndexOfClassesTable.row()).toString());
|
531 | filter_str = tr("ClassIdentifer = "); |
531 | filter_str = tr("ClassIdentifer = "); |
532 | filter_str.append(tmp_str); |
532 | filter_str.append(tmp_str); |
533 | modelForDescription->setFilter(filter_str); |
533 | modelForDescription->setFilter(filter_str); |
534 | modelForDescription->select(); |
534 | modelForDescription->select(); |
535 | ui->tableView_2->resizeColumnsToContents(); |
535 | ui->tableView_2->resizeColumnsToContents(); |
536 | i++; |
536 | i++; |
537 | }
|
537 | }
|
538 | 538 | ||
539 | 539 | ||
540 | 540 | ||
541 | void ClassEditor::on_pushButton_2_clicked(){ // îáðàáîò÷èê íàæàòèÿ êíîïðêè "Óäàëèòü êëàññ" |
541 | void ClassEditor::on_pushButton_2_clicked(){ // îáðàáîò÷èê íàæàòèÿ êíîïðêè "Óäàëèòü êëàññ" |
542 | QModelIndex model_index;
|
542 | QModelIndex model_index;
|
543 | QItemSelectionModel *selectionModel = ui->tableView->selectionModel(); |
543 | QItemSelectionModel *selectionModel = ui->tableView->selectionModel(); |
544 | QModelIndexList indexes = selectionModel->selectedIndexes(); |
544 | QModelIndexList indexes = selectionModel->selectedIndexes(); |
545 | QList<int> selectedRows; |
545 | QList<int> selectedRows; |
546 | selectedRows.clear(); |
546 | selectedRows.clear(); |
547 | foreach (model_index, indexes){ // ñïèñîê âñåõ âûäåëåííûõ ñòðîê |
547 | foreach (model_index, indexes){ // ñïèñîê âñåõ âûäåëåííûõ ñòðîê |
548 | if (!selectedRows.contains(model_index.row()) && (model_index.column()==1)) selectedRows.append(model_index.row()); // îñòàâëÿåì â ñïèñêå òîëüêî âûáðàííûå â ïåðâîé êîëîíêå |
548 | if (!selectedRows.contains(model_index.row()) && (model_index.column()==1)) selectedRows.append(model_index.row()); // îñòàâëÿåì â ñïèñêå òîëüêî âûáðàííûå â ïåðâîé êîëîíêå |
549 | 549 | ||
550 | }
|
550 | }
|
551 | qSort(selectedRows.begin(),selectedRows.end(), qGreater<int>()); // ñîðòèðóåì â îáðàòíîì ïîðÿäêå |
551 | qSort(selectedRows.begin(),selectedRows.end(), qGreater<int>()); // ñîðòèðóåì â îáðàòíîì ïîðÿäêå |
552 | 552 | ||
553 | 553 | ||
554 | for (int m =0; m < selectedRows.size(); ++m){ |
554 | for (int m =0; m < selectedRows.size(); ++m){ |
555 | 555 | ||
556 | ClassEditor::removeClass(selectedRows.at(m)); |
556 | ClassEditor::removeClass(selectedRows.at(m)); |
557 | 557 | ||
558 | 558 | ||
559 | 559 | ||
560 | }
|
560 | }
|
561 | mymodel->submitAll(); |
561 | mymodel->submitAll(); |
562 | ClassEditor::modelForDescription->select(); |
562 | ClassEditor::modelForDescription->select(); |
563 | 563 | ||
564 | }
|
564 | }
|
565 | 565 | ||
566 | void ClassEditor::on_pushButton_3_clicked(){ // îáðàáîò÷èê íàæàòèÿ êíîïêè "Íîâîå ïîëå" |
566 | void ClassEditor::on_pushButton_3_clicked(){ // îáðàáîò÷èê íàæàòèÿ êíîïêè "Íîâîå ïîëå" |
567 | int i; |
567 | int i; |
568 | i++; |
568 | i++; |
569 | ClassEditor::addNewField(); |
569 | ClassEditor::addNewField(); |
570 | ClassEditor::modelForDescription->select(); |
570 | ClassEditor::modelForDescription->select(); |
571 | ui->tableView_2->resizeColumnsToContents(); |
571 | ui->tableView_2->resizeColumnsToContents(); |
572 | }
|
572 | }
|
573 | 573 | ||
574 | 574 | ||
575 | void ClassEditor::on_pushButton_4_clicked(){ // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü ïîëå" |
575 | void ClassEditor::on_pushButton_4_clicked(){ // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü ïîëå" |
576 | // int i;
|
576 | // int i;
|
577 | QModelIndex model_index;
|
577 | QModelIndex model_index;
|
578 | QItemSelectionModel *selectionModel = ui->tableView_2->selectionModel(); |
578 | QItemSelectionModel *selectionModel = ui->tableView_2->selectionModel(); |
579 | QModelIndexList indexes = selectionModel->selectedIndexes(); |
579 | QModelIndexList indexes = selectionModel->selectedIndexes(); |
580 | //QModelIndexList indexes_fo_first_col; // èíäåêñû äëÿ ïåðâîãî ñòîëáöà (èìåíà êëàññîâ)
|
580 | //QModelIndexList indexes_fo_first_col; // èíäåêñû äëÿ ïåðâîãî ñòîëáöà (èìåíà êëàññîâ)
|
581 | //model_index = mymodel->selec;
|
581 | //model_index = mymodel->selec;
|
582 | //modelList = ui->tableView->SelectItems;
|
582 | //modelList = ui->tableView->SelectItems;
|
583 | //i = indexes.size();
|
583 | //i = indexes.size();
|
584 | QList<int> selectedRows; |
584 | QList<int> selectedRows; |
585 | //indexes_fo_first_col.clear();
|
585 | //indexes_fo_first_col.clear();
|
586 | /*
|
586 | /*
|
587 | foreach (model_index, indexes){ // ñïèñîê âñåõ âûäåëåííûõ ñòðîê
|
587 | foreach (model_index, indexes){ // ñïèñîê âñåõ âûäåëåííûõ ñòðîê
|
588 | if (!indexes_fo_first_col.contains(model_index) && (model_index.column()==1)) indexes_fo_first_col.append(model_index); // îñòàâëÿåì â ñïèñêå òîëüêî âûáðàííûå â ïåðâîé êîëîíêå
|
588 | if (!indexes_fo_first_col.contains(model_index) && (model_index.column()==1)) indexes_fo_first_col.append(model_index); // îñòàâëÿåì â ñïèñêå òîëüêî âûáðàííûå â ïåðâîé êîëîíêå
|
589 | 589 | ||
590 | }
|
590 | }
|
591 | */
|
591 | */
|
592 | selectedRows.clear(); |
592 | selectedRows.clear(); |
593 | foreach (model_index, indexes){ // ñïèñîê âñåõ âûäåëåííûõ ñòðîê |
593 | foreach (model_index, indexes){ // ñïèñîê âñåõ âûäåëåííûõ ñòðîê |
594 | if (!selectedRows.contains(model_index.row()) && (model_index.column()==1)) { |
594 | if (!selectedRows.contains(model_index.row()) && (model_index.column()==1)) { |
595 | selectedRows.append(model_index.row()); // îñòàâëÿåì â ñïèñêå òîëüêî âûáðàííûå â ïåðâîé êîëîíêå |
595 | selectedRows.append(model_index.row()); // îñòàâëÿåì â ñïèñêå òîëüêî âûáðàííûå â ïåðâîé êîëîíêå |
596 | }
|
596 | }
|
597 | }
|
597 | }
|
598 | 598 | ||
599 | qSort(selectedRows.begin(),selectedRows.end(), qGreater<int>()); // ñîðòèðóåì â îáðàòíîì ïîðÿäêå |
599 | qSort(selectedRows.begin(),selectedRows.end(), qGreater<int>()); // ñîðòèðóåì â îáðàòíîì ïîðÿäêå |
600 | 600 | ||
601 | QString Inctance_str; // èìÿ òàáëèöû-õðàíèëèùà |
601 | QString Inctance_str; // èìÿ òàáëèöû-õðàíèëèùà |
602 | Inctance_str = mymodel->data(mymodel->index(ClassEditor::currIndexOfClassesTable.row(), 3)).toString(); |
602 | Inctance_str = mymodel->data(mymodel->index(ClassEditor::currIndexOfClassesTable.row(), 3)).toString(); |
603 | for (int m =0; m < selectedRows.size(); ++m){ |
603 | for (int m =0; m < selectedRows.size(); ++m){ |
604 | 604 | ||
605 | 605 | ||
606 | QString query_str;
|
606 | QString query_str;
|
607 | QString field_name_str; // èìÿ óäàëÿåìîãî ïîëÿ |
607 | QString field_name_str; // èìÿ óäàëÿåìîãî ïîëÿ |
608 | QSqlQuery q;
|
608 | QSqlQuery q;
|
609 | 609 | ||
610 | query_str.clear(); |
610 | query_str.clear(); |
611 | 611 | ||
612 | 612 | ||
613 | field_name_str = modelForDescription->data(modelForDescription->index(selectedRows.at(m), 1)).toString(); |
613 | field_name_str = modelForDescription->data(modelForDescription->index(selectedRows.at(m), 1)).toString(); |
614 | 614 | ||
615 | query_str.append(tr("ALTER TABLE ")); |
615 | query_str.append(tr("ALTER TABLE ")); |
616 | query_str.append(Inctance_str); |
616 | query_str.append(Inctance_str); |
617 | query_str.append(tr(" DROP COLUMN `")); |
617 | query_str.append(tr(" DROP COLUMN `")); |
618 | query_str.append(field_name_str); |
618 | query_str.append(field_name_str); |
619 | query_str.append(tr("`")); |
619 | query_str.append(tr("`")); |
620 | q.prepare(query_str); |
620 | q.prepare(query_str); |
621 | bool ok = q.exec(); |
621 | bool ok = q.exec(); |
622 | if (!ok) { |
622 | if (!ok) { |
623 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
623 | QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå. |
624 | this, // Ðîäèòåëüñêèé âèäæåò. |
624 | this, // Ðîäèòåëüñêèé âèäæåò. |
625 | QObject::tr("Database Error"), // Çàãîëîâîê. |
625 | QObject::tr("Database Error"), // Çàãîëîâîê. |
626 | q.lastError().text()); // Òåêñò ñîîáùåíèÿ. |
626 | q.lastError().text()); // Òåêñò ñîîáùåíèÿ. |
627 | 627 | ||
628 | return; // âûõîäèì íå ïðèìåíÿÿ èçìåíåíèé |
628 | return; // âûõîäèì íå ïðèìåíÿÿ èçìåíåíèé |
629 | 629 | ||
630 | }
|
630 | }
|
631 | 631 | ||
632 | 632 | ||
633 | 633 | ||
634 | modelForDescription->removeRow(selectedRows.at(m)); |
634 | modelForDescription->removeRow(selectedRows.at(m)); |
635 | 635 | ||
636 | }
|
636 | }
|
637 | delete model; |
637 | delete model; |
638 | delete tableForInstance; |
638 | delete tableForInstance; |
639 | model = new QSqlTableModel(); |
639 | model = new QSqlTableModel(); |
640 | tableForInstance = new QTableView(); |
640 | tableForInstance = new QTableView(); |
641 | model->setTable(Inctance_str); |
641 | model->setTable(Inctance_str); |
642 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
642 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
643 | tableForInstance->setModel(model); |
643 | tableForInstance->setModel(model); |
644 | tableForInstance->setWindowTitle(Inctance_str); |
644 | tableForInstance->setWindowTitle(Inctance_str); |
645 | tableForInstance->show(); |
645 | tableForInstance->show(); |
646 | //i = selectedRows.size();
|
646 | //i = selectedRows.size();
|
647 | 647 | ||
648 | //if (i > 0) model_index = indexes.at(0);
|
648 | //if (i > 0) model_index = indexes.at(0);
|
649 | }
|
649 | }
|
650 | 650 | ||
651 | 651 | ||
652 | void ClassEditor::on_pushButton_5_clicked(){ // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü âñå ïîëÿ" |
652 | void ClassEditor::on_pushButton_5_clicked(){ // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü âñå ïîëÿ" |
653 | int row; |
653 | int row; |
654 | row = ClassEditor::modelForDescription->rowCount(); |
654 | row = ClassEditor::modelForDescription->rowCount(); |
655 | ClassEditor::modelForDescription->removeRows(0, row); |
655 | ClassEditor::modelForDescription->removeRows(0, row); |
656 | ClassEditor::modelForDescription->submitAll(); |
656 | ClassEditor::modelForDescription->submitAll(); |
657 | }
|
657 | }
|
658 | 658 | ||
659 | void ClassEditor::on_myModel_dataChanged( const QModelIndex & topLeft, const QModelIndex & bottomRight ){ |
659 | void ClassEditor::on_myModel_dataChanged( const QModelIndex & topLeft, const QModelIndex & bottomRight ){ |
660 | 660 | ||
661 | int i; |
661 | int i; |
662 | i++; |
662 | i++; |
663 | ui->tableView->resizeColumnsToContents(); |
663 | ui->tableView->resizeColumnsToContents(); |
664 | 664 | ||
665 | 665 | ||
666 | 666 | ||
667 | 667 | ||
668 | 668 | ||
669 | }
|
669 | }
|
670 | 670 | ||
671 | void ClassEditor::on_modelForDescription_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ){ |
671 | void ClassEditor::on_modelForDescription_dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ){ |
672 | ui->tableView_2->resizeColumnsToContents(); |
672 | ui->tableView_2->resizeColumnsToContents(); |
673 | 673 | ||
674 | /*
|
674 | /*
|
675 | QString instance_str;
|
675 | QString instance_str;
|
676 | instance_str = mymodel->data(mymodel->index(ClassEditor::currIndexOfClassesTable.row(), 3)).toString();
|
676 | instance_str = mymodel->data(mymodel->index(ClassEditor::currIndexOfClassesTable.row(), 3)).toString();
|
677 | tableForInstance->close();
|
677 | tableForInstance->close();
|
678 | delete model;
|
678 | delete model;
|
679 | delete tableForInstance;
|
679 | delete tableForInstance;
|
680 | model = new QSqlTableModel();
|
680 | model = new QSqlTableModel();
|
681 | tableForInstance = new QTableView();
|
681 | tableForInstance = new QTableView();
|
682 | model->setTable(instance_str);
|
682 | model->setTable(instance_str);
|
683 | model->setEditStrategy(QSqlTableModel::OnManualSubmit);
|
683 | model->setEditStrategy(QSqlTableModel::OnManualSubmit);
|
684 | tableForInstance->setModel(model);
|
684 | tableForInstance->setModel(model);
|
685 | 685 | ||
686 | model->select();
|
686 | model->select();
|
687 | tableForInstance->setWindowTitle(instance_str);
|
687 | tableForInstance->setWindowTitle(instance_str);
|
688 | tableForInstance->show();
|
688 | tableForInstance->show();
|
689 | */
|
689 | */
|
690 | }
|
690 | }
|
691 | 691 | ||
692 | void ClassEditor::on_action_ID_triggered(bool is_checked){ // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü ID" |
692 | void ClassEditor::on_action_ID_triggered(bool is_checked){ // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü ID" |
693 | if (is_checked) ui->tableView->showColumn(0); |
693 | if (is_checked) ui->tableView->showColumn(0); |
694 | else ui->tableView->hideColumn(0); |
694 | else ui->tableView->hideColumn(0); |
695 | ui->tableView->resizeColumnsToContents(); |
695 | ui->tableView->resizeColumnsToContents(); |
696 | }
|
696 | }
|
697 | 697 | ||
698 | void ClassEditor::on_action_showAlias_triggered(bool is_checked){ // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü ïñåâäîíèì" |
698 | void ClassEditor::on_action_showAlias_triggered(bool is_checked){ // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü ïñåâäîíèì" |
699 | if (is_checked) ui->tableView->showColumn(2); |
699 | if (is_checked) ui->tableView->showColumn(2); |
700 | else ui->tableView->hideColumn(2); |
700 | else ui->tableView->hideColumn(2); |
701 | ui->tableView->resizeColumnsToContents(); |
701 | ui->tableView->resizeColumnsToContents(); |
702 | }
|
702 | }
|
703 | 703 | ||
704 | void ClassEditor::on_action_showInstance_triggered(bool is_checked){ // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü õðàíèëèùà îáúåêòîâ" |
704 | void ClassEditor::on_action_showInstance_triggered(bool is_checked){ // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü õðàíèëèùà îáúåêòîâ" |
705 | if (is_checked) ui->tableView->showColumn(3); |
705 | if (is_checked) ui->tableView->showColumn(3); |
706 | else ui->tableView->hideColumn(3); |
706 | else ui->tableView->hideColumn(3); |
707 | ui->tableView->resizeColumnsToContents(); |
707 | ui->tableView->resizeColumnsToContents(); |
708 | }
|
708 | }
|
709 | 709 | ||
710 | 710 | ||
711 | 711 | ||
712 | void ClassEditor::on_action_removeAllClasses(){ // îáðàáàòûâàåì âûáîð â ìåíþ "Óäàëèòü âñå êëàññû" |
712 | void ClassEditor::on_action_removeAllClasses(){ // îáðàáàòûâàåì âûáîð â ìåíþ "Óäàëèòü âñå êëàññû" |
713 | int row; |
713 | int row; |
714 | row = ClassEditor::mymodel->rowCount(); |
714 | row = ClassEditor::mymodel->rowCount(); |
715 | for (int m=0; m < row; ++m){ |
715 | for (int m=0; m < row; ++m){ |
716 | ClassEditor::removeClass(0); |
716 | ClassEditor::removeClass(0); |
717 | //ClassEditor::mymodel->removeRows(0, row);
|
717 | //ClassEditor::mymodel->removeRows(0, row);
|
718 | }
|
718 | }
|
719 | ClassEditor::mymodel->submitAll(); |
719 | ClassEditor::mymodel->submitAll(); |
720 | ClassEditor::modelForDescription->select(); |
720 | ClassEditor::modelForDescription->select(); |
721 | }
|
721 | }
|
722 | 722 | ||
723 | void ClassEditor::removeClass(int class_row){ // ôóíêöèÿ óäàëÿåò êëàññ, íàõîäÿùèéñÿ â ñòðîêå ñ íîìåðîì class_row |
723 | void ClassEditor::removeClass(int class_row){ // ôóíêöèÿ óäàëÿåò êëàññ, íàõîäÿùèéñÿ â ñòðîêå ñ íîìåðîì class_row |
724 | QModelIndex index_tmp;
|
724 | QModelIndex index_tmp;
|
725 | QString tmp_str, filter_str;
|
725 | QString tmp_str, filter_str;
|
726 | index_tmp = ui->tableView->model()->index(class_row, 0); |
726 | index_tmp = ui->tableView->model()->index(class_row, 0); |
727 | tmp_str = ui->tableView->model()->data(index_tmp).toString(); |
727 | tmp_str = ui->tableView->model()->data(index_tmp).toString(); |
728 | currClassID = tmp_str; |
728 | currClassID = tmp_str; |
729 | // ui->label->setText(QVariant(currIndexOfClassesTable.row()).toString());
|
729 | // ui->label->setText(QVariant(currIndexOfClassesTable.row()).toString());
|
730 | filter_str = tr("ClassIdentifer = "); |
730 | filter_str = tr("ClassIdentifer = "); |
731 | filter_str.append(tmp_str); |
731 | filter_str.append(tmp_str); |
732 | modelForDescription->setFilter(filter_str); // îáíîâëÿåì òàáëèöó ïîëåé |
732 | modelForDescription->setFilter(filter_str); // îáíîâëÿåì òàáëèöó ïîëåé |
733 | ClassEditor::on_pushButton_5_clicked(); // ñíà÷àëà óäàëèì âñå ïîëÿ êëàññà |
733 | ClassEditor::on_pushButton_5_clicked(); // ñíà÷àëà óäàëèì âñå ïîëÿ êëàññà |
734 | mymodel->removeRow(class_row); // òåïåðü óäàëÿåì ñàì êëàññ |
734 | mymodel->removeRow(class_row); // òåïåðü óäàëÿåì ñàì êëàññ |
735 | mymodel->submitAll(); // ôèêñèðóåì èçìåíåíèÿ |
735 | mymodel->submitAll(); // ôèêñèðóåì èçìåíåíèÿ |
736 | ui->tableView->resizeColumnsToContents(); |
736 | ui->tableView->resizeColumnsToContents(); |
737 | ui->tableView_2->resizeColumnsToContents(); |
737 | ui->tableView_2->resizeColumnsToContents(); |
738 | 738 | ||
739 | }
|
739 | }
|
740 | 740 | ||
741 | 741 | ||
742 | void ClassEditor::on_field_changed(){ // ïîìåíÿëîñü èìÿ ïîëÿ |
742 | void ClassEditor::on_field_changed(){ // ïîìåíÿëîñü èìÿ ïîëÿ |
743 | ClassEditor::refreshInctance(); |
743 | ClassEditor::refreshInctance(); |
744 | }
|
744 | }
|
745 | 745 | ||
746 | 746 | ||
747 | 747 | ||
748 | 748 | ||
749 | void ClassEditor::refreshInctance(){ // îáíîâèì ìîäåëü òàáëèöû-õðàíèëèùà |
749 | void ClassEditor::refreshInctance(){ // îáíîâèì ìîäåëü òàáëèöû-õðàíèëèùà |
750 | 750 | ||
751 | QString Inctance_str; // èìÿ òàáëèöû-õðàíèëèùà |
751 | QString Inctance_str; // èìÿ òàáëèöû-õðàíèëèùà |
752 | Inctance_str = mymodel->data(mymodel->index(ClassEditor::currIndexOfClassesTable.row(), 3)).toString(); |
752 | Inctance_str = mymodel->data(mymodel->index(ClassEditor::currIndexOfClassesTable.row(), 3)).toString(); |
753 | delete model; |
753 | delete model; |
754 | delete tableForInstance; |
754 | delete tableForInstance; |
755 | model = new QSqlTableModel(); |
755 | model = new QSqlTableModel(); |
756 | tableForInstance = new QTableView(); |
756 | tableForInstance = new QTableView(); |
757 | model->setTable(Inctance_str); |
757 | model->setTable(Inctance_str); |
758 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
758 | model->setEditStrategy(QSqlTableModel::OnManualSubmit); |
759 | model->select(); |
759 | model->select(); |
760 | tableForInstance->setModel(model); |
760 | tableForInstance->setModel(model); |
761 | tableForInstance->setWindowTitle(Inctance_str); |
761 | tableForInstance->setWindowTitle(Inctance_str); |
762 | tableForInstance->resizeRowsToContents(); |
762 | tableForInstance->resizeRowsToContents(); |
763 | tableForInstance->show(); |
763 | tableForInstance->show(); |
764 | 764 | ||
765 | }
|
765 | }
|
766 | 766 |