Update cargo dependencies, fix icons

This commit is contained in:
Julian Mutter 2024-05-26 12:01:25 +02:00
parent 011dab8d99
commit fae93ee352
7 changed files with 481 additions and 530 deletions

960
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -7,25 +7,25 @@ edition = "2021"
[dependencies]
# Core library
relm4 = "0.6.2"
relm4 = "0.8.1"
# relm4-macros = "0.6.2"
# Optional: reusable components
relm4-components = "0.6.2"
relm4-components = "0.8.1"
# Optional: icons
relm4-icons = { version = "0.6.0", features = ["plus"] }
relm4-icons = "0.8.2"
walkdir = "2" # For traversing directories recursively
opener = "0.6.1" # For opening files with the systems default application
opener = "0.7.1" # For opening files with the systems default application
log = "0.4.20"
env_logger = "0.10.1"
clap = { version = "4.4.6", features = ["derive"] }
log = "0.4.21"
env_logger = "0.11.3"
clap = { version = "4.5.4", features = ["derive"] }
sqlx = { version = "0.7", features = [ "runtime-tokio", "sqlite", "migrate", "macros" ] }
tokio = { version = "1", features = ["full"] }
blake3 = "1.5.0"
blake3 = "1.5.1"
dotenvy = "0.15.7"
chrono = "0.4.33"
chrono = "0.4.38"
strum = "0.26"
strum_macros = "0.26"

View File

@ -8,6 +8,7 @@ use relm4::{
prelude::*,
AsyncComponentSender,
};
use relm4_icons::icon_names;
use crate::{
database::Database,
@ -73,23 +74,23 @@ impl AsyncComponent for AppModel {
set_margin_all: 10,
set_spacing: 3,
gtk::Button {
set_icon_name: "view-refresh-symbolic",
set_icon_name: icon_names::REFRESH,
set_margin_end: 10,
connect_clicked[sender] => move |_| sender.input(AppInput::Refresh),
},
gtk::ToggleButton {
set_icon_name: "document-edit-symbolic",
set_icon_name: icon_names::EDIT,
set_margin_end: 10,
connect_clicked[sender] => move |button| sender.input(AppInput::SetEditMode(button.is_active())),
},
#[name = "button_sort"]
gtk::ToggleButton {
set_icon_name: "view-sort-descending-symbolic",
set_icon_name: icon_names::ARROW_SORT_REGULAR,
set_active: true,
connect_clicked[sender] => move |_| sender.input(AppInput::Sort),
},
gtk::ToggleButton {
set_icon_name: "media-playlist-shuffle-symbolic",
set_icon_name: icon_names::PLAYLIST_SHUFFLE,
set_group: Some(&button_sort),
connect_clicked[sender] => move |_| sender.input(AppInput::Shuffle),
},

View File

@ -60,7 +60,7 @@ impl SimpleComponent for McduModel {
fn init(
_init: Self::Init,
root: &Self::Root,
root: Self::Root,
sender: ComponentSender<Self>,
) -> ComponentParts<Self> {
let model = McduModel::new();

View File

@ -162,8 +162,8 @@ impl AsyncComponent for SheetEditDialogModel {
secondary_text: Some(String::from("Please make sure all fields are filled")),
is_modal: true,
destructive_accept: false,
confirm_label: String::from("Ok"),
cancel_label: String::from("Cancel"),
confirm_label: Some(String::from("Ok")),
cancel_label: None,
option_label: None,
}),
};

View File

@ -1,6 +1,6 @@
use gtk::prelude::*;
use relm4::factory::FactoryVecDeque;
use relm4::factory::{FactoryVecDeque, Position};
use relm4::RelmListBoxExt;
use relm4::{gtk, ComponentParts, ComponentSender, SimpleComponent};
@ -21,6 +21,7 @@ pub enum SheetListingInput {
Sort,
Shuffle,
ReloadSheets(Vec<Sheet>),
None,
}
#[derive(Debug)]
@ -54,10 +55,12 @@ impl SimpleComponent for SheetListingModel {
fn init(
init: Self::Init,
root: &Self::Root,
root: Self::Root,
sender: ComponentSender<Self>,
) -> ComponentParts<Self> {
let mut sheets = FactoryVecDeque::new(gtk::ListBox::default(), sender.input_sender());
let mut sheets = FactoryVecDeque::builder()
.launch(gtk::ListBox::default())
.forward(sender.input_sender(), |_| SheetListingInput::None);
for sheet_model_type in init {
sheets.guard().push_back(sheet_model_type);
}
@ -95,6 +98,7 @@ impl SimpleComponent for SheetListingModel {
}
sender.output(SheetListingOutput::ContentsChanged);
}
SheetListingInput::None => {}
}
}
}

View File

@ -3,17 +3,12 @@ use relm4::prelude::*;
use crate::sheet::Sheet;
use super::sheet_listing::SheetListingInput;
pub struct SheetModel {
pub label: String,
pub sheet: Sheet,
visible: bool,
}
#[derive(Debug)]
pub struct RowActivated;
#[derive(Debug, Clone)]
pub struct OnQueryUpdate {
pub query: String,
@ -24,9 +19,8 @@ impl FactoryComponent for SheetModel {
type Init = Sheet;
type ParentWidget = gtk::ListBox;
type CommandOutput = ();
type ParentInput = SheetListingInput;
type Input = OnQueryUpdate;
type Output = RowActivated;
type Output = ();
view! {
#[root]