@@ -3768,13 +3768,8 @@ class TreeDelegate {
3768
3768
3769
3769
virtual void TreeDelegateDrawTreeItem (TreeItem &item, Window &window) = 0;
3770
3770
virtual void TreeDelegateGenerateChildren (TreeItem &item) = 0;
3771
- virtual void TreeDelegateUpdateSelection (TreeItem &root, int &selection_index,
3772
- TreeItem *&selected_item) {
3773
- return ;
3774
- }
3775
3771
virtual bool TreeDelegateItemSelected (
3776
3772
TreeItem &item) = 0; // Return true if we need to update views
3777
- virtual bool TreeDelegateExpandRootByDefault () { return false ; }
3778
3773
};
3779
3774
3780
3775
typedef std::shared_ptr<TreeDelegate> TreeDelegateSP;
@@ -3784,10 +3779,7 @@ class TreeItem {
3784
3779
TreeItem (TreeItem *parent, TreeDelegate &delegate, bool might_have_children)
3785
3780
: m_parent(parent), m_delegate(delegate), m_user_data(nullptr ),
3786
3781
m_identifier (0 ), m_row_idx(-1 ), m_children(),
3787
- m_might_have_children(might_have_children), m_is_expanded(false ) {
3788
- if (m_parent == nullptr )
3789
- m_is_expanded = m_delegate.TreeDelegateExpandRootByDefault ();
3790
- }
3782
+ m_might_have_children(might_have_children), m_is_expanded(false ) {}
3791
3783
3792
3784
TreeItem &operator =(const TreeItem &rhs) {
3793
3785
if (this != &rhs) {
@@ -4016,8 +4008,6 @@ class TreeWindowDelegate : public WindowDelegate {
4016
4008
const int num_visible_rows = NumVisibleRows ();
4017
4009
m_num_rows = 0 ;
4018
4010
m_root.CalculateRowIndexes (m_num_rows);
4019
- m_delegate_sp->TreeDelegateUpdateSelection (m_root, m_selected_row_idx,
4020
- m_selected_item);
4021
4011
4022
4012
// If we unexpanded while having something selected our total number of
4023
4013
// rows is less than the num visible rows, then make sure we show all the
@@ -4319,7 +4309,7 @@ class ThreadsTreeDelegate : public TreeDelegate {
4319
4309
public:
4320
4310
ThreadsTreeDelegate (Debugger &debugger)
4321
4311
: TreeDelegate(), m_thread_delegate_sp(), m_debugger(debugger),
4322
- m_stop_id (UINT32_MAX), m_update_selection( false ) {
4312
+ m_stop_id (UINT32_MAX) {
4323
4313
FormatEntity::Parse (" process ${process.id}{, name = ${process.name}}" ,
4324
4314
m_format);
4325
4315
}
@@ -4347,7 +4337,6 @@ class ThreadsTreeDelegate : public TreeDelegate {
4347
4337
4348
4338
void TreeDelegateGenerateChildren (TreeItem &item) override {
4349
4339
ProcessSP process_sp = GetProcess ();
4350
- m_update_selection = false ;
4351
4340
if (process_sp && process_sp->IsAlive ()) {
4352
4341
StateType state = process_sp->GetState ();
4353
4342
if (StateIsStoppedState (state, true )) {
@@ -4356,7 +4345,6 @@ class ThreadsTreeDelegate : public TreeDelegate {
4356
4345
return ; // Children are already up to date
4357
4346
4358
4347
m_stop_id = stop_id;
4359
- m_update_selection = true ;
4360
4348
4361
4349
if (!m_thread_delegate_sp) {
4362
4350
// Always expand the thread item the first time we show it
@@ -4368,58 +4356,24 @@ class ThreadsTreeDelegate : public TreeDelegate {
4368
4356
TreeItem t (&item, *m_thread_delegate_sp, false );
4369
4357
ThreadList &threads = process_sp->GetThreadList ();
4370
4358
std::lock_guard<std::recursive_mutex> guard (threads.GetMutex ());
4371
- ThreadSP selected_thread = threads.GetSelectedThread ();
4372
4359
size_t num_threads = threads.GetSize ();
4373
4360
item.Resize (num_threads, t);
4374
4361
for (size_t i = 0 ; i < num_threads; ++i) {
4375
- ThreadSP thread = threads.GetThreadAtIndex (i);
4376
- item[i].SetIdentifier (thread->GetID ());
4362
+ item[i].SetIdentifier (threads.GetThreadAtIndex (i)->GetID ());
4377
4363
item[i].SetMightHaveChildren (true );
4378
- if (selected_thread->GetID () == thread->GetID ())
4379
- item[i].Expand ();
4380
4364
}
4381
4365
return ;
4382
4366
}
4383
4367
}
4384
4368
item.ClearChildren ();
4385
4369
}
4386
4370
4387
- void TreeDelegateUpdateSelection (TreeItem &root, int &selection_index,
4388
- TreeItem *&selected_item) override {
4389
- if (!m_update_selection)
4390
- return ;
4391
-
4392
- ProcessSP process_sp = GetProcess ();
4393
- if (!(process_sp && process_sp->IsAlive ()))
4394
- return ;
4395
-
4396
- StateType state = process_sp->GetState ();
4397
- if (!StateIsStoppedState (state, true ))
4398
- return ;
4399
-
4400
- ThreadList &threads = process_sp->GetThreadList ();
4401
- std::lock_guard<std::recursive_mutex> guard (threads.GetMutex ());
4402
- ThreadSP selected_thread = threads.GetSelectedThread ();
4403
- size_t num_threads = threads.GetSize ();
4404
- for (size_t i = 0 ; i < num_threads; ++i) {
4405
- ThreadSP thread = threads.GetThreadAtIndex (i);
4406
- if (selected_thread->GetID () == thread->GetID ()) {
4407
- selected_item = &root[i][thread->GetSelectedFrameIndex ()];
4408
- selection_index = selected_item->GetRowIndex ();
4409
- return ;
4410
- }
4411
- }
4412
- }
4413
-
4414
4371
bool TreeDelegateItemSelected (TreeItem &item) override { return false ; }
4415
4372
4416
- bool TreeDelegateExpandRootByDefault () override { return true ; }
4417
-
4418
4373
protected:
4419
4374
std::shared_ptr<ThreadTreeDelegate> m_thread_delegate_sp;
4420
4375
Debugger &m_debugger;
4421
4376
uint32_t m_stop_id;
4422
- bool m_update_selection;
4423
4377
FormatEntity::Entry m_format;
4424
4378
};
4425
4379
0 commit comments