diff options
author | Ted Gould <ted@gould.cx> | 2013-10-02 14:13:49 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2013-10-02 14:13:49 -0500 |
commit | f488f4b9b87701a65433218d2c7d4bcf219f98bd (patch) | |
tree | 162dc45f87683502410f78ae64d5e8611b591bc9 /src | |
parent | 6972629d012620a9f962035a371c963dac028266 (diff) | |
download | ayatana-indicator-sound-f488f4b9b87701a65433218d2c7d4bcf219f98bd.tar.gz ayatana-indicator-sound-f488f4b9b87701a65433218d2c7d4bcf219f98bd.tar.bz2 ayatana-indicator-sound-f488f4b9b87701a65433218d2c7d4bcf219f98bd.zip |
Making the settings action optional
Diffstat (limited to 'src')
-rw-r--r-- | src/service.vala | 1 | ||||
-rw-r--r-- | src/sound-menu.vala | 15 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/service.vala b/src/service.vala index 0d028ac..1611608 100644 --- a/src/service.vala +++ b/src/service.vala @@ -34,6 +34,7 @@ public class IndicatorSound.Service { this.actions.add_action (this.create_mic_volume_action ()); this.menus = new HashTable<string, SoundMenu> (str_hash, str_equal); + this.menus.insert ("desktop_greeter", new SoundMenu (true, null)); this.menus.insert ("desktop", new SoundMenu (true, "indicator.desktop-settings")); this.menus.insert ("phone", new SoundMenu (false, "indicator.phone-settings")); diff --git a/src/sound-menu.vala b/src/sound-menu.vala index fe61cdf..6c6771a 100644 --- a/src/sound-menu.vala +++ b/src/sound-menu.vala @@ -22,7 +22,7 @@ extern Variant? g_icon_serialize (Icon icon); class SoundMenu: Object { - public SoundMenu (bool show_mute, string settings_action) { + public SoundMenu (bool show_mute, string? settings_action) { /* A sound menu always has at least two sections: the volume section (this.volume_section) * at the start of the menu, and the settings section at the end. Between those two, * it has a dynamic amount of player sections, one for each registered player. @@ -37,7 +37,11 @@ class SoundMenu: Object this.menu = new Menu (); this.menu.append_section (null, volume_section); - this.menu.append (_("Sound Settingsā¦"), settings_action); + + if (settings_action != null) { + settings_shown = true; + this.menu.append (_("Sound Settingsā¦"), settings_action); + } var root_item = new MenuItem (null, "indicator.root"); root_item.set_attribute ("x-canonical-type", "s", "com.canonical.indicator.root"); @@ -96,7 +100,11 @@ class SoundMenu: Object player.notify["is-running"].connect ( () => this.update_playlists (player) ); update_playlists (player); - this.menu.insert_section (this.menu.get_n_items () -1, null, section); + if (settings_shown) { + this.menu.insert_section (this.menu.get_n_items () -1, null, section); + } else { + this.menu.append_section (null, section); + } } public void remove_player (MediaPlayer player) { @@ -109,6 +117,7 @@ class SoundMenu: Object Menu menu; Menu volume_section; bool mic_volume_shown; + bool settings_shown; /* returns the position in this.menu of the section that's associated with @player */ int find_player_section (MediaPlayer player) { |