Skip to content

Commit 6490508

Browse files
committed
disable some menu related to clipboard when input is not table
1 parent c00544a commit 6490508

File tree

3 files changed

+28
-20
lines changed

3 files changed

+28
-20
lines changed

src/menu.c

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ init_cmdbar(struct ST_CMDBAR *current_cmdbar, Options *opts)
375375
}
376376

377377
void
378-
post_menu(Options *opts, struct ST_MENU *menu)
378+
post_menu(Options *opts, struct ST_MENU *menu, bool is_text)
379379
{
380380
st_menu_set_option(menu, cmd_ReleaseCols, ST_MENU_OPTION_MARKED, opts->freezed_cols == 0);
381381
st_menu_set_option(menu, cmd_FreezeOneCol, ST_MENU_OPTION_MARKED,
@@ -415,7 +415,7 @@ post_menu(Options *opts, struct ST_MENU *menu)
415415
st_menu_enable_option(menu, theme_get_cmd(opts->theme), ST_MENU_OPTION_MARKED);
416416

417417
refresh_copy_target_options(opts, menu);
418-
refresh_clipboard_options(opts, menu);
418+
refresh_clipboard_options(opts, menu, is_text);
419419

420420
st_menu_set_option(menu, cmd_TogleEmptyStringIsNULL, ST_MENU_OPTION_MARKED, opts->empty_string_is_null);
421421

@@ -425,20 +425,28 @@ post_menu(Options *opts, struct ST_MENU *menu)
425425
st_menu_set_option(menu, cmd_ToggleHighlightOddRec, ST_MENU_OPTION_MARKED, opts->highlight_odd_rec);
426426
st_menu_set_option(menu, cmd_ToggleHideHeaderLine, ST_MENU_OPTION_MARKED, opts->hide_header_line);
427427

428+
st_menu_set_option(menu, cmd_SaveAsCSV, ST_MENU_OPTION_DISABLED, is_text);
428429
}
429430

430431
void
431-
refresh_clipboard_options(Options *opts, struct ST_MENU *menu)
432+
refresh_clipboard_options(Options *opts, struct ST_MENU *menu, bool is_text)
432433
{
433-
st_menu_set_option(menu, cmd_UseClipboard_CSV, ST_MENU_OPTION_MARKED, opts->clipboard_format == CLIPBOARD_FORMAT_CSV);
434-
st_menu_set_option(menu, cmd_UseClipboard_TSVC, ST_MENU_OPTION_MARKED, opts->clipboard_format == CLIPBOARD_FORMAT_TSVC);
435-
st_menu_set_option(menu, cmd_UseClipboard_text, ST_MENU_OPTION_MARKED, opts->clipboard_format == CLIPBOARD_FORMAT_TEXT);
436-
st_menu_set_option(menu, cmd_UseClipboard_INSERT, ST_MENU_OPTION_MARKED, opts->clipboard_format == CLIPBOARD_FORMAT_INSERT);
434+
st_menu_set_option(menu, cmd_UseClipboard_CSV, ST_MENU_OPTION_MARKED, !is_text && opts->clipboard_format == CLIPBOARD_FORMAT_CSV);
435+
st_menu_set_option(menu, cmd_UseClipboard_TSVC, ST_MENU_OPTION_MARKED, !is_text && opts->clipboard_format == CLIPBOARD_FORMAT_TSVC);
436+
st_menu_set_option(menu, cmd_UseClipboard_text, ST_MENU_OPTION_MARKED, is_text || opts->clipboard_format == CLIPBOARD_FORMAT_TEXT);
437+
st_menu_set_option(menu, cmd_UseClipboard_INSERT, ST_MENU_OPTION_MARKED, !is_text && opts->clipboard_format == CLIPBOARD_FORMAT_INSERT);
437438
st_menu_set_option(menu, cmd_UseClipboard_INSERT_with_comments, ST_MENU_OPTION_MARKED,
438-
opts->clipboard_format == CLIPBOARD_FORMAT_INSERT_WITH_COMMENTS);
439+
!is_text && opts->clipboard_format == CLIPBOARD_FORMAT_INSERT_WITH_COMMENTS);
439440

440-
st_menu_set_option(menu, cmd_UseClipboard_SQL_values, ST_MENU_OPTION_MARKED, opts->clipboard_format == CLIPBOARD_FORMAT_SQL_VALUES);
441-
st_menu_set_option(menu, cmd_UseClipboard_pipe_separated, ST_MENU_OPTION_MARKED, opts->clipboard_format == CLIPBOARD_FORMAT_PIPE_SEPARATED);
441+
st_menu_set_option(menu, cmd_UseClipboard_SQL_values, ST_MENU_OPTION_MARKED, !is_text && opts->clipboard_format == CLIPBOARD_FORMAT_SQL_VALUES);
442+
st_menu_set_option(menu, cmd_UseClipboard_pipe_separated, ST_MENU_OPTION_MARKED, !is_text && opts->clipboard_format == CLIPBOARD_FORMAT_PIPE_SEPARATED);
443+
444+
st_menu_set_option(menu, cmd_UseClipboard_CSV, ST_MENU_OPTION_DISABLED, is_text);
445+
st_menu_set_option(menu, cmd_UseClipboard_TSVC, ST_MENU_OPTION_DISABLED, is_text);
446+
st_menu_set_option(menu, cmd_UseClipboard_INSERT, ST_MENU_OPTION_DISABLED, is_text);
447+
st_menu_set_option(menu, cmd_UseClipboard_INSERT_with_comments, ST_MENU_OPTION_DISABLED, is_text);
448+
st_menu_set_option(menu, cmd_UseClipboard_SQL_values, ST_MENU_OPTION_DISABLED, is_text);
449+
st_menu_set_option(menu, cmd_UseClipboard_pipe_separated, ST_MENU_OPTION_DISABLED, !is_text);
442450
}
443451

444452
void

src/pspg.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3992,7 +3992,7 @@ main(int argc, char *argv[])
39923992
}
39933993

39943994
st_menu_set_focus(menu, ST_MENU_FOCUS_FULL);
3995-
post_menu(&opts, menu);
3995+
post_menu(&opts, menu, !desc.headline_transl);
39963996

39973997
menu_is_active = true;
39983998
continue;
@@ -4105,7 +4105,7 @@ main(int argc, char *argv[])
41054105

41064106
#ifdef COMPILE_MENU
41074107

4108-
refresh_clipboard_options(&opts, menu);
4108+
refresh_clipboard_options(&opts, menu, !desc.headline_transl);
41094109

41104110
#endif
41114111

@@ -4116,7 +4116,7 @@ main(int argc, char *argv[])
41164116

41174117
#ifdef COMPILE_MENU
41184118

4119-
refresh_clipboard_options(&opts, menu);
4119+
refresh_clipboard_options(&opts, menu, !desc.headline_transl);
41204120

41214121
#endif
41224122

@@ -4127,7 +4127,7 @@ main(int argc, char *argv[])
41274127

41284128
#ifdef COMPILE_MENU
41294129

4130-
refresh_clipboard_options(&opts, menu);
4130+
refresh_clipboard_options(&opts, menu, !desc.headline_transl);
41314131

41324132
#endif
41334133

@@ -4138,7 +4138,7 @@ main(int argc, char *argv[])
41384138

41394139
#ifdef COMPILE_MENU
41404140

4141-
refresh_clipboard_options(&opts, menu);
4141+
refresh_clipboard_options(&opts, menu, !desc.headline_transl);
41424142

41434143
#endif
41444144

@@ -4149,7 +4149,7 @@ main(int argc, char *argv[])
41494149

41504150
#ifdef COMPILE_MENU
41514151

4152-
refresh_clipboard_options(&opts, menu);
4152+
refresh_clipboard_options(&opts, menu, !desc.headline_transl);
41534153

41544154
#endif
41554155

@@ -4160,7 +4160,7 @@ main(int argc, char *argv[])
41604160

41614161
#ifdef COMPILE_MENU
41624162

4163-
refresh_clipboard_options(&opts, menu);
4163+
refresh_clipboard_options(&opts, menu, !desc.headline_transl);
41644164

41654165
#endif
41664166

@@ -4171,7 +4171,7 @@ main(int argc, char *argv[])
41714171

41724172
#ifdef COMPILE_MENU
41734173

4174-
refresh_clipboard_options(&opts, menu);
4174+
refresh_clipboard_options(&opts, menu, !desc.headline_transl);
41754175

41764176
#endif
41774177

src/pspg.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,8 +371,8 @@ extern const char *pspg_search(Options *opts, ScrDesc *scrdesc, const char *str)
371371
extern void init_menu_config(Options *opts);
372372
extern struct ST_MENU *init_menu(struct ST_MENU *current_menu, Options *opts);
373373
extern struct ST_CMDBAR *init_cmdbar(struct ST_CMDBAR *current_cmdbar, Options *opts);
374-
extern void post_menu(Options *opts, struct ST_MENU *current_menu);
375-
extern void refresh_clipboard_options(Options *opts, struct ST_MENU *menu);
374+
extern void post_menu(Options *opts, struct ST_MENU *current_menu, bool is_text);
375+
extern void refresh_clipboard_options(Options *opts, struct ST_MENU *menu, bool is_text);
376376
extern void refresh_copy_target_options(Options *opts, struct ST_MENU *menu);
377377

378378
/* from sort.c */

0 commit comments

Comments
 (0)