From 27582f0caef0caedf40354756bc73b88e86da263 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Tue, 18 Mar 2014 16:21:49 +0000 Subject: [PATCH] Mouse Over Interval List to Highlight .. same as hovering over the interval in the ride view hovering over it in the tree list now triggers the event. --- src/GoldenCheetah.cpp | 2 ++ src/IntervalTreeView.cpp | 17 +++++++++++++++++ src/IntervalTreeView.h | 6 +++--- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/GoldenCheetah.cpp b/src/GoldenCheetah.cpp index 39d48ebab..9db991778 100644 --- a/src/GoldenCheetah.cpp +++ b/src/GoldenCheetah.cpp @@ -182,6 +182,7 @@ GcWindow::GcWindow() menuButton->setStyleSheet("QPushButton::menu-indicator { image: none; } QPushButton { border: 0px; padding: 0px; }"); //menuButton->setToolButtonStyle(Qt::ToolButtonTextOnly); menuButton->setText(tr("More...")); + menuButton->setFocusPolicy(Qt::NoFocus); //menuButton->setArrowType(Qt::NoArrow); //menuButton->setPopupMode(QPushButton::InstantPopup); @@ -215,6 +216,7 @@ GcWindow::GcWindow(Context *context) : QFrame(context->mainWindow), dragState(No // make sure its underneath the toggle button menuButton = new QPushButton(this); menuButton->setStyleSheet("QPushButton::menu-indicator { image: none; } QPushButton { border: 0px; padding: 0px; }"); + menuButton->setFocusPolicy(Qt::NoFocus); //menuButton->setToolButtonStyle(Qt::ToolButtonTextOnly); menuButton->setText(tr("More...")); //menuButton->setArrowType(Qt::NoArrow); diff --git a/src/IntervalTreeView.cpp b/src/IntervalTreeView.cpp index 0caf5bfdc..4eb925c14 100644 --- a/src/IntervalTreeView.cpp +++ b/src/IntervalTreeView.cpp @@ -18,6 +18,8 @@ #include "IntervalTreeView.h" #include "IntervalItem.h" +#include "RideItem.h" +#include "RideFile.h" #include "Context.h" @@ -29,7 +31,22 @@ IntervalTreeView::IntervalTreeView(Context *context) : context(context) #ifdef Q_OS_MAC setAttribute(Qt::WA_MacShowFocusRect, 0); #endif + setStyleSheet("QTreeView::item:hover { background: lightGray; }"); + setMouseTracking(true); invisibleRootItem()->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + + connect(this, SIGNAL(itemEntered(QTreeWidgetItem*,int)), this, SLOT(mouseHover(QTreeWidgetItem*,int))); +} + +void +IntervalTreeView::mouseHover(QTreeWidgetItem *item, int column) +{ + int index = invisibleRootItem()->indexOfChild(item); + if (index >=0 && context->rideItem() && context->rideItem()->ride() && + context->rideItem()->ride()->intervals().count() > index) { + + context->notifyIntervalHover(context->rideItem()->ride()->intervals()[index]); + } } void diff --git a/src/IntervalTreeView.h b/src/IntervalTreeView.h index fe08acca6..fe699dc13 100644 --- a/src/IntervalTreeView.h +++ b/src/IntervalTreeView.h @@ -36,13 +36,13 @@ class IntervalTreeView : public QTreeWidget QStringList mimeTypes () const; QMimeData * mimeData ( const QList items ) const; + private slots: + void mouseHover(QTreeWidgetItem *item, int column); + protected: Context *context; void dropEvent(QDropEvent* event); - - - }; #endif // _GC_IntervalTreeView_h