bool g_useOverlays = false;
int g_absVMax = 0;
-int startMax;
-int PageWidth;
+int startMax; // Maximum offset in the graph (right side of graph)
+int PageWidth; // How many samples are currently visible on this 'page' / graph
int unlockStart = 0;
void ProxGuiQT::ShowGraphWindow(void)
{
//if (plotwidget) {
//plotwidget->destroy(true,true);
- // delete plotwidget;
- // plotwidget = NULL;
+ // delete plotwidget;
+ // plotwidget = NULL;
//}
if (plotapp) {
plotapp->quit();
if ((PlotGridX > 0) && ((PlotGridX * GraphPixelsPerPoint) > 1)) {
for(i = (offset * GraphPixelsPerPoint); i < r.right(); i += grid_delta_x) {
painter->drawLine(r.left()+i, r.top(), r.left()+i, r.bottom());
- }
+ }
}
if (PlotGridY > 0) {
for(i = 0; yCoordOf(i,r,g_absVMax) > r.top(); i += grid_delta_y) {
if(CursorDPos > GraphTraceLen)
CursorDPos= 0;
- QRect plotRect(WIDTH_AXES, 0, width()-WIDTH_AXES, height()-HEIGHT_INFO);
- QRect infoRect(0, height()-HEIGHT_INFO, width(), HEIGHT_INFO);
+ QRect plotRect(WIDTH_AXES, 0, width() - WIDTH_AXES, height() - HEIGHT_INFO);
+ QRect infoRect(0, height() - HEIGHT_INFO, width(), HEIGHT_INFO);
+ PageWidth = plotRect.width() / GraphPixelsPerPoint;
//Grey background
painter.fillRect(rect(), QColor(60, 60, 60));
//Start painting graph
PlotGraph(GraphBuffer, GraphTraceLen,plotRect,infoRect,&painter,0);
- if (showDemod && DemodBufferLen > 8) {
+ if (showDemod && DemodBufferLen > 8) {
PlotDemod(DemodBuffer, DemodBufferLen,plotRect,infoRect,&painter,2,g_DemodStartIdx);
}
if (g_useOverlays) {
//Draw annotations
char str[200];
sprintf(str, "@%d dt=%d [%2.2f] zoom=%2.2f CursorAPos=%d CursorBPos=%d GridX=%d GridY=%d (%s) GridXoffset=%d",
- GraphStart, CursorBPos - CursorAPos, (CursorBPos - CursorAPos)/CursorScaleFactor,
+ GraphStart, CursorBPos - CursorAPos, (CursorBPos - CursorAPos)/CursorScaleFactor,
GraphPixelsPerPoint,CursorAPos,CursorBPos,PlotGridXdefault,PlotGridYdefault,GridLocked?"Locked":"Unlocked",GridOffset);
painter.setPen(QColor(255, 255, 255));
painter.drawText(20, infoRect.bottom() - 3, str);
void Plot::keyPressEvent(QKeyEvent *event)
{
- int offset;
+ int offset; // Left/right movement offset (in sample size)
if(event->modifiers() & Qt::ShiftModifier) {
if (PlotGridX)
offset= PageWidth - (PageWidth % PlotGridX);
else
offset= PageWidth;
- } else
+ } else
if(event->modifiers() & Qt::ControlModifier)
offset= 1;
else
case Qt::Key_H:
puts("Plot Window Keystrokes:\n");
puts(" Key Action\n");
+ puts(" UP Zoom out");
puts(" DOWN Zoom in");
puts(" G Toggle grid display");
puts(" H Show help");
puts(" L Toggle lock grid relative to samples");
+ puts(" Q Hide window");
+ puts(" HOME Move to the start of the graph");
+ puts(" END Move to the end of the graph");
puts(" LEFT Move left");
puts(" <CTL>LEFT Move left 1 sample");
puts(" <SHIFT>LEFT Page left");
puts(" LEFT-MOUSE-CLICK Set yellow cursor");
- puts(" Q Hide window");
puts(" RIGHT Move right");
puts(" <CTL>RIGHT Move right 1 sample");
puts(" <SHIFT>RIGHT Page right");
puts(" RIGHT-MOUSE-CLICK Set purple cursor");
- puts(" UP Zoom out");
puts("");
puts("Use client window 'data help' for more plot commands\n");
break;
master->hide();
break;
+ case Qt::Key_Home:
+ GraphStart = 0;
+ break;
+
+ case Qt::Key_End:
+ GraphStart = startMax;
+ break;
+
default:
QWidget::keyPressEvent(event);
return;
{
private:
QWidget *master;
- int GraphStart;
- double GraphPixelsPerPoint;
+ int GraphStart; // Starting point/offset for the left side of the graph
+ double GraphPixelsPerPoint; // How many visual pixels are between each sample point (x axis)
int CursorAPos;
int CursorBPos;
void PlotGraph(int *buffer, int len, QRect r,QRect r2, QPainter* painter, int graphNum);
//OpsShow(void);
protected:
- // void paintEvent(QPaintEvent *event);
+ // void paintEvent(QPaintEvent *event);
void closeEvent(QCloseEvent *event);
void showEvent(QShowEvent *event);
void hideEvent(QHideEvent *event);
- // void mouseMoveEvent(QMouseEvent *event);
- // void mousePressEvent(QMouseEvent *event) { mouseMoveEvent(event); }
- // void keyPressEvent(QKeyEvent *event);
+ // void mouseMoveEvent(QMouseEvent *event);
+ // void mousePressEvent(QMouseEvent *event) { mouseMoveEvent(event); }
+ // void keyPressEvent(QKeyEvent *event);
public slots:
void applyOperation();
void stickOperation();
int argc;
char **argv;
WorkerThread *proxmarkThread;
-
+
public:
ProxGuiQT(int argc, char **argv, WorkerThread *wthread);
~ProxGuiQT(void);