Return item open to tab handler

This commit is contained in:
Jeremy Soller 2024-02-26 14:11:45 -07:00
parent 0ce43dfcf5
commit a936cd4a6d
7 changed files with 137 additions and 102 deletions

View file

@ -17,9 +17,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
#[derive(Clone, Debug)]
pub enum Message {
DialogMessage(DialogMessage),
DialogOpen,
DialogOpen(DialogKind),
DialogResult(DialogResult),
DialogSave,
}
pub struct App {
@ -61,10 +60,10 @@ impl Application for App {
return dialog.update(dialog_message);
}
}
Message::DialogOpen => {
Message::DialogOpen(dialog_kind) => {
if self.dialog_opt.is_none() {
let (dialog, command) = Dialog::new(
DialogKind::OpenFile,
dialog_kind,
None,
Message::DialogMessage,
Message::DialogResult,
@ -77,20 +76,6 @@ impl Application for App {
self.dialog_opt = None;
self.result_opt = Some(result);
}
Message::DialogSave => {
if self.dialog_opt.is_none() {
let (dialog, command) = Dialog::new(
DialogKind::SaveFile {
filename: "README.md".to_string(),
},
None,
Message::DialogMessage,
Message::DialogResult,
);
self.dialog_opt = Some(dialog);
return command;
}
}
}
Command::none()
@ -106,16 +91,39 @@ impl Application for App {
fn view(&self) -> Element<Message> {
let mut column = widget::column().spacing(8);
{
let mut button = widget::button::standard("Open Dialog");
let mut button = widget::button::standard("Open File");
if self.dialog_opt.is_none() {
button = button.on_press(Message::DialogOpen);
button = button.on_press(Message::DialogOpen(DialogKind::OpenFile));
}
column = column.push(button);
}
{
let mut button = widget::button::standard("Save Dialog");
let mut button = widget::button::standard("Open Multiple Files");
if self.dialog_opt.is_none() {
button = button.on_press(Message::DialogSave);
button = button.on_press(Message::DialogOpen(DialogKind::OpenMultipleFiles));
}
column = column.push(button);
}
{
let mut button = widget::button::standard("Open Folder");
if self.dialog_opt.is_none() {
button = button.on_press(Message::DialogOpen(DialogKind::OpenFolder));
}
column = column.push(button);
}
{
let mut button = widget::button::standard("Open Multiple Folders");
if self.dialog_opt.is_none() {
button = button.on_press(Message::DialogOpen(DialogKind::OpenMultipleFolders));
}
column = column.push(button);
}
{
let mut button = widget::button::standard("Save File");
if self.dialog_opt.is_none() {
button = button.on_press(Message::DialogOpen(DialogKind::SaveFile {
filename: "test".to_string()
}));
}
column = column.push(button);
}