Navigate a page at a time in plot window

This commit is contained in:
fnargwibble@gmail.com 2012-01-23 17:57:42 +00:00
commit 18856d8894

View file

@ -25,6 +25,7 @@
int GridOffset= 0; int GridOffset= 0;
bool GridLocked= 0; bool GridLocked= 0;
int startMax; int startMax;
int PageWidth;
void ProxGuiQT::ShowGraphWindow(void) void ProxGuiQT::ShowGraphWindow(void)
{ {
@ -131,6 +132,8 @@ void ProxWidget::paintEvent(QPaintEvent *event)
painter.setPen(QColor(100, 100, 100)); painter.setPen(QColor(100, 100, 100));
painter.drawPath(greyPath); painter.drawPath(greyPath);
PageWidth= (int)((r.right() - r.left() - 40) / GraphPixelsPerPoint);
// plot X and Y grid lines // plot X and Y grid lines
int i; int i;
if ((PlotGridX > 0) && ((PlotGridX * GraphPixelsPerPoint) > 1)) { if ((PlotGridX > 0) && ((PlotGridX * GraphPixelsPerPoint) > 1)) {
@ -311,6 +314,20 @@ void ProxWidget::mouseMoveEvent(QMouseEvent *event)
void ProxWidget::keyPressEvent(QKeyEvent *event) void ProxWidget::keyPressEvent(QKeyEvent *event)
{ {
int offset;
int gridchanged;
gridchanged= 0;
if(event->modifiers() & Qt::ShiftModifier) {
if (PlotGridX)
offset= PageWidth - (PageWidth % PlotGridX);
else
offset= PageWidth;
}
else
offset= (int)(20 / GraphPixelsPerPoint);
switch(event->key()) { switch(event->key()) {
case Qt::Key_Down: case Qt::Key_Down:
if(GraphPixelsPerPoint <= 50) { if(GraphPixelsPerPoint <= 50) {
@ -326,32 +343,53 @@ void ProxWidget::keyPressEvent(QKeyEvent *event)
case Qt::Key_Right: case Qt::Key_Right:
if(GraphPixelsPerPoint < 20) { if(GraphPixelsPerPoint < 20) {
if (GridLocked && GraphStart < startMax) if (PlotGridX && GridLocked && GraphStart < startMax){
GridOffset -= (int)(20 / GraphPixelsPerPoint); GridOffset -= offset;
GraphStart += (int)(20 / GraphPixelsPerPoint); GridOffset %= PlotGridX;
gridchanged= 1;
}
GraphStart += offset;
} else { } else {
if (GridLocked && GraphStart < startMax) if (PlotGridX && GridLocked && GraphStart < startMax){
GridOffset--; GridOffset--;
GridOffset %= PlotGridX;
gridchanged= 1;
}
GraphStart++; GraphStart++;
} }
if(GridOffset < 0) if(GridOffset < 0) {
GridOffset += PlotGridX; GridOffset += PlotGridX;
if (PlotGridX) }
if (gridchanged)
if (GraphStart > startMax) {
GridOffset += (GraphStart - startMax);
GridOffset %= PlotGridX; GridOffset %= PlotGridX;
}
break; break;
case Qt::Key_Left: case Qt::Key_Left:
if(GraphPixelsPerPoint < 20) { if(GraphPixelsPerPoint < 20) {
if (GridLocked && GraphStart > 0) if (PlotGridX && GridLocked && GraphStart > 0){
GridOffset += (int)(20 / GraphPixelsPerPoint); GridOffset += offset;
GraphStart -= (int)(20 / GraphPixelsPerPoint); GridOffset %= PlotGridX;
gridchanged= 1;
}
GraphStart -= offset;
} else { } else {
if (GridLocked && GraphStart > 0) if (PlotGridX && GridLocked && GraphStart > 0){
GridOffset++; GridOffset++;
GridOffset %= PlotGridX;
gridchanged= 1;
}
GraphStart--; GraphStart--;
} }
if (PlotGridX) if (gridchanged){
if (GraphStart < 0)
GridOffset += GraphStart;
if(GridOffset < 0)
GridOffset += PlotGridX;
GridOffset %= PlotGridX; GridOffset %= PlotGridX;
}
break; break;
case Qt::Key_G: case Qt::Key_G:
@ -371,9 +409,11 @@ void ProxWidget::keyPressEvent(QKeyEvent *event)
puts(" G Toggle grid display"); puts(" G Toggle grid display");
puts(" H Show help"); puts(" H Show help");
puts(" LEFT Move left"); puts(" LEFT Move left");
puts(" <SHIFT>LEFT Page left");
puts(" L Toggle lock grid relative to samples"); puts(" L Toggle lock grid relative to samples");
puts(" Q Hide window"); puts(" Q Hide window");
puts(" RIGHT Move right"); puts(" RIGHT Move right");
puts(" <SHIFT>RIGHT Page right");
puts(" UP Zoom out"); puts(" UP Zoom out");
puts(""); puts("");
puts("Use client window 'data help' for more plot commands\n"); puts("Use client window 'data help' for more plot commands\n");