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.
Disabled by default.
.PP
.I Preallocate space
Preallocate space for whole target file, if possible, before copy operation.
Disabled by default.
.PP
.B Esc key mode.
.PP
By default the Midnight Commander treats the ESC key as a key prefix.

View File

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

View File

@ -76,7 +76,7 @@ configure_callback (Dlg_head * h, Widget * sender, dlg_msg_t msg, int parm, void
{
case DLG_ACTION:
/* 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);
Widget *w;
@ -107,7 +107,7 @@ void
configure_box (void)
{
int dlg_width = 60;
int dlg_height = 20;
int dlg_height = 21;
char time_out[BUF_TINY] = "";
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 (14, dlg_width, dlg_height - 3, dlg_height, N_("&OK"), B_ENTER, NULL),
/* 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),
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"),
&safe_delete),
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),
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 3, dlg_height, N_("Use internal edi&t"),
&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")),
/* 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),
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 */
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),
QUICK_LABEL (5, dlg_width, 10, dlg_height, N_("Timeout:")),
QUICK_CHECKBOX (5, dlg_width, 9, 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_LABEL (5, dlg_width, 11, dlg_height, N_("Timeout:")),
QUICK_CHECKBOX (5, dlg_width, 10, dlg_height, N_("S&ingle press"), &old_esc_mode),
QUICK_GROUPBOX (3, dlg_width, 9, dlg_height, dlg_width / 2 - 4, 4, N_("Esc key mode")),
/* 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, 5, dlg_height, N_("Classic pro&gressbar"),
&classic_progressbar),
QUICK_CHECKBOX (5, dlg_width, 4, dlg_height, N_("Compute tota&ls"),
&file_op_compute_totals),
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")),
QUICK_END
};
@ -194,14 +193,14 @@ configure_box (void)
/* buttons */
quick_widgets[i].u.button.text = _(quick_widgets[i].u.button.text);
break;
case 13:
case 15:
case 19:
case 12:
case 14:
case 18:
case 24:
/* groupboxes */
quick_widgets[i].u.groupbox.title = _(quick_widgets[i].u.groupbox.title);
break;
case 14:
case 13:
{
/* radio button */
size_t j;
@ -209,10 +208,10 @@ configure_box (void)
pause_options[j] = _(pause_options[j]);
}
break;
case 16:
case 15:
/* input line */
break;
case 17:
case 16:
/* label */
quick_widgets[i].u.label.text = _(quick_widgets[i].u.label.text);
break;
@ -236,19 +235,19 @@ configure_box (void)
/* checkboxes within groupboxes */
c_len = 0;
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);
/* radiobuttons */
for (i = 0; i < (size_t) pause_options_num; i++)
c_len = max (c_len, str_term_width1 (pause_options[i]) + 3);
/* 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);
/* groupboxes */
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[15].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[18].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[12].u.groupbox.title) + 4);
/* dialog width */
Quick_input.xlen = max (dlg_width, g_len * 2 + 9);
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;
/* groupboxes */
quick_widgets[15].u.groupbox.width =
quick_widgets[19].u.groupbox.width =
quick_widgets[14].u.groupbox.width =
quick_widgets[18].u.groupbox.width =
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 */
quick_widgets[16].relative_x = quick_widgets[17].relative_x + l_len + 1;
quick_widgets[16].u.input.len = quick_widgets[19].u.groupbox.width - l_len - 4;
quick_widgets[15].relative_x = quick_widgets[16].relative_x + l_len + 1;
quick_widgets[15].u.input.len = quick_widgets[18].u.groupbox.width - l_len - 4;
/* right column */
quick_widgets[13].relative_x = Quick_input.xlen / 2;
for (i = 2; i < 13; i++)
quick_widgets[i].relative_x = quick_widgets[13].relative_x + 2;
quick_widgets[12].relative_x = Quick_input.xlen / 2;
for (i = 2; i < 12; i++)
quick_widgets[i].relative_x = quick_widgets[12].relative_x + 2;
/* buttons */
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);
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)
old_esc_mode_timeout = atoi (time_out_new);