You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/ScriptCanvas/Code/Editor/View/Widgets/LoggingPanel/LoggingWindow.cpp

92 lines
2.9 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include <QMenu>
#include <QAction>
#include <AzQtComponents/Components/Widgets/SegmentBar.h>
#include <Editor/View/Widgets/LoggingPanel/LoggingWindow.h>
#include <Editor/View/Widgets/LoggingPanel/ui_LoggingWindow.h>
namespace ScriptCanvasEditor
{
//////////////////
// LoggingWindow
//////////////////
LoggingWindow::LoggingWindow(QWidget* parentWidget)
: AzQtComponents::StyledDockWidget(parentWidget)
, m_ui(new Ui::LoggingWindow)
{
m_ui->setupUi(this);
// Hack to hide the close button on the first tab. Since we always want it open.
m_ui->tabWidget->setTabsClosable(true);
m_ui->tabWidget->tabBar()->setTabButton(0, QTabBar::ButtonPosition::RightSide, nullptr);
m_ui->tabWidget->tabBar()->setTabButton(0, QTabBar::ButtonPosition::LeftSide, nullptr);
m_ui->segmentWidget->addTab(new QWidget(m_ui->segmentWidget), QStringLiteral("Entities"));
m_ui->segmentWidget->addTab(new QWidget(m_ui->segmentWidget), QStringLiteral("Graphs"));
connect(m_ui->segmentWidget, &AzQtComponents::SegmentControl::currentChanged, [this](int newIndex) {
m_ui->stackedWidget->setCurrentIndex(newIndex);
});
QObject::connect(m_ui->tabWidget, &QTabWidget::currentChanged, this, &LoggingWindow::OnActiveTabChanged);
AzQtComponents::TabWidget::applySecondaryStyle(m_ui->tabWidget, false);
m_entityPageIndex = m_ui->stackedWidget->indexOf(m_ui->entitiesPage);
m_graphPageIndex = m_ui->stackedWidget->indexOf(m_ui->graphsPage);
OnActiveTabChanged(m_ui->tabWidget->currentIndex());
PivotOnEntities();
}
LoggingWindow::~LoggingWindow()
{
}
void LoggingWindow::OnActiveTabChanged([[maybe_unused]] int index)
{
LoggingWindowSession* windowSession = qobject_cast<LoggingWindowSession*>(m_ui->tabWidget->currentWidget());
if (windowSession)
{
m_activeDataId = windowSession->GetDataId();
}
m_ui->entityPivotWidget->SwitchDataSource(m_activeDataId);
m_ui->graphPivotWidget->SwitchDataSource(m_activeDataId);
}
void LoggingWindow::PivotOnEntities()
{
m_ui->stackedWidget->setCurrentIndex(m_ui->stackedWidget->indexOf(m_ui->entitiesPage));
}
void LoggingWindow::PivotOnGraphs()
{
m_ui->stackedWidget->setCurrentIndex(m_ui->stackedWidget->indexOf(m_ui->graphsPage));
}
PivotTreeWidget* LoggingWindow::GetActivePivotWidget() const
{
if (m_ui->stackedWidget->currentIndex() == m_entityPageIndex)
{
return m_ui->entityPivotWidget;
}
return nullptr;
}
#include <Editor/View/Widgets/LoggingPanel/moc_LoggingWindow.cpp>
}