mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-29 19:53:44 -06:00 
			
		
		
		
	FIX: optimize style of media file panel
Change-Id: I2e5319538adae84b9b0348874d7b468b0dbc2db1
This commit is contained in:
		
							parent
							
								
									b21b4aec95
								
							
						
					
					
						commit
						6dc68c4c9e
					
				
					 7 changed files with 64 additions and 28 deletions
				
			
		|  | @ -187,6 +187,9 @@ void ImageGrid::UpdateLayout() | |||
| { | ||||
|     if (!m_file_sys) return; | ||||
|     wxSize size = GetClientSize(); | ||||
|     wxSize mask_size{0, 60 * em_unit(this) / 10}; | ||||
|     if (m_file_sys->GetGroupMode() == PrinterFileSystem::G_NONE) | ||||
|         mask_size.y = 20 * em_unit(this) / 10; | ||||
|     int cell_width = m_cell_size.GetWidth(); | ||||
|     int cell_height = m_cell_size.GetHeight(); | ||||
|     int ncol = (size.GetWidth() - cell_width + m_image_size.GetWidth()) / cell_width; | ||||
|  | @ -199,7 +202,6 @@ void ImageGrid::UpdateLayout() | |||
|     if (m_row_offset >= m_row_count) | ||||
|         m_row_offset = m_row_count == 0 ? 0 : m_row_count - 1; | ||||
|     // create mask
 | ||||
|     wxSize mask_size{0, 60 * em_unit(this) / 10}; | ||||
|     if (m_file_sys->GetGroupMode() == PrinterFileSystem::G_NONE) { | ||||
|         mask_size.x = (m_col_count - 1) * m_cell_size.GetWidth() + m_image_size.GetWidth(); | ||||
|     } | ||||
|  | @ -370,6 +372,8 @@ size_t Slic3r::GUI::ImageGrid::firstItem(wxSize const &size, wxPoint &off) | |||
|     int index = (m_row_offset + 1 < m_row_count || m_row_count == 0) ? | ||||
|                     m_row_offset / 4 * m_col_count : | ||||
|                     ((m_file_sys->GetCount() + m_col_count - 1) / m_col_count - (size.y + m_image_size.GetHeight() - 1) / m_cell_size.GetHeight()) * m_col_count; | ||||
|     if (m_file_sys->GetGroupMode() == PrinterFileSystem::G_NONE) | ||||
|         offy += m_mask.GetHeight(); | ||||
|     off = wxPoint{offx, offy}; | ||||
|     return index; | ||||
| } | ||||
|  | @ -523,12 +527,15 @@ void ImageGrid::render(wxDC& dc) | |||
|     } | ||||
|     // Draw floating date range for non-group list
 | ||||
|     if (m_file_sys->GetGroupMode() == PrinterFileSystem::G_NONE && m_file_sys->GetCount() > 0) { | ||||
|         dc.DrawBitmap(m_mask, {off.x, 0}); | ||||
|         //dc.DrawBitmap(m_mask, {off.x, 0});
 | ||||
|         dc.DrawRectangle({off.x, 0}, m_mask.GetSize()); | ||||
|         auto & file1 = m_file_sys->GetFile(start); | ||||
|         auto & file2 = m_file_sys->GetFile(end - 1); | ||||
|         auto date1 = wxDateTime((time_t) file1.time).Format(_L(formats[m_file_sys->GetGroupMode()])); | ||||
|         auto date2 = wxDateTime((time_t) file2.time).Format(_L(formats[m_file_sys->GetGroupMode()])); | ||||
|         dc.DrawText(date1 + " - " + date2, wxPoint{off.x + 24, 16}); | ||||
|         dc.SetFont(Label::Head_16); | ||||
|         dc.SetTextForeground(wxColor("#262E30")); | ||||
|         dc.DrawText(date1 + " - " + date2, wxPoint{off.x, 2}); | ||||
|     } | ||||
|     // Draw bottom background
 | ||||
|     if (off.y < size.y) | ||||
|  |  | |||
|  | @ -31,6 +31,9 @@ MediaFilePanel::MediaFilePanel(wxWindow * parent) | |||
|     m_button_year = new ::Button(m_time_panel, _L("Year"), "", wxBORDER_NONE); | ||||
|     m_button_month = new ::Button(m_time_panel, _L("Month"), "", wxBORDER_NONE); | ||||
|     m_button_all = new ::Button(m_time_panel, _L("All Files"), "", wxBORDER_NONE); | ||||
|     m_button_year->SetToolTip(L("Group files by year, recent first.")); | ||||
|     m_button_month->SetToolTip(L("Group files by month, recent first.")); | ||||
|     m_button_all->SetToolTip(L("Show all files, recent first.")); | ||||
|     m_button_all->SetFont(Label::Head_14); // sync with m_last_mode
 | ||||
|     for (auto b : {m_button_year, m_button_month, m_button_all}) { | ||||
|         b->SetBackgroundColor(StateColor()); | ||||
|  | @ -49,14 +52,22 @@ MediaFilePanel::MediaFilePanel(wxWindow * parent) | |||
|     top_sizer->Add(m_time_panel, 1, wxEXPAND); | ||||
| 
 | ||||
|     // File type
 | ||||
|     StateColor background( | ||||
|         std::make_pair(0xEEEEEE, (int) StateColor::Checked), | ||||
|         std::make_pair(*wxLIGHT_GREY, (int) StateColor::Hovered),  | ||||
|         std::make_pair(*wxWHITE, (int) StateColor::Normal)); | ||||
|     m_type_panel = new ::StaticBox(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); | ||||
|     m_type_panel->SetBackgroundColor(*wxWHITE); | ||||
|     m_type_panel->SetCornerRadius(FromDIP(5)); | ||||
|     m_type_panel->SetMinSize({-1, 48 * em_unit(this) / 10}); | ||||
|     m_button_timelapse = new ::Button(m_type_panel, _L("Timelapse"), "", wxBORDER_NONE); | ||||
|     m_button_timelapse->SetCanFocus(false); | ||||
|     m_button_timelapse->SetToolTip(L("Switch to timelapse files.")); | ||||
|     m_button_video = new ::Button(m_type_panel, _L("Video"), "", wxBORDER_NONE); | ||||
|     m_button_video->SetCanFocus(false); | ||||
|     m_button_video->SetToolTip(L("Switch to video files.")); | ||||
|     for (auto b : {m_button_timelapse, m_button_video} ) { | ||||
|         b->SetBackgroundColor(background); | ||||
|         b->SetCanFocus(false); | ||||
|     } | ||||
| 
 | ||||
|     wxBoxSizer *type_sizer = new wxBoxSizer(wxHORIZONTAL); | ||||
|     type_sizer->Add(m_button_timelapse, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, 24); | ||||
|  | @ -68,13 +79,22 @@ MediaFilePanel::MediaFilePanel(wxWindow * parent) | |||
|     m_manage_panel      = new ::StaticBox(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); | ||||
|     m_manage_panel->SetBackgroundColor(StateColor()); | ||||
|     m_button_delete     = new ::Button(m_manage_panel, _L("Delete")); | ||||
|     m_button_delete->SetBackgroundColor(StateColor()); | ||||
|     m_button_delete->SetCanFocus(false); | ||||
|     m_button_delete->SetToolTip(L("Delete selected files from printer.")); | ||||
|     m_button_download = new ::Button(m_manage_panel, _L("Download")); | ||||
|     m_button_download->SetBackgroundColor(StateColor()); | ||||
|     m_button_download->SetCanFocus(false); | ||||
|     m_button_download->SetToolTip(L("Download selected files from printer.")); | ||||
|     m_button_management = new ::Button(m_manage_panel, _L("Management")); | ||||
|     m_button_management->SetBackgroundColor(StateColor()); | ||||
|     m_button_management->SetToolTip(L("Batch manage files.")); | ||||
|     for (auto b : {m_button_delete, m_button_download, m_button_management}) { | ||||
|         b->SetBackgroundColor(StateColor()); | ||||
|         b->SetFont(Label::Body_12); | ||||
|         b->SetCornerRadius(12); | ||||
|         b->SetPaddingSize({10, 6}); | ||||
|         b->SetCanFocus(false); | ||||
|     } | ||||
|     m_button_delete->SetBorderColor(wxColor("#FF6F00")); | ||||
|     m_button_delete->SetTextColor(wxColor("#FF6F00")); | ||||
|     m_button_management->SetBorderWidth(0); | ||||
|     m_button_management->SetBackgroundColor(wxColor("#00AE42")); | ||||
| 
 | ||||
|     wxBoxSizer *manage_sizer = new wxBoxSizer(wxHORIZONTAL); | ||||
|     manage_sizer->AddStretchSpacer(1); | ||||
|  |  | |||
|  | @ -490,6 +490,8 @@ size_t PrinterFileSystem::FindFile(size_t index, std::string const &name) | |||
| void PrinterFileSystem::FileRemoved(size_t index, std::string const &name) | ||||
| { | ||||
|     index = FindFile(index, name); | ||||
|     if (index == size_t(-1)) | ||||
|         return; | ||||
|     auto removeFromGroup = [](std::vector<size_t> &group, size_t index, int total) { | ||||
|         for (auto iter = group.begin(); iter != group.end(); ++iter) { | ||||
|             size_t index2 = -1; | ||||
|  |  | |||
|  | @ -27,9 +27,9 @@ Button::Button() | |||
| { | ||||
|     background_color = StateColor( | ||||
|         std::make_pair(0xF0F0F0, (int) StateColor::Disabled), | ||||
|         std::make_pair(0x37EE7C, (int) StateColor::Hovered | StateColor::Checked), | ||||
|         std::make_pair(0x00AE42, (int) StateColor::Checked), | ||||
|         std::make_pair(*wxLIGHT_GREY, (int) StateColor::Hovered),  | ||||
|         std::make_pair(0x37EE7C, (int) StateColor::Hovered | StateColor::Checked), | ||||
|         std::make_pair(*wxWHITE, (int) StateColor::Normal)); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 chunmao.guo
						chunmao.guo