QTfrontend/ammoSchemeModel.cpp
author unc0rr
Fri, 01 May 2009 09:01:44 +0000
changeset 2021 a591afb43768
parent 2017 7845c77c8d31
child 2023 41d3afaa20c7
permissions -rw-r--r--
Some changes in try to fix issue when you enter room with painted map, but frontend shows generated one (most probably bug is triggered by template filters) Untested.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
     1
/*
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
     2
 * Hedgewars, a free turn based strategy game
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
     3
 * Copyright (c) 2009 Andrey Korotaev <unC0Rr@gmail.com>
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
     4
 *
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
     8
 *
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    12
 * GNU General Public License for more details.
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    13
 *
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    17
 */
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    18
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
    19
#include <QDebug>
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    20
#include <QModelIndex>
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    21
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    22
#include "ammoSchemeModel.h"
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    23
#include "hwconsts.h"
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    24
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
    25
QList<QVariant> defaultScheme = QList<QVariant>()
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
    26
		<< QVariant("Default")     // name           0
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    27
		<< QVariant(false)         // fortsmode      1
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    28
		<< QVariant(false)         // team divide    2
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    29
		<< QVariant(false)         // solid land     3
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    30
		<< QVariant(false)         // border         4
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    31
		<< QVariant(false)         // low gravity    5
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    32
		<< QVariant(false)         // laser sight    6
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    33
		<< QVariant(false)         // invulnerable   7
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    34
		<< QVariant(true)          // add mines      8
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    35
		<< QVariant(false)         // vampiric       9
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    36
		<< QVariant(false)         // karma          10
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    37
		<< QVariant(100)           // damage modfier 11
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    38
		<< QVariant(45)            // turn time      12
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    39
		<< QVariant(100)           // init health    13
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    40
		<< QVariant(15)            // sudden death   14
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    41
		<< QVariant(5)             // case prob      15
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    42
		;
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    43
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    44
AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) :
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    45
	QAbstractTableModel(parent),
1974
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
    46
	numberOfDefaultSchemes(4),
1940
bbdca883b5f9 - Enable back border of drop-down list (by nemo)
unc0rr
parents: 1902
diff changeset
    47
	fileConfig(fileName, QSettings::IniFormat)
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    48
{
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    49
	QStringList predefSchemesNames;
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    50
	predefSchemesNames
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    51
		<< "Default"
1968
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
    52
		<< "Pro mode"
1974
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
    53
		<< "Shoppa"
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
    54
		<< "Basketball";
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    55
	
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
    56
	spNames = QStringList()
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    57
		<< "name"             //  0
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    58
		<< "fortsmode"        //  1
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    59
		<< "divteams"         //  2
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    60
		<< "solidland"        //  3
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    61
		<< "border"           //  4
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    62
		<< "lowgrav"          //  5
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    63
		<< "laser"            //  6
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    64
		<< "invulnerability"  //  7
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    65
		<< "mines"            //  8
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    66
		<< "vampiric"         //  9
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    67
		<< "karma"            // 10
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    68
		<< "damagefactor"     // 11
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    69
		<< "turntime"         // 12
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    70
		<< "health"           // 13
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    71
		<< "suddendeath"      // 14
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    72
		<< "caseprobability"  // 15
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    73
		;
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    74
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    75
	QList<QVariant> proMode;
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    76
	proMode
1968
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
    77
		<< predefSchemesNames[1]   // name           0
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    78
		<< QVariant(false)         // fortsmode      1
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    79
		<< QVariant(false)         // team divide    2
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    80
		<< QVariant(false)         // solid land     3
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    81
		<< QVariant(false)         // border         4
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    82
		<< QVariant(false)         // low gravity    5
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    83
		<< QVariant(false)         // laser sight    6
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    84
		<< QVariant(false)         // invulnerable   7
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    85
		<< QVariant(false)         // add mines      8
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    86
		<< QVariant(false)         // vampiric       9
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    87
		<< QVariant(false)         // karma          10
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    88
		<< QVariant(100)           // damage modfier 11
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    89
		<< QVariant(15)            // turn time      12
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    90
		<< QVariant(100)           // init health    13
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    91
		<< QVariant(15)            // sudden death   14
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
    92
		<< QVariant(0)             // case prob      15
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    93
		;
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
    94
1968
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
    95
	QList<QVariant> shoppa;
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
    96
	shoppa
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
    97
		<< predefSchemesNames[2]   // name           0
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
    98
		<< QVariant(false)         // fortsmode      1
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
    99
		<< QVariant(false)         // team divide    2
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
   100
		<< QVariant(true)          // solid land     3
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
   101
		<< QVariant(true)          // border         4
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
   102
		<< QVariant(false)         // low gravity    5
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
   103
		<< QVariant(false)         // laser sight    6
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
   104
		<< QVariant(false)         // invulnerable   7
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
   105
		<< QVariant(false)         // add mines      8
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   106
		<< QVariant(false)         // vampiric       9
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   107
		<< QVariant(false)         // karma          10
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   108
		<< QVariant(100)           // damage modfier 11
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   109
		<< QVariant(30)            // turn time      12
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   110
		<< QVariant(100)           // init health    13
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   111
		<< QVariant(50)            // sudden death   14
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   112
		<< QVariant(1)             // case prob      15
1974
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   113
		;
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   114
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   115
	QList<QVariant> basketball;
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   116
	basketball
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   117
		<< predefSchemesNames[3]   // name           0
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   118
		<< QVariant(false)         // fortsmode      1
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   119
		<< QVariant(false)         // team divide    2
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   120
		<< QVariant(true)          // solid land     3
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   121
		<< QVariant(true)          // border         4
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   122
		<< QVariant(true)          // low gravity    5
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   123
		<< QVariant(false)         // laser sight    6
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   124
		<< QVariant(true)          // invulnerable   7
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   125
		<< QVariant(false)         // add mines      8
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   126
		<< QVariant(false)         // vampiric       9
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   127
		<< QVariant(false)         // karma          10
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   128
		<< QVariant(100)           // damage modfier 11
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   129
		<< QVariant(30)            // turn time      12
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   130
		<< QVariant(100)           // init health    13
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   131
		<< QVariant(15)            // sudden death   14
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1974
diff changeset
   132
		<< QVariant(0)             // case prob      15
1968
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
   133
		;
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
   134
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   135
	schemes.append(defaultScheme);
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   136
	schemes.append(proMode);
1968
f32b18c5d495 Add Shoppa game scheme
unc0rr
parents: 1940
diff changeset
   137
	schemes.append(shoppa);
1974
77a9416ceead nemo's schemes patch
unc0rr
parents: 1968
diff changeset
   138
	schemes.append(basketball);
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   139
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   140
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   141
	int size = fileConfig.beginReadArray("schemes");
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   142
	for (int i = 0; i < size; ++i) {
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   143
		fileConfig.setArrayIndex(i);
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   144
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   145
		if (!predefSchemesNames.contains(fileConfig.value(spNames[0]).toString()))
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   146
		{
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   147
			QList<QVariant> scheme;
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   148
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   149
			for (int k = 0; k < spNames.size(); ++k)
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   150
				scheme << fileConfig.value(spNames[k], defaultScheme[k]);
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   151
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   152
			schemes.append(scheme);
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   153
		}
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   154
	}
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   155
	fileConfig.endArray();
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   156
}
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   157
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   158
QVariant AmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   159
{
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   160
	return QVariant();
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   161
}
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   162
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   163
int AmmoSchemeModel::rowCount(const QModelIndex &parent) const
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   164
{
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   165
	if (parent.isValid())
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   166
		return 0;
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   167
	else
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   168
		return schemes.size();
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   169
}
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   170
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   171
int AmmoSchemeModel::columnCount(const QModelIndex & parent) const
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   172
{
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   173
	if (parent.isValid())
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   174
		return 0;
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   175
	else
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   176
		return defaultScheme.size();
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   177
}
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   178
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   179
Qt::ItemFlags AmmoSchemeModel::flags(const QModelIndex & index) const
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   180
{
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   181
	return
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   182
		Qt::ItemIsEnabled
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   183
		| Qt::ItemIsSelectable
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   184
		| Qt::ItemIsEditable;
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   185
}
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   186
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   187
bool AmmoSchemeModel::setData(const QModelIndex & index, const QVariant & value, int role)
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   188
{
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   189
	if (!index.isValid() || index.row() < numberOfDefaultSchemes
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   190
		|| index.row() >= schemes.size()
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   191
		|| index.column() >= defaultScheme.size()
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
   192
		|| role != Qt::EditRole)
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   193
		return false;
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   194
1890
de5cfe3beb22 Scheme options work now
unc0rr
parents: 1889
diff changeset
   195
	schemes[index.row()][index.column()] = value;
1885
75489216b5b0 Continue work on new schemes
unc0rr
parents: 1884
diff changeset
   196
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   197
	emit dataChanged(index, index);
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   198
	return true;
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
   199
}
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   200
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   201
bool AmmoSchemeModel::insertRows(int row, int count, const QModelIndex & parent)
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   202
{
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   203
	beginInsertRows(parent, row, row);
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   204
1890
de5cfe3beb22 Scheme options work now
unc0rr
parents: 1889
diff changeset
   205
	QList<QVariant> newScheme = defaultScheme;
de5cfe3beb22 Scheme options work now
unc0rr
parents: 1889
diff changeset
   206
	newScheme[0] = QVariant(tr("new"));
1889
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
   207
	
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
   208
	schemes.insert(row, newScheme);
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   209
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   210
	endInsertRows();
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   211
	
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   212
	return true;
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   213
}
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   214
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   215
bool AmmoSchemeModel::removeRows(int row, int count, const QModelIndex & parent)
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   216
{
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   217
	if(count != 1
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   218
		|| row < numberOfDefaultSchemes
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   219
		|| row >= schemes.size())
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   220
		return false;
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   221
		
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   222
	beginRemoveRows(parent, row, row);
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   223
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   224
	schemes.removeAt(row);
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   225
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   226
	endRemoveRows();
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   227
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   228
	return true;
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   229
}
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   230
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   231
QVariant AmmoSchemeModel::data(const QModelIndex &index, int role) const
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   232
{
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   233
	if (!index.isValid() || index.row() < 0
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   234
		|| index.row() >= schemes.size()
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   235
		|| index.column() >= defaultScheme.size()
1889
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
   236
		|| (role != Qt::EditRole && role != Qt::DisplayRole)
b8590b604fdd Editing schemes, creating new one works now
unc0rr
parents: 1887
diff changeset
   237
		)
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   238
		return QVariant();
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   239
1890
de5cfe3beb22 Scheme options work now
unc0rr
parents: 1889
diff changeset
   240
	return schemes[index.row()][index.column()];
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
   241
}
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   242
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   243
void AmmoSchemeModel::Save()
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   244
{
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   245
	fileConfig.beginWriteArray("schemes", schemes.size());
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   246
	
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   247
	for (int i = 0; i < schemes.size(); ++i) {
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   248
		fileConfig.setArrayIndex(i);
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   249
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   250
		QList<QVariant> scheme = schemes[i];
1902
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   251
		
aeadb10c2d77 Add delete button and scheme selection combobox to scheme edit page
unc0rr
parents: 1899
diff changeset
   252
		for (int k = 0; k < scheme.size(); ++k)
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   253
			fileConfig.setValue(spNames[k], scheme[k]);
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   254
	}
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   255
	fileConfig.endArray();
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1895
diff changeset
   256
}
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   257
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   258
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   259
NetAmmoSchemeModel::NetAmmoSchemeModel(QObject * parent) :
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   260
	QAbstractTableModel(parent)
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   261
{
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   262
	netScheme = defaultScheme;
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   263
}
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   264
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   265
QVariant NetAmmoSchemeModel::headerData(int section, Qt::Orientation orientation, int role) const
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   266
{
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   267
	return QVariant();
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   268
}
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   269
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   270
int NetAmmoSchemeModel::rowCount(const QModelIndex & parent) const
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   271
{
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   272
	if (parent.isValid())
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   273
		return 0;
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   274
	else
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   275
		return 1;
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   276
}
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   277
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   278
int NetAmmoSchemeModel::columnCount(const QModelIndex & parent) const
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   279
{
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   280
	if (parent.isValid())
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   281
		return 0;
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   282
	else
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   283
		return defaultScheme.size();
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   284
}
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   285
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   286
QVariant NetAmmoSchemeModel::data(const QModelIndex &index, int role) const
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   287
{
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   288
	if (!index.isValid() || index.row() < 0
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   289
		|| index.row() > 1
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   290
		|| index.column() >= defaultScheme.size()
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   291
		|| (role != Qt::EditRole && role != Qt::DisplayRole)
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   292
		)
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   293
		return QVariant();
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   294
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   295
	return netScheme[index.column()];
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   296
}
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   297
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   298
void NetAmmoSchemeModel::setNetSchemeConfig(QStringList & cfg)
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   299
{
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   300
	if(cfg.size() != netScheme.size())
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   301
	{
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   302
		qWarning("Incorrect scheme cfg size");
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   303
		return;
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   304
	}
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   305
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   306
	for(int i = 0; i < cfg.size(); ++i)
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   307
		netScheme[i] = QVariant(cfg[i]);
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   308
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   309
	reset();
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
   310
}