summaryrefslogtreecommitdiff
path: root/capplet/gsm-properties-dialog.c
diff options
context:
space:
mode:
Diffstat (limited to 'capplet/gsm-properties-dialog.c')
-rw-r--r--capplet/gsm-properties-dialog.c51
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));