Хранилища Subversion OpenInventory

Редакция

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

Редакция 94 Редакция 95
1
1
#include "mainwindow.h"
2
2
#include "ui_mainwindow.h"
3
3
4
4
MainWindow::MainWindow(QWidget *parent) :
5
5
    QMainWindow(parent),
6
6
    ui(new Ui::MainWindow)
7
7
{
8
8
    ui->setupUi(this);
9
9
10
10
   MainWindow::readModel();
11
11
12
12
   //QString model_str;
13
13
   MainWindow::creatModelString();
14
14
   int i;
15
15
   i++;
16
16
    QFile file_tmp("./temp.txt");
17
17
    bool ok;
18
18
    ok = file_tmp.open(QIODevice::ReadWrite | QIODevice::Text);
19
19
    QTextStream out(&file_tmp);
20
20
    out << MainWindow::modelString;
21
21
    file_tmp.close();
22
22
23
23
    MainWindow::openDataBase();
-
 
24
    MainWindow::buildPreviewModel(tr("3"));
24
25
25
26
}
26
27
27
28
MainWindow::~MainWindow()
28
29
{
29
30
    delete ui;
30
31
}
31
32
32
33
void MainWindow::changeEvent(QEvent *e)
33
34
{
34
35
    QMainWindow::changeEvent(e);
35
36
    switch (e->type()) {
36
37
    case QEvent::LanguageChange:
37
38
        ui->retranslateUi(this);
38
39
        break;
39
40
    default:
40
41
        break;
41
42
    }
42
43
}
43
44
44
45
45
46
bool MainWindow::readModel(){
46
47
    bool result;
47
48
    QString model_str;
48
49
    QFile file(":/model.txt");
49
50
50
51
   rootItem1 = new  QTreeWidgetItem(ui->treeWidget);
51
52
    rootItem1->setText(0, tr("Óðîâåíü 1"));
52
53
   // rootItem2 = new  QTreeWidgetItem(rootItem1);
53
54
   // rootItem2->setText(0, tr("óðîâåíü 2"));
54
55
    rootItem1->setCheckState(0,Qt::Checked);
55
56
   // rootItem2->setCheckState(0,Qt::Checked);
56
57
57
58
58
59
59
60
    result = file.open(QIODevice::ReadOnly);
60
61
    if (result) {
61
62
                     model_str = QString(tr(file.readAll()));
62
63
                }
63
64
64
65
    setupModelData(model_str.split(QString("\n")), rootItem1);
65
66
66
67
67
68
    return result;
68
69
69
70
}
70
71
71
72
72
73
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent)
73
74
{
74
75
    QList<QTreeWidgetItem*> parents;
75
76
    QList<int> indentations;
76
77
    parents << parent;
77
78
    indentations << 0;
78
79
79
80
    int number = 0;
80
81
81
82
    while (number < lines.count()) {
82
83
        int position = 0;
83
84
        while (position < lines[number].length()) {
84
85
            if (lines[number].mid(position, 1) != " ")
85
86
                break;
86
87
            position++;
87
88
        }
88
89
89
90
        QString lineData = lines[number].mid(position).trimmed();
90
91
91
92
        if (!lineData.isEmpty()) {
92
93
            // Read the column data from the rest of the line.
93
94
            QStringList columnStrings = lineData.split("\t", QString::SkipEmptyParts);
94
95
            QList<QVariant> columnData;
95
96
            for (int column = 0; column < columnStrings.count(); ++column)
96
97
                columnData << columnStrings[column];
97
98
98
99
            if (position > indentations.last()) {
99
100
                // The last child of the current parent is now the new parent
100
101
                // unless the current parent has no children.
101
102
102
103
                if (parents.last()->childCount() > 0) {
103
104
                    parents << parents.last()->child(parents.last()->childCount()-1);
104
105
                    indentations << position;
105
106
                }
106
107
            } else {
107
108
                while (position < indentations.last() && parents.count() > 0) {
108
109
                    parents.pop_back();
109
110
                    indentations.pop_back();
110
111
                }
111
112
            }
112
113
113
114
            // Append a new item to the current parent's list of children.
114
115
          // // //  parents.last()->appendChild(new QTreeWidgetItem(columnData, parents.last()));
115
116
            QTreeWidgetItem* itm_tmp;
116
117
            itm_tmp = new QTreeWidgetItem( parents.last());
117
118
118
119
            itm_tmp->setText(0, QString(columnData.at(0).toString()));
119
120
            if (columnData.at(1).toString() == "true") {
120
121
                                                            itm_tmp->setCheckState(0,Qt::Checked);
121
122
                                                        }
122
123
            else itm_tmp->setCheckState(0,Qt::Unchecked);
123
124
            itm_tmp->setText(1, QString(columnData.at(2).toString()));
124
125
            itm_tmp->setText(2, QVariant(number).toString()); // íîìåð ñòðîêè â ôàéëå-ìîäåëè îòîáðàæåíèÿ
125
126
            itm_tmp->setText(3, QVariant(indentations.size()).toString());
126
127
        }
127
128
128
129
        number++;
129
130
    }
130
131
}
131
132
132
133
133
134
/*
134
135
void MainWindow::openBase()
135
136
{
136
137

137
138
        db = QSqlDatabase::addDatabase("QMYSQL");
138
139
        pdb = &db;
139
140
        raportFrm.pdb = &db;
140
141

141
142
        pdb->setHostName(hostName);
142
143
        pdb->setDatabaseName(baseName);
143
144
        pdb->setUserName(userName);
144
145
        pdb->setPassword(password);
145
146
        bool ok = pdb->open();
146
147
        if (!ok) {
147
148
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
148
149
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
149
150
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
150
151
                                                                                pdb->lastError().text());          // Òåêñò ñîîáùåíèÿ.
151
152
                         }
152
153
        if (ok)
153
154
        {lineEdit-> insert(tr("Áàçà óñïåøíî îòêðûòà"));
154
155
        }
155
156
        else {lineEdit-> insert(tr("Áàçà íåäîñòóïíà. Êîä îøèáêè: "));
156
157
                  lineEdit-> insert(pdb->lastError().text());
157
158
                 }
158
159

159
160

160
161

161
162
        model = new QSqlTableModel(this);
162
163
        model->setTable(tableName);
163
164

164
165
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
165
166
        model->setSort(0, Qt::AscendingOrder);
166
167

167
168
        model->select();
168
169

169
170

170
171
        QSqlField field(tr("age"), QVariant::Int);
171
172
        field.setValue(QString(tr("123")));
172
173

173
174
        bool okey;
174
175
        int index;
175
176
        QSqlRecord record;
176
177

177
178

178
179
        tableView->setModel(model);
179
180
        view.setModel(model);
180
181

181
182

182
183
        tableView->setAlternatingRowColors(true);
183
184
        view.setAlternatingRowColors(true);
184
185

185
186
        tableView->resizeColumnsToContents();
186
187

187
188

188
189
        view.resizeColumnsToContents();
189
190

190
191
        tableView->show();
191
192

192
193

193
194

194
195
        initTreeWidget();
195
196
}
196
197
*/
197
198
198
199
199
200
void MainWindow::creatModelString(){
200
201
201
202
    MainWindow::modelString.clear(); // î÷èùàåì ñòðîêó ìîäåëè
202
203
 //   for (int i =0; i < rootItem1->childCount(); ++i )
203
204
204
205
    {MainWindow::addChildsString(rootItem1, 0);}
205
206
206
207
    int root_item_child_count;
207
208
    int i;
208
209
    root_item_child_count = rootItem1->childCount();
209
210
    i++;
210
211
211
212
}
212
213
213
214
214
215
void MainWindow::addChildsString(QTreeWidgetItem *parentItem, int level){
215
216
    int child_count;
216
217
    child_count = parentItem->childCount();
217
218
    for (int i=0; i < child_count; ++i){
218
219
        for (int m=0; m < level; ++m){
219
220
        modelString.append(tr("    ")); // ÷åòûðå ïðîáåëà - ïðèçíàê òîãî, ÷òî ýòî íîâûé óðîâåíü âëîæåíèÿ
220
221
    }
221
222
        modelString.append(parentItem->child(i)->text(0)); // â ïåðâîé êîëîíêå - èìÿ êëàññà
222
223
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
223
224
        if (parentItem->child(i)->checkState(0) ==  Qt::Checked) {modelString.append(tr("true"));} // åñëè ãàëî÷êà ñòîèò, çàíîñèì "true", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ áóäóò
224
225
            else {modelString.append(tr("false"));} // åñëè êëàññ íå âûáðàí - çàíîñèì "false", ýëåìåíòû êëàññà â ïðåäñòàâëåíèè îòîáðàæàòüñÿ íå áóäóò
225
226
        modelString.append(tr("\t\t\t\t")); // ÷åòûðå òàáóëÿöèè - ïðèçíàê íîâîãî ñòîëáöà
226
227
        modelString.append(parentItem->child(i)->text(1)); // âî âòîðîé êîëîíêå - ID êëàññà
227
228
         modelString.append(tr("\n")); // êîíåö ñòðîêè
228
229
        if (parentItem->child(i)->childCount() > 0) { MainWindow::addChildsString(parentItem->child(i), level+1);}
229
230
230
231
    }
231
232
int i;
232
233
i++;
233
234
}
234
235
235
236
236
237
bool MainWindow::openDataBase(){
237
238
    QString errorString;
238
239
    sql = QSqlDatabase::addDatabase("QMYSQL");
239
240
    sql.setDatabaseName(tr("an_db"));
240
241
    sql.setHostName(tr("localhost"));
241
242
    sql.setUserName(tr("an"));
242
243
    sql.setPassword(tr("393939"));
243
244
244
245
    bool ok;
245
246
    ok = sql.open();
246
247
247
248
    /*
248
249
    if (!ok) {
249
250
                                QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
250
251
                                                                                this,                      // Ðîäèòåëüñêèé âèäæåò.
251
252
                                                                                QObject::tr("Database Error"),   // Çàãîëîâîê.
252
253
                                                                                sql.lastError().text() );         // Òåêñò ñîîáùåíèÿ.
253
254

254
255

255
256
                            }
256
257

257
258
*/
258
259
    if (!ok) {
259
260
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
260
261
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
261
262
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
262
263
                                                                            sql.lastError().text());          // Òåêñò ñîîáùåíèÿ.
263
264
                     
264
265
265
266
266
267
267
268
268
269
269
270
270
271
271
272
272
273
273
274
274
275
275
276
276
277
277
278
278
279
279
280
280
281
281
282
282
283
283
284
-
 
285
-
 
286
-
 
287
284
288
-
 
289
-
 
290
-
 
291
-
 
292
-
 
293
-
 
294
-
 
295
-
 
296
-
 
297
-
 
298
-
 
299
-
 
300
-
 
301
-
 
302
285
303
286
304
287
305
288
306
289
307
-
 
308
-
 
309
-
 
310
-
 
311
-
 
312
-
 
313
-
 
314
-
 
315
-
 
316
-
 
317
-
 
318
-
 
319
-
 
320
-
 
321
-
 
322
-
 
323
-
 
324
-
 
325
-
 
326
-
 
327
-
 
328
-
 
329
-
 
330
-
 
331
-
 
332
-
 
333
-
 
334
-
 
335
-
 
336
-
 
337
-
 
338
-
 
339
-
 
340
-
 
341
-
 
342
-
 
343
-
 
344
-
 
345
-
 
346
-
 
347
-
 
348
-
 
349
-
 
350
-
 
351
-
 
352
-
 
353
-
 
354
-
 
355
-
 
356
-
 
357
-
 
358
-
 
359
-
 
360
-
 
361
-
 
362
-
 
363
290
364