equal
deleted
inserted
replaced
20 #include <QModelIndex> |
20 #include <QModelIndex> |
21 |
21 |
22 #include "ammoSchemeModel.h" |
22 #include "ammoSchemeModel.h" |
23 #include "hwconsts.h" |
23 #include "hwconsts.h" |
24 |
24 |
25 QList<QVariant> defaultScheme = QList<QVariant>() |
25 QList<QVariant> defaultScheme = QList<QVariant>() |
26 << QVariant("Default") // name 0 |
26 << QVariant("Default") // name 0 |
27 << QVariant(false) // fortsmode 1 |
27 << QVariant(false) // fortsmode 1 |
28 << QVariant(false) // team divide 2 |
28 << QVariant(false) // team divide 2 |
29 << QVariant(false) // solid land 3 |
29 << QVariant(false) // solid land 3 |
30 << QVariant(false) // border 4 |
30 << QVariant(false) // border 4 |
31 << QVariant(false) // low gravity 5 |
31 << QVariant(false) // low gravity 5 |
39 << QVariant(5) // case prob 13 |
39 << QVariant(5) // case prob 13 |
40 ; |
40 ; |
41 |
41 |
42 AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) : |
42 AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) : |
43 QAbstractTableModel(parent), |
43 QAbstractTableModel(parent), |
44 fileConfig(fileName, QSettings::IniFormat) |
44 fileConfig(fileName, QSettings::IniFormat), |
|
45 numberOfDefaultSchemes(2) |
45 { |
46 { |
46 QStringList predefSchemesNames; |
47 QStringList predefSchemesNames; |
47 predefSchemesNames |
48 predefSchemesNames |
48 << "Default" |
49 << "Default" |
49 << "Pro mode"; |
50 << "Pro mode"; |
50 |
51 |
51 QStringList spNames = QStringList() |
52 spNames = QStringList() |
52 << "name" // 0 |
53 << "name" // 0 |
53 << "fortsmode" // 1 |
54 << "fortsmode" // 1 |
54 << "divteams" // 2 |
55 << "divteams" // 2 |
55 << "solidland" // 3 |
56 << "solidland" // 3 |
56 << "border" // 4 |
57 << "border" // 4 |
133 | Qt::ItemIsEditable; |
134 | Qt::ItemIsEditable; |
134 } |
135 } |
135 |
136 |
136 bool AmmoSchemeModel::setData(const QModelIndex & index, const QVariant & value, int role) |
137 bool AmmoSchemeModel::setData(const QModelIndex & index, const QVariant & value, int role) |
137 { |
138 { |
138 if (!index.isValid() || index.row() < 0 |
139 if (!index.isValid() || index.row() < numberOfDefaultSchemes |
139 || index.row() >= schemes.size() |
140 || index.row() >= schemes.size() |
140 || index.column() >= defaultScheme.size() |
141 || index.column() >= defaultScheme.size() |
141 || role != Qt::EditRole) |
142 || role != Qt::EditRole) |
142 return false; |
143 return false; |
143 |
144 |
155 newScheme[0] = QVariant(tr("new")); |
156 newScheme[0] = QVariant(tr("new")); |
156 |
157 |
157 schemes.insert(row, newScheme); |
158 schemes.insert(row, newScheme); |
158 |
159 |
159 endInsertRows(); |
160 endInsertRows(); |
|
161 |
|
162 return true; |
160 } |
163 } |
161 |
164 |
162 bool AmmoSchemeModel::removeRows(int row, int count, const QModelIndex & parent) |
165 bool AmmoSchemeModel::removeRows(int row, int count, const QModelIndex & parent) |
163 { |
166 { |
|
167 if(count != 1 |
|
168 || row < numberOfDefaultSchemes |
|
169 || row >= schemes.size()) |
|
170 return false; |
|
171 |
164 beginRemoveRows(parent, row, row); |
172 beginRemoveRows(parent, row, row); |
165 |
173 |
166 fileConfig.remove(schemes[row][0].toString()); |
|
167 schemes.removeAt(row); |
174 schemes.removeAt(row); |
168 |
175 |
169 endRemoveRows(); |
176 endRemoveRows(); |
|
177 |
|
178 return true; |
170 } |
179 } |
171 |
180 |
172 QVariant AmmoSchemeModel::data(const QModelIndex &index, int role) const |
181 QVariant AmmoSchemeModel::data(const QModelIndex &index, int role) const |
173 { |
182 { |
174 if (!index.isValid() || index.row() < 0 |
183 if (!index.isValid() || index.row() < 0 |
181 return schemes[index.row()][index.column()]; |
190 return schemes[index.row()][index.column()]; |
182 } |
191 } |
183 |
192 |
184 void AmmoSchemeModel::Save() |
193 void AmmoSchemeModel::Save() |
185 { |
194 { |
186 fileConfig.beginWriteArray("schemes"); |
195 fileConfig.beginWriteArray("schemes", schemes.size()); |
|
196 |
187 for (int i = 0; i < schemes.size(); ++i) { |
197 for (int i = 0; i < schemes.size(); ++i) { |
188 fileConfig.setArrayIndex(i); |
198 fileConfig.setArrayIndex(i); |
189 |
199 |
190 QList<QVariant> scheme = schemes[i]; |
200 QList<QVariant> scheme = schemes[i]; |
191 |
201 |
192 for (int k = 0; k < spNames.size(); ++k) |
202 for (int k = 0; k < scheme.size(); ++k) |
193 fileConfig.setValue(spNames[k], scheme[k]); |
203 fileConfig.setValue(spNames[k], scheme[k]); |
194 } |
204 } |
195 fileConfig.endArray(); |
205 fileConfig.endArray(); |
196 } |
206 } |
197 |
207 |