support downloading from makerworld on Mac by default. (#6867)
handle bambustudioopen on Mac by default
This commit is contained in:
parent
99d4d0957a
commit
96effc179b
5 changed files with 14 additions and 3 deletions
|
@ -37,6 +37,14 @@
|
|||
<array>
|
||||
<string>orcaslicer</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>BambuStudio Downloads</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>bambustudioopen</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
|
|
|
@ -219,7 +219,7 @@ extern bool is_json_file(const std::string& path);
|
|||
// Orca: custom protocal support utils
|
||||
inline bool is_orca_open(const std::string& url) { return boost::starts_with(url, "orcaslicer://open"); }
|
||||
inline bool is_prusaslicer_open(const std::string& url) { return boost::starts_with(url, "prusaslicer://open"); }
|
||||
inline bool is_bambustudio_open(const std::string& url) { return boost::starts_with(url, "bambustudio://open"); }
|
||||
inline bool is_bambustudio_open(const std::string& url) { return boost::starts_with(url, "bambustudio://open") || boost::starts_with(url, "bambustudioopen://"); }
|
||||
inline bool is_cura_open(const std::string& url) { return boost::starts_with(url, "cura://open"); }
|
||||
inline bool is_supported_open_protocol(const std::string& url) { return is_orca_open(url) || is_prusaslicer_open(url) || is_bambustudio_open(url) || is_cura_open(url); }
|
||||
inline bool is_printables_link(const std::string& url) {
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
<array>
|
||||
<string>orcasliceropen</string>
|
||||
<string>orcaslicer</string>
|
||||
<string>bambustudioopen</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
|
|
@ -145,9 +145,10 @@ void Downloader::start_download(const std::string& full_url)
|
|||
// Orca: Replace PS workaround for "mysterious slash" with a more dynamic approach
|
||||
// Windows seems to have fixed the issue and this provides backwards compatability for those it still affects
|
||||
boost::regex re(R"(^(orcaslicer|prusaslicer|bambustudio|cura):\/\/open[\/]?\?file=)", boost::regbase::icase);
|
||||
boost::regex re2(R"(^(bambustudioopen):\/\/)", boost::regex::icase);
|
||||
boost::smatch results;
|
||||
|
||||
if (!boost::regex_search(full_url, results, re)) {
|
||||
if (!boost::regex_search(full_url, results, re) && !boost::regex_search(full_url, results, re2)) {
|
||||
BOOST_LOG_TRIVIAL(error) << "Could not start download due to wrong URL: " << full_url;
|
||||
// Orca: show error
|
||||
NotificationManager* ntf_mngr = wxGetApp().notification_manager();
|
||||
|
|
|
@ -502,6 +502,7 @@ void OtherInstanceMessageHandler::handle_message(const std::string& message)
|
|||
std::vector<boost::filesystem::path> paths;
|
||||
std::vector<std::string> downloads;
|
||||
boost::regex re(R"(^(orcaslicer|prusaslicer|cura|bambustudio):\/\/open[\/]?\?file=)", boost::regbase::icase);
|
||||
boost::regex re2(R"(^(bambustudioopen):\/\/)", boost::regex::icase);
|
||||
boost::smatch results;
|
||||
|
||||
// Skip the first argument, it is the path to the slicer executable.
|
||||
|
@ -510,7 +511,7 @@ void OtherInstanceMessageHandler::handle_message(const std::string& message)
|
|||
boost::filesystem::path p = MessageHandlerInternal::get_path(*it);
|
||||
if (! p.string().empty())
|
||||
paths.emplace_back(p);
|
||||
else if (boost::regex_search(*it, results, re))
|
||||
else if (boost::regex_search(*it, results, re) || boost::regex_search(*it, results, re2))
|
||||
downloads.emplace_back(*it);
|
||||
}
|
||||
if (! paths.empty()) {
|
||||
|
|
Loading…
Reference in a new issue