mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-14 00:52:04 +00:00
Bambu H2D: Filament group wiki fix (#12880)
Co-authored-by: yw4z <yw4z@outlook.com> Co-authored-by: yw4z <ywsyildiz@gmail.com>
This commit is contained in:
@@ -4,16 +4,15 @@
|
||||
#include "wx/dcgraph.h"
|
||||
#include "I18N.hpp"
|
||||
#include "PartPlate.hpp"
|
||||
#include "Widgets/HyperLink.hpp"
|
||||
|
||||
namespace Slic3r { namespace GUI {
|
||||
|
||||
static const wxColour LabelEnableColor = wxColour("#262E30");
|
||||
static const wxColour LabelDisableColor = wxColour("#ACACAC");
|
||||
static const wxColour GreyColor = wxColour("#6B6B6B");
|
||||
static const wxColour GreenColor = wxColour("#009688");
|
||||
static const wxColour BackGroundColor = wxColour("#FFFFFF");
|
||||
|
||||
|
||||
static bool should_pop_up()
|
||||
{
|
||||
const auto &preset_bundle = wxGetApp().preset_bundle;
|
||||
@@ -47,6 +46,37 @@ static void set_prefered_map_mode(FilamentMapMode mode)
|
||||
app_config->set("prefered_filament_map_mode", mode_str);
|
||||
}
|
||||
|
||||
bool play_dual_extruder_slice_video()
|
||||
{
|
||||
if (wxLaunchDefaultBrowser("https://e.bambulab.com/t?c=HDB24RlwSmt77YFH")) {
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("Video is being played using the system's default browser.");
|
||||
return true;
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format("launch system's default browser failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool play_dual_extruder_print_tpu_video()
|
||||
{
|
||||
const wxString video_url = "https://e.bambulab.com/t?c=fwWqpBg37Liel92N";
|
||||
if (wxLaunchDefaultBrowser(video_url)){
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("Print Tpu Video is being played using the system's default browser.");
|
||||
return true;
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format("launch system's default browser failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool open_filament_group_wiki()
|
||||
{
|
||||
if (wxLaunchDefaultBrowser("https://e.bambulab.com/t?c=mOkvsXkJ9pldGYp9")) {
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("Wiki is being displayed using the system's default browser.");
|
||||
return true;
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format("launch system's default browser failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
void FilamentGroupPopup::CreateBmps()
|
||||
{
|
||||
checked_bmp = create_scaled_bitmap("radio_on", nullptr, 16);; // ORCA match icons
|
||||
@@ -146,16 +176,20 @@ FilamentGroupPopup::FilamentGroupPopup(wxWindow *parent) : PopupWindow(parent, w
|
||||
|
||||
{
|
||||
wxBoxSizer *button_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
const std::string wiki_path = Slic3r::resources_dir() + "/wiki/filament_group_wiki_zh.html"; // NEEDFIX this link is broken
|
||||
|
||||
auto* wiki_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
wiki_link = new HyperLink(this, _L("Wiki Guide"), wxString(wiki_path.c_str())); // ORCA
|
||||
wiki_sizer->Add(wiki_link, 0, wxALIGN_CENTER | wxALL, FromDIP(3));
|
||||
|
||||
button_sizer->Add(wiki_sizer, 0, wxLEFT, horizontal_margin);
|
||||
// ORCA Unified hyperlinks
|
||||
video_link = new HyperLink(this, _L("Video tutorial"));
|
||||
video_link->Bind(wxEVT_LEFT_DOWN, [](wxMouseEvent& e)
|
||||
{
|
||||
play_dual_extruder_slice_video();
|
||||
wxGetApp().app_config->set("play_slicing_video", "false");
|
||||
});
|
||||
button_sizer->Add(video_link, 0, wxLEFT, horizontal_margin + FromDIP(3));
|
||||
button_sizer->AddStretchSpacer();
|
||||
|
||||
wiki_link = new HyperLink(this, _L("Wiki Guide"));
|
||||
wiki_link->Bind(wxEVT_LEFT_DOWN, [](wxMouseEvent&) { open_filament_group_wiki(); });
|
||||
button_sizer->Add(wiki_link, 0, wxLEFT, horizontal_margin);
|
||||
|
||||
top_sizer->Add(button_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, horizontal_margin);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,10 @@ class PartPlate;
|
||||
class Plater;
|
||||
|
||||
|
||||
bool play_dual_extruder_slice_video();
|
||||
bool play_dual_extruder_print_tpu_video();
|
||||
bool open_filament_group_wiki();
|
||||
|
||||
class FilamentGroupPopup : public PopupWindow
|
||||
{
|
||||
public:
|
||||
@@ -69,6 +73,7 @@ private:
|
||||
|
||||
|
||||
wxStaticText *wiki_link;
|
||||
wxStaticText *video_link;
|
||||
|
||||
PartPlate* partplate_ref{ nullptr };
|
||||
Plater* plater_ref{ nullptr };
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "GUI_Utils.hpp"
|
||||
#include "GUI.hpp"
|
||||
#include "GLCanvas3D.hpp"
|
||||
#include "FilamentGroupPopup.hpp"
|
||||
#include "GLToolbar.hpp"
|
||||
#include "GUI_Preview.hpp"
|
||||
#include "libslic3r/Print.hpp"
|
||||
@@ -2773,13 +2774,12 @@ void GCodeViewer::render_legend_color_arr_recommen(float window_padding)
|
||||
|
||||
auto link_filament_group_wiki = [&](const std::string& label) {
|
||||
ImVec2 wiki_part_size = ImGui::CalcTextSize(label.c_str());
|
||||
|
||||
ImColor HyperColor = ImColor(0, 150, 136, 255).Value;
|
||||
ImColor HyperColor = ImColor(0, 150, 136, 255); // ORCA match color
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, HyperColor.Value);
|
||||
imgui.text(label.c_str());
|
||||
ImGui::PopStyleColor();
|
||||
|
||||
// underline
|
||||
// ORCA use underline to match hyperlink style
|
||||
ImVec2 lineEnd = ImGui::GetItemRectMax();
|
||||
lineEnd.y -= 2.0f;
|
||||
ImVec2 lineStart = lineEnd;
|
||||
@@ -2788,8 +2788,7 @@ void GCodeViewer::render_legend_color_arr_recommen(float window_padding)
|
||||
// click behavior
|
||||
if (ImGui::IsMouseHoveringRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), true)) {
|
||||
if (ImGui::IsMouseClicked(ImGuiMouseButton_Left)) {
|
||||
std::string wiki_path = Slic3r::resources_dir() + "/wiki/filament_group_wiki_zh.html";
|
||||
wxLaunchDefaultBrowser(wxString(wiki_path.c_str()));
|
||||
open_filament_group_wiki();
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -2996,8 +2995,9 @@ void GCodeViewer::render_legend_color_arr_recommen(float window_padding)
|
||||
link_text(_u8L("Regroup filament"));
|
||||
|
||||
ImGui::SameLine();
|
||||
ImGui::SetCursorPosX(ImGui::GetWindowContentRegionWidth() - window_padding - ImGui::CalcTextSize("Tips").x);
|
||||
link_filament_group_wiki(_u8L("Tips"));
|
||||
std::string wiki_str = _u8L("Wiki Guide"); // ORCA
|
||||
ImGui::SetCursorPosX(ImGui::GetWindowContentRegionWidth() - window_padding - ImGui::CalcTextSize(wiki_str.c_str()).x);
|
||||
link_filament_group_wiki(wiki_str);
|
||||
|
||||
ImGui::EndChild();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user