mirror of
https://git.mirrors.martin98.com/https://github.com/bambulab/BambuStudio.git
synced 2025-08-08 19:29:01 +08:00
ENH: local task sort by send time by default
JIRA: STUDIO-6885 Change-Id: I03b5881a39ab2e90c5b9cf46052ba465ee707ccc
This commit is contained in:
parent
57a807d7fc
commit
2ab668db50
@ -216,6 +216,9 @@ std::vector<DeviceItem*> selected_machines(const std::vector<DeviceItem*>& dev_i
|
||||
|
||||
SortItem::SortItem()
|
||||
{
|
||||
sort_map.emplace(std::make_pair(SortRule::SR_None, [this](const DeviceItem* d1, const DeviceItem* d2) {
|
||||
return d1->state_dev_name > d2->state_dev_name;
|
||||
}));
|
||||
sort_map.emplace(std::make_pair(SortRule::SR_DEV_NAME, [this](const DeviceItem* d1, const DeviceItem* d2) {
|
||||
return this->big ? d1->state_dev_name > d2->state_dev_name : d1->state_dev_name < d2->state_dev_name;
|
||||
}));
|
||||
|
@ -553,7 +553,6 @@ LocalTaskManagerPage::LocalTaskManagerPage(wxWindow* parent)
|
||||
m_select_checkbox = new CheckBox(m_table_head_panel, wxID_ANY);
|
||||
m_select_checkbox->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
|
||||
m_select_checkbox->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
|
||||
m_table_head_sizer->AddSpacer(FromDIP(TASK_LEFT_PADDING_LEFT));
|
||||
m_table_head_sizer->Add(m_select_checkbox, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
|
||||
m_select_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) {
|
||||
@ -756,8 +755,8 @@ void LocalTaskManagerPage::refresh_user_device(bool clear)
|
||||
auto task_manager = wxGetApp().getTaskManager();
|
||||
if (task_manager) {
|
||||
auto m_task_obj_list = task_manager->get_local_task_list();
|
||||
|
||||
for (auto it = m_task_obj_list.begin(); it != m_task_obj_list.end(); it++) {
|
||||
|
||||
for (auto it = m_task_obj_list.rbegin(); it != m_task_obj_list.rend(); ++it) {
|
||||
|
||||
TaskStateInfo* task_state_info = it->second;
|
||||
|
||||
@ -794,7 +793,7 @@ void LocalTaskManagerPage::refresh_user_device(bool clear)
|
||||
task_temps.push_back(mtitem);
|
||||
}
|
||||
|
||||
if (m_sort.rule != SortItem::SortRule::SR_None) {
|
||||
if (m_sort.rule != SortItem::SortRule::SR_None && m_sort.rule != SortItem::SortRule::SR_SEND_TIME) {
|
||||
std::sort(task_temps.begin(), task_temps.end(), m_sort.get_call_back());
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,7 @@ public:
|
||||
|
||||
private:
|
||||
SortItem m_sort;
|
||||
std::map<std::string, MultiTaskItem*> m_task_items;
|
||||
std::map<int, MultiTaskItem*> m_task_items;
|
||||
bool device_name_big{ true };
|
||||
bool device_state_big{ true };
|
||||
bool device_send_time{ true };
|
||||
|
@ -1230,8 +1230,8 @@ wxPanel* SendMultiMachinePage::create_page()
|
||||
|
||||
// add send option
|
||||
wxBoxSizer* title_send_option = create_item_title(_L("Send Options"), main_page, "");
|
||||
wxBoxSizer* max_printer_send = create_item_input(_L("Send"), _L("printers at the same time"), main_page, "", "max_send");
|
||||
wxBoxSizer* delay_time = create_item_input(_L("Wait"), _L("minute each batch"), main_page, "", "sending_interval");
|
||||
wxBoxSizer* max_printer_send = create_item_input(_L("Send"), _L("printers at the same time.(It depends on how many devices can undergo heating at the same time.)"), main_page, "", "max_send");
|
||||
wxBoxSizer* delay_time = create_item_input(_L("Wait"), _L("minute each batch.(It depends on how long it takes to complete the heating.)"), main_page, "", "sending_interval");
|
||||
sizer->Add(title_send_option, 0, wxEXPAND, 0);
|
||||
sizer->Add(max_printer_send, 0, wxLEFT, FromDIP(20));
|
||||
sizer->AddSpacer(FromDIP(3));
|
||||
|
@ -284,9 +284,9 @@ void TaskManager::stop()
|
||||
m_scedule_thread.join();
|
||||
}
|
||||
|
||||
std::map<std::string, TaskStateInfo*> TaskManager::get_local_task_list()
|
||||
std::map<int, TaskStateInfo*> TaskManager::get_local_task_list()
|
||||
{
|
||||
std::map<std::string, TaskStateInfo*> out;
|
||||
std::map<int, TaskStateInfo*> out;
|
||||
m_map_mutex.lock();
|
||||
for (auto it = m_cache_map.begin(); it != m_cache_map.end(); it++) {
|
||||
for (auto iter = (*it).tasks.begin(); iter != (*it).tasks.end(); iter++) {
|
||||
@ -295,7 +295,7 @@ std::map<std::string, TaskStateInfo*> TaskManager::get_local_task_list()
|
||||
|| (*iter)->state() == TaskState::TS_SEND_CANCELED
|
||||
|| (*iter)->state() == TaskState::TS_SEND_COMPLETED
|
||||
|| (*iter)->state() == TaskState::TS_SEND_FAILED) {
|
||||
out.insert(std::make_pair(std::to_string((*iter)->task_info_id), *iter));
|
||||
out.insert(std::make_pair((*iter)->task_info_id, *iter));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ public:
|
||||
void start();
|
||||
void stop();
|
||||
|
||||
std::map<std::string, TaskStateInfo*> get_local_task_list();
|
||||
std::map<int, TaskStateInfo*> get_local_task_list();
|
||||
|
||||
/* curr_page is start with 0 */
|
||||
std::map<std::string, TaskStateInfo> get_task_list(int curr_page, int page_count, int& total);
|
||||
|
Loading…
x
Reference in New Issue
Block a user