QTfrontend/ammoSchemeModel.cpp
changeset 1899 5763f46d7486
parent 1897 e9dcb47013c7
child 1902 aeadb10c2d77
equal deleted inserted replaced
1898:f0ab0c77946d 1899:5763f46d7486
    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>()
       
    26 		<< QVariant("Default") // name           0
       
    27 		<< QVariant(false)         // fortsmode      1
       
    28 		<< QVariant(false)         // team divide    2
       
    29 		<< QVariant(false)         // solid land     3
       
    30 		<< QVariant(false)         // border         4
       
    31 		<< QVariant(false)         // low gravity    5
       
    32 		<< QVariant(false)         // laser sight    6
       
    33 		<< QVariant(false)         // invulnerable   7
       
    34 		<< QVariant(true)          // add mines      8
       
    35 		<< QVariant(100)           // damage modfier 9
       
    36 		<< QVariant(45)            // turn time      10
       
    37 		<< QVariant(100)           // init health    11
       
    38 		<< QVariant(15)            // sudden death   12
       
    39 		<< QVariant(5)             // case prob      13
       
    40 		;
       
    41 
    25 AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) :
    42 AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) :
    26 	QAbstractTableModel(parent),
    43 	QAbstractTableModel(parent),
    27 	fileConfig(fileName, QSettings::IniFormat)
    44 	fileConfig(fileName, QSettings::IniFormat)
    28 {
    45 {
    29 	spNames
    46 	QStringList predefSchemesNames;
       
    47 	predefSchemesNames
       
    48 		<< "Default"
       
    49 		<< "Pro mode";
       
    50 	
       
    51 QStringList	spNames = QStringList()
    30 		<< "name"             //  0
    52 		<< "name"             //  0
    31 		<< "fortsmode"        //  1
    53 		<< "fortsmode"        //  1
    32 		<< "divteams"         //  2
    54 		<< "divteams"         //  2
    33 		<< "solidland"        //  3
    55 		<< "solidland"        //  3
    34 		<< "border"           //  4
    56 		<< "border"           //  4
    41 		<< "health"           // 11
    63 		<< "health"           // 11
    42 		<< "suddendeath"      // 12
    64 		<< "suddendeath"      // 12
    43 		<< "caseprobability"  // 13
    65 		<< "caseprobability"  // 13
    44 		;
    66 		;
    45 
    67 
    46 
       
    47 	QStringList predefSchemesNames;
       
    48 	predefSchemesNames
       
    49 		<< tr("Default")
       
    50 		<< tr("Pro mode");
       
    51 	
       
    52 	defaultScheme
       
    53 		<< QVariant(tr("Default")) // name           0
       
    54 		<< QVariant(false)         // fortsmode      1
       
    55 		<< QVariant(false)         // team divide    2
       
    56 		<< QVariant(false)         // solid land     3
       
    57 		<< QVariant(false)         // border         4
       
    58 		<< QVariant(false)         // low gravity    5
       
    59 		<< QVariant(false)         // laser sight    6
       
    60 		<< QVariant(false)         // invulnerable   7
       
    61 		<< QVariant(true)          // add mines      8
       
    62 		<< QVariant(100)           // damage modfier 9
       
    63 		<< QVariant(45)            // turn time      10
       
    64 		<< QVariant(100)           // init health    11
       
    65 		<< QVariant(15)            // sudden death   12
       
    66 		<< QVariant(5)             // case prob      13
       
    67 		;
       
    68 
       
    69 	QList<QVariant> proMode;
    68 	QList<QVariant> proMode;
    70 	proMode
    69 	proMode
    71 		<< QVariant(tr("Pro mode"))// name           0
    70 		<< QVariant("Pro mode")    // name           0
    72 		<< QVariant(false)         // fortsmode      1
    71 		<< QVariant(false)         // fortsmode      1
    73 		<< QVariant(false)         // team divide    2
    72 		<< QVariant(false)         // team divide    2
    74 		<< QVariant(false)         // solid land     3
    73 		<< QVariant(false)         // solid land     3
    75 		<< QVariant(false)         // border         4
    74 		<< QVariant(false)         // border         4
    76 		<< QVariant(false)         // low gravity    5
    75 		<< QVariant(false)         // low gravity    5
   193 		for (int k = 0; k < spNames.size(); ++k)
   192 		for (int k = 0; k < spNames.size(); ++k)
   194 			fileConfig.setValue(spNames[k], scheme[k]);
   193 			fileConfig.setValue(spNames[k], scheme[k]);
   195 	}
   194 	}
   196 	fileConfig.endArray();
   195 	fileConfig.endArray();
   197 }
   196 }
       
   197 
       
   198 
       
   199 NetAmmoSchemeModel::NetAmmoSchemeModel(QObject * parent) :
       
   200 	QAbstractTableModel(parent)
       
   201 {
       
   202 	netScheme = defaultScheme;
       
   203 }
       
   204 
       
   205 QVariant NetAmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
       
   206 {
       
   207 	return QVariant();
       
   208 }
       
   209 
       
   210 int NetAmmoSchemeModel::rowCount(const QModelIndex & parent) const
       
   211 {
       
   212 	if (parent.isValid())
       
   213 		return 0;
       
   214 	else
       
   215 		return 1;
       
   216 }
       
   217 
       
   218 int NetAmmoSchemeModel::columnCount(const QModelIndex & parent) const
       
   219 {
       
   220 	if (parent.isValid())
       
   221 		return 0;
       
   222 	else
       
   223 		return defaultScheme.size();
       
   224 }
       
   225 
       
   226 QVariant NetAmmoSchemeModel::data(const QModelIndex &index, int role) const
       
   227 {
       
   228 	if (!index.isValid() || index.row() < 0
       
   229 		|| index.row() > 1
       
   230 		|| index.column() >= defaultScheme.size()
       
   231 		|| (role != Qt::EditRole && role != Qt::DisplayRole)
       
   232 		)
       
   233 		return QVariant();
       
   234 
       
   235 	return netScheme[index.column()];
       
   236 }
       
   237 
       
   238 void NetAmmoSchemeModel::setNetSchemeConfig(QStringList & cfg)
       
   239 {
       
   240 	if(cfg.size() != netScheme.size())
       
   241 	{
       
   242 		qWarning("Incorrect scheme cfg size");
       
   243 		return;
       
   244 	}
       
   245 
       
   246 	for(int i = 0; i < cfg.size(); ++i)
       
   247 		netScheme[i] = QVariant(cfg[i]);
       
   248 
       
   249 	reset();
       
   250 }