QTfrontend/model/ammoSchemeModel.h
author unc0rr
Sat, 27 Dec 2014 22:09:31 +0300
branch0.9.21
changeset 10721 9b789de8e5df
parent 10108 c68cf030eded
child 10727 5f34d3341fc1
permissions -rw-r--r--
Workaround bug (each time losing room master status, even when joining mutliple rooms, new instance of NetAmmoSchemeModel created, receiving schemeConfig and modifying its 43rd member, thus the last model which accepts this signal has the string cut down several times, workaround creates copy of qstringlist to avoid modifying shared message instance. Proper fix would delete unneeded instances of NetAmmoSchemeModel, but who cares)
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
9998
736015b847e3 update copyright to 2014
sheepluva
parents: 9080
diff changeset
     3
 * Copyright (c) 2004-2014 Andrey Korotaev <unC0Rr@gmail.com>
1881
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
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 9998
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    17
 */
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    18
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    19
#ifndef _AMMO_SCHEME_MODEL_INCLUDED
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    20
#define _AMMO_SCHEME_MODEL_INCLUDED
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    21
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1890
diff changeset
    22
#include <QSettings>
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    23
#include <QAbstractTableModel>
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1890
diff changeset
    24
#include <QStringList>
1890
de5cfe3beb22 Scheme options work now
unc0rr
parents: 1884
diff changeset
    25
#include <QList>
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    26
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    27
class AmmoSchemeModel : public QAbstractTableModel
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    28
{
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    29
        Q_OBJECT
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    30
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    31
    public:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    32
        AmmoSchemeModel(QObject * parent, const QString & fileName);
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    33
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    34
        QVariant headerData(int section, Qt::Orientation orientation, int role) const;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    35
        int rowCount(const QModelIndex & parent) const;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    36
        int columnCount(const QModelIndex & parent) const;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    37
        Qt::ItemFlags flags(const QModelIndex & index) const;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    38
        bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    39
        bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex());
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    40
        bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex());
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    41
        QVariant data(const QModelIndex &index, int role) const;
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    42
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    43
        int numberOfDefaultSchemes;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    44
        QStringList predefSchemesNames;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    45
        QStringList spNames;
1940
bbdca883b5f9 - Enable back border of drop-down list (by nemo)
unc0rr
parents: 1902
diff changeset
    46
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    47
    public slots:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    48
        void Save();
1897
e9dcb47013c7 - Some style changes by nemo
unc0rr
parents: 1890
diff changeset
    49
7421
76772043ba7f No need to redefine signal
unc0rr
parents: 6952
diff changeset
    50
//    signals:
76772043ba7f No need to redefine signal
unc0rr
parents: 6952
diff changeset
    51
//        void dataChanged(const QModelIndex & topLeft, const QModelIndex & bottomRight);
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    52
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    53
    protected:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    54
        QList< QList<QVariant> > schemes;
1884
40e59e9f82ce Continue work on new schemes implementation
unc0rr
parents: 1881
diff changeset
    55
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    56
    private:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    57
        QSettings fileConfig;
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    58
};
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    59
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    60
class NetAmmoSchemeModel : public QAbstractTableModel
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    61
{
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    62
        Q_OBJECT
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    63
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    64
    public:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    65
        NetAmmoSchemeModel(QObject * parent);
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    66
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    67
        QVariant headerData(int section, Qt::Orientation orientation, int role) const;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    68
        int rowCount(const QModelIndex & parent) const;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    69
        int columnCount(const QModelIndex & parent) const;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    70
        QVariant data(const QModelIndex &index, int role) const;
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    71
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    72
    public slots:
10721
9b789de8e5df Workaround bug (each time losing room master status, even when joining mutliple rooms, new instance of NetAmmoSchemeModel created, receiving schemeConfig and modifying its 43rd member, thus the last model which accepts this signal has the string cut down several times, workaround creates copy of qstringlist to avoid modifying shared message instance. Proper fix would delete unneeded instances of NetAmmoSchemeModel, but who cares)
unc0rr
parents: 10108
diff changeset
    73
        void setNetSchemeConfig(QStringList cfg);
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    74
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    75
    private:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6061
diff changeset
    76
        QList<QVariant> netScheme;
1899
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    77
};
5763f46d7486 Sync schemes config over net should work now (untested)
unc0rr
parents: 1897
diff changeset
    78
1881
9b62d68c7b92 Stub for ammo schemes model
unc0rr
parents:
diff changeset
    79
#endif // _AMMO_SCHEME_MODEL_INCLUDED