X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/18856d889485abf5839ae50a93d1df07240ad666..refs/pull/220/head:/client/proxguiqt.cpp?ds=sidebyside

diff --git a/client/proxguiqt.cpp b/client/proxguiqt.cpp
index b34eecfd..cd8297ef 100644
--- a/client/proxguiqt.cpp
+++ b/client/proxguiqt.cpp
@@ -102,7 +102,7 @@ ProxGuiQT::~ProxGuiQT(void)
 void ProxWidget::paintEvent(QPaintEvent *event)
 {
 	QPainter painter(this);
-	QPainterPath penPath, whitePath, greyPath, lightgreyPath, cursorAPath, cursorBPath;
+	QPainterPath penPath, whitePath, greyPath, lightgreyPath, cursorAPath, cursorBPath, cursorCPath, cursorDPath;
 	QRect r;
 	QBrush brush(QColor(100, 255, 100));
 	QPen pen(QColor(100, 255, 100));
@@ -117,6 +117,10 @@ void ProxWidget::paintEvent(QPaintEvent *event)
 		CursorAPos= 0;
 	if(CursorBPos > GraphTraceLen)
 		CursorBPos= 0;
+	if(CursorCPos > GraphTraceLen)
+		CursorCPos= 0;
+	if(CursorDPos > GraphTraceLen)
+		CursorDPos= 0;
 
 	r = rect();
 
@@ -242,13 +246,17 @@ void ProxWidget::paintEvent(QPaintEvent *event)
 			penPath.moveTo(x,y);
 		}
 
-		if(i == CursorAPos || i == CursorBPos) {
+		if(i == CursorAPos || i == CursorBPos || i == CursorCPos || i == CursorDPos) {
 			QPainterPath *cursorPath;
 
 			if(i == CursorAPos) {
 				cursorPath = &cursorAPath;
-			} else {
+			} else if (i == CursorBPos) {
 				cursorPath = &cursorBPath;
+			} else if (i == CursorCPos) {
+				cursorPath = &cursorCPath;
+			} else {
+				cursorPath = &cursorDPath;
 			}
 			cursorPath->moveTo(x, r.top());
 			cursorPath->lineTo(x, r.bottom());
@@ -268,11 +276,15 @@ void ProxWidget::paintEvent(QPaintEvent *event)
 	painter.drawPath(cursorAPath);
 	painter.setPen(QColor(255, 0, 255));
 	painter.drawPath(cursorBPath);
+	painter.setPen(QColor(255, 153, 0)); //orange
+	painter.drawPath(cursorCPath);
+	painter.setPen(QColor(0, 0, 205)); //light blue
+	painter.drawPath(cursorDPath);
 
 	char str[200];
-	sprintf(str, "@%d   max=%d min=%d mean=%d n=%d/%d    dt=%d [%.3f] zoom=%.3f CursorA=%d [%d] CursorB=%d [%d]",
+	sprintf(str, "@%d   max=%d min=%d mean=%d n=%d/%d    dt=%d [%.3f] zoom=%.3f CursorA=%d [%d] CursorB=%d [%d]    GridX=%d GridY=%d (%s)",
 			GraphStart, yMax, yMin, yMean, n, GraphTraceLen,
-			CursorBPos - CursorAPos, (CursorBPos - CursorAPos)/CursorScaleFactor,GraphPixelsPerPoint,CursorAPos,GraphBuffer[CursorAPos],CursorBPos,GraphBuffer[CursorBPos]);
+			CursorBPos - CursorAPos, (CursorBPos - CursorAPos)/CursorScaleFactor,GraphPixelsPerPoint,CursorAPos,GraphBuffer[CursorAPos],CursorBPos,GraphBuffer[CursorBPos],PlotGridXdefault,PlotGridYdefault,GridLocked?"Locked":"Unlocked");
 
 	painter.setPen(QColor(255, 255, 255));
 	painter.drawText(50, r.bottom() - 20, str);
@@ -280,7 +292,7 @@ void ProxWidget::paintEvent(QPaintEvent *event)
 
 ProxWidget::ProxWidget(QWidget *parent) : QWidget(parent), GraphStart(0), GraphPixelsPerPoint(1)
 {
-	resize(600, 500);
+	resize(600, 300);
 
 	QPalette palette(QColor(0,0,0,0));
 	palette.setColor(QPalette::WindowText, QColor(255,255,255));
@@ -288,6 +300,8 @@ ProxWidget::ProxWidget(QWidget *parent) : QWidget(parent), GraphStart(0), GraphP
 	palette.setColor(QPalette::Button, QColor(100, 100, 100));
 	setPalette(palette);
 	setAutoFillBackground(true);
+	CursorAPos = 0;
+	CursorBPos = 0;
 }
 
 void ProxWidget::closeEvent(QCloseEvent *event)
@@ -324,9 +338,11 @@ void ProxWidget::keyPressEvent(QKeyEvent *event)
 			offset= PageWidth - (PageWidth % PlotGridX);
 		else
 			offset= PageWidth;
-	}
-	else
-		offset= (int)(20 / GraphPixelsPerPoint);
+	} else 
+		if(event->modifiers() & Qt::ControlModifier)
+			offset= 1;
+		else
+			offset= (int)(20 / GraphPixelsPerPoint);
 
 	switch(event->key()) {
 		case Qt::Key_Down:
@@ -404,17 +420,21 @@ 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(" <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(" Key                      Action\n");
+			puts(" DOWN                     Zoom in");
+			puts(" G                        Toggle grid display");
+			puts(" H                        Show help");
+			puts(" L                        Toggle lock grid relative to samples");
+			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;