Update
This commit is contained in:
parent
20e5b97842
commit
c04a975edf
@ -1,8 +1,9 @@
|
||||
use audio::Audio;
|
||||
use audio::{Audio, AudioUser};
|
||||
use errors::*;
|
||||
use gtk;
|
||||
use prefs::*;
|
||||
use std::cell::RefCell;
|
||||
use support_audio::*;
|
||||
use ui_entry::Gui;
|
||||
|
||||
#[cfg(feature = "notify")]
|
||||
@ -72,4 +73,23 @@ impl AppS {
|
||||
debug!("Update PopupWindow!");
|
||||
return self.gui.popup_window.update(&self.audio);
|
||||
}
|
||||
|
||||
#[cfg(feature = "notify")]
|
||||
pub fn update_notify(&self) -> Result<()> {
|
||||
return self.notif.reload(&self.prefs.borrow());
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "notify"))]
|
||||
pub fn update_notify(&self) -> Result<()> {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
pub fn update_audio(&self, user: AudioUser) -> Result<()> {
|
||||
return audio_reload(&self.audio, &self.prefs.borrow(), user);
|
||||
}
|
||||
|
||||
pub fn update_config(&self) -> Result<()> {
|
||||
let prefs = self.prefs.borrow_mut();
|
||||
return prefs.store_config();
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ pub struct PopupWindow {
|
||||
pub mute_check: gtk::CheckButton,
|
||||
pub mixer_button: gtk::Button,
|
||||
pub toggle_signal: Cell<u64>,
|
||||
pub changed_signal: Cell<u64>,
|
||||
}
|
||||
|
||||
impl PopupWindow {
|
||||
@ -36,6 +37,7 @@ impl PopupWindow {
|
||||
mute_check: builder.get_object("mute_check").unwrap(),
|
||||
mixer_button: builder.get_object("mixer_button").unwrap(),
|
||||
toggle_signal: Cell::new(0),
|
||||
changed_signal: Cell::new(0),
|
||||
};
|
||||
}
|
||||
|
||||
@ -148,9 +150,14 @@ pub fn init_popup_window(appstate: Rc<AppS>) {
|
||||
.gui
|
||||
.popup_window
|
||||
.vol_scale_adj;
|
||||
vol_scale_adj.connect_value_changed(
|
||||
let changed_signal = vol_scale_adj.connect_value_changed(
|
||||
move |_| on_vol_scale_value_changed(&_appstate),
|
||||
);
|
||||
|
||||
appstate.gui
|
||||
.popup_window
|
||||
.changed_signal
|
||||
.set(changed_signal);
|
||||
}
|
||||
|
||||
/* popup_window.connect_event */
|
||||
@ -181,10 +188,13 @@ pub fn init_popup_window(appstate: Rc<AppS>) {
|
||||
|
||||
|
||||
fn on_popup_window_show(appstate: &AppS) {
|
||||
let popup_window = &appstate.gui.popup_window;
|
||||
appstate.gui.popup_window.set_vol_increment(&appstate.prefs.borrow());
|
||||
glib::signal_handler_block(&popup_window.vol_scale_adj, popup_window.changed_signal.get());
|
||||
try_w!(appstate.gui.popup_window.update(&appstate.audio));
|
||||
appstate.gui
|
||||
.popup_window
|
||||
glib::signal_handler_unblock(&popup_window.vol_scale_adj,
|
||||
popup_window.changed_signal.get());
|
||||
popup_window
|
||||
.vol_scale
|
||||
.grab_focus();
|
||||
try_w!(grab_devices(&appstate.gui.popup_window.popup_window));
|
||||
|
@ -335,17 +335,12 @@ fn init_prefs_dialog(appstate: &Rc<AppS>) {
|
||||
|
||||
if response_id == ResponseType::Ok.into() ||
|
||||
response_id == ResponseType::Apply.into() {
|
||||
// TODO: update popup, tray_icon, hotkeys, notification and audio
|
||||
#[cfg(feature = "notify")]
|
||||
try_w!(apps.notif.reload(&apps.prefs.borrow()));
|
||||
// TODO: update hotkeys
|
||||
try_w!(apps.update_notify());
|
||||
try_w!(apps.update_tray_icon());
|
||||
try_w!(apps.update_popup_window());
|
||||
{
|
||||
let prefs = apps.prefs.borrow();
|
||||
try_w!(audio_reload(&apps.audio, &prefs, AudioUser::PrefsWindow));
|
||||
}
|
||||
let prefs = apps.prefs.borrow_mut();
|
||||
try_w!(prefs.store_config());
|
||||
try_w!(apps.update_audio(AudioUser::PrefsWindow));
|
||||
try_w!(apps.update_config());
|
||||
}
|
||||
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user