mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-26 16:04:34 +00:00
Notify UserData that view state should be preserved.
This is only active when a trace is loaded from a file (and state should be persistent for future sessions using this trace), or when state is saved to a file (so that future sessions will use current state). No state is preserved by default, i.e. when the trace was not saved to a file.
This commit is contained in:
parent
949c9cb121
commit
dc5444ff0f
@ -10,6 +10,7 @@ namespace tracy
|
||||
constexpr auto FileDescription = "description";
|
||||
|
||||
UserData::UserData()
|
||||
: m_preserveState( false )
|
||||
{
|
||||
}
|
||||
|
||||
@ -52,6 +53,11 @@ bool UserData::SetDescription( const char* description )
|
||||
return true;
|
||||
}
|
||||
|
||||
void UserData::StateShouldBePreserved()
|
||||
{
|
||||
m_preserveState = true;
|
||||
}
|
||||
|
||||
FILE* UserData::OpenFile( const char* filename, bool write )
|
||||
{
|
||||
const auto path = GetSavePath( m_program.c_str(), m_time, filename, write );
|
||||
|
@ -20,6 +20,8 @@ public:
|
||||
const std::string& GetDescription() const { return m_description; }
|
||||
bool SetDescription( const char* description );
|
||||
|
||||
void StateShouldBePreserved();
|
||||
|
||||
private:
|
||||
FILE* OpenFile( const char* filename, bool write );
|
||||
|
||||
@ -27,6 +29,8 @@ private:
|
||||
uint64_t m_time;
|
||||
|
||||
std::string m_description;
|
||||
|
||||
bool m_preserveState;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -148,6 +148,7 @@ View::View( FileRead& f, ImFont* fixedWidth, ImFont* smallFont, ImFont* bigFont,
|
||||
|
||||
InitTextEditor();
|
||||
SetViewToLastFrames();
|
||||
m_userData.StateShouldBePreserved();
|
||||
}
|
||||
|
||||
View::~View()
|
||||
@ -852,6 +853,7 @@ bool View::DrawConnection()
|
||||
}
|
||||
if( f )
|
||||
{
|
||||
m_userData.StateShouldBePreserved();
|
||||
m_saveThreadState.store( SaveThreadState::Saving, std::memory_order_relaxed );
|
||||
m_saveThread = std::thread( [this, f{std::move( f )}] {
|
||||
std::shared_lock<std::shared_mutex> lock( m_worker.GetDataLock() );
|
||||
|
Loading…
Reference in New Issue
Block a user