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
parent 3bc2349df1
commit 18856d8894

View file

@ -25,6 +25,7 @@
int GridOffset= 0;
bool GridLocked= 0;
int startMax;
int PageWidth;
void ProxGuiQT::ShowGraphWindow(void)
{
@ -131,6 +132,8 @@ void ProxWidget::paintEvent(QPaintEvent *event)
painter.setPen(QColor(100, 100, 100));
painter.drawPath(greyPath);
PageWidth= (int)((r.right() - r.left() - 40) / GraphPixelsPerPoint);
// plot X and Y grid lines
int i;
if ((PlotGridX > 0) && ((PlotGridX * GraphPixelsPerPoint) > 1)) {
@ -141,7 +144,7 @@ void ProxWidget::paintEvent(QPaintEvent *event)
lightgreyPath.moveTo(r.left()+i,r.top());
lightgreyPath.lineTo(r.left()+i,r.bottom());
painter.drawPath(lightgreyPath);
}
}
}
if ((PlotGridY > 0) && ((PlotGridY * GraphPixelsPerPoint) > 1)){
for(i = 0; i < ((r.top() + r.bottom())>>1); i += (int)(PlotGridY * GraphPixelsPerPoint)) {
@ -151,9 +154,9 @@ void ProxWidget::paintEvent(QPaintEvent *event)
lightgreyPath.moveTo(r.left() + 40,zeroHeight - i);
lightgreyPath.lineTo(r.right(),zeroHeight - i);
painter.drawPath(lightgreyPath);
}
}
}
startMax = (GraphTraceLen - (int)((r.right() - r.left() - 40) / GraphPixelsPerPoint));
if(startMax < 0) {
startMax = 0;
@ -311,6 +314,20 @@ void ProxWidget::mouseMoveEvent(QMouseEvent *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()) {
case Qt::Key_Down:
if(GraphPixelsPerPoint <= 50) {
@ -326,32 +343,53 @@ void ProxWidget::keyPressEvent(QKeyEvent *event)
case Qt::Key_Right:
if(GraphPixelsPerPoint < 20) {
if (GridLocked && GraphStart < startMax)
GridOffset -= (int)(20 / GraphPixelsPerPoint);
GraphStart += (int)(20 / GraphPixelsPerPoint);
if (PlotGridX && GridLocked && GraphStart < startMax){
GridOffset -= offset;
GridOffset %= PlotGridX;
gridchanged= 1;
}
GraphStart += offset;
} else {
if (GridLocked && GraphStart < startMax)
if (PlotGridX && GridLocked && GraphStart < startMax){
GridOffset--;
GridOffset %= PlotGridX;
gridchanged= 1;
}
GraphStart++;
}
if(GridOffset < 0)
if(GridOffset < 0) {
GridOffset += PlotGridX;
if (PlotGridX)
GridOffset %= PlotGridX;
}
if (gridchanged)
if (GraphStart > startMax) {
GridOffset += (GraphStart - startMax);
GridOffset %= PlotGridX;
}
break;
case Qt::Key_Left:
if(GraphPixelsPerPoint < 20) {
if (GridLocked && GraphStart > 0)
GridOffset += (int)(20 / GraphPixelsPerPoint);
GraphStart -= (int)(20 / GraphPixelsPerPoint);
if (PlotGridX && GridLocked && GraphStart > 0){
GridOffset += offset;
GridOffset %= PlotGridX;
gridchanged= 1;
}
GraphStart -= offset;
} else {
if (GridLocked && GraphStart > 0)
if (PlotGridX && GridLocked && GraphStart > 0){
GridOffset++;
GridOffset %= PlotGridX;
gridchanged= 1;
}
GraphStart--;
}
if (PlotGridX)
GridOffset %= PlotGridX;
if (gridchanged){
if (GraphStart < 0)
GridOffset += GraphStart;
if(GridOffset < 0)
GridOffset += PlotGridX;
GridOffset %= PlotGridX;
}
break;
case Qt::Key_G:
@ -366,15 +404,17 @@ void ProxWidget::keyPressEvent(QKeyEvent *event)
case Qt::Key_H:
puts("Plot Window Keystrokes:\n");
puts(" Key Action\n");
puts(" DOWN Zoom in");
puts(" G Toggle grid display");
puts(" H Show help");
puts(" LEFT Move left");
puts(" L Toggle lock grid relative to samples");
puts(" Q Hide window");
puts(" RIGHT Move right");
puts(" UP Zoom out");
puts(" Key Action\n");
puts(" DOWN Zoom in");
puts(" G Toggle grid display");
puts(" H Show help");
puts(" LEFT Move left");
puts(" <SHIFT>LEFT Page left");
puts(" L Toggle lock grid relative to samples");
puts(" Q Hide window");
puts(" RIGHT Move right");
puts(" <SHIFT>RIGHT Page right");
puts(" UP Zoom out");
puts("");
puts("Use client window 'data help' for more plot commands\n");
break;