mirror of
				https://github.com/Proxmark/proxmark3.git
				synced 2025-10-31 08:26:28 +08:00 
			
		
		
		
	add: Home (Pos1) and End key bindings in graph GUI (based on @mcd1992 change on RRG repo) (#823)
This commit is contained in:
		
							parent
							
								
									2378bb24c3
								
							
						
					
					
						commit
						5f18b0c45d
					
				
					 3 changed files with 32 additions and 20 deletions
				
			
		|  | @ -32,6 +32,7 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac | |||
| - Added `hf mfp ndef` `hf mf ndef` parsing NDEF records (Merlok) | ||||
| - Added Mifare Mini, Mifare 2K and 4K support to `hf mf sim` (piwi) | ||||
| - Added Legic detection to `hf search` (dnet) | ||||
| - Added Home (Pos1) and End key bindings to the plot GUI (based on @mcd1992) | ||||
| 
 | ||||
| ## [v3.1.0][2018-10-10] | ||||
| 
 | ||||
|  |  | |||
|  | @ -34,8 +34,8 @@ extern "C" { | |||
| 
 | ||||
| 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) | ||||
|  | @ -134,8 +134,8 @@ ProxGuiQT::~ProxGuiQT(void) | |||
| { | ||||
| 	//if (plotwidget) {
 | ||||
| 		//plotwidget->destroy(true,true);
 | ||||
| 	//	delete plotwidget;
 | ||||
| 	//	plotwidget = NULL;
 | ||||
| 	//  delete plotwidget;
 | ||||
| 	//  plotwidget = NULL;
 | ||||
| 	//}
 | ||||
| 	if (plotapp) { | ||||
| 		plotapp->quit(); | ||||
|  | @ -474,7 +474,7 @@ void Plot::plotGridLines(QPainter* painter,QRect r) | |||
| 	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) { | ||||
|  | @ -509,8 +509,9 @@ void Plot::paintEvent(QPaintEvent *event) | |||
| 	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)); | ||||
|  | @ -529,7 +530,7 @@ void Plot::paintEvent(QPaintEvent *event) | |||
| 
 | ||||
| 	//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) { | ||||
|  | @ -564,7 +565,7 @@ void Plot::paintEvent(QPaintEvent *event) | |||
| 	//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); | ||||
|  | @ -616,14 +617,14 @@ void Plot::mouseMoveEvent(QMouseEvent *event) | |||
| 
 | ||||
| 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 | ||||
|  | @ -671,20 +672,22 @@ void Plot::keyPressEvent(QKeyEvent *event) | |||
| 		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; | ||||
|  | @ -701,6 +704,14 @@ void Plot::keyPressEvent(QKeyEvent *event) | |||
| 			master->hide(); | ||||
| 			break; | ||||
| 
 | ||||
| 		case Qt::Key_Home: | ||||
| 			GraphStart = 0; | ||||
| 			break; | ||||
| 
 | ||||
| 		case Qt::Key_End: | ||||
| 			GraphStart = startMax; | ||||
| 			break; | ||||
| 
 | ||||
| 		default: | ||||
| 			QWidget::keyPressEvent(event); | ||||
| 			return; | ||||
|  |  | |||
|  | @ -29,8 +29,8 @@ class Plot: public QWidget | |||
| { | ||||
| 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); | ||||
|  | @ -73,13 +73,13 @@ class ProxWidget : public QWidget | |||
| 		//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(); | ||||
|  | @ -111,7 +111,7 @@ class ProxGuiQT : public QObject | |||
| 		int argc; | ||||
| 		char **argv; | ||||
| 		WorkerThread *proxmarkThread; | ||||
| 	 | ||||
| 
 | ||||
| 	public: | ||||
| 		ProxGuiQT(int argc, char **argv, WorkerThread *wthread); | ||||
| 		~ProxGuiQT(void); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue