Merge pull request #9697 from Ondsel-Development/tree-headers

Core: Tree : Remove useless root item and hide description by default.
This commit is contained in:
sliptonic
2023-06-04 12:00:35 -05:00
committed by GitHub
3 changed files with 27 additions and 8 deletions

View File

@@ -400,7 +400,6 @@ TreeWidget::TreeWidget(const char* name, QWidget* parent)
this->setAcceptDrops(true);
this->setDropIndicatorShown(false);
this->setDragDropMode(QTreeWidget::InternalMove);
this->setRootIsDecorated(false);
this->setColumnCount(2);
this->setItemDelegate(new TreeWidgetEditDelegate(this));
@@ -487,8 +486,7 @@ TreeWidget::TreeWidget(const char* name, QWidget* parent)
});
// Add the first main label
this->rootItem = new QTreeWidgetItem(this);
this->rootItem->setFlags(Qt::ItemIsEnabled);
this->rootItem = invisibleRootItem();
this->expandItem(this->rootItem);
this->setSelectionMode(QAbstractItemView::ExtendedSelection);
@@ -522,6 +520,7 @@ TreeWidget::TreeWidget(const char* name, QWidget* parent)
documentPartialPixmap.reset(new QPixmap(icon.pixmap(documentPixmap->size(), QIcon::Disabled)));
}
setColumnHidden(1, TreeParams::getHideColumn());
header()->setVisible(!TreeParams::getHideColumn());
}
TreeWidget::~TreeWidget()
@@ -902,6 +901,27 @@ void TreeWidget::contextMenuEvent(QContextMenuEvent* e)
subMenu.addActions(subMenuGroup.actions());
}
// add a submenu to present the settings of the tree.
QMenu settingsMenu;
settingsMenu.setTitle(tr("Tree settings"));
contextMenu.addSeparator();
contextMenu.addMenu(&settingsMenu);
QAction* action = new QAction(tr("Show description column"), this);
action->setStatusTip(tr("Show an extra tree view column for item description. The item's description can be set by pressing F2 (or your OS's edit button) or by editing the 'label2' property."));
action->setCheckable(true);
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/TreeView");
action->setChecked(!hGrp->GetBool("HideColumn", true));
settingsMenu.addAction(action);
QObject::connect(action, &QAction::triggered, this, [this, action, hGrp]() {
bool show = action->isChecked();
hGrp->SetBool("HideColumn", !show);
setColumnHidden(1, !show);
header()->setVisible(show);
});
if (contextMenu.actions().count() > 0) {
try {
contextMenu.exec(QCursor::pos());
@@ -2769,7 +2789,6 @@ void TreeWidget::setupText()
{
this->headerItem()->setText(0, tr("Labels & Attributes"));
this->headerItem()->setText(1, tr("Description"));
this->rootItem->setText(0, tr("Application"));
this->showHiddenAction->setText(tr("Show items hidden in tree view"));
this->showHiddenAction->setStatusTip(tr("Show items that are marked as 'hidden' in the tree view"));

View File

@@ -142,7 +142,7 @@ public:
funcs["ItemBackground"] = &TreeParamsP::updateItemBackground;
ItemBackgroundPadding = handle->GetInt("ItemBackgroundPadding", 10);
funcs["ItemBackgroundPadding"] = &TreeParamsP::updateItemBackgroundPadding;
HideColumn = handle->GetBool("HideColumn", false);
HideColumn = handle->GetBool("HideColumn", true);
funcs["HideColumn"] = &TreeParamsP::updateHideColumn;
HideScrollBar = handle->GetBool("HideScrollBar", true);
funcs["HideScrollBar"] = &TreeParamsP::updateHideScrollBar;
@@ -356,7 +356,7 @@ public:
}
// Auto generated code (Tools/params_utils.py:244)
static void updateHideColumn(TreeParamsP *self) {
auto v = self->handle->GetBool("HideColumn", false);
auto v = self->handle->GetBool("HideColumn", true);
if (self->HideColumn != v) {
self->HideColumn = v;
TreeParams::onHideColumnChanged();
@@ -1203,7 +1203,7 @@ const bool & TreeParams::getHideColumn() {
// Auto generated code (Tools/params_utils.py:300)
const bool & TreeParams::defaultHideColumn() {
const static bool def = false;
const static bool def = true;
return def;
}

View File

@@ -69,7 +69,7 @@ Params = [
doc = "Tree view item background. Only effecitve in overlay."),
ParamInt('ItemBackgroundPadding', 10, on_change=True, title="Item background padding", proxy=ParamSpinBox(0, 100, 1),
doc = "Tree view item background padding."),
ParamBool('HideColumn', False, on_change=True, title="Hide extra column",
ParamBool('HideColumn', True, on_change=True, title="Hide extra column",
doc = "Hide extra tree view column for item description."),
ParamBool('HideScrollBar', True, title="Hide scroll bar",
doc = "Hide tree view scroll bar in dock overlay."),