File: reportsubview.cpp

package info (click to toggle)
openmw 0.50.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,076 kB
  • sloc: cpp: 380,958; xml: 2,192; sh: 1,449; python: 911; makefile: 26; javascript: 5
file content (45 lines) | stat: -rw-r--r-- 1,279 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
45
#include "reportsubview.hpp"

#include "reporttable.hpp"

#include <apps/opencs/view/doc/subview.hpp>

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

CSVTools::ReportSubView::ReportSubView(const CSMWorld::UniversalId& id, CSMDoc::Document& document)
    : CSVDoc::SubView(id)
    , mDocument(document)
    , mRefreshState(0)
{
    if (id.getType() == CSMWorld::UniversalId::Type_VerificationResults)
        mRefreshState = CSMDoc::State_Verifying;

    setWidget(mTable = new ReportTable(document, id, false, mRefreshState, this));

    connect(mTable, &ReportTable::editRequest, this, &ReportSubView::focusId);

    if (mRefreshState == CSMDoc::State_Verifying)
    {
        connect(mTable, &ReportTable::refreshRequest, this, &ReportSubView::refreshRequest);

        connect(&document, &CSMDoc::Document::stateChanged, mTable, &ReportTable::stateChanged);
    }
}

void CSVTools::ReportSubView::setEditLock(bool locked)
{
    // ignored. We don't change document state anyway.
}

void CSVTools::ReportSubView::refreshRequest()
{
    if (!(mDocument.getState() & mRefreshState))
    {
        if (mRefreshState == CSMDoc::State_Verifying)
        {
            mTable->clear();
            mDocument.verify(getUniversalId());
        }
    }
}