mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	profilewidget2: add resetZoom()
resetZoom() is now a new method that is called both when 'printMode' is updated or when the dive is re-plotted. Fixes a bug where zooming in on the profile and then printing the dive has the profile at the wrong zoom level (makes the profile look smaller). Reported-by: Willem Ferguson <willemferguson@zoology.up.ac.za> Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									f1b4fb21db
								
							
						
					
					
						commit
						11e38710e4
					
				
					 2 changed files with 12 additions and 5 deletions
				
			
		|  | @ -477,6 +477,15 @@ void ProfileWidget2::setupSceneAndFlags() | |||
| 	background->setFlag(QGraphicsItem::ItemIgnoresTransformations); | ||||
| } | ||||
| 
 | ||||
| void ProfileWidget2::resetZoom() | ||||
| { | ||||
| 	if (!zoomLevel) | ||||
| 		return; | ||||
| 	const qreal defScale = 1.0 / qPow(zoomFactor, (qreal)zoomLevel); | ||||
| 	scale(defScale, defScale); | ||||
| 	zoomLevel = 0; | ||||
| } | ||||
| 
 | ||||
| // Currently just one dive, but the plan is to enable All of the selected dives.
 | ||||
| void ProfileWidget2::plotDive(struct dive *d, bool force) | ||||
| { | ||||
|  | @ -521,11 +530,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force) | |||
| 	} | ||||
| 
 | ||||
| 	// restore default zoom level
 | ||||
| 	if (zoomLevel) { | ||||
| 		const qreal defScale = 1.0 / qPow(zoomFactor, (qreal)zoomLevel); | ||||
| 		scale(defScale, defScale); | ||||
| 		zoomLevel = 0; | ||||
| 	} | ||||
| 	resetZoom(); | ||||
| 
 | ||||
| 	// reset some item visibility on printMode changes
 | ||||
| 	toolTipItem->setVisible(!printMode); | ||||
|  | @ -1473,6 +1478,7 @@ bool ProfileWidget2::getPrintMode() | |||
| void ProfileWidget2::setPrintMode(bool mode, bool grayscale) | ||||
| { | ||||
| 	printMode = mode; | ||||
| 	resetZoom(); | ||||
| 	isGrayscale = mode ? grayscale : false; | ||||
| 	mouseFollowerHorizontal->setVisible(!mode); | ||||
| 	mouseFollowerVertical->setVisible(!mode); | ||||
|  |  | |||
|  | @ -71,6 +71,7 @@ public: | |||
| 	}; | ||||
| 
 | ||||
| 	ProfileWidget2(QWidget *parent = 0); | ||||
| 	void resetZoom(); | ||||
| 	void plotDive(struct dive *d = 0, bool force = false); | ||||
| 	virtual bool eventFilter(QObject *, QEvent *); | ||||
| 	void setupItem(AbstractProfilePolygonItem *item, DiveCartesianAxis *hAxis, DiveCartesianAxis *vAxis, DivePlotDataModel *model, int vData, int hData, int zValue); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue