metric's first 2 patches - with 1 slight mod for xterm default cmd.

SVN revision: 25976
This commit is contained in:
Carsten Haitzler 2006-09-19 13:58:04 +00:00
parent db01dd2672
commit b4cd6e0dce
5 changed files with 104 additions and 5 deletions

View File

@ -457,6 +457,7 @@ e_config_init(void)
E_CONFIG_VAL(D, T, exebuf_pos_min_h, INT);
E_CONFIG_VAL(D, T, exebuf_pos_max_w, INT);
E_CONFIG_VAL(D, T, exebuf_pos_max_h, INT);
E_CONFIG_VAL(D, T, exebuf_term_cmd, STR);
E_CONFIG_LIST(D, T, color_classes, _e_config_color_class_edd);
E_CONFIG_VAL(D, T, use_app_icon, INT);
E_CONFIG_VAL(D, T, cfgdlg_auto_apply, INT); /**/
@ -653,6 +654,7 @@ e_config_init(void)
e_config->exebuf_pos_min_h = 160;
e_config->exebuf_pos_max_w = 400;
e_config->exebuf_pos_max_h = 320;
e_config->exebuf_term_cmd = evas_stringshare_add("xterm -hold -e");
e_config->color_classes = NULL;
e_config->use_app_icon = 0;
e_config->cfgdlg_auto_apply = 0;

View File

@ -209,6 +209,7 @@ struct _E_Config
int exebuf_pos_min_h; // GUI
int exebuf_pos_max_w; // GUI
int exebuf_pos_max_h; // GUI
const char *exebuf_term_cmd; // GUI
Evas_List *color_classes;
int use_app_icon; // GUI
int cfgdlg_auto_apply; // GUI

View File

@ -35,6 +35,7 @@ static int _e_exebuf_cb_sort_eap(void *data1, void *data2);
static int _e_exebuf_cb_sort_exe(void *data1, void *data2);
static void _e_exebuf_update(void);
static void _e_exebuf_exec(void);
static void _e_exebuf_exec_term(void);
static void _e_exebuf_exe_sel(E_Exebuf_Exe *exe);
static void _e_exebuf_exe_desel(E_Exebuf_Exe *exe);
static void _e_exebuf_exe_scroll_to(int i);
@ -427,6 +428,42 @@ _e_exebuf_exec(void)
e_exebuf_hide();
}
static void
_e_exebuf_exec_term(void)
{
char tmp[EXEBUFLEN];
char *active_cmd;
if (exe_sel)
{
if (exe_sel->app)
{
if (exe_sel->app->exe)
active_cmd = exe_sel->app->exe;
else
{
e_zone_app_exec(exebuf->zone, exe_sel->app);
e_exehist_add("exebuf", exe_sel->app->exe);
}
}
else
active_cmd = exe_sel->file;
}
else
active_cmd = cmd_buf;
if (strlen(active_cmd) > 0)
{
/* Copy the terminal command to the start of the string...
* making sure it has a null terminator if greater than EXEBUFLEN */
snprintf(tmp, EXEBUFLEN, "%s %s", e_config->exebuf_term_cmd, active_cmd);
e_zone_exec(exebuf->zone, tmp);
e_exehist_add("exebuf", tmp);
}
e_exebuf_hide();
}
static void
_e_exebuf_exe_sel(E_Exebuf_Exe *exe)
{
@ -984,8 +1021,12 @@ _e_exebuf_cb_key_down(void *data, int type, void *event)
_e_exebuf_complete();
else if (!strcmp(ev->keysymbol, "Tab"))
_e_exebuf_complete();
else if (!strcmp(ev->keysymbol, "Return") && (ev->modifiers & ECORE_X_MODIFIER_CTRL))
_e_exebuf_exec_term();
else if (!strcmp(ev->keysymbol, "Return"))
_e_exebuf_exec();
else if (!strcmp(ev->keysymbol, "KP_Enter") && (ev->modifiers & ECORE_X_MODIFIER_CTRL))
_e_exebuf_exec_term();
else if (!strcmp(ev->keysymbol, "KP_Enter"))
_e_exebuf_exec();
else if (!strcmp(ev->keysymbol, "Escape"))

View File

@ -58,6 +58,7 @@ struct _E_Fm2_Smart_Data
unsigned char iconlist_changed : 1;
unsigned char order_file : 1;
unsigned char typebuf_visible : 1;
unsigned char show_hidden_files : 1;
E_Fm2_Config *config;
@ -200,6 +201,7 @@ static void _e_fm2_menu_post_cb(void *data, E_Menu *m);
static void _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp);
static void _e_fm2_icon_menu_post_cb(void *data, E_Menu *m);
static void _e_fm2_refresh(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_fm2_toggle_hidden_files(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_fm2_new_directory(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_fm2_new_directory_delete_cb(void *obj);
static void _e_fm2_new_directory_yes_cb(char *text, void *data);
@ -234,6 +236,7 @@ e_fm2_init(void)
}
else return 0;
_e_fm2_smart = evas_smart_new("e_fm",
_e_fm2_smart_add, /* add */
_e_fm2_smart_del, /* del */
@ -3190,10 +3193,10 @@ _e_fm2_cb_scan_idler(void *data)
{
dp = readdir(sd->dir);
if (!dp) goto endscan;
/* no - you don't want the cuirrent and parent dir links listed */
/* no - you don't want the current and parent dir links listed */
if ((!strcmp(dp->d_name, ".")) || (!strcmp(dp->d_name, ".."))) return 1;
/* skip dotfiles */
if (dp->d_name[0] == '.') return 1;
/* skip dotfiles if we're not showing hidden files */
if (dp->d_name[0] == '.' && !sd->show_hidden_files) return 1;
_e_fm2_file_add(data, dp->d_name);
}
return 1;
@ -3511,6 +3514,16 @@ _e_fm2_menu(Evas_Object *obj, unsigned int timestamp)
"e/fileman/button/refresh");
e_menu_item_callback_set(mi, _e_fm2_refresh, sd);
mi = e_menu_item_new(mn);
e_menu_item_label_set(mi, _("Show Hidden Files"));
e_menu_item_icon_edje_set(mi,
e_theme_edje_file_get("base/theme/fileman",
"e/fileman/button/hidden_files"),
"e/fileman/button/hidden_files");
e_menu_item_check_set(mi, 1);
e_menu_item_toggle_set(mi, sd->show_hidden_files);
e_menu_item_callback_set(mi, _e_fm2_toggle_hidden_files, sd);
if (ecore_file_can_write(sd->realpath))
{
mi = e_menu_item_new(mn);
@ -3592,6 +3605,16 @@ _e_fm2_icon_menu(E_Fm2_Icon *ic, Evas_Object *obj, unsigned int timestamp)
"e/fileman/button/refresh");
e_menu_item_callback_set(mi, _e_fm2_refresh, ic->sd);
mi = e_menu_item_new(mn);
e_menu_item_label_set(mi, _("Show Hidden Files"));
e_menu_item_icon_edje_set(mi,
e_theme_edje_file_get("base/theme/fileman",
"e/fileman/button/hidden_files"),
"e/fileman/button/hidden_files");
e_menu_item_check_set(mi, 1);
e_menu_item_toggle_set(mi, sd->show_hidden_files);
e_menu_item_callback_set(mi, _e_fm2_toggle_hidden_files, sd);
if (ecore_file_can_write(sd->realpath))
{
mi = e_menu_item_new(mn);
@ -3718,6 +3741,20 @@ _e_fm2_refresh(void *data, E_Menu *m, E_Menu_Item *mi)
sd->refresh_job = ecore_job_add(_e_fm2_refresh_job_cb, sd->obj);
}
static void
_e_fm2_toggle_hidden_files(void *data, E_Menu *m, E_Menu_Item *mi)
{
E_Fm2_Smart_Data *sd;
sd = data;
if (sd->show_hidden_files)
sd->show_hidden_files = 0;
else
sd->show_hidden_files = 1;
_e_fm2_refresh(data, m, mi);
}
static void
_e_fm2_new_directory(void *data, E_Menu *m, E_Menu_Item *mi)
{

View File

@ -23,6 +23,7 @@ struct _E_Config_Dialog_Data
int pos_min_h;
int pos_max_w;
int pos_max_h;
char * term_cmd;
};
EAPI E_Config_Dialog *
@ -63,6 +64,9 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->pos_min_h = e_config->exebuf_pos_min_h;
cfdata->pos_max_w = e_config->exebuf_pos_max_w;
cfdata->pos_max_h = e_config->exebuf_pos_max_h;
if (e_config->exebuf_term_cmd)
cfdata->term_cmd = strdup(e_config->exebuf_term_cmd);
}
static void *
@ -99,11 +103,11 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("General Settings"), 0);
ob = e_widget_label_add(evas, _("Maximum Number Of Matched Eaps To List"));
ob = e_widget_label_add(evas, _("Maximum Number of Matched Eaps to List"));
e_widget_framelist_object_append(of, ob);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 10, 50, 5, 0, NULL, &(cfdata->max_eap_list), 200);
e_widget_framelist_object_append(of, ob);
ob = e_widget_label_add(evas, _("Maximum Number Of Matched Exes To List"));
ob = e_widget_label_add(evas, _("Maximum Number of Matched Exes to List"));
e_widget_framelist_object_append(of, ob);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 10, 50, 5, 0, NULL, &(cfdata->max_exe_list), 200);
e_widget_framelist_object_append(of, ob);
@ -129,6 +133,13 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
e_config->exebuf_pos_min_h = cfdata->pos_min_h;
e_config->exebuf_pos_max_w = cfdata->pos_max_w;
e_config->exebuf_pos_max_h = cfdata->pos_max_h;
if (e_config->exebuf_term_cmd)
evas_stringshare_del(e_config->exebuf_term_cmd);
e_config->exebuf_term_cmd = NULL;
if (cfdata->term_cmd)
{
e_config->exebuf_term_cmd = evas_stringshare_add(cfdata->term_cmd);
}
e_config_save_queue();
return 1;
@ -192,6 +203,13 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ot, of, 1, 0, 1, 2, 1, 0, 1, 0);
of = e_widget_framelist_add(evas, _("Terminal Settings"), 0);
ob = e_widget_label_add(evas, _("Terminal Command"));
e_widget_framelist_object_append(of, ob);
ob = e_widget_entry_add(evas, &(cfdata->term_cmd));
e_widget_framelist_object_append(of, ob);
e_widget_table_object_append(ot, of, 1, 2, 1, 1, 1, 1, 1, 1);
e_widget_list_object_append(o, ot, 1, 1, 0.5);
return o;
}