mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[ui] smarter proposed default label
This commit is contained in:
		
							parent
							
								
									53f236dffe
								
							
						
					
					
						commit
						b41687ec92
					
				
					 2 changed files with 13 additions and 4 deletions
				
			
		
							
								
								
									
										16
									
								
								rufus.c
									
										
									
									
									
								
							
							
						
						
									
										16
									
								
								rufus.c
									
										
									
									
									
								
							|  | @ -205,7 +205,7 @@ static const char* GetPartitionType(BYTE Type) | |||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Open a drive - return a drive HANDLE and the drive letter | ||||
|  * Open a drive with optional write access - return a drive HANDLE and the drive letter | ||||
|  * This call is quite risky (left unchecked, inadvertently passing 0 as index would | ||||
|  * return a handle to C:, which we might then proceed to unknowingly repartition!), | ||||
|  * so we apply the following mitigation factors: | ||||
|  | @ -413,12 +413,20 @@ static BOOL PopulateProperties(int ComboIndex) | |||
| 	IGNORE_RETVAL(ComboBox_AddStringU(hFileSystem, SelectedDrive.FSType)); | ||||
| 	IGNORE_RETVAL(ComboBox_SetCurSel(hFileSystem, 0)); | ||||
| 	hDeviceToolTip = CreateTooltip(hDeviceList, DriveID.Table[ComboIndex], -1); | ||||
| 
 | ||||
| 	// If no existing label is available, propose one according to the size (eg: "256MB", "8GB")
 | ||||
| 	if (safe_strcmp(no_label, DriveLabel.Table[ComboIndex]) == 0) { | ||||
| 		if (fabs(floor(HumanReadableSize + 0.5) - HumanReadableSize) < 0.15) { | ||||
| 			safe_sprintf(proposed_label, sizeof(proposed_label), "%0.0f%s", floor(HumanReadableSize + 0.5), suffix[i]); | ||||
| 			SetWindowTextA(hLabel, proposed_label); | ||||
| 		if (HumanReadableSize < 1.0) { | ||||
| 			HumanReadableSize *= 1024.0; | ||||
| 			i--; | ||||
| 		} | ||||
| 		// If we're beneath the tolerance, round proposed label to an integer, if not, show one decimal point
 | ||||
| 		if (fabs(HumanReadableSize / ceil(HumanReadableSize) - 1.0) < PROPOSEDLABEL_TOLERANCE) { | ||||
| 			safe_sprintf(proposed_label, sizeof(proposed_label), "%0.0f%s", ceil(HumanReadableSize), suffix[i]); | ||||
| 		} else { | ||||
| 			safe_sprintf(proposed_label, sizeof(proposed_label), "%0.1f%s", HumanReadableSize, suffix[i]); | ||||
| 		} | ||||
| 		SetWindowTextA(hLabel, proposed_label); | ||||
| 	} else { | ||||
| 		SetWindowTextA(hLabel, DriveLabel.Table[ComboIndex]); | ||||
| 	} | ||||
|  |  | |||
							
								
								
									
										1
									
								
								rufus.h
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								rufus.h
									
										
									
									
									
								
							|  | @ -26,6 +26,7 @@ | |||
| #define DRIVE_INDEX_MAX             0xC0 | ||||
| #define MAX_DRIVES                  16 | ||||
| #define MAX_TOOLTIPS                16 | ||||
| #define PROPOSEDLABEL_TOLERANCE     0.10 | ||||
| #define WHITE                       RGB(255,255,255) | ||||
| #define SEPARATOR_GREY              RGB(223,223,223) | ||||
| #define RUFUS_URL                   "https://github.com/pbatard/rufus/wiki/Rufus"
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue