bugfix: propertyChanged signals were not disconnected
Dieser Commit ist enthalten in:
Ursprung
48d2b2935c
Commit
1ef5e847b5
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* This file is part of the traintastic source code.
|
* This file is part of the traintastic source code.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2019-2022 Reinder Feenstra
|
* Copyright (C) 2019-2023 Reinder Feenstra
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
@ -81,6 +81,12 @@ class ObjectList : public AbstractObjectList
|
|||||||
assert((std::is_base_of_v<IdObject, T> || std::is_base_of_v<SubObject, T>));
|
assert((std::is_base_of_v<IdObject, T> || std::is_base_of_v<SubObject, T>));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
~ObjectList()
|
||||||
|
{
|
||||||
|
for(auto& it : m_propertyChanged)
|
||||||
|
it.second.disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
inline const_iterator begin() const noexcept { return m_items.begin(); }
|
inline const_iterator begin() const noexcept { return m_items.begin(); }
|
||||||
inline const_iterator end() const noexcept { return m_items.end(); }
|
inline const_iterator end() const noexcept { return m_items.end(); }
|
||||||
inline const std::shared_ptr<T>& front() const noexcept { return m_items.front(); }
|
inline const std::shared_ptr<T>& front() const noexcept { return m_items.front(); }
|
||||||
@ -131,6 +137,7 @@ class ObjectList : public AbstractObjectList
|
|||||||
auto it = std::find(m_items.begin(), m_items.end(), object);
|
auto it = std::find(m_items.begin(), m_items.end(), object);
|
||||||
if(it != m_items.end())
|
if(it != m_items.end())
|
||||||
{
|
{
|
||||||
|
m_propertyChanged[object.get()].disconnect();
|
||||||
m_propertyChanged.erase(object.get());
|
m_propertyChanged.erase(object.get());
|
||||||
m_items.erase(it);
|
m_items.erase(it);
|
||||||
rowCountChanged();
|
rowCountChanged();
|
||||||
|
|||||||
Laden…
x
In neuem Issue referenzieren
Einen Benutzer sperren