28 #ifndef _woody_collapse_expand_tool_button_h_
29 #define _woody_collapse_expand_tool_button_h_
31 #include <QHeaderView>
34 #include <QToolButton>
35 #include <QTreeWidget>
46 if(m_tree && m_tree->header())
48 m_tree->header()->setDefaultAlignment(Qt::AlignCenter);
49 m_tree->header()->setMinimumHeight(30);
50 move(5, (m_tree->header()->size().height() - 25) / 2 + 2);
54 auto font(this->font());
56 font.setStyleHint(QFont::Courier);
58 setStyleSheet(
"QToolButton {border: none;}"
59 "QToolButton::menu-button {border: none;}");
61 setToolTip(tr(
"Collapse / Expand"));
63 SIGNAL(itemCollapsed(QTreeWidgetItem *)),
65 SLOT(slot_item_collapsed_expanded(
void)));
67 SIGNAL(itemExpanded(QTreeWidgetItem *)),
69 SLOT(slot_item_collapsed_expanded(
void)));
70 connect(m_tree->horizontalScrollBar(),
71 SIGNAL(valueChanged(
int)),
73 SLOT(slot_scroll(
int)));
75 SIGNAL(clicked(
void)),
77 SLOT(slot_collapse(
void)));
84 QPointer<QTreeWidget> m_tree;
87 void slot_collapse(
void)
92 SIGNAL(itemCollapsed(QTreeWidgetItem *)),
94 SLOT(slot_item_collapsed_expanded(
void)));
96 SIGNAL(itemExpanded(QTreeWidgetItem *)),
98 SLOT(slot_item_collapsed_expanded(
void)));
111 m_tree->collapseAll();
119 SIGNAL(itemCollapsed(QTreeWidgetItem *)),
121 SLOT(slot_item_collapsed_expanded(
void)));
123 SIGNAL(itemExpanded(QTreeWidgetItem *)),
125 SLOT(slot_item_collapsed_expanded(
void)));
129 void slot_item_collapsed_expanded(
void)
136 for(
int i = 0; i < m_tree->topLevelItemCount(); i++)
137 if(m_tree->topLevelItem(i) && m_tree->topLevelItem(i)->childCount() > 0)
138 expanded += m_tree->topLevelItem(i)->isExpanded() ? 1 : 0;
152 void slot_scroll(
int value)
154 setVisible(geometry().right() - geometry().width() / 2 > value);