Browse Source

TableListBox: Avoid calling virtual functions in constructor

pull/22/head
reuk 3 years ago
parent
commit
acefc92f88
3 changed files with 12 additions and 7 deletions
  1. +10
    -6
      modules/juce_gui_basics/widgets/juce_ListBox.cpp
  2. +1
    -0
      modules/juce_gui_basics/widgets/juce_ListBox.h
  3. +1
    -1
      modules/juce_gui_basics/widgets/juce_TableListBox.cpp

+ 10
- 6
modules/juce_gui_basics/widgets/juce_ListBox.cpp View File

@@ -537,16 +537,20 @@ ListBox::~ListBox()
viewport.reset();
}
void ListBox::assignModelPtr (ListBoxModel* const newModel)
{
model = newModel;
#if ! JUCE_DISABLE_ASSERTIONS
weakModelPtr = model != nullptr ? model->sharedState : nullptr;
#endif
}
void ListBox::setModel (ListBoxModel* const newModel)
{
if (model != newModel)
{
model = newModel;
#if ! JUCE_DISABLE_ASSERTIONS
weakModelPtr = model != nullptr ? model->sharedState : nullptr;
#endif
assignModelPtr (newModel);
repaint();
updateContent();
}


+ 1
- 0
modules/juce_gui_basics/widgets/juce_ListBox.h View File

@@ -613,6 +613,7 @@ private:
std::weak_ptr<ListBoxModel::Empty> weakModelPtr;
#endif
void assignModelPtr (ListBoxModel*);
void checkModelPtrIsValid() const;
std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override;
bool hasAccessibleHeaderComponent() const;


+ 1
- 1
modules/juce_gui_basics/widgets/juce_TableListBox.cpp View File

@@ -339,7 +339,7 @@ private:
TableListBox::TableListBox (const String& name, TableListBoxModel* const m)
: ListBox (name, nullptr), model (m)
{
ListBox::setModel (this);
ListBox::assignModelPtr (this);
setHeader (std::make_unique<Header> (*this));
}


Loading…
Cancel
Save