Skip to content

Commit

Permalink
gui: Use AsyncAction, upgrade Druid and other deps, add WebApiCache
Browse files Browse the repository at this point in the history
  • Loading branch information
jpochyla committed Apr 6, 2021
1 parent 0141eb2 commit 2511ed8
Show file tree
Hide file tree
Showing 24 changed files with 348 additions and 290 deletions.
9 changes: 5 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions psst-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha-1 = "0.9"
shannon = "0.2"
socks = "0.3.3"
socks = "0.3"
tempfile = "3.2"
ureq = { version = "2.0", features = ["json"] }
ureq = { version = "2.1", features = ["json"] }
url = "2.2"
3 changes: 2 additions & 1 deletion psst-core/src/audio_player.rs
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,8 @@ pub enum PlayerEvent {
item: PlaybackItem,
result: Result<LoadedPlaybackItem, Error>,
},
/// Next item in queue has been either successfully preloaded or failed to preload.
/// Next item in queue has been either successfully preloaded or failed to
/// preload.
Preloaded {
item: PlaybackItem,
result: Result<LoadedPlaybackItem, Error>,
Expand Down
7 changes: 4 additions & 3 deletions psst-gui/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@ fs_extra = "1.2"
itertools = "0.10"
log = "0.4"
lru-cache = "0.1"
open = "1.4.0"
platform-dirs = "0.3.0"
once_cell = "1.7"
open = "1.6"
platform-dirs = "0.3"
rand = "0.8"
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
ureq = { version = "2.0", features = ["json"] }
ureq = { version = "2.1", features = ["json"] }
6 changes: 2 additions & 4 deletions psst-gui/src/cmd.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::{
data::{
Album, AlbumLink, Artist, ArtistAlbums, ArtistLink, AudioAnalysis, Nav, PlaybackPayload,
Playlist, PlaylistLink, QueueBehavior, SearchResults, Track, TrackId,
PlaylistLink, QueueBehavior, SearchResults, Track, TrackId,
},
error::Error,
};
Expand All @@ -26,7 +26,7 @@ pub const SESSION_DISCONNECTED: Selector = Selector::new("app.session-disconnect

// Navigation

pub const NAVIGATE_TO: Selector<Nav> = Selector::new("app.navigate-to");
pub const NAVIGATE: Selector<Nav> = Selector::new("app.navigates");
pub const NAVIGATE_BACK: Selector = Selector::new("app.navigate-back");

// Search
Expand All @@ -39,8 +39,6 @@ pub const UPDATE_SEARCH_RESULTS: Selector<Result<SearchResults, Error>> =

pub const LOAD_LIBRARY: Selector = Selector::new("app.load-library");
pub const LOAD_PLAYLISTS: Selector = Selector::new("app.load-playlists");
pub const UPDATE_PLAYLISTS: Selector<Result<Vector<Playlist>, Error>> =
Selector::new("app.update-playlists");
pub const UPDATE_SAVED_ALBUMS: Selector<Result<Vector<Album>, Error>> =
Selector::new("app.update-saved-albums");
pub const UPDATE_SAVED_TRACKS: Selector<Result<Vector<Arc<Track>>, Error>> =
Expand Down
30 changes: 1 addition & 29 deletions psst-gui/src/controller/input.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
use crate::cmd;
use druid::{
commands,
text::{EditAction, Movement},
widget::{prelude::*, Controller, TextBox},
HotKey, KbKey, RawMods, SysMods,
HotKey, KbKey, SysMods,
};

pub struct InputController {
Expand Down Expand Up @@ -33,12 +32,6 @@ impl Controller<String, TextBox<String>> for InputController {
data: &mut String,
env: &Env,
) {
let mut perform_edit = |edit_action| {
let command = Event::Command(TextBox::PERFORM_EDIT.with(edit_action));
child.event(ctx, &command, data, env);
ctx.request_update();
ctx.request_paint();
};
match event {
Event::Command(cmd) if cmd.is(cmd::SET_FOCUS) => {
ctx.request_focus();
Expand All @@ -53,27 +46,6 @@ impl Controller<String, TextBox<String>> for InputController {
on_submit(ctx, data, env);
}
}
Event::KeyDown(k_e) if HotKey::new(RawMods::Ctrl, "b").matches(k_e) => {
perform_edit(EditAction::Move(Movement::Left));
ctx.set_handled();
}
Event::KeyDown(k_e) if HotKey::new(RawMods::Ctrl, "f").matches(k_e) => {
perform_edit(EditAction::Move(Movement::Right));
ctx.set_handled();
}
Event::KeyDown(k_e) if HotKey::new(RawMods::Ctrl, "a").matches(k_e) => {
perform_edit(EditAction::Move(Movement::PrecedingLineBreak));
ctx.set_handled();
}
Event::KeyDown(k_e) if HotKey::new(RawMods::Ctrl, "e").matches(k_e) => {
perform_edit(EditAction::Move(Movement::NextLineBreak));
ctx.set_handled();
}
Event::KeyDown(k_e) if HotKey::new(RawMods::Ctrl, "k").matches(k_e) => {
perform_edit(EditAction::ModifySelection(Movement::NextLineBreak));
perform_edit(EditAction::Delete);
ctx.set_handled();
}
Event::KeyDown(k_e) if HotKey::new(SysMods::Cmd, "c").matches(k_e) => {
ctx.submit_command(commands::COPY);
ctx.set_handled();
Expand Down
12 changes: 6 additions & 6 deletions psst-gui/src/controller/nav.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use crate::{
pub struct NavController;

impl NavController {
fn load_route(&self, ctx: &mut EventCtx, data: &mut State) {
fn load_route_data(&self, ctx: &mut EventCtx, data: &mut State) {
match &data.route {
Nav::Home => {}
Nav::SearchResults(query) => {
Expand Down Expand Up @@ -43,15 +43,15 @@ where
env: &Env,
) {
match event {
Event::Command(cmd) if cmd.is(cmd::NAVIGATE_TO) => {
let nav = cmd.get_unchecked(cmd::NAVIGATE_TO);
data.navigate_to(nav);
self.load_route(ctx, data);
Event::Command(cmd) if cmd.is(cmd::NAVIGATE) => {
let nav = cmd.get_unchecked(cmd::NAVIGATE);
data.navigate(nav);
self.load_route_data(ctx, data);
ctx.set_handled();
}
Event::Command(cmd) if cmd.is(cmd::NAVIGATE_BACK) => {
data.navigate_back();
self.load_route(ctx, data);
self.load_route_data(ctx, data);
ctx.set_handled();
}
_ => {
Expand Down
8 changes: 4 additions & 4 deletions psst-gui/src/data/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -105,19 +105,19 @@ impl Default for State {
}

impl State {
pub fn navigate_to(&mut self, nav: &Nav) {
pub fn navigate(&mut self, nav: &Nav) {
if self.route != *nav {
self.history.push_back(nav.to_owned());
self.change_route(nav.to_owned());
self.set_route(nav.to_owned());
}
}

pub fn navigate_back(&mut self) {
self.history.pop_back();
self.change_route(self.history.last().cloned().unwrap_or(Nav::Home));
self.set_route(self.history.last().cloned().unwrap_or(Nav::Home));
}

fn change_route(&mut self, nav: Nav) {
fn set_route(&mut self, nav: Nav) {
self.route = nav;
}
}
Expand Down
Loading

0 comments on commit 2511ed8

Please sign in to comment.