Fix sh/check.sh (#1446)
* Don't bother serializing date in widget gallery * Make egui_extras non-optional dependency of egui_demo_lib
This commit is contained in:
parent
10f30a0c52
commit
861b0e11ba
3 changed files with 12 additions and 34 deletions
|
@ -28,7 +28,7 @@ extra_debug_asserts = ["egui/extra_debug_asserts"]
|
||||||
extra_asserts = ["egui/extra_asserts"]
|
extra_asserts = ["egui/extra_asserts"]
|
||||||
|
|
||||||
datetime = ["egui_extras/chrono", "chrono"]
|
datetime = ["egui_extras/chrono", "chrono"]
|
||||||
http = ["egui_extras", "ehttp", "image", "poll-promise"]
|
http = ["ehttp", "image", "poll-promise"]
|
||||||
persistence = [
|
persistence = [
|
||||||
"egui/persistence",
|
"egui/persistence",
|
||||||
"epi/persistence",
|
"epi/persistence",
|
||||||
|
@ -42,6 +42,10 @@ syntax_highlighting = ["syntect"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
egui = { version = "0.17.0", path = "../egui", default-features = false }
|
egui = { version = "0.17.0", path = "../egui", default-features = false }
|
||||||
epi = { version = "0.17.0", path = "../epi" }
|
epi = { version = "0.17.0", path = "../epi" }
|
||||||
|
egui_extras = { version = "0.17.0", path = "../egui_extras", features = [
|
||||||
|
"image",
|
||||||
|
"datepicker",
|
||||||
|
] }
|
||||||
|
|
||||||
chrono = { version = "0.4", optional = true, features = ["js-sys", "wasmbind"] }
|
chrono = { version = "0.4", optional = true, features = ["js-sys", "wasmbind"] }
|
||||||
enum-map = { version = "2", features = ["serde"] }
|
enum-map = { version = "2", features = ["serde"] }
|
||||||
|
@ -49,10 +53,6 @@ tracing = "0.1"
|
||||||
unicode_names2 = { version = "0.5.0", default-features = false }
|
unicode_names2 = { version = "0.5.0", default-features = false }
|
||||||
|
|
||||||
# feature "http":
|
# feature "http":
|
||||||
egui_extras = { version = "0.17.0", path = "../egui_extras", optional = true, features = [
|
|
||||||
"image",
|
|
||||||
"datepicker",
|
|
||||||
] }
|
|
||||||
ehttp = { version = "0.2.0", optional = true }
|
ehttp = { version = "0.2.0", optional = true }
|
||||||
image = { version = "0.24", optional = true, default-features = false, features = [
|
image = { version = "0.24", optional = true, default-features = false, features = [
|
||||||
"jpeg",
|
"jpeg",
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
#[cfg(feature = "datetime")]
|
|
||||||
mod serde_date_format;
|
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq)]
|
||||||
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
enum Enum {
|
enum Enum {
|
||||||
|
@ -20,9 +17,11 @@ pub struct WidgetGallery {
|
||||||
string: String,
|
string: String,
|
||||||
color: egui::Color32,
|
color: egui::Color32,
|
||||||
animate_progress_bar: bool,
|
animate_progress_bar: bool,
|
||||||
|
|
||||||
#[cfg(feature = "datetime")]
|
#[cfg(feature = "datetime")]
|
||||||
#[serde(with = "serde_date_format")]
|
#[cfg_attr(feature = "serde", serde(skip))]
|
||||||
date: chrono::Date<chrono::Utc>,
|
date: Option<chrono::Date<chrono::Utc>>,
|
||||||
|
|
||||||
#[cfg_attr(feature = "serde", serde(skip))]
|
#[cfg_attr(feature = "serde", serde(skip))]
|
||||||
texture: Option<egui::TextureHandle>,
|
texture: Option<egui::TextureHandle>,
|
||||||
}
|
}
|
||||||
|
@ -39,7 +38,7 @@ impl Default for WidgetGallery {
|
||||||
color: egui::Color32::LIGHT_BLUE.linear_multiply(0.5),
|
color: egui::Color32::LIGHT_BLUE.linear_multiply(0.5),
|
||||||
animate_progress_bar: false,
|
animate_progress_bar: false,
|
||||||
#[cfg(feature = "datetime")]
|
#[cfg(feature = "datetime")]
|
||||||
date: chrono::offset::Utc::now().date(),
|
date: None,
|
||||||
texture: None,
|
texture: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,6 +109,7 @@ impl WidgetGallery {
|
||||||
string,
|
string,
|
||||||
color,
|
color,
|
||||||
animate_progress_bar,
|
animate_progress_bar,
|
||||||
|
#[cfg(feature = "datetime")]
|
||||||
date,
|
date,
|
||||||
texture,
|
texture,
|
||||||
} = self;
|
} = self;
|
||||||
|
@ -212,6 +212,7 @@ impl WidgetGallery {
|
||||||
|
|
||||||
#[cfg(feature = "datetime")]
|
#[cfg(feature = "datetime")]
|
||||||
{
|
{
|
||||||
|
let date = date.get_or_insert_with(|| chrono::offset::Utc::now().date());
|
||||||
ui.add(doc_link_label("DatePickerButton", "DatePickerButton"));
|
ui.add(doc_link_label("DatePickerButton", "DatePickerButton"));
|
||||||
ui.add(egui_extras::DatePickerButton::new(date));
|
ui.add(egui_extras::DatePickerButton::new(date));
|
||||||
ui.end_row();
|
ui.end_row();
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
use chrono::{Date, NaiveDate, Utc};
|
|
||||||
use serde::{self, Deserialize, Deserializer, Serializer};
|
|
||||||
|
|
||||||
const FORMAT: &str = "%Y-%m-%d";
|
|
||||||
|
|
||||||
pub fn serialize<S>(date: &Date<Utc>, serializer: S) -> Result<S::Ok, S::Error>
|
|
||||||
where
|
|
||||||
S: Serializer,
|
|
||||||
{
|
|
||||||
let s = date.format(FORMAT).to_string();
|
|
||||||
serializer.serialize_str(&s)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn deserialize<'de, D>(deserializer: D) -> Result<Date<Utc>, D::Error>
|
|
||||||
where
|
|
||||||
D: Deserializer<'de>,
|
|
||||||
{
|
|
||||||
let s = String::deserialize(deserializer)?;
|
|
||||||
|
|
||||||
NaiveDate::parse_from_str(&s, FORMAT)
|
|
||||||
.map(|naive_date| Date::from_utc(naive_date, Utc))
|
|
||||||
.map_err(serde::de::Error::custom)
|
|
||||||
}
|
|
Loading…
Reference in a new issue