mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
[ui] try to reselect the last file system explicitly set
* Also remove an duplicate internal call to IDC_FILE_SYSTEM * Also fix the hash button mention in the Japanese translation
This commit is contained in:
parent
8aeaa5e3b9
commit
8453c8c44f
5 changed files with 40 additions and 30 deletions
|
@ -8476,7 +8476,7 @@ t MSG_298 "選択されたISOファイルは定義されているファイル
|
|||
"%sのデータが不足しています。\n\n"
|
||||
"このファイルがインターネットからダウンロードされたものならば、再ダウンロードし、"
|
||||
"MD5かSHAのチェックサムが公式のものと一致しているか確認してください。\n\n"
|
||||
"MD5とSHAは[#]ボタンをクリックすればRufusで確認できます。"
|
||||
"MD5とSHAは(✓)ボタンをクリックすればRufusで確認できます。"
|
||||
t MSG_299 "タイムスタンプの検証エラー"
|
||||
t MSG_300 "ダウンロードしたアップデートのタイム スタンプが現在の実行ファイルのタイム スタンプよりも新しいことを確認できませんでした。\n\n"
|
||||
"潜在的な攻撃シナリオを防止するため、更新プロセスを中止しダウンロードしたファイルを削除します。 詳細はログを確認してください。"
|
||||
|
|
|
@ -845,8 +845,6 @@ BOOL GetDevices(DWORD devnum)
|
|||
i = 0;
|
||||
IGNORE_RETVAL(ComboBox_SetCurSel(hDeviceList, i));
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE<<16) | IDC_DEVICE, 0);
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE<<16) | IDC_FILE_SYSTEM,
|
||||
ComboBox_GetCurSel(hFileSystem));
|
||||
r = TRUE;
|
||||
|
||||
out:
|
||||
|
|
55
src/rufus.c
55
src/rufus.c
|
@ -65,7 +65,7 @@ static BOOL user_changed_label = FALSE;
|
|||
static BOOL app_changed_label = FALSE;
|
||||
static BOOL allowed_filesystem[FS_MAX] = { 0 };
|
||||
static int64_t last_iso_blocking_status;
|
||||
static int windows_to_go_selection = 0, selected_pt = -1;
|
||||
static int windows_to_go_selection = 0, selected_pt = -1, selected_fs = -1;
|
||||
static int selection_default, row_height, advanced_device_section_height, advanced_format_section_height, image_index;
|
||||
static int device_vpos, format_vpos, status_vpos;
|
||||
static int ddh, bw, hw, fw; // DropDown Height, Main button width, half dropdown width, full dropdown width
|
||||
|
@ -114,7 +114,7 @@ BOOL use_own_c32[NB_OLD_C32] = {FALSE, FALSE}, mbr_selected_by_user = FALSE, dis
|
|||
BOOL iso_op_in_progress = FALSE, format_op_in_progress = FALSE, right_to_left_mode = FALSE, has_uefi_csm;
|
||||
BOOL enable_HDDs = FALSE, force_update = FALSE, enable_ntfs_compression = FALSE, no_confirmation_on_cancel = FALSE, lock_drive = TRUE;
|
||||
BOOL advanced_mode_device, advanced_mode_format, allow_dual_uefi_bios, detect_fakes, enable_vmdk, force_large_fat32, usb_debug;
|
||||
BOOL use_fake_units, preserve_timestamps;
|
||||
BOOL use_fake_units, preserve_timestamps = FALSE;
|
||||
BOOL zero_drive = FALSE, list_non_usb_removable_drives = FALSE, enable_file_indexing, large_drive = FALSE, write_as_image = FALSE;
|
||||
int dialog_showing = 0;
|
||||
uint16_t rufus_version[3], embedded_sl_version[2];
|
||||
|
@ -553,7 +553,8 @@ static BOOL SetFileSystemAndClusterSize(char* fs_type)
|
|||
}
|
||||
}
|
||||
} else {
|
||||
SelectedDrive.FSType = FS_UNKNOWN;
|
||||
// Re-select last user-selected FS
|
||||
SelectedDrive.FSType = selected_fs;
|
||||
}
|
||||
|
||||
for (i = 0; i<ComboBox_GetCount(hFileSystem); i++) {
|
||||
|
@ -573,7 +574,7 @@ static BOOL SetFileSystemAndClusterSize(char* fs_type)
|
|||
|
||||
static void SetFSFromISO(void)
|
||||
{
|
||||
int i, fs_tmp, selected_fs = FS_UNKNOWN;
|
||||
int i, fs_tmp, preferred_fs = FS_UNKNOWN;
|
||||
uint32_t fs_mask = 0;
|
||||
BOOL windows_to_go = display_togo_option && (bt == BT_IMAGE) && HAS_WINTOGO(img_report) &&
|
||||
(ComboBox_GetCurSel(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION)) == 1);
|
||||
|
@ -590,30 +591,30 @@ static void SetFSFromISO(void)
|
|||
// The presence of a 4GB file forces the use of NTFS as default FS
|
||||
if (img_report.has_4GB_file) {
|
||||
if (fs_mask & (1 << FS_NTFS)) {
|
||||
selected_fs = FS_NTFS;
|
||||
preferred_fs = FS_NTFS;
|
||||
}
|
||||
// Syslinux and EFI have precedence over bootmgr (unless the user selected BIOS as target type)
|
||||
} else if ((HAS_SYSLINUX(img_report)) || (HAS_REACTOS(img_report)) || HAS_KOLIBRIOS(img_report) ||
|
||||
(IS_EFI_BOOTABLE(img_report) && (tt == TT_UEFI) && (!windows_to_go))) {
|
||||
if (fs_mask & (1<<FS_FAT32)) {
|
||||
selected_fs = FS_FAT32;
|
||||
preferred_fs = FS_FAT32;
|
||||
} else if ((fs_mask & (1<<FS_FAT16)) && !HAS_KOLIBRIOS(img_report)) {
|
||||
selected_fs = FS_FAT16;
|
||||
preferred_fs = FS_FAT16;
|
||||
}
|
||||
} else if ((windows_to_go) || HAS_BOOTMGR(img_report) || HAS_WINPE(img_report)) {
|
||||
if (fs_mask & (1<<FS_NTFS)) {
|
||||
selected_fs = FS_NTFS;
|
||||
preferred_fs = FS_NTFS;
|
||||
}
|
||||
}
|
||||
|
||||
// Try to select the FS
|
||||
for (i=0; i<ComboBox_GetCount(hFileSystem); i++) {
|
||||
fs_tmp = (int)ComboBox_GetItemData(hFileSystem, i);
|
||||
if (fs_tmp == selected_fs)
|
||||
if (fs_tmp == preferred_fs)
|
||||
IGNORE_RETVAL(ComboBox_SetCurSel(hFileSystem, i));
|
||||
}
|
||||
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE<<16) | IDC_FILE_SYSTEM,
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE_INTERNAL<<16) | IDC_FILE_SYSTEM,
|
||||
ComboBox_GetCurSel(hFileSystem));
|
||||
}
|
||||
|
||||
|
@ -812,9 +813,10 @@ static void EnableControls(BOOL bEnable)
|
|||
|
||||
// Populate the UI main dropdown properties.
|
||||
// This should be called on device or boot type change.
|
||||
static BOOL PopulateProperties(int device_index)
|
||||
static BOOL PopulateProperties(void)
|
||||
{
|
||||
char* device_tooltip;
|
||||
int device_index = ComboBox_GetCurSel(hDeviceList);
|
||||
char fs_type[32];
|
||||
|
||||
memset(&SelectedDrive, 0, sizeof(SelectedDrive));
|
||||
|
@ -825,10 +827,11 @@ static BOOL PopulateProperties(int device_index)
|
|||
|
||||
// Get data from the currently selected drive
|
||||
SelectedDrive.DeviceNumber = (DWORD)ComboBox_GetItemData(hDeviceList, device_index);
|
||||
// This fills the SelectedDrive properties
|
||||
GetDrivePartitionData(SelectedDrive.DeviceNumber, fs_type, sizeof(fs_type), FALSE);
|
||||
|
||||
SetPartitionSchemeAndTargetSystem(FALSE);
|
||||
if (!SetFileSystemAndClusterSize(fs_type)) {
|
||||
// Attempt to reselect the last file system explicitly set by the user
|
||||
if (!SetFileSystemAndClusterSize((selected_fs == -1) ? fs_type : NULL)) {
|
||||
SetProposedLabel(-1);
|
||||
uprintf("No file system is selectable for this drive\n");
|
||||
return FALSE;
|
||||
|
@ -1360,7 +1363,7 @@ DWORD WINAPI ISOScanThread(LPVOID param)
|
|||
safe_free(image_path);
|
||||
EnableControls(TRUE);
|
||||
SetMBRProps();
|
||||
PopulateProperties(ComboBox_GetCurSel(hDeviceList));
|
||||
PopulateProperties();
|
||||
PrintInfoDebug(0, MSG_203);
|
||||
PrintStatus(0, MSG_203);
|
||||
goto out;
|
||||
|
@ -1407,7 +1410,7 @@ DWORD WINAPI ISOScanThread(LPVOID param)
|
|||
SetMBRProps();
|
||||
SetProposedLabel(ComboBox_GetCurSel(hDeviceList));
|
||||
} else {
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE << 16) | IDC_FILE_SYSTEM,
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE_INTERNAL<<16) | IDC_FILE_SYSTEM,
|
||||
ComboBox_GetCurSel(hFileSystem));
|
||||
}
|
||||
// Lose the focus on the select ISO (but place it on Close)
|
||||
|
@ -2939,6 +2942,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
static SHChangeNotifyEntry NotifyEntry;
|
||||
static DWORD_PTR thread_affinity[4];
|
||||
static HFONT hyperlink_font = NULL;
|
||||
BOOL set_selected_fs;
|
||||
DRAWITEMSTRUCT* pDI;
|
||||
LPTOOLTIPTEXT lpttt;
|
||||
HDROP droppedFileInfo;
|
||||
|
@ -3069,7 +3073,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
|
||||
EnableControls(TRUE);
|
||||
SetFileSystemAndClusterSize(NULL);
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE << 16) | IDC_FILE_SYSTEM,
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE_INTERNAL<<16) | IDC_FILE_SYSTEM,
|
||||
ComboBox_GetCurSel(hFileSystem));
|
||||
break;
|
||||
case IDC_ADVANCED_FORMAT_OPTIONS:
|
||||
|
@ -3090,11 +3094,11 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
break;
|
||||
nb_devices = ComboBox_GetCount(hDeviceList);
|
||||
PrintStatusDebug(0, (nb_devices==1)?MSG_208:MSG_209, nb_devices);
|
||||
PopulateProperties(ComboBox_GetCurSel(hDeviceList));
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE<<16) | IDC_FILE_SYSTEM,
|
||||
ComboBox_GetCurSel(hFileSystem));
|
||||
PopulateProperties();
|
||||
nDeviceIndex = ComboBox_GetCurSel(hDeviceList);
|
||||
DeviceNum = (nDeviceIndex == CB_ERR) ? 0 : (DWORD)ComboBox_GetItemData(hDeviceList, nDeviceIndex);
|
||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE_INTERNAL << 16) | IDC_FILE_SYSTEM,
|
||||
ComboBox_GetCurSel(hFileSystem));
|
||||
break;
|
||||
case IDC_IMAGE_OPTION:
|
||||
if (HIWORD(wParam) != CBN_SELCHANGE)
|
||||
|
@ -3124,8 +3128,9 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
selected_pt = pt;
|
||||
break;
|
||||
case IDC_FILE_SYSTEM:
|
||||
if (HIWORD(wParam) != CBN_SELCHANGE)
|
||||
if ((HIWORD(wParam) != CBN_SELCHANGE) && (HIWORD(wParam) != CBN_SELCHANGE_INTERNAL))
|
||||
break;
|
||||
set_selected_fs = (HIWORD(wParam) == CBN_SELCHANGE);
|
||||
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
||||
SetClusterSizes(fs);
|
||||
EnableQuickFormat(TRUE);
|
||||
|
@ -3139,6 +3144,9 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, 1));
|
||||
}
|
||||
break;
|
||||
} else if (set_selected_fs) {
|
||||
// Try to keep track of user selection
|
||||
selected_fs = fs;
|
||||
}
|
||||
EnableMBRBootOptions(TRUE, FALSE);
|
||||
SetMBRProps();
|
||||
|
@ -3151,7 +3159,11 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
break;
|
||||
selection_default = bt;
|
||||
SetPartitionSchemeAndTargetSystem(FALSE);
|
||||
SetFileSystemAndClusterSize(NULL);
|
||||
// Try to reselect current FS from the drive for non-bootable
|
||||
tmp[0] = 0;
|
||||
if ((selected_fs == -1) && (SelectedDrive.DeviceNumber != 0))
|
||||
GetDrivePartitionData(SelectedDrive.DeviceNumber, tmp, sizeof(tmp), TRUE);
|
||||
SetFileSystemAndClusterSize(tmp);
|
||||
SetToGo();
|
||||
SetProposedLabel(ComboBox_GetCurSel(hDeviceList));
|
||||
EnableControls(TRUE);
|
||||
|
@ -3226,7 +3238,6 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
goto aborted_start;
|
||||
|
||||
// Display a warning about UDF formatting times
|
||||
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
||||
if (fs == FS_UDF) {
|
||||
dur_secs = (uint32_t)(((double)SelectedDrive.DiskSize) / 1073741824.0f / UDF_FORMAT_SPEED);
|
||||
if (dur_secs > UDF_FORMAT_WARN) {
|
||||
|
|
|
@ -73,6 +73,7 @@
|
|||
#define FAT32_CLUSTER_THRESHOLD 1.011f // For FAT32, cluster size changes don't occur at power of 2 boundaries but sligthly above
|
||||
#define DD_BUFFER_SIZE 65536 // Minimum size of the buffer we use for DD operations
|
||||
#define UBUFFER_SIZE 2048
|
||||
#define CBN_SELCHANGE_INTERNAL (CBN_SELCHANGE + 256)
|
||||
#define RUFUS_URL "https://rufus.ie"
|
||||
#define DOWNLOAD_URL RUFUS_URL "/downloads"
|
||||
#define FILES_URL RUFUS_URL "/files"
|
||||
|
|
10
src/rufus.rc
10
src/rufus.rc
|
@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_ACCEPTFILES
|
||||
CAPTION "Rufus 3.0.1264"
|
||||
CAPTION "Rufus 3.0.1265"
|
||||
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
||||
BEGIN
|
||||
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
||||
|
@ -389,8 +389,8 @@ END
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,0,1264,0
|
||||
PRODUCTVERSION 3,0,1264,0
|
||||
FILEVERSION 3,0,1265,0
|
||||
PRODUCTVERSION 3,0,1265,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
@ -407,13 +407,13 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
|
||||
VALUE "FileDescription", "Rufus"
|
||||
VALUE "FileVersion", "3.0.1264"
|
||||
VALUE "FileVersion", "3.0.1265"
|
||||
VALUE "InternalName", "Rufus"
|
||||
VALUE "LegalCopyright", "© 2011-2018 Pete Batard (GPL v3)"
|
||||
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
||||
VALUE "OriginalFilename", "rufus.exe"
|
||||
VALUE "ProductName", "Rufus"
|
||||
VALUE "ProductVersion", "3.0.1264"
|
||||
VALUE "ProductVersion", "3.0.1265"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
Loading…
Reference in a new issue