GCC Code Coverage Report
Directory: src/ Exec Total Coverage
File: src/gui/models/extendednamesmodel.cpp Lines: 13 22 59.1 %
Date: 2021-03-17 Branches: 1 16 6.3 %

Line Branch Exec Source
1
/*
2
 *  The ManaPlus Client
3
 *  Copyright (C) 2012-2019  The ManaPlus Developers
4
 *  Copyright (C) 2019-2021  Andrei Karas
5
 *
6
 *  This file is part of The ManaPlus Client.
7
 *
8
 *  This program is free software; you can redistribute it and/or modify
9
 *  it under the terms of the GNU General Public License as published by
10
 *  the Free Software Foundation; either version 2 of the License, or
11
 *  any later version.
12
 *
13
 *  This program is distributed in the hope that it will be useful,
14
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 *  GNU General Public License for more details.
17
 *
18
 *  You should have received a copy of the GNU General Public License
19
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
 */
21
22
#include "gui/models/extendednamesmodel.h"
23
24
#include "utils/cast.h"
25
#include "utils/foreach.h"
26
27
#include "debug.h"
28
29
2
ExtendedNamesModel::ExtendedNamesModel() :
30
    mNames(),
31
8
    mImages()
32
{
33
2
}
34
35
9
ExtendedNamesModel::~ExtendedNamesModel()
36
{
37
2
    clear();
38
3
}
39
40
2
int ExtendedNamesModel::getNumberOfElements()
41
{
42
4
    return CAST_S32(mNames.size());
43
}
44
45
std::string ExtendedNamesModel::getElementAt(int i)
46
{
47
    if (i >= getNumberOfElements() || i < 0)
48
        return "???";
49
    return mNames[CAST_SIZE(i)];
50
}
51
52
const Image *ExtendedNamesModel::getImageAt(int i)
53
{
54
    if (i >= CAST_S32(mImages.size()) || i < 0)
55
        return nullptr;
56
57
    return mImages[CAST_SIZE(i)];
58
}
59
60
2
void ExtendedNamesModel::clear()
61
{
62
2
    mNames.clear();
63
8
    FOR_EACH (STD_VECTOR<Image*>::iterator, it, mImages)
64
    {
65
        if (*it != nullptr)
66
            (*it)->decRef();
67
    }
68
4
    mImages.clear();
69
2
}