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)) {
@ -141,7 +144,7 @@ void ProxWidget::paintEvent(QPaintEvent *event)
lightgreyPath.moveTo(r.left()+i,r.top()); lightgreyPath.moveTo(r.left()+i,r.top());
lightgreyPath.lineTo(r.left()+i,r.bottom()); lightgreyPath.lineTo(r.left()+i,r.bottom());
painter.drawPath(lightgreyPath); painter.drawPath(lightgreyPath);
} }
} }
if ((PlotGridY > 0) && ((PlotGridY * GraphPixelsPerPoint) > 1)){ if ((PlotGridY > 0) && ((PlotGridY * GraphPixelsPerPoint) > 1)){
for(i = 0; i < ((r.top() + r.bottom())>>1); i += (int)(PlotGridY * GraphPixelsPerPoint)) { for(i = 0; i < ((r.top() + r.bottom())>>1); i += (int)(PlotGridY * GraphPixelsPerPoint)) {
@ -151,8 +154,8 @@ void ProxWidget::paintEvent(QPaintEvent *event)
lightgreyPath.moveTo(r.left() + 40,zeroHeight - i); lightgreyPath.moveTo(r.left() + 40,zeroHeight - i);
lightgreyPath.lineTo(r.right(),zeroHeight - i); lightgreyPath.lineTo(r.right(),zeroHeight - i);
painter.drawPath(lightgreyPath); painter.drawPath(lightgreyPath);
}
} }
}
startMax = (GraphTraceLen - (int)((r.right() - r.left() - 40) / GraphPixelsPerPoint)); startMax = (GraphTraceLen - (int)((r.right() - r.left() - 40) / GraphPixelsPerPoint));
if(startMax < 0) { if(startMax < 0) {
@ -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) }
GridOffset %= PlotGridX; if (gridchanged)
if (GraphStart > startMax) {
GridOffset += (GraphStart - startMax);
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){
GridOffset %= PlotGridX; if (GraphStart < 0)
GridOffset += GraphStart;
if(GridOffset < 0)
GridOffset += PlotGridX;
GridOffset %= PlotGridX;
}
break; break;
case Qt::Key_G: case Qt::Key_G:
@ -366,15 +404,17 @@ void ProxWidget::keyPressEvent(QKeyEvent *event)
case Qt::Key_H: case Qt::Key_H:
puts("Plot Window Keystrokes:\n"); puts("Plot Window Keystrokes:\n");
puts(" Key Action\n"); puts(" Key Action\n");
puts(" DOWN Zoom in"); puts(" DOWN Zoom in");
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(" L Toggle lock grid relative to samples"); puts(" <SHIFT>LEFT Page left");
puts(" Q Hide window"); puts(" L Toggle lock grid relative to samples");
puts(" RIGHT Move right"); puts(" Q Hide window");
puts(" UP Zoom out"); puts(" RIGHT Move right");
puts(" <SHIFT>RIGHT Page right");
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");
break; break;