@@ -643,6 +643,9 @@ TTDEventsWidget::TTDEventsWidget(QWidget* parent, BinaryViewRef data)
643643{
644644 m_controller = DebuggerController::GetController (data);
645645 setupUI ();
646+
647+ // Automatically load events for all tabs
648+ loadAllEvents ();
646649}
647650
648651TTDEventsWidget::~TTDEventsWidget ()
@@ -653,66 +656,30 @@ void TTDEventsWidget::setupUI()
653656{
654657 QVBoxLayout* layout = new QVBoxLayout (this );
655658 layout->setContentsMargins (0 , 0 , 0 , 0 );
656- layout->setSpacing (0 );
657-
658- // Tab widget with + button
659- QHBoxLayout* tabLayout = new QHBoxLayout ();
660- tabLayout->setContentsMargins (0 , 0 , 0 , 0 );
661- tabLayout->setSpacing (0 );
662659
660+ // Create tab widget
663661 m_tabWidget = new QTabWidget ();
664- m_tabWidget->setTabsClosable (true );
665- m_tabWidget->setMovable (true );
666-
667- // Add + button for new tabs
668- m_newTabButton = new QToolButton ();
669- m_newTabButton->setText (" +" );
670- m_newTabButton->setToolTip (" Create new TTD Events query tab" );
671- m_newTabButton->setFixedSize (24 , 24 );
672-
673- connect (m_newTabButton, &QToolButton::clicked, this , &TTDEventsWidget::createNewTab);
674- connect (m_tabWidget, &QTabWidget::tabCloseRequested, this , &TTDEventsWidget::closeTab);
675-
676- m_tabWidget->setCornerWidget (m_newTabButton, Qt::TopRightCorner);
677-
678- tabLayout->addWidget (m_tabWidget);
679- layout->addLayout (tabLayout);
662+ layout->addWidget (m_tabWidget);
680663
681- // Create initial tab
682- createNewTab ();
683- }
664+ // Create the 3 specialized tabs
665+ m_moduleEventsWidget = new TTDModuleEventsWidget (this , m_data);
666+ m_threadEventsWidget = new TTDThreadEventsWidget (this , m_data);
667+ m_exceptionEventsWidget = new TTDExceptionEventsWidget (this , m_data);
684668
685- void TTDEventsWidget::createNewTab ()
686- {
687- TTDEventsQueryWidget* queryWidget = new TTDEventsQueryWidget (this , m_data);
688- QString tabName = QString (" Events %1" ).arg (m_tabWidget->count () + 1 );
689-
690- int index = m_tabWidget->addTab (queryWidget, tabName);
691- m_tabWidget->setCurrentIndex (index);
669+ // Add tabs to the widget
670+ m_tabWidget->addTab (m_moduleEventsWidget, " Module Events" );
671+ m_tabWidget->addTab (m_threadEventsWidget, " Thread Events" );
672+ m_tabWidget->addTab (m_exceptionEventsWidget, " Exception Events" );
692673}
693674
694- void TTDEventsWidget::closeTab ( int index )
675+ void TTDEventsWidget::loadAllEvents ( )
695676{
696- if (m_tabWidget->count () <= 1 )
697- return ; // Don't close the last tab
698-
699- QWidget* widget = m_tabWidget->widget (index);
700- m_tabWidget->removeTab (index);
701- delete widget;
702- }
703-
704- TTDEventsQueryWidget* TTDEventsWidget::getCurrentOrNewQueryWidget ()
705- {
706- TTDEventsQueryWidget* current = dynamic_cast <TTDEventsQueryWidget*>(m_tabWidget->currentWidget ());
707-
708- if (!current || !current->isUnused ())
709- {
710- // Create new tab if current is null or already has results
711- createNewTab ();
712- current = dynamic_cast <TTDEventsQueryWidget*>(m_tabWidget->currentWidget ());
713- }
714-
715- return current;
677+ if (m_moduleEventsWidget)
678+ m_moduleEventsWidget->loadEvents ();
679+ if (m_threadEventsWidget)
680+ m_threadEventsWidget->loadEvents ();
681+ if (m_exceptionEventsWidget)
682+ m_exceptionEventsWidget->loadEvents ();
716683}
717684
718685// TTDEventsSidebarWidget implementation
0 commit comments