diff options
Diffstat (limited to 'capplet/gsm-properties-dialog.c')
-rw-r--r-- | capplet/gsm-properties-dialog.c | 51 |
1 files changed, 42 insertions, 9 deletions
diff --git a/capplet/gsm-properties-dialog.c b/capplet/gsm-properties-dialog.c index b83de77..96a0dc3 100644 --- a/capplet/gsm-properties-dialog.c +++ b/capplet/gsm-properties-dialog.c @@ -4,6 +4,7 @@ * Copyright (C) 2007 Vincent Untz. * Copyright (C) 2008 Lucas Rocha. * Copyright (C) 2008 William Jon McCann <[email protected]> + * Copyright (C) 2012-2021 MATE Developers * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,6 +32,7 @@ #include "gsm-properties-dialog.h" #include "gsm-app-dialog.h" +#include "msm-desktop-app-dialog.h" #include "gsm-util.h" #include "gsp-app.h" #include "gsp-app-manager.h" @@ -39,6 +41,7 @@ #define CAPPLET_TREEVIEW_WIDGET_NAME "session_properties_treeview" #define CAPPLET_ADD_WIDGET_NAME "session_properties_add_button" +#define CAPPLET_DESKTOP_ADD_WIDGET_NAME "session_properties_desktop_add_button" #define CAPPLET_DELETE_WIDGET_NAME "session_properties_delete_button" #define CAPPLET_EDIT_WIDGET_NAME "session_properties_edit_button" #define CAPPLET_SAVE_WIDGET_NAME "session_properties_save_button" @@ -60,6 +63,7 @@ struct _GsmPropertiesDialog GtkTreeView *treeview; GtkWidget *add_button; + GtkWidget *desktop_add_button; GtkWidget *delete_button; GtkWidget *edit_button; @@ -118,7 +122,7 @@ _fill_iter_from_app (GtkListStore *list_store, const char *description; const char *app_name; - enabled = gsp_app_get_enabled (app); + enabled = !gsp_app_get_hidden (app); icon = gsp_app_get_icon (app); description = gsp_app_get_description (app); app_name = gsp_app_get_name (app); @@ -270,10 +274,9 @@ on_startup_enabled_toggled (GtkCellRendererToggle *cell_renderer, -1); active = gtk_cell_renderer_toggle_get_active (cell_renderer); - active = !active; if (app) { - gsp_app_set_enabled (app, active); + gsp_app_set_hidden (app, active); g_object_unref (app); } } @@ -388,6 +391,33 @@ on_add_app_clicked (GtkWidget *widget, } static void +on_desktop_add_app_clicked (GtkWidget *widget, + GsmPropertiesDialog *dialog) +{ + GtkWidget *desktop_add_dialog; + gint response; + const char *filename; + + desktop_add_dialog = msm_desktop_app_dialog_new (dialog->manager); + gtk_window_set_transient_for (GTK_WINDOW (desktop_add_dialog), + GTK_WINDOW (dialog)); + + gtk_widget_show_all (desktop_add_dialog); + response = gtk_dialog_run (GTK_DIALOG (desktop_add_dialog)); + + if (response == GTK_RESPONSE_OK) + { + filename = msm_dektop_app_dialog_get_selected (MSM_DESKTOP_APP_DIALOG (desktop_add_dialog)); + if (filename != NULL) + { + gsp_app_copy_desktop_file (g_filename_to_uri (filename, NULL, NULL)); + } + } + + gtk_widget_destroy (desktop_add_dialog); +} + +static void on_delete_app_clicked (GtkWidget *widget, GsmPropertiesDialog *dialog) { @@ -558,12 +588,10 @@ visible_func (GtkTreeModel *model, -1); if (app) { - gboolean hidden; gboolean nodisplay; - hidden = gsp_app_get_hidden (app); nodisplay = gsp_app_get_nodisplay (app); - visible = !hidden && (show_hidden || !nodisplay); + visible = show_hidden || !nodisplay; g_object_unref (app); } else { visible = show_hidden; @@ -673,7 +701,6 @@ setup_dialog (GsmPropertiesDialog *dialog) NULL); gtk_tree_view_append_column (treeview, column); - gtk_tree_view_column_set_sort_column_id (column, STORE_COL_DESCRIPTION); gtk_tree_view_set_search_column (treeview, STORE_COL_SEARCH); @@ -718,7 +745,6 @@ setup_dialog (GsmPropertiesDialog *dialog) STORE_COL_DESCRIPTION, GTK_SORT_ASCENDING); - button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, CAPPLET_ADD_WIDGET_NAME)); dialog->add_button = button; @@ -728,6 +754,14 @@ setup_dialog (GsmPropertiesDialog *dialog) dialog); button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, + CAPPLET_DESKTOP_ADD_WIDGET_NAME)); + dialog->desktop_add_button = button; + g_signal_connect (button, + "clicked", + G_CALLBACK (on_desktop_add_app_clicked), + dialog); + + button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, CAPPLET_DELETE_WIDGET_NAME)); dialog->delete_button = button; g_signal_connect (button, @@ -743,7 +777,6 @@ setup_dialog (GsmPropertiesDialog *dialog) G_CALLBACK (on_edit_app_clicked), dialog); - button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, CAPPLET_REMEMBER_WIDGET_NAME)); |