#ifndef LOADORDERERROR_HPP
#define LOADORDERERROR_HPP

#include <QString>

namespace ContentSelectorModel
{
    /// \brief Details of a suspected Load Order problem a plug-in will have. This is basically a POD.
    class LoadOrderError
    {
    public:
        enum ErrorCode
        {
            ErrorCode_None = 0,
            ErrorCode_MissingDependency = 1,
            ErrorCode_InactiveDependency = 2,
            ErrorCode_LoadOrder = 3
        };

        inline LoadOrderError()
            : mErrorCode(ErrorCode_None)
        {
        }
        inline LoadOrderError(ErrorCode errorCode, const QString& fileName)
            : mErrorCode(errorCode)
            , mFileName(fileName)
        {
        }
        inline ErrorCode errorCode() const { return mErrorCode; }
        inline QString fileName() const { return mFileName; }
        QString toolTip() const;

    private:
        ErrorCode mErrorCode;
        QString mFileName;
        static QString sErrorToolTips[ErrorCode_LoadOrder];
    };
}

#endif // LOADORDERERROR_HPP