aboutsummaryrefslogtreecommitdiffstats
path: root/src/widgets/status_info.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/status_info.cpp')
-rw-r--r--src/widgets/status_info.cpp20
1 files changed, 7 insertions, 13 deletions
diff --git a/src/widgets/status_info.cpp b/src/widgets/status_info.cpp
index 8ff90df..e3fe968 100644
--- a/src/widgets/status_info.cpp
+++ b/src/widgets/status_info.cpp
@@ -24,7 +24,6 @@ StatusInfoWidget::~StatusInfoWidget() {
worker_thread.quit();
worker_thread.wait();
- delete displayed_activity;
delete ui;
}
@@ -46,9 +45,9 @@ void StatusInfoWidget::resizeEvent(QResizeEvent* event) {
}
void StatusInfoWidget::show_list_item(StatusListItem* new_item) {
- qDebug() << "got item" << new_item << "old is" << displayed_item << displayed_activity;
+ qDebug() << "got item" << new_item << "old is" << displayed_item << displayed_activity.get();
if (new_item != displayed_item) {
- delete displayed_activity; displayed_activity = nullptr;
+ displayed_activity.reset();
displayed_item = new_item;
emit do_process_item(new_item);
}
@@ -56,14 +55,9 @@ void StatusInfoWidget::show_list_item(StatusListItem* new_item) {
// Update the GUI with the displayed Activity.
// Has to be done on the GUI thread, no other way in Qt
-void StatusInfoWidget::postProcess(const QString &html, APActivity* activity) {
- // Make sure to not delete the displayed_activity if we are reprocessing it after a resize event, else you get a crash that requires nasty debugging (don't ask how i found out ;)
- if (activity != displayed_activity) {
- // We are doing "double" deletion of old displayed_activity but sometimes that's important when really scrubbing the search results bar very quickly (we sometimes do reach that code and it hopefully helps against memory leaks)
- if (displayed_activity)
- delete displayed_activity;
- displayed_activity = activity;
- }
+void StatusInfoWidget::postProcess(const QString &html, APActivityPtr activity) {
+ // This shoudln't memory leak as we are now using smart pointers
+ displayed_activity = activity;
ui->statusInfoText->setHtml(html);
}
@@ -74,11 +68,11 @@ void StatusInfoWidget::postProcess(const QString &html, APActivity* activity) {
*/
void StatusInfoWidgetWorker::process_item(StatusListItem* item) {
- APActivity* activity = item->get_activity();
+ APActivityPtr activity = item->get_activity();
process_activity(activity);
}
-void StatusInfoWidgetWorker::process_activity(APActivity* activity) {
+void StatusInfoWidgetWorker::process_activity(APActivityPtr activity) {
QString html = activity->get_html_render(render_info);
emit itemProcessed(html, activity);
}