mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	New template-based-function: remove the uneeded items on a QList.
This function is for non-duplication of code for different QLists, since I now have Texts and Lines, I needed to make the code in a way that it worked without dupplication. It's a pretty standard use of templates, I think that even the C guys will not be offended by it. :) Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									fc55b2abfe
								
							
						
					
					
						commit
						0c5fd7db8e
					
				
					 2 changed files with 22 additions and 7 deletions
				
			
		|  | @ -64,7 +64,8 @@ DiveCartesianAxis::DiveCartesianAxis() : QObject(), | |||
| 	interval(1), | ||||
| 	labelScale(1.0), | ||||
| 	tick_size(0), | ||||
| 	textVisibility(true) | ||||
| 	textVisibility(true), | ||||
| 	line_size(-1) | ||||
| { | ||||
| 	setPen(gridPen()); | ||||
| } | ||||
|  | @ -74,6 +75,11 @@ DiveCartesianAxis::~DiveCartesianAxis() | |||
| 
 | ||||
| } | ||||
| 
 | ||||
| void DiveCartesianAxis::setLineSize(qreal lineSize) | ||||
| { | ||||
| 	line_size = lineSize; | ||||
| } | ||||
| 
 | ||||
| void DiveCartesianAxis::setOrientation(Orientation o) | ||||
| { | ||||
| 	orientation = o; | ||||
|  | @ -95,6 +101,15 @@ void DiveCartesianAxis::setTextVisible(bool arg1) | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| template<typename T> void emptyList( QList<T*>& list, double steps){ | ||||
| 	if (!list.isEmpty() && list.size() > steps) { | ||||
| 		while (list.size() > steps) { | ||||
| 				T *removedItem = list.takeLast(); | ||||
| 				Animations::animDelete(removedItem); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void DiveCartesianAxis::updateTicks() | ||||
| { | ||||
| 	if (!scene()) | ||||
|  | @ -108,12 +123,9 @@ void DiveCartesianAxis::updateTicks() | |||
| 	if (steps < 1) | ||||
| 		return; | ||||
| 
 | ||||
| 	if (!labels.isEmpty() && labels.size() > steps) { | ||||
| 		while (labels.size() > steps) { | ||||
| 				DiveTextItem *removedText = labels.takeLast(); | ||||
| 				Animations::animDelete(removedText); | ||||
| 		} | ||||
| 	} | ||||
| 	emptyList(labels, steps); | ||||
| 	emptyList(lines, steps); | ||||
| 
 | ||||
| 	// Move the remaining Ticks / Text to it's corerct position
 | ||||
| 	// Regartind the possibly new values for the Axis
 | ||||
| 	qreal begin, stepSize; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue