mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 04:25:35 +08:00
Ref T472, fixed expandAll/fullResizeToContents heap issue
* after updating the container update "expandAll" was called * in onExpanded multiple "fullResizeToContents" occured, resulting in the healp issue below * as it was a good idea anyway to reduce the slow "fullResizeToContents" anyway, so we are using a CDigestSignal * this also solved the HEAP issue (for some reason I have NOT investigated) HEAP[swiftdata.exe]: HEAP: Free Heap block 000001AB439BFFF0 modified at 000001AB439C00BC after it was freed
This commit is contained in:
committed by
Mat Sutcliffe
parent
ac7958367b
commit
fe05c2287b
@@ -48,15 +48,21 @@ namespace BlackGui
|
||||
this->categoryModel()->clear();
|
||||
}
|
||||
|
||||
void CAircraftCategoryTreeView::fullResizeToContents()
|
||||
{
|
||||
m_dsFullResize.inputSignal();
|
||||
}
|
||||
|
||||
void CAircraftCategoryTreeView::setColumns(const CColumns &columns)
|
||||
{
|
||||
if (this->categoryModel()) { this->categoryModel()->setColumns(columns); }
|
||||
}
|
||||
|
||||
void CAircraftCategoryTreeView::fullResizeToContents()
|
||||
void CAircraftCategoryTreeView::fullResizeToContentsImpl()
|
||||
{
|
||||
if (this->isEmpty()) { return; }
|
||||
for (int c = 0; c < this->categoryModel()->columnCount(); c++)
|
||||
const int cc = this->categoryModel()->columnCount();
|
||||
for (int c = 0; c < cc; c++)
|
||||
{
|
||||
this->resizeColumnToContents(c);
|
||||
}
|
||||
@@ -105,7 +111,7 @@ namespace BlackGui
|
||||
|
||||
QMenu *menu = new QMenu(this); // menu
|
||||
QAction *resize = new QAction(CIcons::resize16(), "Resize", this);
|
||||
connect(resize, &QAction::triggered, this, &CAircraftCategoryTreeView::fullResizeToContents);
|
||||
connect(resize, &QAction::triggered, this, &CAircraftCategoryTreeView::fullResizeToContentsImpl);
|
||||
|
||||
menu->addAction(resize);
|
||||
menu->popup(this->viewport()->mapToGlobal(point));
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include "blackgui/blackguiexport.h"
|
||||
#include "blackmisc/aviation/aircraftcategorylist.h"
|
||||
#include "blackmisc/digestsignal.h"
|
||||
|
||||
#include <QTreeView>
|
||||
#include <QObject>
|
||||
@@ -46,12 +47,12 @@ namespace BlackGui
|
||||
//! Clear
|
||||
void clear();
|
||||
|
||||
//! Set columns
|
||||
void setColumns(const Models::CColumns &columns);
|
||||
|
||||
//! Resize all columns
|
||||
void fullResizeToContents();
|
||||
|
||||
//! Set columns
|
||||
void setColumns(const Models::CColumns &columns);
|
||||
|
||||
//! Empty data
|
||||
bool isEmpty() const;
|
||||
|
||||
@@ -62,6 +63,9 @@ namespace BlackGui
|
||||
//! Used model
|
||||
BlackGui::Models::CAircraftCategoryTreeModel *categoryModel();
|
||||
|
||||
//! Resize all columns
|
||||
void fullResizeToContentsImpl();
|
||||
|
||||
//! The selected object
|
||||
BlackMisc::Aviation::CAircraftCategory selectedObject() const;
|
||||
|
||||
@@ -73,6 +77,8 @@ namespace BlackGui
|
||||
|
||||
//! Custom menu
|
||||
void customMenu(const QPoint &point);
|
||||
|
||||
BlackMisc::CDigestSignal m_dsFullResize { this, &CAircraftCategoryTreeView::fullResizeToContentsImpl, 1000, 25 };
|
||||
};
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
Reference in New Issue
Block a user