Хранилища Subversion OpenInventory

Редакция

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

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

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

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

157
159

158
160

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

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

165
167
        model->select();
166
168

167
169

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

171
173
        bool okey;
172
174
        int index;
173
175
        QSqlRecord record;
174
176

175
177

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

179
181

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

183
185
        tableView->resizeColumnsToContents();
184
186

185
187

186
188
        view.resizeColumnsToContents();
187
189

188
190
        tableView->show();
189
191

190
192

191
193

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

-
 
254

-
 
255
                            }
-
 
256

-
 
257
*/
-
 
258
    if (!ok) {
-
 
259
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
-
 
260
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
-
 
261
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
-
 
262
                                                                            sql.lastError().text());          // Òåêñò ñîîáùåíèÿ.
-
 
263
                     }
-
 
264
else {
-
 
265
-
 
266
        QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
-
 
267
  &nbs
-
 
268
-
 
269
-
 
270
-
 
271
-
 
272
-
 
273
-
 
274
-
 
275
-
 
276
-
 
277
-
 
278