/*
 * Copyright (c) Contributors to the Open 3D Engine Project.
 * For complete copyright and license terms please see the LICENSE at the root of this distribution.
 *
 * SPDX-License-Identifier: Apache-2.0 OR MIT
 *
 */



// Description : Class that collects error reports to present them later.
#pragma once

// forward declarations.
class CParticleItem;
class CErrorRecord;
class QString;

/*! Error report manages collection of errors occurred during map analyzes or level load.
 */
struct IErrorReport
{
    virtual ~IErrorReport(){}

    //! If enabled errors are reported immediately and not stored.
    virtual void SetImmediateMode(bool bEnable) = 0;

    virtual bool IsImmediateMode() const = 0;

    virtual void SetShowErrors(bool bShowErrors = true) = 0;

    //! Adds new error to report.
    virtual void ReportError(CErrorRecord& err) = 0;

    //! Check if error report have any errors.
    virtual bool IsEmpty() const = 0;

    //! Get number of contained error records.
    virtual int GetErrorCount() const = 0;

    //! Get access to indexed error record.
    virtual CErrorRecord& GetError(int i) = 0;

    //! Clear all error records.
    virtual void Clear() = 0;

    //! Display dialog with all errors.
    virtual void Display() = 0;

    //! Assign current filename.
    virtual void SetCurrentFile(const QString& file) = 0;
};
