addAction(m_backAction);
m_forwardAction = KStandardAction::forward(this, SLOT(navigateForward()), this);
addAction(m_forwardAction);
+ m_resetAction = new QAction(QIcon::fromTheme(QStringLiteral("go-first")), tr("Reset View"), this);
+ m_resetAction->setShortcut(Qt::Key_Escape);
+ connect(m_resetAction, &QAction::triggered, this, [this]() {
+ selectItem(0);
+ });
+ addAction(m_resetAction);
updateNavigationActions();
setContextMenuPolicy(Qt::ActionsContextMenu);
}
}
}
+void FlameGraph::selectItem(int item)
+{
+ m_selectedItem = item;
+ updateNavigationActions();
+ selectItem(m_selectionHistory.at(m_selectedItem));
+}
+
void FlameGraph::selectItem(FrameGraphicsItem* item)
{
if (!item) {
void FlameGraph::navigateBack()
{
if (m_selectedItem > 0) {
- --m_selectedItem;
+ selectItem(m_selectedItem - 1);
}
- updateNavigationActions();
- selectItem(m_selectionHistory.at(m_selectedItem));
}
void FlameGraph::navigateForward()
{
if ((m_selectedItem + 1) < m_selectionHistory.size()) {
- ++m_selectedItem;
+ selectItem(m_selectedItem + 1);
}
- updateNavigationActions();
- selectItem(m_selectionHistory.at(m_selectedItem));
}
void FlameGraph::updateNavigationActions()
{
m_backAction->setEnabled(m_selectedItem > 0);
m_forwardAction->setEnabled(m_selectedItem + 1 < m_selectionHistory.size());
+ m_resetAction->setEnabled(m_selectedItem > 0);
}
void setTooltipItem(const FrameGraphicsItem* item);
void updateTooltip();
void showData();
+ void selectItem(int item);
void selectItem(FrameGraphicsItem* item);
void updateNavigationActions();
QLineEdit* m_searchInput = nullptr;
QAction* m_forwardAction = nullptr;
QAction* m_backAction = nullptr;
+ QAction* m_resetAction = nullptr;
const FrameGraphicsItem* m_tooltipItem = nullptr;
FrameGraphicsItem* m_rootItem = nullptr;
QVector<FrameGraphicsItem*> m_selectionHistory;