mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 17:15:28 +00:00
use i32 for negative values calculation
This commit is contained in:
parent
b3b0892d62
commit
42e91cdb7c
4 changed files with 18 additions and 21 deletions
|
|
@ -40,10 +40,11 @@ impl Default {
|
||||||
let response = response.clone();
|
let response = response.clone();
|
||||||
move |_, _| {
|
move |_, _| {
|
||||||
control.update(match size_limit {
|
control.update(match size_limit {
|
||||||
Some(limit_value) => Some(
|
Some(limit) => Some(
|
||||||
limit_value
|
limit as i32
|
||||||
- (base.to_string_partial(UriHideFlags::QUERY).len()
|
- (base.to_string_partial(UriHideFlags::QUERY).len() as i32
|
||||||
+ Uri::escape_string(response.text().as_str(), None, false).len()),
|
+ Uri::escape_string(response.text().as_str(), None, false).len()
|
||||||
|
as i32),
|
||||||
),
|
),
|
||||||
None => None,
|
None => None,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ use gtk::Box;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
pub struct Control {
|
pub struct Control {
|
||||||
limit: Arc<Left>,
|
left: Arc<Left>,
|
||||||
send: Arc<Send>,
|
send: Arc<Send>,
|
||||||
widget: Arc<Widget>,
|
widget: Arc<Widget>,
|
||||||
}
|
}
|
||||||
|
|
@ -19,25 +19,21 @@ impl Control {
|
||||||
// Construct
|
// Construct
|
||||||
pub fn new_arc() -> Arc<Self> {
|
pub fn new_arc() -> Arc<Self> {
|
||||||
// Init components
|
// Init components
|
||||||
let limit = Left::new_arc();
|
let left = Left::new_arc();
|
||||||
let send = Send::new_arc();
|
let send = Send::new_arc();
|
||||||
|
|
||||||
// Init widget
|
// Init widget
|
||||||
let widget = Widget::new_arc(limit.gobject(), send.gobject());
|
let widget = Widget::new_arc(left.gobject(), send.gobject());
|
||||||
|
|
||||||
// Return activated struct
|
// Return activated struct
|
||||||
Arc::new(Self {
|
Arc::new(Self { left, send, widget })
|
||||||
limit,
|
|
||||||
send,
|
|
||||||
widget,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
pub fn update(&self, left: Option<usize>) {
|
pub fn update(&self, chars_left: Option<i32>) {
|
||||||
// Update children components
|
// Update children components
|
||||||
self.limit.update(left);
|
self.left.update(chars_left);
|
||||||
self.send.update(match left {
|
self.send.update(match chars_left {
|
||||||
Some(value) => value > 0,
|
Some(value) => value > 0,
|
||||||
None => false,
|
None => false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,8 @@ impl Left {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
pub fn update(&self, left: Option<usize>) {
|
pub fn update(&self, chars_left: Option<i32>) {
|
||||||
self.widget.update(left);
|
self.widget.update(chars_left);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
|
|
|
||||||
|
|
@ -14,17 +14,17 @@ impl Widget {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
pub fn update(&self, left: Option<usize>) {
|
pub fn update(&self, chars_left: Option<i32>) {
|
||||||
match left {
|
match chars_left {
|
||||||
Some(value) => {
|
Some(value) => {
|
||||||
// Update color on limit reached
|
// Update color on chars left reached
|
||||||
self.gobject
|
self.gobject
|
||||||
.set_css_classes(&[if value > 0 { "success" } else { "error" }]); // @TODO add warning step?
|
.set_css_classes(&[if value > 0 { "success" } else { "error" }]); // @TODO add warning step?
|
||||||
|
|
||||||
// Update text
|
// Update text
|
||||||
self.gobject.set_label(&value.to_string());
|
self.gobject.set_label(&value.to_string());
|
||||||
|
|
||||||
// Toggle visibility if limit provided
|
// Toggle visibility on chars left provided
|
||||||
self.gobject.set_visible(true);
|
self.gobject.set_visible(true);
|
||||||
}
|
}
|
||||||
None => self.gobject.set_visible(false),
|
None => self.gobject.set_visible(false),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue