author | unc0rr |
Thu, 16 Feb 2012 20:32:47 +0400 | |
changeset 6690 | 46b3f4776538 |
parent 6616 | f77bb02b669f |
child 6700 | e04da46ee43c |
permissions | -rw-r--r-- |
/* * Hedgewars, a free turn based strategy game * Copyright (c) 2005-2011 Andrey Korotaev <unC0Rr@gmail.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include <QDebug> #include <QModelIndex> #include "ammoSchemeModel.h" #include "hwconsts.h" QList<QVariant> defaultScheme = QList<QVariant>() << QVariant("Default") // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(false) // solid land 3 << QVariant(false) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(false) // shared ammo 15 << QVariant(false) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(false) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(45) // turn time 27 << QVariant(100) // init health 28 << QVariant(15) // sudden death 29 << QVariant(5) // case prob 30 << QVariant(3) // mines time 31 << QVariant(4) // mines number 32 << QVariant(0) // mine dud pct 33 << QVariant(2) // explosives 34 << QVariant(35) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) : QAbstractTableModel(parent), fileConfig(fileName, QSettings::IniFormat) { predefSchemesNames = QStringList() << "Default" << "Pro Mode" << "Shoppa" << "Clean Slate" << "Minefield" << "Barrel Mayhem" << "Tunnel Hogs" << "Fort Mode" << "Timeless" << "Thinking with Portals" << "King Mode" ; numberOfDefaultSchemes = predefSchemesNames.size(); spNames = QStringList() << "name" // 0 << "fortsmode" // 1 << "divteams" // 2 << "solidland" // 3 << "border" // 4 << "lowgrav" // 5 << "laser" // 6 << "invulnerability" // 7 << "resethealth" // 8 << "vampiric" // 9 << "karma" // 10 << "artillery" // 11 << "randomorder" // 12 << "king" // 13 << "placehog" // 14 << "sharedammo" // 15 << "disablegirders" // 16 << "disablelandobjects" // 17 << "aisurvival" // 18 << "infattack" // 19 << "resetweps" // 20 << "perhogammo" // 21 << "disablewind" // 22 << "morewind" // 23 << "tagteam" // 24 << "bottomborder" // 25 << "damagefactor" // 26 << "turntime" // 27 << "health" // 28 << "suddendeath" // 29 << "caseprobability" // 30 << "minestime" // 31 << "minesnum" // 32 << "minedudpct" // 33 << "explosives" // 34 << "healthprobability" // 35 << "healthcaseamount" // 36 << "waterrise" // 37 << "healthdecrease" // 38 << "ropepct" // 39 << "getawaytime" // 40 ; QList<QVariant> proMode; proMode << predefSchemesNames[1] // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(false) // solid land 3 << QVariant(false) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(true) // shared ammo 15 << QVariant(false) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(false) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(15) // turn time 27 << QVariant(100) // init health 28 << QVariant(15) // sudden death 29 << QVariant(0) // case prob 30 << QVariant(3) // mines time 31 << QVariant(0) // mines number 32 << QVariant(0) // mine dud pct 33 << QVariant(2) // explosives 34 << QVariant(35) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; QList<QVariant> shoppa; shoppa << predefSchemesNames[2] // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(true) // solid land 3 << QVariant(true) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(true) // shared ammo 15 << QVariant(true) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(true) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(30) // turn time 27 << QVariant(100) // init health 28 << QVariant(50) // sudden death 29 << QVariant(1) // case prob 30 << QVariant(3) // mines time 31 << QVariant(0) // mines number 32 << QVariant(0) // mine dud pct 33 << QVariant(0) // explosives 34 << QVariant(0) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; QList<QVariant> cleanslate; cleanslate << predefSchemesNames[3] // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(false) // solid land 3 << QVariant(false) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(true) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(false) // shared ammo 15 << QVariant(false) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(true) // inf. attack 19 << QVariant(true) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(45) // turn time 27 << QVariant(100) // init health 28 << QVariant(15) // sudden death 29 << QVariant(5) // case prob 30 << QVariant(3) // mines time 31 << QVariant(4) // mines number 32 << QVariant(0) // mine dud pct 33 << QVariant(2) // explosives 34 << QVariant(35) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; QList<QVariant> minefield; minefield << predefSchemesNames[4] // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(false) // solid land 3 << QVariant(false) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(true) // shared ammo 15 << QVariant(true) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(false) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(30) // turn time 27 << QVariant(50) // init health 28 << QVariant(15) // sudden death 29 << QVariant(0) // case prob 30 << QVariant(0) // mines time 31 << QVariant(80) // mines number 32 << QVariant(0) // mine dud pct 33 << QVariant(0) // explosives 34 << QVariant(35) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; QList<QVariant> barrelmayhem; barrelmayhem << predefSchemesNames[5] // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(false) // solid land 3 << QVariant(false) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(true) // shared ammo 15 << QVariant(false) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(false) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(30) // turn time 27 << QVariant(100) // init health 28 << QVariant(15) // sudden death 29 << QVariant(0) // case prob 30 << QVariant(0) // mines time 31 << QVariant(0) // mines number 32 << QVariant(0) // mine dud pct 33 << QVariant(80) // explosives 34 << QVariant(35) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; QList<QVariant> tunnelhogs; tunnelhogs << predefSchemesNames[6] // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(false) // solid land 3 << QVariant(true) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(true) // shared ammo 15 << QVariant(true) // disable girders 16 << QVariant(true) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(false) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(30) // turn time 27 << QVariant(100) // init health 28 << QVariant(15) // sudden death 29 << QVariant(5) // case prob 30 << QVariant(3) // mines time 31 << QVariant(10) // mines number 32 << QVariant(10) // mine dud pct 33 << QVariant(10) // explosives 34 << QVariant(35) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; QList<QVariant> forts; forts << predefSchemesNames[7] // name 0 << QVariant(true) // fortsmode 1 << QVariant(true) // team divide 2 << QVariant(false) // solid land 3 << QVariant(false) // border 4 << QVariant(true) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(false) // shared ammo 15 << QVariant(false) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(false) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(45) // turn time 27 << QVariant(100) // init health 28 << QVariant(15) // sudden death 29 << QVariant(5) // case prob 30 << QVariant(3) // mines time 31 << QVariant(0) // mines number 32 << QVariant(0) // mine dud pct 33 << QVariant(0) // explosives 34 << QVariant(35) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; QList<QVariant> timeless; timeless << predefSchemesNames[8] // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(false) // solid land 3 << QVariant(false) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(false) // shared ammo 15 << QVariant(false) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(false) // reset weps 20 << QVariant(true) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(9999) // turn time 27 << QVariant(100) // init health 28 << QVariant(15) // sudden death 29 << QVariant(5) // case prob 30 << QVariant(3) // mines time 31 << QVariant(5) // mines number 32 << QVariant(10) // mine dud pct 33 << QVariant(2) // explosives 34 << QVariant(35) // health case pct 35 << QVariant(30) // health case amt 36 << QVariant(0) // water rise amt 37 << QVariant(0) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; QList<QVariant> thinkingportals; thinkingportals << predefSchemesNames[9] // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(false) // solid land 3 << QVariant(false) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(true) // artillery 11 << QVariant(true) // random order 12 << QVariant(false) // king 13 << QVariant(false) // place hog 14 << QVariant(false) // shared ammo 15 << QVariant(false) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(false) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(45) // turn time 27 << QVariant(100) // init health 28 << QVariant(15) // sudden death 29 << QVariant(2) // case prob 30 << QVariant(3) // mines time 31 << QVariant(5) // mines number 32 << QVariant(0) // mine dud pct 33 << QVariant(5) // explosives 34 << QVariant(25) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; QList<QVariant> kingmode; kingmode << predefSchemesNames[10] // name 0 << QVariant(false) // fortsmode 1 << QVariant(false) // team divide 2 << QVariant(false) // solid land 3 << QVariant(false) // border 4 << QVariant(false) // low gravity 5 << QVariant(false) // laser sight 6 << QVariant(false) // invulnerable 7 << QVariant(false) // reset health 8 << QVariant(false) // vampiric 9 << QVariant(false) // karma 10 << QVariant(false) // artillery 11 << QVariant(true) // random order 12 << QVariant(true) // king 13 << QVariant(false) // place hog 14 << QVariant(false) // shared ammo 15 << QVariant(false) // disable girders 16 << QVariant(false) // disable land objects 17 << QVariant(false) // AI survival 18 << QVariant(false) // inf. attack 19 << QVariant(false) // reset weps 20 << QVariant(false) // per hog ammo 21 << QVariant(false) // no wind 22 << QVariant(false) // more wind 23 << QVariant(false) // tag team 24 << QVariant(false) // bottom border 25 << QVariant(100) // damage modfier 26 << QVariant(45) // turn time 27 << QVariant(100) // init health 28 << QVariant(15) // sudden death 29 << QVariant(5) // case prob 30 << QVariant(3) // mines time 31 << QVariant(4) // mines number 32 << QVariant(0) // mine dud pct 33 << QVariant(2) // explosives 34 << QVariant(35) // health case pct 35 << QVariant(25) // health case amt 36 << QVariant(47) // water rise amt 37 << QVariant(5) // health dec amt 38 << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 ; schemes.append(defaultScheme); schemes.append(proMode); schemes.append(shoppa); schemes.append(cleanslate); schemes.append(minefield); schemes.append(barrelmayhem); schemes.append(tunnelhogs); schemes.append(forts); schemes.append(timeless); schemes.append(thinkingportals); schemes.append(kingmode); int size = fileConfig.beginReadArray("schemes"); for (int i = 0; i < size; ++i) { fileConfig.setArrayIndex(i); if (!predefSchemesNames.contains(fileConfig.value(spNames[0]).toString())) { QList<QVariant> scheme; for (int k = 0; k < spNames.size(); ++k) scheme << fileConfig.value(spNames[k], defaultScheme[k]); schemes.append(scheme); } } fileConfig.endArray(); } QVariant AmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const { Q_UNUSED(section); Q_UNUSED(orientation); Q_UNUSED(role); return QVariant(); } int AmmoSchemeModel::rowCount(const QModelIndex &parent) const { if (parent.isValid()) return 0; else return schemes.size(); } int AmmoSchemeModel::columnCount(const QModelIndex & parent) const { if (parent.isValid()) return 0; else return defaultScheme.size(); } Qt::ItemFlags AmmoSchemeModel::flags(const QModelIndex & index) const { Q_UNUSED(index); return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable; } bool AmmoSchemeModel::setData(const QModelIndex & index, const QVariant & value, int role) { if (!index.isValid() || index.row() < numberOfDefaultSchemes || index.row() >= schemes.size() || index.column() >= defaultScheme.size() || role != Qt::EditRole) return false; schemes[index.row()][index.column()] = value; emit dataChanged(index, index); return true; } bool AmmoSchemeModel::insertRows(int row, int count, const QModelIndex & parent) { Q_UNUSED(count); beginInsertRows(parent, schemes.size(), schemes.size()); if (row == -1) { QList<QVariant> newScheme = defaultScheme; newScheme[0] = QVariant(tr("new")); schemes.insert(schemes.size(), newScheme); } else { QList<QVariant> newScheme = schemes[row]; newScheme[0] = QVariant(tr("copy of") + " " + newScheme[0].toString()); schemes.insert(schemes.size(), newScheme); } endInsertRows(); return true; } bool AmmoSchemeModel::removeRows(int row, int count, const QModelIndex & parent) { if(count != 1 || row < numberOfDefaultSchemes || row >= schemes.size()) return false; beginRemoveRows(parent, row, row); schemes.removeAt(row); endRemoveRows(); return true; } QVariant AmmoSchemeModel::data(const QModelIndex &index, int role) const { if (!index.isValid() || index.row() < 0 || index.row() >= schemes.size() || index.column() >= defaultScheme.size() || (role != Qt::EditRole && role != Qt::DisplayRole) ) return QVariant(); return schemes[index.row()][index.column()]; } void AmmoSchemeModel::Save() { fileConfig.beginWriteArray("schemes", schemes.size() - numberOfDefaultSchemes); for (int i = 0; i < schemes.size() - numberOfDefaultSchemes; ++i) { fileConfig.setArrayIndex(i); QList<QVariant> scheme = schemes[i + numberOfDefaultSchemes]; for (int k = 0; k < scheme.size(); ++k) fileConfig.setValue(spNames[k], scheme[k]); } fileConfig.endArray(); } NetAmmoSchemeModel::NetAmmoSchemeModel(QObject * parent) : QAbstractTableModel(parent) { netScheme = defaultScheme; } QVariant NetAmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const { Q_UNUSED(section); Q_UNUSED(orientation); Q_UNUSED(role); return QVariant(); } int NetAmmoSchemeModel::rowCount(const QModelIndex & parent) const { if (parent.isValid()) return 0; else return 1; } int NetAmmoSchemeModel::columnCount(const QModelIndex & parent) const { if (parent.isValid()) return 0; else return defaultScheme.size(); } QVariant NetAmmoSchemeModel::data(const QModelIndex &index, int role) const { if (!index.isValid() || index.row() < 0 || index.row() > 1 || index.column() >= defaultScheme.size() || (role != Qt::EditRole && role != Qt::DisplayRole) ) return QVariant(); return netScheme[index.column()]; } void NetAmmoSchemeModel::setNetSchemeConfig(QStringList & cfg) { if(cfg.size() != netScheme.size()) { qWarning("Incorrect scheme cfg size"); return; } for(int i = 0; i < cfg.size(); ++i) netScheme[i] = QVariant(cfg[i]); reset(); }