fixed sizes in idTreeWidget

This commit is contained in:
csoler 2025-04-10 21:11:28 +02:00
parent a596acbcec
commit 2b13abe2a9
3 changed files with 24 additions and 17 deletions

View File

@ -389,9 +389,11 @@ IdDialog::IdDialog(QWidget *parent)
menu->addAction(CreateCircleAction);
ui->toolButton_New->setMenu(menu);
QFontMetricsF fm(ui->idTreeWidget->font()) ;
/* Set initial section sizes */
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, fm.width("Circle name")*1.5) ;
ui->treeWidget_membership->setColumnWidth(CIRCLEGROUP_CIRCLE_COL_GROUPNAME, 270);
/* Setup tree */
@ -406,12 +408,13 @@ IdDialog::IdDialog(QWidget *parent)
/* Set header resize modes and initial section sizes */
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);
idheader->setStretchLastSection(true);
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_NAME, QHeaderView::Stretch);
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_ID, QHeaderView::Stretch);
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_OWNER_ID, QHeaderView::Stretch);
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_OWNER_NAME, QHeaderView::Stretch);
QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_REPUTATION, QHeaderView::Fixed);
ui->idTreeWidget->setColumnWidth(RsIdentityListModel::COLUMN_THREAD_REPUTATION,fm.height());
idheader->setStretchLastSection(false);
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
mStateHelper->setActive(IDDIALOG_REPLIST, false);
@ -1294,12 +1297,12 @@ void IdDialog::processSettings(bool load)
{
Settings->beginGroup("IdDialog");
// state of peer tree
// ui->idTreeWidget->processSettings(load);
if (load) {
// load settings
ui->idTreeWidget->header()->restoreState(Settings->value(objectName()).toByteArray());
ui->idTreeWidget->header()->setHidden(Settings->value(objectName()+"HiddenHeader", false).toBool());
// filterColumn
//ui->filterLineEdit->setCurrentFilter(Settings->value("filterColumn", RsIdentityListModel::COLUMN_THREAD_NAME).toInt());
@ -1322,6 +1325,9 @@ void IdDialog::processSettings(bool load)
{
// save settings
Settings->setValue(objectName(), ui->idTreeWidget->header()->saveState());
Settings->setValue(objectName()+"HiddenHeader", ui->idTreeWidget->header()->isHidden());
// filterColumn
//Settings->setValue("filterColumn", ui->filterLineEdit->currentFilter());
@ -1414,19 +1420,14 @@ void IdDialog::updateIdList()
{
std::cerr << "Updating identity list in widget." << std::endl;
applyWhileKeepingTree( [ids,this]() {
applyWhileKeepingTree( [ids,this]()
{
std::cerr << "setting new identity in model." << std::endl;
mIdListModel->setIdentities(*ids) ;
delete ids;
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

@ -35,6 +35,7 @@ class IdDialog;
}
class UIStateHelper;
class QStyledItemDelegate;
class QTreeWidgetItem;
class RsIdentityListModel;
class IdListSortFilterProxyModel;
@ -166,6 +167,10 @@ private:
RsGxsGroupId mId;
RsGxsGroupId mIdToNavigate;
int filter;
bool mColumnSizeAlreadySet; // remembers if we already did some size set. If not, automatically stretch to content.
QStyledItemDelegate *mElidedLabelDelegate;
QStyledItemDelegate *mReputationDelegate;
RsIdentityListModel *mIdListModel;
IdListSortFilterProxyModel *mProxyModel;

View File

@ -462,6 +462,7 @@ QVariant RsIdentityListModel::sizeHintRole(const EntryIndex& e,int col) const
if(e.type == ENTRY_TYPE_CATEGORY)
y_factor *= 1.5;
std::cerr << "sizeHintRole()" << std::endl;
switch(col)
{
default: