Close app if no config is selected
This commit is contained in:
parent
729c8082c2
commit
5e602d1540
|
|
@ -160,11 +160,15 @@ impl ConfigFile {
|
|||
};
|
||||
|
||||
let default_config = (&*globals::CONFIG_NAME.read().unwrap()).to_string();
|
||||
let config_name =
|
||||
if (map.len() > 1 || !map.contains_key(&default_config)) && map.len() != 0 {
|
||||
ConfigPicker::new(map.keys().map(|a| a.to_owned()).collect())
|
||||
.selected()
|
||||
.unwrap_or(default_config)
|
||||
let config_name = if (map.len() > 1 || !map.contains_key(&default_config))
|
||||
&& map.len() != 0
|
||||
{
|
||||
let picked = ConfigPicker::new(map.keys().map(|a| a.to_owned()).collect()).selected;
|
||||
let picked = picked.borrow();
|
||||
match &*picked {
|
||||
Some(v) => v.to_owned(),
|
||||
None => std::process::exit(0),
|
||||
}
|
||||
} else {
|
||||
default_config
|
||||
};
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
along with Post Maker. If not, see <https://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
use std::{cell::RefCell, rc::Rc};
|
||||
|
||||
use crate::globals;
|
||||
use fltk::{
|
||||
app,
|
||||
|
|
@ -26,9 +28,9 @@ use fltk::{
|
|||
|
||||
pub(crate) struct ConfigPicker {
|
||||
pub(crate) win: Window,
|
||||
pub(crate) selected: Rc<RefCell<Option<String>>>,
|
||||
pub(crate) browse: Browser,
|
||||
pub(crate) apply_btn: Button,
|
||||
pub(crate) configs: Vec<String>,
|
||||
}
|
||||
|
||||
impl ConfigPicker {
|
||||
|
|
@ -72,9 +74,9 @@ impl ConfigPicker {
|
|||
|
||||
let mut config_picker = Self {
|
||||
win,
|
||||
selected: Rc::new(RefCell::new(browse.selected_text())),
|
||||
browse,
|
||||
apply_btn,
|
||||
configs,
|
||||
};
|
||||
config_picker.event();
|
||||
|
||||
|
|
@ -90,14 +92,16 @@ impl ConfigPicker {
|
|||
self.apply_btn.set_callback(move |_| {
|
||||
win.hide();
|
||||
});
|
||||
}
|
||||
|
||||
pub(crate) fn selected(&self) -> Option<String> {
|
||||
let idx = self.browse.value();
|
||||
if idx == 0 {
|
||||
None
|
||||
} else {
|
||||
self.configs.get(idx as usize - 1).map(|a| a.to_owned())
|
||||
}
|
||||
let selected = Rc::clone(&self.selected);
|
||||
self.browse.set_callback(move |f| {
|
||||
*selected.borrow_mut() = f.selected_text();
|
||||
});
|
||||
|
||||
let selected = Rc::clone(&self.selected);
|
||||
self.win.set_callback(move |f| {
|
||||
*selected.borrow_mut() = None;
|
||||
f.hide();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue