Modified "Configure options" dialog for better look'n'feel.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
Andrew Borodin 2011-12-11 16:31:07 +03:00 committed by Slava Zanko
parent 1dffc24f9b
commit bd2ddb54cb
3 changed files with 45 additions and 34 deletions

View File

@ -1798,6 +1798,10 @@ When you press F7 to create a new directory, the input line in popup dialog
will be filled by name of current file or directory in active panel. will be filled by name of current file or directory in active panel.
Disabled by default. Disabled by default.
.PP .PP
.I Preallocate space
Preallocate space for whole target file, if possible, before copy operation.
Disabled by default.
.PP
.B Esc key mode. .B Esc key mode.
.PP .PP
By default the Midnight Commander treats the ESC key as a key prefix. By default the Midnight Commander treats the ESC key as a key prefix.

View File

@ -1907,6 +1907,9 @@ mc на экране.
При создании нового каталога по F7 в поле ввода имени нового каталога При создании нового каталога по F7 в поле ввода имени нового каталога
будет автоматически подставляться имя файла или каталога, находящегося будет автоматически подставляться имя файла или каталога, находящегося
под курсором. По умолчанию выключено. под курсором. По умолчанию выключено.
.I Выделять место
Если возможно, предварительно выделять место под весь копируемый файл.
По умолчанию выключено.
.PP .PP
.B Клавиша Esc .B Клавиша Esc
.PP .PP

View File

@ -76,7 +76,7 @@ configure_callback (Dlg_head * h, Widget * sender, dlg_msg_t msg, int parm, void
{ {
case DLG_ACTION: case DLG_ACTION:
/* message from "Single press" checkbutton */ /* message from "Single press" checkbutton */
if (sender != NULL && sender->id == 18) if (sender != NULL && sender->id == 17)
{ {
const gboolean not_single = !(((WCheck *) sender)->state & C_BOOL); const gboolean not_single = !(((WCheck *) sender)->state & C_BOOL);
Widget *w; Widget *w;
@ -107,7 +107,7 @@ void
configure_box (void) configure_box (void)
{ {
int dlg_width = 60; int dlg_width = 60;
int dlg_height = 20; int dlg_height = 21;
char time_out[BUF_TINY] = ""; char time_out[BUF_TINY] = "";
char *time_out_new; char *time_out_new;
@ -125,11 +125,8 @@ configure_box (void)
QUICK_BUTTON (38, dlg_width, dlg_height - 3, dlg_height, N_("&Cancel"), B_CANCEL, NULL), QUICK_BUTTON (38, dlg_width, dlg_height - 3, dlg_height, N_("&Cancel"), B_CANCEL, NULL),
QUICK_BUTTON (14, dlg_width, dlg_height - 3, dlg_height, N_("&OK"), B_ENTER, NULL), QUICK_BUTTON (14, dlg_width, dlg_height - 3, dlg_height, N_("&OK"), B_ENTER, NULL),
/* other options */ /* other options */
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 13, dlg_height, N_("A&uto save setup"), QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 12, dlg_height, N_("A&uto save setup"),
&auto_save_setup), &auto_save_setup),
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 12, dlg_height,
N_("Preallocate &space before file copying"),
&mc_global.vfs.preallocate_space),
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 11, dlg_height, N_("Sa&fe delete"), QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 11, dlg_height, N_("Sa&fe delete"),
&safe_delete), &safe_delete),
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 10, dlg_height, N_("Cd follows lin&ks"), QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 10, dlg_height, N_("Cd follows lin&ks"),
@ -147,28 +144,30 @@ configure_box (void)
&use_internal_view), &use_internal_view),
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 3, dlg_height, N_("Use internal edi&t"), QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 3, dlg_height, N_("Use internal edi&t"),
&use_internal_edit), &use_internal_edit),
QUICK_GROUPBOX (dlg_width / 2, dlg_width, 2, dlg_height, dlg_width / 2 - 4, 15, QUICK_GROUPBOX (dlg_width / 2, dlg_width, 2, dlg_height, dlg_width / 2 - 4, 16,
N_("Other options")), N_("Other options")),
/* pause options */ /* pause options */
QUICK_RADIO (5, dlg_width, 13, dlg_height, pause_options_num, pause_options, QUICK_RADIO (5, dlg_width, 14, dlg_height, pause_options_num, pause_options,
&pause_after_run), &pause_after_run),
QUICK_GROUPBOX (3, dlg_width, 12, dlg_height, dlg_width / 2 - 4, 5, N_("Pause after run")), QUICK_GROUPBOX (3, dlg_width, 13, dlg_height, dlg_width / 2 - 4, 5, N_("Pause after run")),
/* Esc key mode */ /* Esc key mode */
QUICK_INPUT (10, dlg_width, 10, dlg_height, (const char *) time_out, 8, 0, QUICK_INPUT (10, dlg_width, 11, dlg_height, (const char *) time_out, 8, 0,
MC_HISTORY_ESC_TIMEOUT, &time_out_new), MC_HISTORY_ESC_TIMEOUT, &time_out_new),
QUICK_LABEL (5, dlg_width, 10, dlg_height, N_("Timeout:")), QUICK_LABEL (5, dlg_width, 11, dlg_height, N_("Timeout:")),
QUICK_CHECKBOX (5, dlg_width, 9, dlg_height, N_("S&ingle press"), &old_esc_mode), QUICK_CHECKBOX (5, dlg_width, 10, dlg_height, N_("S&ingle press"), &old_esc_mode),
QUICK_GROUPBOX (3, dlg_width, 8, dlg_height, dlg_width / 2 - 4, 4, N_("Esc key mode")), QUICK_GROUPBOX (3, dlg_width, 9, dlg_height, dlg_width / 2 - 4, 4, N_("Esc key mode")),
/* file operation options */ /* file operation options */
QUICK_CHECKBOX (5, dlg_width, 7, dlg_height, N_("Preallocate &space"),
&mc_global.vfs.preallocate_space),
QUICK_CHECKBOX (5, dlg_width, 6, dlg_height, N_("Mkdi&r autoname"), &auto_fill_mkdir_name), QUICK_CHECKBOX (5, dlg_width, 6, dlg_height, N_("Mkdi&r autoname"), &auto_fill_mkdir_name),
QUICK_CHECKBOX (5, dlg_width, 5, dlg_height, N_("Classic pro&gressbar"), QUICK_CHECKBOX (5, dlg_width, 5, dlg_height, N_("Classic pro&gressbar"),
&classic_progressbar), &classic_progressbar),
QUICK_CHECKBOX (5, dlg_width, 4, dlg_height, N_("Compute tota&ls"), QUICK_CHECKBOX (5, dlg_width, 4, dlg_height, N_("Compute tota&ls"),
&file_op_compute_totals), &file_op_compute_totals),
QUICK_CHECKBOX (5, dlg_width, 3, dlg_height, N_("&Verbose operation"), &verbose), QUICK_CHECKBOX (5, dlg_width, 3, dlg_height, N_("&Verbose operation"), &verbose),
QUICK_GROUPBOX (3, dlg_width, 2, dlg_height, dlg_width / 2 - 4, 6, QUICK_GROUPBOX (3, dlg_width, 2, dlg_height, dlg_width / 2 - 4, 7,
N_("File operation options")), N_("File operation options")),
QUICK_END QUICK_END
}; };
@ -194,14 +193,14 @@ configure_box (void)
/* buttons */ /* buttons */
quick_widgets[i].u.button.text = _(quick_widgets[i].u.button.text); quick_widgets[i].u.button.text = _(quick_widgets[i].u.button.text);
break; break;
case 13: case 12:
case 15: case 14:
case 19: case 18:
case 24: case 24:
/* groupboxes */ /* groupboxes */
quick_widgets[i].u.groupbox.title = _(quick_widgets[i].u.groupbox.title); quick_widgets[i].u.groupbox.title = _(quick_widgets[i].u.groupbox.title);
break; break;
case 14: case 13:
{ {
/* radio button */ /* radio button */
size_t j; size_t j;
@ -209,10 +208,10 @@ configure_box (void)
pause_options[j] = _(pause_options[j]); pause_options[j] = _(pause_options[j]);
} }
break; break;
case 16: case 15:
/* input line */ /* input line */
break; break;
case 17: case 16:
/* label */ /* label */
quick_widgets[i].u.label.text = _(quick_widgets[i].u.label.text); quick_widgets[i].u.label.text = _(quick_widgets[i].u.label.text);
break; break;
@ -236,19 +235,19 @@ configure_box (void)
/* checkboxes within groupboxes */ /* checkboxes within groupboxes */
c_len = 0; c_len = 0;
for (i = 2; i < 24; i++) for (i = 2; i < 24; i++)
if ((i < 13) || (i == 18) || (i > 19)) if ((i < 12) || (i == 17) || (i > 18))
c_len = max (c_len, str_term_width1 (quick_widgets[i].u.checkbox.text) + 3); c_len = max (c_len, str_term_width1 (quick_widgets[i].u.checkbox.text) + 3);
/* radiobuttons */ /* radiobuttons */
for (i = 0; i < (size_t) pause_options_num; i++) for (i = 0; i < (size_t) pause_options_num; i++)
c_len = max (c_len, str_term_width1 (pause_options[i]) + 3); c_len = max (c_len, str_term_width1 (pause_options[i]) + 3);
/* label + input */ /* label + input */
l_len = str_term_width1 (quick_widgets[17].u.label.text); l_len = str_term_width1 (quick_widgets[16].u.label.text);
c_len = max (c_len, l_len + 1 + 8); c_len = max (c_len, l_len + 1 + 8);
/* groupboxes */ /* groupboxes */
g_len = max (c_len + 2, str_term_width1 (quick_widgets[24].u.groupbox.title) + 4); g_len = max (c_len + 2, str_term_width1 (quick_widgets[24].u.groupbox.title) + 4);
g_len = max (g_len, str_term_width1 (quick_widgets[19].u.groupbox.title) + 4); g_len = max (g_len, str_term_width1 (quick_widgets[18].u.groupbox.title) + 4);
g_len = max (g_len, str_term_width1 (quick_widgets[15].u.groupbox.title) + 4); g_len = max (g_len, str_term_width1 (quick_widgets[14].u.groupbox.title) + 4);
g_len = max (g_len, str_term_width1 (quick_widgets[13].u.groupbox.title) + 4); g_len = max (g_len, str_term_width1 (quick_widgets[12].u.groupbox.title) + 4);
/* dialog width */ /* dialog width */
Quick_input.xlen = max (dlg_width, g_len * 2 + 9); Quick_input.xlen = max (dlg_width, g_len * 2 + 9);
Quick_input.xlen = max (Quick_input.xlen, b_len + 2); Quick_input.xlen = max (Quick_input.xlen, b_len + 2);
@ -260,19 +259,19 @@ configure_box (void)
quick_widgets[i].x_divisions = Quick_input.xlen; quick_widgets[i].x_divisions = Quick_input.xlen;
/* groupboxes */ /* groupboxes */
quick_widgets[15].u.groupbox.width = quick_widgets[14].u.groupbox.width =
quick_widgets[19].u.groupbox.width = quick_widgets[18].u.groupbox.width =
quick_widgets[24].u.groupbox.width = Quick_input.xlen / 2 - 4; quick_widgets[24].u.groupbox.width = Quick_input.xlen / 2 - 4;
quick_widgets[13].u.groupbox.width = Quick_input.xlen / 2 - 3; quick_widgets[12].u.groupbox.width = Quick_input.xlen / 2 - 3;
/* input */ /* input */
quick_widgets[16].relative_x = quick_widgets[17].relative_x + l_len + 1; quick_widgets[15].relative_x = quick_widgets[16].relative_x + l_len + 1;
quick_widgets[16].u.input.len = quick_widgets[19].u.groupbox.width - l_len - 4; quick_widgets[15].u.input.len = quick_widgets[18].u.groupbox.width - l_len - 4;
/* right column */ /* right column */
quick_widgets[13].relative_x = Quick_input.xlen / 2; quick_widgets[12].relative_x = Quick_input.xlen / 2;
for (i = 2; i < 13; i++) for (i = 2; i < 12; i++)
quick_widgets[i].relative_x = quick_widgets[13].relative_x + 2; quick_widgets[i].relative_x = quick_widgets[12].relative_x + 2;
/* buttons */ /* buttons */
quick_widgets[1].relative_x = (Quick_input.xlen - b_len) / 3; quick_widgets[1].relative_x = (Quick_input.xlen - b_len) / 3;
@ -281,7 +280,12 @@ configure_box (void)
g_snprintf (time_out, sizeof (time_out), "%d", old_esc_mode_timeout); g_snprintf (time_out, sizeof (time_out), "%d", old_esc_mode_timeout);
if (!old_esc_mode) if (!old_esc_mode)
quick_widgets[16].options = quick_widgets[17].options = W_DISABLED; quick_widgets[15].options = quick_widgets[16].options = W_DISABLED;
#ifndef HAVE_POSIX_FALLOCATE
mc_global.vfs.preallocate_space = FALSE;
quick_widgets[19].options = W_DISABLED;
#endif
if (quick_dialog (&Quick_input) == B_ENTER) if (quick_dialog (&Quick_input) == B_ENTER)
old_esc_mode_timeout = atoi (time_out_new); old_esc_mode_timeout = atoi (time_out_new);