//#####################################################################
// Copyright 2020, Craig Schroeder.
// This file is part of PhysBAM whose distribution is governed by the license contained in the accompanying file PHYSBAM_COPYRIGHT.txt.
//#####################################################################
#include <Core/Utilities/VIEWER_DIR.h>
#include "QT_OBJECT.h"
#include <filesystem>
namespace fs = std::filesystem;
namespace PhysBAM{
//#####################################################################
// Function Invalidate
//#####################################################################
void QT_OBJECT_BASE::
Invalidate(bool invalidate_common)
{
    if(invalidate_common || !common) stale=true;
}
//#####################################################################
// Function Find_File
//#####################################################################
std::pair<std::string,bool> QT_OBJECT_BASE::
Find_File(const VIEWER_DIR& viewer_dir,const std::string& file)
{
    std::string s;
    s=viewer_dir.Frame_File(file);
    if(fs::exists(s)) return {s,false};
    s+=".gz";
    if(fs::exists(s)) return {s,false};
    s=viewer_dir.Common_File(file);
    if(fs::exists(s)) return {s,true};
    s+=".gz";
    if(fs::exists(s)) return {s,true};
    s=viewer_dir.output_directory+"/"+file;
    if(fs::exists(s)) return {s,true};
    s+=".gz";
    if(fs::exists(s)) return {s,true};
    return {"",true};
}

}
