Fix dialog entry buffers
This commit is contained in:
parent
48f789ca83
commit
e0feae0546
@ -3,6 +3,7 @@ use std::sync::Arc;
|
|||||||
|
|
||||||
use relm4::{
|
use relm4::{
|
||||||
component::{AsyncComponent, AsyncComponentParts, Connector},
|
component::{AsyncComponent, AsyncComponentParts, Connector},
|
||||||
|
gtk::EntryBuffer,
|
||||||
prelude::*,
|
prelude::*,
|
||||||
AsyncComponentSender,
|
AsyncComponentSender,
|
||||||
};
|
};
|
||||||
@ -14,8 +15,8 @@ pub struct SheetEditDialogModel {
|
|||||||
database: Arc<Database>,
|
database: Arc<Database>,
|
||||||
hidden: bool,
|
hidden: bool,
|
||||||
sheet: Option<Sheet>,
|
sheet: Option<Sheet>,
|
||||||
sheet_name: String,
|
name_entry_buffer: EntryBuffer,
|
||||||
sheet_composer: String,
|
composer_entry_buffer: EntryBuffer,
|
||||||
is_book: bool,
|
is_book: bool,
|
||||||
book_sheets: Vec<(String, String, i64)>,
|
book_sheets: Vec<(String, String, i64)>,
|
||||||
alert_empty_fields: Connector<Alert>,
|
alert_empty_fields: Connector<Alert>,
|
||||||
@ -62,8 +63,7 @@ impl AsyncComponent for SheetEditDialogModel {
|
|||||||
set_text: "Sheet name"
|
set_text: "Sheet name"
|
||||||
},
|
},
|
||||||
gtk::Entry {
|
gtk::Entry {
|
||||||
#[watch]
|
set_buffer: &model.name_entry_buffer,
|
||||||
set_text: &model.sheet_name,
|
|
||||||
set_width_chars: 40,
|
set_width_chars: 40,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -73,8 +73,7 @@ impl AsyncComponent for SheetEditDialogModel {
|
|||||||
set_text: "Sheet composer"
|
set_text: "Sheet composer"
|
||||||
},
|
},
|
||||||
gtk::Entry {
|
gtk::Entry {
|
||||||
#[watch]
|
set_buffer: &model.composer_entry_buffer,
|
||||||
set_text : &model.sheet_composer,
|
|
||||||
set_hexpand: true,
|
set_hexpand: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -153,8 +152,8 @@ impl AsyncComponent for SheetEditDialogModel {
|
|||||||
database: params.database,
|
database: params.database,
|
||||||
hidden: false,
|
hidden: false,
|
||||||
sheet: Some(sheet),
|
sheet: Some(sheet),
|
||||||
sheet_name,
|
name_entry_buffer: EntryBuffer::new(Some(sheet_name)),
|
||||||
sheet_composer,
|
composer_entry_buffer: EntryBuffer::new(Some(sheet_composer)),
|
||||||
is_book,
|
is_book,
|
||||||
book_sheets: Vec::new(),
|
book_sheets: Vec::new(),
|
||||||
alert_empty_fields: Alert::builder().transient_for(&root).launch(AlertSettings {
|
alert_empty_fields: Alert::builder().transient_for(&root).launch(AlertSettings {
|
||||||
@ -183,10 +182,17 @@ impl AsyncComponent for SheetEditDialogModel {
|
|||||||
match msg {
|
match msg {
|
||||||
SheetEditDialogInput::Accept => {
|
SheetEditDialogInput::Accept => {
|
||||||
if let Some(_sheet) = &self.sheet {
|
if let Some(_sheet) = &self.sheet {
|
||||||
if self.sheet_name.is_empty() || self.sheet_composer.is_empty() {
|
let sheet_name_string = self.name_entry_buffer.text();
|
||||||
|
let sheet_name = sheet_name_string.trim();
|
||||||
|
|
||||||
|
let sheet_composer_string = self.composer_entry_buffer.text();
|
||||||
|
let sheet_composer = sheet_composer_string.trim();
|
||||||
|
|
||||||
|
if sheet_name.is_empty() || sheet_composer.is_empty() {
|
||||||
self.alert_empty_fields.emit(AlertMsg::Show);
|
self.alert_empty_fields.emit(AlertMsg::Show);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// match sheet.kind.borrow_mut() {
|
// match sheet.kind.borrow_mut() {
|
||||||
// crate::sheet::SheetKind::Sheet {
|
// crate::sheet::SheetKind::Sheet {
|
||||||
// name,
|
// name,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user