removed uninitialized memory read causing random crashes

This commit is contained in:
csoler 2025-04-09 16:54:35 +02:00
parent f4364bcaa6
commit a596acbcec
3 changed files with 23 additions and 12 deletions

View file

@ -205,6 +205,8 @@ IdDialog::IdDialog(QWidget *parent)
, mExternalBelongingCircleItem(NULL) , mExternalBelongingCircleItem(NULL)
, mExternalOtherCircleItem(NULL ) , mExternalOtherCircleItem(NULL )
, mMyCircleItem(NULL) , mMyCircleItem(NULL)
, mLastSortColumn(RsIdentityListModel::COLUMN_THREAD_NAME)
, mLastSortOrder(Qt::SortOrder::AscendingOrder)
, needUpdateIdsOnNextShow(true), needUpdateCirclesOnNextShow(true) // Update Ids and Circles on first show , needUpdateIdsOnNextShow(true), needUpdateCirclesOnNextShow(true) // Update Ids and Circles on first show
, ui(new Ui::IdDialog) , ui(new Ui::IdDialog)
{ {
@ -387,10 +389,6 @@ IdDialog::IdDialog(QWidget *parent)
menu->addAction(CreateCircleAction); menu->addAction(CreateCircleAction);
ui->toolButton_New->setMenu(menu); ui->toolButton_New->setMenu(menu);
/* Add filter actions */
//ui->filterLineEdit->addFilter(QIcon(), tr("Name"), RsIdentityListModel::COLUMN_THREAD_NAME, QString("%1 %2").arg(tr("Search"), tr("Search name")));
//ui->filterLineEdit->addFilter(QIcon(), tr("ID"), RsIdentityListModel::COLUMN_THREAD_ID, tr("Search ID"));
/* Set initial section sizes */ /* Set initial section sizes */
QHeaderView * circlesheader = ui->treeWidget_membership->header () ; QHeaderView * circlesheader = ui->treeWidget_membership->header () ;
circlesheader->resizeSection (CIRCLEGROUP_CIRCLE_COL_GROUPNAME, QFontMetricsF(ui->idTreeWidget->font()).width("Circle name")*1.5) ; circlesheader->resizeSection (CIRCLEGROUP_CIRCLE_COL_GROUPNAME, QFontMetricsF(ui->idTreeWidget->font()).width("Circle name")*1.5) ;
@ -404,11 +402,14 @@ IdDialog::IdDialog(QWidget *parent)
ui->idTreeWidget->setColumnHidden(RsIdentityListModel::COLUMN_THREAD_ID, true); ui->idTreeWidget->setColumnHidden(RsIdentityListModel::COLUMN_THREAD_ID, true);
ui->idTreeWidget->setItemDelegate(new RSElidedItemDelegate()); ui->idTreeWidget->setItemDelegate(new RSElidedItemDelegate());
//ui->idTreeWidget->setItemDelegateForColumn( RsIdentityListModel::COLUMN_THREAD_NAME, new GxsIdTreeItemDelegate());
ui->idTreeWidget->setItemDelegateForColumn( RsIdentityListModel::COLUMN_THREAD_REPUTATION, new ReputationItemDelegate(RsReputationLevel(0xff))); ui->idTreeWidget->setItemDelegateForColumn( RsIdentityListModel::COLUMN_THREAD_REPUTATION, new ReputationItemDelegate(RsReputationLevel(0xff)));
/* Set header resize modes and initial section sizes */ /* Set header resize modes and initial section sizes */
QHeaderView * idheader = ui->idTreeWidget->header(); QHeaderView * idheader = ui->idTreeWidget->header();
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_NAME, QHeaderView::ResizeToContents);
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_ID, QHeaderView::ResizeToContents);
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_OWNER_ID, QHeaderView::ResizeToContents);
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_OWNER_NAME, QHeaderView::ResizeToContents);
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_REPUTATION, QHeaderView::ResizeToContents); QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_REPUTATION, QHeaderView::ResizeToContents);
idheader->setStretchLastSection(true); idheader->setStretchLastSection(true);
@ -1420,6 +1421,12 @@ void IdDialog::updateIdList()
delete ids; delete ids;
ui->label_count->setText("("+QString::number(mIdListModel->count())+")"); ui->label_count->setText("("+QString::number(mIdListModel->count())+")");
ui->idTreeWidget->resizeColumnToContents(RsIdentityListModel::COLUMN_THREAD_REPUTATION);
ui->idTreeWidget->resizeColumnToContents(RsIdentityListModel::COLUMN_THREAD_ID);
ui->idTreeWidget->resizeColumnToContents(RsIdentityListModel::COLUMN_THREAD_NAME);
ui->idTreeWidget->resizeColumnToContents(RsIdentityListModel::COLUMN_THREAD_OWNER_ID);
ui->idTreeWidget->resizeColumnToContents(RsIdentityListModel::COLUMN_THREAD_OWNER_NAME);
}); });
}); });
}); });

View file

@ -240,6 +240,9 @@
<property name="sortingEnabled"> <property name="sortingEnabled">
<bool>true</bool> <bool>true</bool>
</property> </property>
<attribute name="headerCascadingSectionResizes">
<bool>true</bool>
</attribute>
</widget> </widget>
</item> </item>
</layout> </layout>

View file

@ -465,11 +465,12 @@ QVariant RsIdentityListModel::sizeHintRole(const EntryIndex& e,int col) const
switch(col) switch(col)
{ {
default: default:
case COLUMN_THREAD_NAME: return QVariant( QSize(x_factor * 70 , y_factor*14*1.1f ));
case COLUMN_THREAD_ID: return QVariant( QSize(x_factor * 175, y_factor*14*1.1f ));
case COLUMN_THREAD_REPUTATION: return QVariant( QSize(x_factor * 14 , y_factor*14*1.1f )); case COLUMN_THREAD_REPUTATION: return QVariant( QSize(x_factor * 14 , y_factor*14*1.1f ));
case COLUMN_THREAD_OWNER_NAME: return QVariant( QSize(x_factor * 70 , y_factor*14*1.1f ));
case COLUMN_THREAD_OWNER_ID: return QVariant( QSize(x_factor * 70 , y_factor*14*1.1f )); case COLUMN_THREAD_NAME:
case COLUMN_THREAD_ID:
case COLUMN_THREAD_OWNER_NAME:
case COLUMN_THREAD_OWNER_ID: return QFontMetricsF(QApplication::font()).boundingRect(displayRole(e,col).toString()).size();
} }
} }