QTfrontend/ui/widget/selectWeapon.cpp
author Xeli
Mon, 28 May 2012 19:33:57 +0200
changeset 7141 ea6ad9a97fca
parent 6952 7f70f37bbf08
child 7797 5aedd02e7230
permissions -rw-r--r--
change the array which represents the keyboard state to be a boolean array rather than byte array
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
     1
/*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 1004
diff changeset
     2
 * Hedgewars, a free turn based strategy game
4976
088d40d8aba2 Happy 2011 :)
koda
parents: 4598
diff changeset
     3
 * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
6952
7f70f37bbf08 license header year range adjustments
sheepluva
parents: 6700
diff changeset
     4
 * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
     5
 *
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
     7
 * it under the terms of the GNU General Public License as published by
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
     8
 * the Free Software Foundation; version 2 of the License
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
     9
 *
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    13
 * GNU General Public License for more details.
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    14
 *
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    15
 * You should have received a copy of the GNU General Public License
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    16
 * along with this program; if not, write to the Free Software
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    18
 */
1509
34f7dd4efe84 Small fixes mixed with formatting changes
unc0rr
parents: 1456
diff changeset
    19
624
e7673b036db5 weaponItem added
displacer
parents: 612
diff changeset
    20
#include "selectWeapon.h"
629
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
    21
#include "weaponItem.h"
681
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
    22
#include "hwconsts.h"
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    23
624
e7673b036db5 weaponItem added
displacer
parents: 612
diff changeset
    24
#include <QPushButton>
e7673b036db5 weaponItem added
displacer
parents: 612
diff changeset
    25
#include <QGridLayout>
629
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
    26
#include <QHBoxLayout>
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
    27
#include <QLabel>
630
38338573e09a mask applied
displacer
parents: 629
diff changeset
    28
#include <QBitmap>
694
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
    29
#include <QLineEdit>
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
    30
#include <QSettings>
724
21706280d913 delete weapon set should work fine now
displacer
parents: 723
diff changeset
    31
#include <QMessageBox>
2369
c3eb11f1ab3a Implement probability editor for weapon schemes (engine doesn't support that yet)
unc0rr
parents: 1967
diff changeset
    32
#include <QTabWidget>
2467
be6690c337fb offset for multi-column ammo image
nemo
parents: 2377
diff changeset
    33
#include <math.h>
624
e7673b036db5 weaponItem added
displacer
parents: 612
diff changeset
    34
629
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
    35
QImage getAmmoImage(int num)
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
    36
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    37
    static QImage ammo(":Ammos.png");
5112
4e2ebd8ac298 avoided some ambiguous function calls
Jonathan@Jonathan-PC.fritz.box
parents: 5051
diff changeset
    38
    int x = num/(ammo.height()/32);
2471
1cfc9f897616 properly do offsets into mult-column ammo image (forgot y)
nemo
parents: 2467
diff changeset
    39
    int y = (num-((ammo.height()/32)*x))*32;
1cfc9f897616 properly do offsets into mult-column ammo image (forgot y)
nemo
parents: 2467
diff changeset
    40
    x*=32;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    41
    return ammo.copy(x, y, 32, 32);
629
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
    42
}
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
    43
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
    44
SelWeaponItem::SelWeaponItem(bool allowInfinite, int iconNum, int wNum, QImage image, QImage imagegrey, QWidget* parent) :
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    45
    QWidget(parent)
629
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
    46
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    47
    QHBoxLayout* hbLayout = new QHBoxLayout(this);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    48
    hbLayout->setSpacing(1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    49
    hbLayout->setMargin(1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2371
diff changeset
    50
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    51
    QLabel* lbl = new QLabel(this);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    52
    lbl->setPixmap(QPixmap::fromImage(getAmmoImage(iconNum)));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    53
    lbl->setMaximumWidth(30);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    54
    lbl->setGeometry(0, 0, 30, 30);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    55
    hbLayout->addWidget(lbl);
639
69d7ff3ab6f0 some layout tune
displacer
parents: 631
diff changeset
    56
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
    57
    item = new WeaponItem(image, imagegrey, this);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    58
    item->setItemsNum(wNum);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    59
    item->setInfinityState(allowInfinite);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    60
    hbLayout->addWidget(item);
639
69d7ff3ab6f0 some layout tune
displacer
parents: 631
diff changeset
    61
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    62
    hbLayout->setStretchFactor(lbl, 1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    63
    hbLayout->setStretchFactor(item, 99);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    64
    hbLayout->setAlignment(lbl, Qt::AlignLeft | Qt::AlignVCenter);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    65
    hbLayout->setAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
629
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
    66
}
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    67
683
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
    68
void SelWeaponItem::setItemsNum(const unsigned char num)
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
    69
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    70
    item->setItemsNum(num);
683
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
    71
}
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
    72
681
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
    73
unsigned char SelWeaponItem::getItemsNum() const
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
    74
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    75
    return item->getItemsNum();
681
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
    76
}
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
    77
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
    78
void SelWeaponItem::setEnabled(bool value)
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
    79
{
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
    80
    item->setEnabled(value);
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
    81
}
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
    82
683
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
    83
SelWeaponWidget::SelWeaponWidget(int numItems, QWidget* parent) :
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
    84
    QFrame(parent),
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
    85
    m_numItems(numItems)
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
    86
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    87
    wconf = new QSettings(cfgdir->absolutePath() + "/weapons.ini", QSettings::IniFormat, this);
1004
4cbd91296df7 Don't let updated hedgewars version to make errors due to old weapons.ini
unc0rr
parents: 883
diff changeset
    88
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    89
    for(int i = 0; i < cDefaultAmmos.size(); ++i)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    90
        wconf->setValue(cDefaultAmmos[i].first, cDefaultAmmos[i].second);
694
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
    91
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    92
    QStringList keys = wconf->allKeys();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    93
    for(int i = 0; i < keys.size(); i++)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    94
    {
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    95
        if (wconf->value(keys[i]).toString().size() != cDefaultAmmoStore->size())
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    96
            wconf->remove(keys[i]);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    97
    }
1576
a02353129a41 Check for deprecated ammo schemes at startup and delete them
unc0rr
parents: 1509
diff changeset
    98
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
    99
    QString currentState = *cDefaultAmmoStore;
683
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   100
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   101
    QTabWidget * tbw = new QTabWidget(this);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   102
    QWidget * page1 = new QWidget(this);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   103
    p1Layout = new QGridLayout(page1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   104
    p1Layout->setSpacing(1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   105
    p1Layout->setMargin(1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   106
    QWidget * page2 = new QWidget(this);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   107
    p2Layout = new QGridLayout(page2);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   108
    p2Layout->setSpacing(1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   109
    p2Layout->setMargin(1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   110
    QWidget * page3 = new QWidget(this);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   111
    p3Layout = new QGridLayout(page3);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   112
    p3Layout->setSpacing(1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   113
    p3Layout->setMargin(1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   114
    QWidget * page4 = new QWidget(this);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   115
    p4Layout = new QGridLayout(page4);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   116
    p4Layout->setSpacing(1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   117
    p4Layout->setMargin(1);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2371
diff changeset
   118
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   119
    tbw->addTab(page1, tr("Weapon set"));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   120
    tbw->addTab(page2, tr("Probabilities"));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   121
    tbw->addTab(page4, tr("Ammo in boxes"));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   122
    tbw->addTab(page3, tr("Delays"));
2377
f3fab2b09e0c And in frontend
nemo
parents: 2371
diff changeset
   123
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   124
    QGridLayout * pageLayout = new QGridLayout(this);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   125
    pageLayout->addWidget(tbw);
2369
c3eb11f1ab3a Implement probability editor for weapon schemes (engine doesn't support that yet)
unc0rr
parents: 1967
diff changeset
   126
629
fb03a39a10ff more icons at weapon select
displacer
parents: 624
diff changeset
   127
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   128
    int j = -1;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   129
    int i = 0, k = 0;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   130
    for(; i < m_numItems; ++i)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   131
    {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   132
        if (i == 6) continue;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   133
        if (k % 4 == 0) ++j;
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   134
        SelWeaponItem * swi = new SelWeaponItem(true, i, currentState[i].digitValue(), QImage(":/res/ammopic.png"), QImage(":/res/ammopicgrey.png"), this);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   135
        weaponItems[i].append(swi);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   136
        p1Layout->addWidget(swi, j, k % 4);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2371
diff changeset
   137
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   138
        SelWeaponItem * pwi = new SelWeaponItem(false, i, currentState[numItems + i].digitValue(), QImage(":/res/ammopicbox.png"), QImage(":/res/ammopicboxgrey.png"), this);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   139
        weaponItems[i].append(pwi);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   140
        p2Layout->addWidget(pwi, j, k % 4);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3494
diff changeset
   141
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   142
        SelWeaponItem * dwi = new SelWeaponItem(false, i, currentState[numItems*2 + i].digitValue(), QImage(":/res/ammopicdelay.png"), QImage(":/res/ammopicdelaygrey.png"), this);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   143
        weaponItems[i].append(dwi);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   144
        p3Layout->addWidget(dwi, j, k % 4);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3494
diff changeset
   145
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   146
        SelWeaponItem * awi = new SelWeaponItem(false, i, currentState[numItems*3 + i].digitValue(), QImage(":/res/ammopic.png"), QImage(":/res/ammopicgrey.png"), this);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   147
        weaponItems[i].append(awi);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   148
        p4Layout->addWidget(awi, j, k % 4);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2371
diff changeset
   149
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   150
        ++k;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   151
    }
694
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
   152
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   153
    //pLayout->setRowStretch(5, 100);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   154
    m_name = new QLineEdit(this);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   155
    pageLayout->addWidget(m_name, i, 0, 1, 5);
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 598
diff changeset
   156
}
681
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
   157
694
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
   158
void SelWeaponWidget::setWeapons(const QString& ammo)
683
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   159
{
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   160
    bool enable = true;
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   161
    for(int i = 0; i < cDefaultAmmos.size(); i++)
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   162
        if (!cDefaultAmmos[i].first.compare(m_name->text()))
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   163
        {
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   164
            enable = false;
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   165
        }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   166
    for(int i = 0; i < m_numItems; ++i)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   167
    {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   168
        twi::iterator it = weaponItems.find(i);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   169
        if (it == weaponItems.end()) continue;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   170
        it.value()[0]->setItemsNum(ammo[i].digitValue());
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   171
        it.value()[1]->setItemsNum(ammo[m_numItems + i].digitValue());
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   172
        it.value()[2]->setItemsNum(ammo[m_numItems*2 + i].digitValue());
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   173
        it.value()[3]->setItemsNum(ammo[m_numItems*3 + i].digitValue());
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   174
        it.value()[0]->setEnabled(enable);
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   175
        it.value()[1]->setEnabled(enable);
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   176
        it.value()[2]->setEnabled(enable);
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   177
        it.value()[3]->setEnabled(enable);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   178
    }
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   179
    m_name->setEnabled(enable);
683
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   180
}
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   181
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   182
void SelWeaponWidget::setDefault()
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   183
{
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   184
    for(int i = 0; i < cDefaultAmmos.size(); i++)
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   185
        if (!cDefaultAmmos[i].first.compare(m_name->text()))
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   186
        {
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   187
            return;
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   188
        }
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   189
    setWeapons(*cDefaultAmmoStore);
683
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   190
}
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   191
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   192
void SelWeaponWidget::save()
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   193
{
3494
208c5671b202 Frontend:
smxx
parents: 2948
diff changeset
   194
    for(int i = 0; i < cDefaultAmmos.size(); i++)
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   195
        if (!cDefaultAmmos[i].first.compare(m_name->text()))
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   196
        {
3494
208c5671b202 Frontend:
smxx
parents: 2948
diff changeset
   197
            QMessageBox::warning(0, QMessageBox::tr("Weapons"), QMessageBox::tr("Can not overwrite default weapon set '%1'!").arg(cDefaultAmmos[i].first));
208c5671b202 Frontend:
smxx
parents: 2948
diff changeset
   198
            return;
208c5671b202 Frontend:
smxx
parents: 2948
diff changeset
   199
        }
2377
f3fab2b09e0c And in frontend
nemo
parents: 2371
diff changeset
   200
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   201
    if (m_name->text() == "") return;
2377
f3fab2b09e0c And in frontend
nemo
parents: 2371
diff changeset
   202
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   203
    QString state1;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   204
    QString state2;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   205
    QString state3;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   206
    QString state4;
2377
f3fab2b09e0c And in frontend
nemo
parents: 2371
diff changeset
   207
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   208
    for(int i = 0; i < m_numItems; ++i)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   209
    {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   210
        twi::const_iterator it = weaponItems.find(i);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   211
        int num = it == weaponItems.end() ? 9 : it.value()[0]->getItemsNum(); // 9 is for 'skip turn'
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   212
        state1.append(QString::number(num));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   213
        int prob = it == weaponItems.end() ? 0 : it.value()[1]->getItemsNum();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   214
        state2.append(QString::number(prob));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   215
        int del = it == weaponItems.end() ? 0 : it.value()[2]->getItemsNum();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   216
        state3.append(QString::number(del));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   217
        int am = it == weaponItems.end() ? 0 : it.value()[3]->getItemsNum();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   218
        state4.append(QString::number(am));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   219
    }
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   220
    if (curWeaponsName != "")
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   221
    {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   222
        // remove old entry
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   223
        wconf->remove(curWeaponsName);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   224
    }
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   225
    wconf->setValue(m_name->text(), state1 + state2 + state3 + state4);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   226
    emit weaponsChanged();
683
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   227
}
57d624f71e65 select default and save weapons added
displacer
parents: 682
diff changeset
   228
681
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
   229
int SelWeaponWidget::operator [] (unsigned int weaponIndex) const
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
   230
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   231
    twi::const_iterator it = weaponItems.find(weaponIndex);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   232
    return it == weaponItems.end() ? 9 : it.value()[0]->getItemsNum();
681
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
   233
}
7a20c50988ec working weapons select
displacer
parents: 644
diff changeset
   234
696
d6f32ed6edc8 working multiplayer weapons combo
displacer
parents: 695
diff changeset
   235
QString SelWeaponWidget::getWeaponsString(const QString& name) const
d6f32ed6edc8 working multiplayer weapons combo
displacer
parents: 695
diff changeset
   236
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   237
    return wconf->value(name).toString();
696
d6f32ed6edc8 working multiplayer weapons combo
displacer
parents: 695
diff changeset
   238
}
d6f32ed6edc8 working multiplayer weapons combo
displacer
parents: 695
diff changeset
   239
718
f93a38d2c982 delete weapon button added
displacer
parents: 717
diff changeset
   240
void SelWeaponWidget::deleteWeaponsName()
f93a38d2c982 delete weapon button added
displacer
parents: 717
diff changeset
   241
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   242
    if (curWeaponsName == "") return;
724
21706280d913 delete weapon set should work fine now
displacer
parents: 723
diff changeset
   243
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   244
    for(int i = 0; i < cDefaultAmmos.size(); i++)
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   245
        if (!cDefaultAmmos[i].first.compare(m_name->text()))
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   246
        {
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   247
            QMessageBox::warning(0, QMessageBox::tr("Weapons"), QMessageBox::tr("Can not delete default weapon set '%1'!").arg(cDefaultAmmos[i].first));
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   248
            return;
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   249
        }
1509
34f7dd4efe84 Small fixes mixed with formatting changes
unc0rr
parents: 1456
diff changeset
   250
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   251
    QMessageBox reallyDelete(QMessageBox::Question, QMessageBox::tr("Weapons"), QMessageBox::tr("Really delete this weapon set?"), QMessageBox::Ok | QMessageBox::Cancel);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2371
diff changeset
   252
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   253
    if (reallyDelete.exec() == QMessageBox::Ok)
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   254
    {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   255
        wconf->remove(curWeaponsName);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   256
        emit weaponsDeleted();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   257
    }
718
f93a38d2c982 delete weapon button added
displacer
parents: 717
diff changeset
   258
}
f93a38d2c982 delete weapon button added
displacer
parents: 717
diff changeset
   259
4416
29d2d1548387 adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents: 4412
diff changeset
   260
void SelWeaponWidget::newWeaponsName()
29d2d1548387 adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents: 4412
diff changeset
   261
{
5029
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   262
    QString newName = tr("new");
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   263
    if(wconf->contains(newName))
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   264
    {
5029
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   265
        //name already used -> look for an appropriate name:
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   266
        int i=2;
6479
4f08821cbff5 minor cleanup
koda
parents: 6472
diff changeset
   267
        while(wconf->contains(newName = tr("new")+QString::number(i++))) ;
5029
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   268
    }
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   269
    setWeaponsName(newName);
4416
29d2d1548387 adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents: 4412
diff changeset
   270
}
29d2d1548387 adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents: 4412
diff changeset
   271
1509
34f7dd4efe84 Small fixes mixed with formatting changes
unc0rr
parents: 1456
diff changeset
   272
void SelWeaponWidget::setWeaponsName(const QString& name)
694
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
   273
{
4412
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   274
    m_name->setText(name);
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   275
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   276
    curWeaponsName = name;
c9a78ba03679 added disabling option to itemNum and grey images for that. also made default weapon sets uneditable and not deleteable.
Henek
parents: 3697
diff changeset
   277
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   278
    if(name != "" && wconf->contains(name))
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   279
    {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   280
        setWeapons(wconf->value(name).toString());
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   281
    }
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   282
    else
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   283
    {
4416
29d2d1548387 adding a combobox to weapon editor as scheme editor, added a few notices for deleting and some buttons in this area.
Henek
parents: 4412
diff changeset
   284
        setWeapons(*cDefaultAmmoStore);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   285
    }
694
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
   286
}
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
   287
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
   288
QStringList SelWeaponWidget::getWeaponNames() const
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
   289
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2860
diff changeset
   290
    return wconf->allKeys();
694
436045756181 working save weapons to file
displacer
parents: 683
diff changeset
   291
}
4598
7cb8c9db6e8d added copying of weapon sets
Henek
parents: 4416
diff changeset
   292
7cb8c9db6e8d added copying of weapon sets
Henek
parents: 4416
diff changeset
   293
void SelWeaponWidget::copy()
7cb8c9db6e8d added copying of weapon sets
Henek
parents: 4416
diff changeset
   294
{
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   295
    if(wconf->contains(curWeaponsName))
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   296
    {
5029
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   297
        QString ammo = getWeaponsString(curWeaponsName);
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   298
        QString newName = tr("copy of") + " " + curWeaponsName;
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   299
        if(wconf->contains(newName))
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6479
diff changeset
   300
        {
5029
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   301
            //name already used -> look for an appropriate name:
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   302
            int i=2;
6479
4f08821cbff5 minor cleanup
koda
parents: 6472
diff changeset
   303
            while(wconf->contains(newName = tr("copy of") + " " + curWeaponsName+QString::number(i++))) ;
5029
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   304
        }
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   305
        setWeaponsName(newName);
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   306
        setWeapons(ammo);
97c650500991 solved issue 197 and other issues that were caused when copying or creating a new weapon set that was named like an already existing one. this will now be avoided.
Tobias Domhan <tdomhan@gmail.com>
parents: 4976
diff changeset
   307
    }
4598
7cb8c9db6e8d added copying of weapon sets
Henek
parents: 4416
diff changeset
   308
}