From 2e6b36b2ae25ecf9d82102a62f76313534f9897b Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sat, 29 Jun 2019 02:30:42 -0700 Subject: [PATCH] remove UI objects when a task is deleted --- app/task/taskmanager.cpp | 16 ++++++++++++++ app/task/taskmanager.h | 32 ++++++++++++++++++++++++++++ app/widget/taskview/taskviewitem.cpp | 6 ++++-- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/app/task/taskmanager.cpp b/app/task/taskmanager.cpp index eac4c6886..fa5d74d06 100644 --- a/app/task/taskmanager.cpp +++ b/app/task/taskmanager.cpp @@ -30,6 +30,11 @@ TaskManager::TaskManager() maximum_task_count_ = QThread::idealThreadCount(); } +TaskManager::~TaskManager() +{ + Clear(); +} + void TaskManager::AddTask(Task* t) { // Connect Task's status signal to the Callback @@ -45,6 +50,17 @@ void TaskManager::AddTask(Task* t) StartNextWaiting(); } +void TaskManager::Clear() +{ + // TODO Cancelling tasks + + // Delete Tasks from memory + for (int i=0;isetText(QString("%1").arg(task_->text())); // Connect to the task - connect(t, SIGNAL(StatusChanged(Task::Status)), this, SLOT(TaskStatusChange(Task::Status))); - connect(t, SIGNAL(ProgressChanged(int)), progress_bar_, SLOT(setValue(int))); + connect(task_, SIGNAL(StatusChanged(Task::Status)), this, SLOT(TaskStatusChange(Task::Status))); + connect(task_, SIGNAL(ProgressChanged(int)), progress_bar_, SLOT(setValue(int))); + connect(task_, SIGNAL(destroyed()), this, SLOT(deleteLater())); } void TaskViewItem::TaskStatusChange(Task::Status status)