mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-15 11:51:33 +00:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2dd66b8f20 | ||
|
|
d5165c3e75 |
@@ -10,6 +10,11 @@ function OnInit()
|
|||||||
// Orca: fallback timeout in case the C++ -> JS signal fails (e.g., WebKit issues).
|
// Orca: fallback timeout in case the C++ -> JS signal fails (e.g., WebKit issues).
|
||||||
// Jump to the target page after 3 minutes so slow computers don't get stuck on a partially loaded page.
|
// Jump to the target page after 3 minutes so slow computers don't get stuck on a partially loaded page.
|
||||||
setTimeout("JumpToTarget()",180*1000);
|
setTimeout("JumpToTarget()",180*1000);
|
||||||
|
|
||||||
|
var tSend={};
|
||||||
|
tSend['sequence_id']=Math.round(new Date() / 1000);
|
||||||
|
tSend['command']="userguide_loading_page_ready";
|
||||||
|
SendWXMessage(JSON.stringify(tSend));
|
||||||
}
|
}
|
||||||
|
|
||||||
function HandleStudio( pVal )
|
function HandleStudio( pVal )
|
||||||
|
|||||||
@@ -451,6 +451,16 @@ void GuideFrame::on_profile_loaded()
|
|||||||
SaveProfileData();
|
SaveProfileData();
|
||||||
const std::string strAll = m_ProfileJson.dump(-1, ' ', false, json::error_handler_t::ignore);
|
const std::string strAll = m_ProfileJson.dump(-1, ' ', false, json::error_handler_t::ignore);
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ", finished, json contents:\n" << strAll;
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ", finished, json contents:\n" << strAll;
|
||||||
|
m_profile_ready = true;
|
||||||
|
notify_profile_loaded();
|
||||||
|
}
|
||||||
|
|
||||||
|
// The data is often ready before the loading page has run its scripts, and a
|
||||||
|
// call into a page without HandleStudio is lost, so the message waits for both.
|
||||||
|
void GuideFrame::notify_profile_loaded()
|
||||||
|
{
|
||||||
|
if (!m_profile_ready || !m_page_ready)
|
||||||
|
return;
|
||||||
json res;
|
json res;
|
||||||
res["command"] = "userguide_profile_load_finish";
|
res["command"] = "userguide_profile_load_finish";
|
||||||
res["sequence_id"] = "10001";
|
res["sequence_id"] = "10001";
|
||||||
@@ -546,7 +556,11 @@ void GuideFrame::OnScriptMessage(wxWebViewEvent &evt)
|
|||||||
wxString strCmd = j["command"];
|
wxString strCmd = j["command"];
|
||||||
BOOST_LOG_TRIVIAL(trace) << "GuideFrame::OnScriptMessage;Command:" << strCmd;
|
BOOST_LOG_TRIVIAL(trace) << "GuideFrame::OnScriptMessage;Command:" << strCmd;
|
||||||
|
|
||||||
if (strCmd == "close_page") {
|
if (strCmd == "userguide_loading_page_ready") {
|
||||||
|
m_page_ready = true;
|
||||||
|
notify_profile_loaded();
|
||||||
|
}
|
||||||
|
else if (strCmd == "close_page") {
|
||||||
this->EndModal(wxID_CANCEL);
|
this->EndModal(wxID_CANCEL);
|
||||||
}
|
}
|
||||||
if (strCmd == "user_clause") {
|
if (strCmd == "user_clause") {
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ public:
|
|||||||
int LoadProfileFamily(std::string strVendor, std::string strFilePath);
|
int LoadProfileFamily(std::string strVendor, std::string strFilePath);
|
||||||
void init_guide_paths();
|
void init_guide_paths();
|
||||||
void on_profile_loaded();
|
void on_profile_loaded();
|
||||||
|
void notify_profile_loaded();
|
||||||
bool BuildProfileJson(const PresetBundle& bundle, bool require_all_resource_vendors);
|
bool BuildProfileJson(const PresetBundle& bundle, bool require_all_resource_vendors);
|
||||||
bool BuildProfileDataFromPresetBundle();
|
bool BuildProfileDataFromPresetBundle();
|
||||||
bool BuildProfileDataFromVendors();
|
bool BuildProfileDataFromVendors();
|
||||||
@@ -142,6 +143,10 @@ private:
|
|||||||
|
|
||||||
//First Load
|
//First Load
|
||||||
bool bFirstComplete{false};
|
bool bFirstComplete{false};
|
||||||
|
// The loading page gets userguide_profile_load_finish once both are true;
|
||||||
|
// every instance of it reports in, so the flag is never reset.
|
||||||
|
bool m_profile_ready{false};
|
||||||
|
bool m_page_ready{false};
|
||||||
// Set once in the destructor. Read through `this` by the loading thread
|
// Set once in the destructor. Read through `this` by the loading thread
|
||||||
// (joined before `this` dies) and captured as the shared_ptr by CallAfter
|
// (joined before `this` dies) and captured as the shared_ptr by CallAfter
|
||||||
// lambdas so they don't touch `this` after the object is freed.
|
// lambdas so they don't touch `this` after the object is freed.
|
||||||
|
|||||||
Reference in New Issue
Block a user