Example #1
0
void
mc_exec_command (MCData     *mc,
		 const char *cmd)
{
	GError *error = NULL;
	char command [1000];
	char **argv = NULL;
	gchar *str;

	strncpy (command, cmd, sizeof (command));
	command [sizeof (command) - 1] = '\0';

	mc_macro_expand_command (mc, command);

	if (!g_shell_parse_argv (command, NULL, &argv, &error)) {
		if (error != NULL) {
			g_error_free (error);
			error = NULL;
		}

		return;
	}

	if(!gdk_spawn_on_screen (gtk_widget_get_screen (GTK_WIDGET (mc->applet)),
				 g_get_home_dir (), argv, NULL,
				 G_SPAWN_SEARCH_PATH,
				 NULL, NULL, NULL,
				 &error)) {
		str = g_strconcat ("(?)", command, NULL);
		gtk_entry_set_text (GTK_ENTRY (mc->entry), str);
		//gtk_editable_set_position (GTK_EDITABLE (mc->entry), 0);
		mc->error = TRUE;
		beep ();
		g_free (str);
	} else {
		gtk_entry_set_text (GTK_ENTRY (mc->entry), (gchar *) "");
		append_history_entry (mc, cmd, FALSE);	
		}
	g_strfreev (argv);

	if (error != NULL)
		g_error_free (error);
}
Example #2
0
void
mc_load_preferences (MCData *mc)
{
    gchar **history;
    guint i;

    g_return_if_fail (mc != NULL);
    g_return_if_fail (PANEL_IS_APPLET (mc->applet));

    mc->preferences.show_default_theme = g_settings_get_boolean (mc->settings, KEY_SHOW_DEFAULT_THEME);
    mc->preferences.auto_complete_history = g_settings_get_boolean (mc->settings, KEY_AUTOCOMPLETE_HISTORY);
    mc->preferences.normal_size_x = MAX (g_settings_get_int (mc->settings, KEY_NORMAL_SIZE_X), 50);
    mc->preferences.normal_size_y = 48;
    mc->preferences.cmd_line_color_fg = g_strdup (g_settings_get_string (mc->settings, KEY_CMD_LINE_COLOR_FG));
    mc->preferences.cmd_line_color_bg = g_strdup (g_settings_get_string (mc->settings, KEY_CMD_LINE_COLOR_BG));

    g_signal_connect (mc->settings, "changed::" KEY_SHOW_DEFAULT_THEME,
	                  G_CALLBACK (show_default_theme_changed), mc);
	g_signal_connect (mc->settings, "changed::" KEY_AUTOCOMPLETE_HISTORY,
	                  G_CALLBACK (auto_complete_history_changed), mc);
	g_signal_connect (mc->settings, "changed::" KEY_NORMAL_SIZE_X,
	                  G_CALLBACK (normal_size_x_changed), mc);
	g_signal_connect (mc->settings, "changed::" KEY_CMD_LINE_COLOR_FG,
	                  G_CALLBACK (cmd_line_color_fg_changed), mc);
	g_signal_connect (mc->settings, "changed::" KEY_CMD_LINE_COLOR_BG,
	                  G_CALLBACK (cmd_line_color_bg_changed), mc);

    mc->preferences.macros = mc_load_macros (mc);

    g_signal_connect (mc->global_settings, "changed::" KEY_MACRO_PATTERNS,
	                  G_CALLBACK (macros_changed), mc);
	g_signal_connect (mc->global_settings, "changed::" KEY_MACRO_COMMANDS,
	                  G_CALLBACK (macros_changed), mc);

    mc->preferences.idle_macros_loader_id = 0;

    history = g_settings_get_strv (mc->settings, KEY_HISTORY);
    for (i = 0; history[i] != NULL; i++) {
        append_history_entry (mc, history[i], TRUE);
    }
}
Example #3
0
void
mc_load_preferences (MCData *mc)
{
    MateConfValue *history;
    GError     *error = NULL;

    g_return_if_fail (mc != NULL);
    g_return_if_fail (PANEL_IS_APPLET (mc->applet));

    mc->preferences.show_default_theme =
		mate_panel_applet_mateconf_get_bool (mc->applet, "show_default_theme", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.show_default_theme = MC_DEFAULT_SHOW_DEFAULT_THEME;
    }

    mc->preferences.auto_complete_history =
		mate_panel_applet_mateconf_get_bool (mc->applet, "autocomplete_history", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.auto_complete_history = MC_DEFAULT_AUTO_COMPLETE_HISTORY;
    }

    mc->preferences.normal_size_x =
		mate_panel_applet_mateconf_get_int (mc->applet, "normal_size_x", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.normal_size_x = MC_DEFAULT_NORMAL_SIZE_X;
    }
    mc->preferences.normal_size_x = MAX (mc->preferences.normal_size_x, 50);

    mc->preferences.normal_size_y =
		mate_panel_applet_mateconf_get_int (mc->applet, "normal_size_y", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.normal_size_y = MC_DEFAULT_NORMAL_SIZE_Y;
    }
    mc->preferences.normal_size_y = CLAMP (mc->preferences.normal_size_y, 5, 200);

    mc->preferences.cmd_line_color_fg_r =
		mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_fg_r", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.cmd_line_color_fg_r = MC_DEFAULT_CMD_LINE_COLOR_FG_R;
    }

    mc->preferences.cmd_line_color_fg_g =
		mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_fg_g", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.cmd_line_color_fg_g = MC_DEFAULT_CMD_LINE_COLOR_FG_G;
    }

    mc->preferences.cmd_line_color_fg_b =
		mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_fg_b", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.cmd_line_color_fg_b = MC_DEFAULT_CMD_LINE_COLOR_FG_B;
    }

    mc->preferences.cmd_line_color_bg_r =
		mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_bg_r", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.cmd_line_color_bg_r = MC_DEFAULT_CMD_LINE_COLOR_BG_R;
    }

    mc->preferences.cmd_line_color_bg_g =
		mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_bg_g", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.cmd_line_color_bg_g = MC_DEFAULT_CMD_LINE_COLOR_BG_G;
    }

    mc->preferences.cmd_line_color_bg_b =
		mate_panel_applet_mateconf_get_int (mc->applet, "cmd_line_color_bg_b", &error);
    if (error) {
	g_error_free (error);
	error = NULL;
	mc->preferences.cmd_line_color_bg_b = MC_DEFAULT_CMD_LINE_COLOR_BG_B;
    }

    mc->preferences.macros = mc_load_macros (mc);

    history = mate_panel_applet_mateconf_get_value (mc->applet, "history", NULL);
    if (history) {
        GSList *l;

	for (l = mateconf_value_get_list (history); l; l = l->next) {
            const char *entry = NULL;
            
            if ((entry = mateconf_value_get_string (l->data)))
                append_history_entry (mc, entry, TRUE);
        }
	
	mateconf_value_free (history);
    }

    mc_setup_listeners (mc);

    mc->preferences.idle_macros_loader_id = 0;
}