diff options
| author | Wu Xiaotian <[email protected]> | 2019-05-09 12:19:23 +0800 | 
|---|---|---|
| committer | Victor Kareh <[email protected]> | 2019-05-09 15:10:37 -0400 | 
| commit | 16fe21a84ea333db67e9f0509d619f8d3fee1443 (patch) | |
| tree | 6453a1019ae96412af44519c7e23e8f6047e80a2 | |
| parent | fb24ae35d358177cfaa1706280b3e0752a2ec97b (diff) | |
| download | mate-session-manager-16fe21a84ea333db67e9f0509d619f8d3fee1443.tar.bz2 mate-session-manager-16fe21a84ea333db67e9f0509d619f8d3fee1443.tar.xz | |
Add Show hidden checkbox and gsettings flag.
| -rw-r--r-- | capplet/gsm-properties-dialog.c | 45 | ||||
| -rw-r--r-- | capplet/gsp-app-manager.c | 2 | ||||
| -rw-r--r-- | data/org.mate.session.gschema.xml.in | 5 | ||||
| -rw-r--r-- | data/session-properties.ui | 15 | 
4 files changed, 66 insertions, 1 deletions
| diff --git a/capplet/gsm-properties-dialog.c b/capplet/gsm-properties-dialog.c index 20ceac8..3f7a816 100644 --- a/capplet/gsm-properties-dialog.c +++ b/capplet/gsm-properties-dialog.c @@ -43,11 +43,13 @@  #define CAPPLET_EDIT_WIDGET_NAME          "session_properties_edit_button"  #define CAPPLET_SAVE_WIDGET_NAME          "session_properties_save_button"  #define CAPPLET_REMEMBER_WIDGET_NAME      "session_properties_remember_toggle" +#define CAPPLET_SHOW_HIDDEN_WIDGET_NAME   "session_properties_show_hidden_toggle"  #define STARTUP_APP_ICON     "system-run"  #define SPC_CONFIG_SCHEMA   "org.mate.session"  #define SPC_AUTOSAVE_KEY    "auto-save-session" +#define SPC_SHOW_HIDDEN_KEY "show-hidden-apps"  struct _GsmPropertiesDialog  { @@ -458,6 +460,37 @@ on_row_activated (GtkTreeView         *tree_view,  }  static void +update_tree_view (GsmPropertiesDialog *dialog) +{ +        GSList *apps; +        GSList *l; +        gboolean show_hidden; +        GspApp *app; + +        show_hidden = g_settings_get_boolean (dialog->settings, SPC_SHOW_HIDDEN_KEY); + +        apps = gsp_app_manager_get_apps (dialog->manager); +        for (l = apps; l != NULL; l = l->next) { +                app = GSP_APP (l->data); +                if (gsp_app_get_nodisplay(app)) { +                        if (show_hidden) { +                                _app_added (dialog, app, dialog->manager); +                        }else{ +                                _app_removed (dialog, app, dialog->manager); +                        } +                } +        } +        g_slist_free (apps); +} + +static void +on_show_hidden_clicked (GtkWidget           *widget, +                        GsmPropertiesDialog *dialog) +{ +        update_tree_view (dialog); +} + +static void  on_save_session_clicked (GtkWidget           *widget,                           GsmPropertiesDialog *dialog)  { @@ -634,6 +667,17 @@ setup_dialog (GsmPropertiesDialog *dialog)                           button, "active", G_SETTINGS_BIND_DEFAULT);          button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, +                                                     CAPPLET_SHOW_HIDDEN_WIDGET_NAME)); + +        g_settings_bind (dialog->settings, SPC_SHOW_HIDDEN_KEY, +                         button, "active", G_SETTINGS_BIND_DEFAULT); + +        g_signal_connect (button, +                          "clicked", +                          G_CALLBACK (on_show_hidden_clicked), +                          dialog); + +        button = GTK_WIDGET (gtk_builder_get_object (dialog->xml,                                                       CAPPLET_SAVE_WIDGET_NAME));          g_signal_connect (button,                            "clicked", @@ -648,6 +692,7 @@ setup_dialog (GsmPropertiesDialog *dialog)                                    G_CALLBACK (_app_removed), dialog);          populate_model (dialog); +        update_tree_view (dialog);  }  static GObject * diff --git a/capplet/gsp-app-manager.c b/capplet/gsp-app-manager.c index 4072036..7e245db 100644 --- a/capplet/gsp-app-manager.c +++ b/capplet/gsp-app-manager.c @@ -479,7 +479,7 @@ _gsp_app_manager_fill_from_dir (GspAppManager *manager,                  desktop_file_path = g_build_filename (xdgdir->dir, name, NULL);                  app = gsp_app_new (desktop_file_path, xdgdir->index); -                if (app != NULL && !gsp_app_get_nodisplay(app)) { +                if (app != NULL) {                          gsp_app_manager_add (manager, app);                          g_object_unref (app);                  } diff --git a/data/org.mate.session.gschema.xml.in b/data/org.mate.session.gschema.xml.in index b7f8f2d..f151dbb 100644 --- a/data/org.mate.session.gschema.xml.in +++ b/data/org.mate.session.gschema.xml.in @@ -10,6 +10,11 @@        <summary>Save sessions</summary>        <description>If enabled, mate-session will save the session automatically.</description>      </key> +    <key name="show-hidden-apps" type="b"> +      <default>false</default> +      <summary>Show hidden autostart applications</summary> +      <description>If enabled, mate-session-properties will show hidden autostart applications.</description> +    </key>      <key name="logout-prompt" type="b">        <default>true</default>        <summary>Logout prompt</summary> diff --git a/data/session-properties.ui b/data/session-properties.ui index fef715c..b162a15 100644 --- a/data/session-properties.ui +++ b/data/session-properties.ui @@ -141,6 +141,21 @@              <property name="position">1</property>            </packing>          </child> +        <child> +          <object class="GtkCheckButton" id="session_properties_show_hidden_toggle"> +            <property name="label" translatable="yes">_Show hidden</property> +            <property name="visible">True</property> +            <property name="can_focus">True</property> +            <property name="receives_default">False</property> +            <property name="use_underline">True</property> +            <property name="draw_indicator">True</property> +          </object> +          <packing> +            <property name="expand">False</property> +            <property name="fill">True</property> +            <property name="position">2</property> +          </packing> +        </child>        </object>      </child>      <child type="tab"> | 
