mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-14 10:17:55 -06:00
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>
|
<array>
|
||||||
<string>orcaslicer</string>
|
<string>orcaslicer</string>
|
||||||
</array>
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleURLName</key>
|
||||||
|
<string>BambuStudio Downloads</string>
|
||||||
|
<key>CFBundleURLSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>bambustudioopen</string>
|
||||||
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleDocumentTypes</key>
|
<key>CFBundleDocumentTypes</key>
|
||||||
|
|
|
@ -219,7 +219,7 @@ extern bool is_json_file(const std::string& path);
|
||||||
// Orca: custom protocal support utils
|
// Orca: custom protocal support utils
|
||||||
inline bool is_orca_open(const std::string& url) { return boost::starts_with(url, "orcaslicer://open"); }
|
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_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_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_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) {
|
inline bool is_printables_link(const std::string& url) {
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
<array>
|
<array>
|
||||||
<string>orcasliceropen</string>
|
<string>orcasliceropen</string>
|
||||||
<string>orcaslicer</string>
|
<string>orcaslicer</string>
|
||||||
|
<string>bambustudioopen</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</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
|
// 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
|
// 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 re(R"(^(orcaslicer|prusaslicer|bambustudio|cura):\/\/open[\/]?\?file=)", boost::regbase::icase);
|
||||||
|
boost::regex re2(R"(^(bambustudioopen):\/\/)", boost::regex::icase);
|
||||||
boost::smatch results;
|
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;
|
BOOST_LOG_TRIVIAL(error) << "Could not start download due to wrong URL: " << full_url;
|
||||||
// Orca: show error
|
// Orca: show error
|
||||||
NotificationManager* ntf_mngr = wxGetApp().notification_manager();
|
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<boost::filesystem::path> paths;
|
||||||
std::vector<std::string> downloads;
|
std::vector<std::string> downloads;
|
||||||
boost::regex re(R"(^(orcaslicer|prusaslicer|cura|bambustudio):\/\/open[\/]?\?file=)", boost::regbase::icase);
|
boost::regex re(R"(^(orcaslicer|prusaslicer|cura|bambustudio):\/\/open[\/]?\?file=)", boost::regbase::icase);
|
||||||
|
boost::regex re2(R"(^(bambustudioopen):\/\/)", boost::regex::icase);
|
||||||
boost::smatch results;
|
boost::smatch results;
|
||||||
|
|
||||||
// Skip the first argument, it is the path to the slicer executable.
|
// 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);
|
boost::filesystem::path p = MessageHandlerInternal::get_path(*it);
|
||||||
if (! p.string().empty())
|
if (! p.string().empty())
|
||||||
paths.emplace_back(p);
|
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);
|
downloads.emplace_back(*it);
|
||||||
}
|
}
|
||||||
if (! paths.empty()) {
|
if (! paths.empty()) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue