mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
UI Nits: Splitter interval functions
.. final piece of the jigsaw, interval popup menu.
This commit is contained in:
@@ -1360,6 +1360,43 @@ MainWindow::showTreeContextMenuPopup(const QPoint &pos)
|
||||
void
|
||||
MainWindow::intervalPopup()
|
||||
{
|
||||
// always show the 'find best' 'find peaks' options
|
||||
QMenu menu(intervalItem);
|
||||
|
||||
RideItem *rideItem = (RideItem *)treeWidget->selectedItems().first();
|
||||
|
||||
if (rideItem != NULL && rideItem->ride() && rideItem->ride()->dataPoints().count()) {
|
||||
QAction *actFindPeak = new QAction(tr("Find Peak Intervals"), intervalItem);
|
||||
QAction *actFindBest = new QAction(tr("Find Best Intervals"), intervalItem);
|
||||
connect(actFindPeak, SIGNAL(triggered(void)), this, SLOT(findPowerPeaks(void)));
|
||||
connect(actFindBest, SIGNAL(triggered(void)), this, SLOT(addIntervals(void)));
|
||||
menu.addAction(actFindPeak);
|
||||
menu.addAction(actFindBest);
|
||||
}
|
||||
|
||||
if (intervalWidget->selectedItems().count() == 1) {
|
||||
|
||||
// we can zoom, rename etc if only 1 interval is selected
|
||||
QAction *actZoomInt = new QAction(tr("Zoom to interval"), intervalWidget);
|
||||
QAction *actRenameInt = new QAction(tr("Rename interval"), intervalWidget);
|
||||
QAction *actDeleteInt = new QAction(tr("Delete interval"), intervalWidget);
|
||||
connect(actRenameInt, SIGNAL(triggered(void)), this, SLOT(renameIntervalSelected(void)));
|
||||
connect(actDeleteInt, SIGNAL(triggered(void)), this, SLOT(deleteIntervalSelected(void)));
|
||||
connect(actZoomInt, SIGNAL(triggered(void)), this, SLOT(zoomIntervalSelected(void)));
|
||||
|
||||
menu.addAction(actZoomInt);
|
||||
menu.addAction(actRenameInt);
|
||||
menu.addAction(actDeleteInt);
|
||||
}
|
||||
|
||||
if (intervalWidget->selectedItems().count() > 1) {
|
||||
|
||||
QAction *actDeleteInt = new QAction(tr("Delete selected intervals"), intervalWidget);
|
||||
connect(actDeleteInt, SIGNAL(triggered(void)), this, SLOT(deleteIntervalSelected(void)));
|
||||
menu.addAction(actDeleteInt);
|
||||
}
|
||||
|
||||
menu.exec(analSidebar->mapToGlobal((QPoint(intervalItem->pos().x()+intervalItem->width()-20, intervalItem->pos().y()))));
|
||||
}
|
||||
|
||||
void
|
||||
@@ -2421,17 +2458,17 @@ MainWindow::updateRideFileIntervals()
|
||||
which->setDirty(true);
|
||||
}
|
||||
|
||||
void
|
||||
MainWindow::deleteIntervalSelected()
|
||||
{
|
||||
// delete the intervals that are selected (from the menu)
|
||||
// the normal delete intervals does that already
|
||||
deleteInterval();
|
||||
}
|
||||
|
||||
void
|
||||
MainWindow::deleteInterval()
|
||||
{
|
||||
// renumber remaining
|
||||
int oindex = activeInterval->displaySequence;
|
||||
for (int i=0; i<allIntervals->childCount(); i++) {
|
||||
IntervalItem *it = (IntervalItem *)allIntervals->child(i);
|
||||
int ds = it->displaySequence;
|
||||
if (ds > oindex) it->setDisplaySequence(ds-1);
|
||||
}
|
||||
|
||||
// now delete highlighted!
|
||||
for (int i=0; i<allIntervals->childCount();) {
|
||||
if (allIntervals->child(i)->isSelected()) delete allIntervals->takeChild(i);
|
||||
@@ -2441,6 +2478,19 @@ MainWindow::deleteInterval()
|
||||
updateRideFileIntervals(); // will emit intervalChanged() signal
|
||||
}
|
||||
|
||||
void
|
||||
MainWindow::renameIntervalSelected()
|
||||
{
|
||||
// go edit the name
|
||||
for (int i=0; i<allIntervals->childCount();) {
|
||||
if (allIntervals->child(i)->isSelected()) {
|
||||
allIntervals->child(i)->setFlags(activeInterval->flags() | Qt::ItemIsEditable);
|
||||
intervalWidget->editItem(allIntervals->child(i), 0);
|
||||
break;
|
||||
} else i++;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MainWindow::renameInterval() {
|
||||
// go edit the name
|
||||
@@ -2454,6 +2504,18 @@ MainWindow::intervalEdited(QTreeWidgetItem *, int) {
|
||||
updateRideFileIntervals(); // will emit intervalChanged() signal
|
||||
}
|
||||
|
||||
void
|
||||
MainWindow::zoomIntervalSelected()
|
||||
{
|
||||
// zoom the one interval that is selected via popup menu
|
||||
for (int i=0; i<allIntervals->childCount();) {
|
||||
if (allIntervals->child(i)->isSelected()) {
|
||||
emit intervalZoom((IntervalItem*)(allIntervals->child(i)));
|
||||
break;
|
||||
} else i++;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MainWindow::zoomInterval() {
|
||||
// zoom into this interval on allPlot
|
||||
|
||||
@@ -324,9 +324,12 @@ class MainWindow : public QMainWindow
|
||||
void resetWindowLayout();
|
||||
void dateChanged(const QDate &);
|
||||
void showContextMenuPopup(const QPoint &);
|
||||
void deleteInterval();
|
||||
void renameInterval();
|
||||
void zoomInterval();
|
||||
void deleteInterval(); // from right click
|
||||
void renameInterval(); // from right click
|
||||
void zoomInterval(); // from right click
|
||||
void renameIntervalSelected(void); // from menu popup
|
||||
void deleteIntervalSelected(void); // from menu popup
|
||||
void zoomIntervalSelected(void); // from menu popup
|
||||
void frontInterval();
|
||||
void backInterval();
|
||||
void intervalEdited(QTreeWidgetItem *, int);
|
||||
|
||||
Reference in New Issue
Block a user