~berciu-deactivatedaccount/cristallparser/unstable-qt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <sstream>

#include "CristallValues.h"

using namespace std;
using namespace Cristall;


int CristallValues::size()
{
    return Summary.size();
}

string CristallValues::getElement(int Id, Cristall::DataType Data)
{
    switch (Data)
    {
    case DataType::Label:
        return Summary[Id].Label;
        break;
    case DataType::Value:
        return Summary[Id].Value;
        break;
    }
    return Summary[Id].Label;
}

void CristallValues::loadData(const std::vector<CristallValuesModel>& Data)
{
    Summary = Data;
}

void CristallValues::addElement(std::string Label, std::string Value, ModelReciv Reciv)
{
    CristallValuesModel Model(Label, Reciv );
    if (!Value.empty())
        Model.setValue(Value);
    Summary.push_back(Model);
}

void CristallValues::addElement(std::string Label, ModelReciv Reciv)
{
    addElement(Label, "", Reciv);
}

CristallValues CristallValues::search(std::string What, Cristall::DataType Data, Cristall::SearchType How)
{
    CristallValues Result;
    int Index = 0;
    for (auto i : Summary)
    {
        if ((getElement(Index, Data) == What && How == SearchType::FullText)
                || ((int)getElement(Index, Data).find(What) > -1 && How == SearchType::Inside))
            Result.addElement(getElement(Index, DataType::Label), getElement(Index, DataType::Value), ModelReciv::Normal);
        else if ((getElement(Index, Data) == What || (int)getElement(Index, Data).find(What) > -1) && How == SearchType::Any)
            Result.addElement(getElement(Index, DataType::Label), getElement(Index, DataType::Value), ModelReciv::Normal);
        Index++;
    }
    return Result;
}

void CristallValues::clear()
{
    Summary.erase(Summary.begin(), Summary.end());
}