ladybird/Ladybird/Qt/TaskManagerWindow.cpp
Andrew Kaster 4cc3d598f9 LibWebView+LibCore: Manage process lifecycle using a SIGCHLD handler
This large commit also refactors LibWebView's process handling to use
a top-level Application class that uses a new WebView::Process class to
encapsulate the IPC-centric nature of each helper process.
2024-07-01 18:10:56 +02:00

48 lines
1 KiB
C++

/*
* Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "TaskManagerWindow.h"
#include <LibWebView/Application.h>
#include <QVBoxLayout>
namespace Ladybird {
TaskManagerWindow::TaskManagerWindow(QWidget* parent)
: QWidget(parent, Qt::WindowFlags(Qt::WindowType::Window))
, m_web_view(new WebContentView(this, {}, {}))
{
setLayout(new QVBoxLayout);
layout()->addWidget(m_web_view);
setWindowTitle("Task Manager");
resize(600, 400);
m_update_timer.setInterval(1000);
QObject::connect(&m_update_timer, &QTimer::timeout, [this] {
this->update_statistics();
});
update_statistics();
}
void TaskManagerWindow::showEvent(QShowEvent*)
{
m_update_timer.start();
}
void TaskManagerWindow::hideEvent(QHideEvent*)
{
m_update_timer.stop();
}
void TaskManagerWindow::update_statistics()
{
WebView::Application::the().update_process_statistics();
m_web_view->load_html(WebView::Application::the().generate_process_statistics_html());
}
}