2021-09-01 14:01:00 -05:00
|
|
|
#include "SeerThreadManagerWidget.h"
|
|
|
|
|
#include <QtWidgets/QToolButton>
|
|
|
|
|
#include <QtGui/QIcon>
|
|
|
|
|
#include <QtCore/QDebug>
|
|
|
|
|
|
|
|
|
|
SeerThreadManagerWidget::SeerThreadManagerWidget (QWidget* parent) : QWidget(parent) {
|
|
|
|
|
|
|
|
|
|
// Initialize private data
|
|
|
|
|
|
|
|
|
|
// Setup UI
|
|
|
|
|
setupUi(this);
|
|
|
|
|
|
|
|
|
|
// Setup the widgets
|
|
|
|
|
tabWidget->setMovable(true);
|
|
|
|
|
tabWidget->setTabsClosable(false);
|
|
|
|
|
|
|
|
|
|
_threadFramesBrowserWidget = new SeerThreadFramesBrowserWidget(this);
|
2022-09-13 16:59:22 -05:00
|
|
|
_threadIdsBrowserWidget = new SeerThreadIdsBrowserWidget(this);
|
2021-09-01 14:01:00 -05:00
|
|
|
|
|
|
|
|
tabWidget->addTab(_threadFramesBrowserWidget, "Frames");
|
2022-09-13 16:59:22 -05:00
|
|
|
tabWidget->addTab(_threadIdsBrowserWidget, "Ids");
|
2021-09-01 14:01:00 -05:00
|
|
|
|
|
|
|
|
QToolButton* refreshToolButton = new QToolButton(tabWidget);
|
2022-02-09 11:59:14 -06:00
|
|
|
refreshToolButton->setIcon(QIcon(":/seer/resources/RelaxLightIcons/view-refresh.svg"));
|
2021-09-01 14:01:00 -05:00
|
|
|
refreshToolButton->setToolTip("Refresh the thread information.");
|
|
|
|
|
tabWidget->setCornerWidget(refreshToolButton, Qt::TopRightCorner);
|
|
|
|
|
|
|
|
|
|
// Connect things.
|
2022-09-16 19:39:58 -05:00
|
|
|
QObject::connect(refreshToolButton, &QToolButton::clicked, this, &SeerThreadManagerWidget::handleRefreshToolButtonClicked);
|
|
|
|
|
QObject::connect(forkFollowsComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &SeerThreadManagerWidget::handleForkFollowComboBox);
|
2021-09-01 14:01:00 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SeerThreadManagerWidget::~SeerThreadManagerWidget () {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SeerThreadIdsBrowserWidget* SeerThreadManagerWidget::threadIdsBrowserWidget () {
|
|
|
|
|
return _threadIdsBrowserWidget;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SeerThreadFramesBrowserWidget* SeerThreadManagerWidget::threadFramesBrowserWidget () {
|
|
|
|
|
return _threadFramesBrowserWidget;
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-16 19:39:58 -05:00
|
|
|
void SeerThreadManagerWidget::setForkFollowsMode (const QString& mode) {
|
|
|
|
|
|
|
|
|
|
forkFollowsComboBox->setCurrentText(mode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QString SeerThreadManagerWidget::forkFollowsMode () const {
|
|
|
|
|
|
|
|
|
|
return forkFollowsComboBox->currentText();
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-01 14:01:00 -05:00
|
|
|
void SeerThreadManagerWidget::handleRefreshToolButtonClicked () {
|
|
|
|
|
|
|
|
|
|
threadFramesBrowserWidget()->refresh();
|
2022-09-13 16:59:22 -05:00
|
|
|
threadIdsBrowserWidget()->refresh();
|
2021-09-01 14:01:00 -05:00
|
|
|
}
|
|
|
|
|
|
2022-09-16 19:39:58 -05:00
|
|
|
void SeerThreadManagerWidget::handleForkFollowComboBox (int index) {
|
|
|
|
|
|
|
|
|
|
Q_UNUSED(index);
|
|
|
|
|
|
|
|
|
|
emit forkFollowsModeChanged(forkFollowsComboBox->currentText());
|
|
|
|
|
}
|
|
|
|
|
|