File: searchoperation.cpp

package info (click to toggle)
openmw 0.49.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,992 kB
  • sloc: cpp: 372,479; xml: 2,149; sh: 1,403; python: 797; makefile: 26
file content (44 lines) | stat: -rw-r--r-- 1,329 bytes parent folder | download
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
#include "searchoperation.hpp"

#include "../doc/document.hpp"
#include "../doc/state.hpp"

#include "../world/data.hpp"
#include "../world/idtablebase.hpp"

#include <vector>

#include <apps/opencs/model/doc/messages.hpp>
#include <apps/opencs/model/doc/operation.hpp>
#include <apps/opencs/model/tools/search.hpp>
#include <apps/opencs/model/world/universalid.hpp>

#include "searchstage.hpp"

CSMTools::SearchOperation::SearchOperation(CSMDoc::Document& document)
    : CSMDoc::Operation(CSMDoc::State_Searching, false)
{
    std::vector<CSMWorld::UniversalId::Type> types = CSMWorld::UniversalId::listTypes(
        CSMWorld::UniversalId::Class_RecordList | CSMWorld::UniversalId::Class_ResourceList);

    for (std::vector<CSMWorld::UniversalId::Type>::const_iterator iter(types.begin()); iter != types.end(); ++iter)
        appendStage(new SearchStage(&dynamic_cast<CSMWorld::IdTableBase&>(*document.getData().getTableModel(*iter))));

    setDefaultSeverity(CSMDoc::Message::Severity_Info);
}

void CSMTools::SearchOperation::configure(const Search& search)
{
    mSearch = search;
}

void CSMTools::SearchOperation::appendStage(SearchStage* stage)
{
    CSMDoc::Operation::appendStage(stage);
    stage->setOperation(this);
}

const CSMTools::Search& CSMTools::SearchOperation::getSearch() const
{
    return mSearch;
}