GtkWidget * nemo_interesting_folder_bar_new_for_location (NemoView *view, GFile *location) { InterestingFolderType type = TYPE_NONE_FOLDER; gchar *path = NULL; GFile *tmp_loc = NULL; path = nemo_action_manager_get_user_directory_path (); tmp_loc = g_file_new_for_path (path); if (g_file_equal (location, tmp_loc)) { type = TYPE_ACTIONS_FOLDER; goto out; } g_free (path); g_object_unref (tmp_loc); path = nemo_get_scripts_directory_path (); tmp_loc = g_file_new_for_path (path); if (g_file_equal (location, tmp_loc)) type = TYPE_SCRIPTS_FOLDER; out: g_free (path); g_object_unref (tmp_loc); return type == TYPE_NONE_FOLDER ? NULL : nemo_interesting_folder_bar_new (view, type); }
static void on_open_folder_clicked (GtkWidget *button, NemoScriptConfigWidget *widget) { gchar *path = NULL; path = nemo_get_scripts_directory_path (); GFile *location = g_file_new_for_path (path); nemo_application_open_location (nemo_application_get_singleton (), location, NULL, "nemo"); g_free (path); g_object_unref (location); }
static void refresh_widget (NemoScriptConfigWidget *widget) { if (widget->scripts != NULL) { g_list_free_full (widget->scripts, (GDestroyNotify) script_proxy_free); widget->scripts = NULL; } nemo_config_base_widget_clear_list (NEMO_CONFIG_BASE_WIDGET (widget)); gchar *path = NULL; path = nemo_get_scripts_directory_path (); populate_from_directory (widget, path); g_clear_pointer (&path, g_free); if (widget->scripts == NULL) { GtkWidget *empty_label = gtk_label_new (NULL); gchar *markup = NULL; markup = g_strdup_printf ("<i>%s</i>", _("No scripts found")); gtk_label_set_markup (GTK_LABEL (empty_label), markup); g_free (markup); GtkWidget *empty_row = gtk_list_box_row_new (); gtk_container_add (GTK_CONTAINER (empty_row), empty_label); gtk_widget_show_all (empty_row); gtk_container_add (GTK_CONTAINER (NEMO_CONFIG_BASE_WIDGET (widget)->listbox), empty_row); gtk_widget_set_sensitive (GTK_WIDGET (NEMO_CONFIG_BASE_WIDGET (widget)->listbox), FALSE); } else { GList *l; gchar **blacklist = g_settings_get_strv (nemo_plugin_preferences, NEMO_PLUGIN_PREFERENCES_DISABLED_SCRIPTS); for (l = widget->scripts; l != NULL; l=l->next) { ScriptProxy *proxy = l->data; gboolean active = TRUE; gint i = 0; for (i = 0; i < g_strv_length (blacklist); i++) { if (g_strcmp0 (blacklist[i], proxy->name) == 0) { active = FALSE; break; } } GtkWidget *w; GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); GtkWidget *button = gtk_check_button_new (); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), active); g_signal_connect (button, "toggled", G_CALLBACK (on_check_toggled), proxy); gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 2); w = gtk_label_new (proxy->name); gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 2); GtkWidget *row = gtk_list_box_row_new (); gtk_container_add (GTK_CONTAINER (row), box); gtk_widget_show_all (row); gtk_container_add (GTK_CONTAINER (NEMO_CONFIG_BASE_WIDGET (widget)->listbox), row); } gtk_widget_set_sensitive (GTK_WIDGET (NEMO_CONFIG_BASE_WIDGET (widget)->listbox), TRUE); g_strfreev (blacklist); } nemo_config_base_widget_set_default_buttons_sensitive (NEMO_CONFIG_BASE_WIDGET (widget), widget->scripts != NULL); }