| 
									
										
										
										
											2017-04-27 20:24:53 +02:00
										 |  |  | // SPDX-License-Identifier: GPL-2.0
 | 
					
						
							| 
									
										
										
										
											2014-10-15 15:30:50 +02:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * metrics.cpp | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * methods to find/compute essential UI metrics | 
					
						
							|  |  |  |  * (font properties, icon sizes, etc) | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "metrics.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-06 21:39:19 -03:00
										 |  |  | static IconMetrics dfltIconMetrics; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | IconMetrics::IconMetrics() : | 
					
						
							|  |  |  | 	sz_small(-1), | 
					
						
							|  |  |  | 	sz_med(-1), | 
					
						
							|  |  |  | 	sz_big(-1), | 
					
						
							|  |  |  | 	sz_pic(-1), | 
					
						
							| 
									
										
										
										
											2016-03-28 16:43:40 -05:00
										 |  |  | 	spacing(-1), | 
					
						
							|  |  |  | 	dpr(1.0) | 
					
						
							| 
									
										
										
										
											2016-03-06 21:39:19 -03:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2014-10-15 15:30:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-15 15:30:50 +02:00
										 |  |  | QFont defaultModelFont() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	QFont font; | 
					
						
							|  |  |  | //	font.setPointSizeF(font.pointSizeF() * 0.8);
 | 
					
						
							|  |  |  | 	return font; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QFontMetrics defaultModelFontMetrics() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return QFontMetrics(defaultModelFont()); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // return the default icon size, computed as the multiple of 16 closest to
 | 
					
						
							|  |  |  | // the given height
 | 
					
						
							| 
									
										
										
										
											2014-10-15 15:30:52 +02:00
										 |  |  | static int defaultIconSize(int height) | 
					
						
							| 
									
										
										
										
											2014-10-15 15:30:50 +02:00
										 |  |  | { | 
					
						
							|  |  |  | 	int ret = (height + 8)/16; | 
					
						
							|  |  |  | 	ret *= 16; | 
					
						
							|  |  |  | 	if (ret < 16) | 
					
						
							|  |  |  | 		ret = 16; | 
					
						
							|  |  |  | 	return ret; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2014-10-15 15:30:52 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | const IconMetrics & defaultIconMetrics() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if (dfltIconMetrics.sz_small == -1) { | 
					
						
							|  |  |  | 		int small = defaultIconSize(defaultModelFontMetrics().height()); | 
					
						
							|  |  |  | 		dfltIconMetrics.sz_small = small; | 
					
						
							|  |  |  | 		dfltIconMetrics.sz_med = small + small/2; | 
					
						
							|  |  |  | 		dfltIconMetrics.sz_big = 2*small; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		dfltIconMetrics.sz_pic = 8*small; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		dfltIconMetrics.spacing = small/8; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return dfltIconMetrics; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2016-03-28 16:43:40 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | void updateDevicePixelRatio(double dpr) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	dfltIconMetrics.dpr = dpr; | 
					
						
							|  |  |  | } |