TreeBrowser::TreeBrowser(TreeView * view, QWidget *parent) : QWidget(parent), m_tree_view(view), m_current_index(0) { cf3_assert(view != nullptr); m_bt_previous = new QToolButton(this); m_bt_next = new QToolButton(this); m_menu_next = new QMenu(m_bt_next); m_menu_previous = new QMenu(m_bt_previous); m_filter = new QLineEdit(this); m_buttons_layout = new QGridLayout(); m_main_layout = new QVBoxLayout(this); m_main_layout->setMargin(0); m_bt_previous->setArrowType(Qt::LeftArrow); m_bt_next->setArrowType(Qt::RightArrow); m_bt_next->setMenu(m_menu_next); m_bt_previous->setMenu(m_menu_previous); m_bt_next->setPopupMode(QToolButton::MenuButtonPopup); m_bt_previous->setPopupMode(QToolButton::MenuButtonPopup); m_buttons_layout->addWidget(m_bt_previous, 0, 0); m_buttons_layout->addWidget(m_bt_next, 0, 1); m_buttons_layout->addWidget(m_filter, 0, 2); m_buttons_layout->setColumnStretch(2, 10); m_main_layout->addLayout(m_buttons_layout); m_main_layout->addWidget(m_tree_view); connect(m_bt_previous, SIGNAL(clicked()), this, SLOT(previous_clicked())); connect(m_bt_next, SIGNAL(clicked()), this, SLOT(next_clicked())); connect(m_filter, SIGNAL(textChanged(QString)), this, SLOT(filter_updated(QString))); connect(m_tree_view, SIGNAL(item_double_clicked(QModelIndex)), this, SLOT(double_clicked(QModelIndex))); m_history << m_tree_view->rootIndex(); this->update_buttons(); }
void TreeView::mouseDoubleClickEvent(QMouseEvent * event) { if(event->button() == Qt::LeftButton) emit item_double_clicked(this->currentIndex()); }
void itemDoubleClicked_(QTreeWidgetItem* item, int col) { item_double_clicked(item, col); }