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;
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)) {
@ -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)
}
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)
if (gridchanged){
if (GraphStart < 0)
GridOffset += GraphStart;
if(GridOffset < 0)
GridOffset += PlotGridX;
GridOffset %= PlotGridX;
}
break;
case Qt::Key_G:
@ -371,9 +409,11 @@ void ProxWidget::keyPressEvent(QKeyEvent *event)
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");