Commit Graph

75 Commits

Author SHA1 Message Date
Henrik Friedrichsen
83dd2494c8 Remove spammy trace log in ListView 2021-05-07 23:16:47 +02:00
Henrik Friedrichsen
71d42d489e Remove extern crate statements
https://doc.rust-lang.org/edition-guide/rust-2018/module-system/path-clarity.html
2021-05-07 22:51:32 +02:00
Henrik Friedrichsen
577e7ebd87 Unify pagination setup for ApiResult values
Also:
- Fix duplicate results
- Rename `album.load_tracks` to `album.load_all_tracks`
2021-04-08 17:46:50 +02:00
Henrik Friedrichsen
02921752e1 Use new pagination interface for artist albums
Brings along some other changes:
- Split artist albums/singles into separate panel
- Paginate artist albums/singles
- Play top tracks by artist instead of all tracks by artist

Fixes #477
2021-04-06 15:02:19 +02:00
Henrik Friedrichsen
8483653cde Refactor: extract Spotify Worker to separate file 2021-04-03 21:38:42 +02:00
Henrik Friedrichsen
d2edfc3caf rename as_boxed_view_ext to into_boxed_view_ext 2021-03-22 22:36:33 +01:00
Henrik Friedrichsen
f2bcfcaa60 fix: more resilient playlist track deletion
Introduction of the sort command with #328 broke the deletion of playlist items,
because sorted track indices got out of sync with their actual index within the
playlist at the Spotify backend.

The new approach is not perfect, as it doesn't update the list index of items
after deletion, but by supplying the playlist snapshot id the backend is able to
apply the requested changes.

This should still be improved in the future, though.
2021-03-05 23:34:29 +01:00
Henrik Friedrichsen
466b4cd18e Refactor pagination code into separate file 2021-03-05 21:54:29 +01:00
Henrik Friedrichsen
f49e241e10 fix: correct positioning of search match highlight 2021-02-06 00:48:26 +01:00
André Andersson
ed0c62a888 Add support for open.spotify.com links (#392)
* No longer necessary

* Add support for open.spotify.com links

* Reuse struct for insert command

* Formatting
2021-01-17 20:12:07 +01:00
André Andersson
d9d6d684ea Fix multiple tracks in queue being shown as playing (#396)
* Fix multiple items being shown as playing

* Refactor
2021-01-16 21:40:59 +01:00
Henrik Friedrichsen
9afad2d91c cargo fmt/clippy 2021-01-10 01:54:54 +01:00
Qluxzz
2b20670743 Add select artist dialog when multiple artists 2021-01-09 22:15:32 +01:00
Henrik Friedrichsen
919a245649 set title for "similar tracks" view 2021-01-02 21:46:09 +01:00
Felix Van der Jeugt
02b66b6cdd Allow primary selection for sharing
Adds a feature flag to use the primary selection instead of the
clipboard. Only works on Linux.
2020-12-15 22:31:35 +01:00
André Andersson
68d2bbd64f Add support for sorting playlist tracks (#328)
* Add support for sorting playlists

* Update string

* formatting
2020-11-22 17:02:33 +01:00
Henrik Friedrichsen
09febf7187 cargo update + format + clippy 2020-11-21 15:42:17 +01:00
Bettehem
e0cfc40639 Spotify URL handling improvements (#320)
* Fixed regex for handling links via ctrl+v shortcut.
Fixed the whole url getting passed to get data on each link type instead of only the id.
Fixed MPRIS OpenUri function not handling an user&id in the link correctly.
2020-11-15 19:17:15 +01:00
Henrik Friedrichsen
e1b4892b8a make album column for tracks configurable
introduces new config variable `album_column`

fixes #267
2020-10-17 23:56:23 +02:00
Henrik Friedrichsen
9fbbc7921e fix: handle overlapping columns in listview 2020-10-17 23:45:14 +02:00
Henrik Friedrichsen
f00580b97e highlight search query matches in listviews 2020-10-15 23:43:18 +02:00
Henrik Friedrichsen
f3c66111a2 cargo clippy 2020-10-10 20:47:12 +02:00
Bolli
79093eca1e feat: add insert command to paste spotify links (#277)
* feat: add insert command to paste spotify links

- use Ctrl-v to paste from clipboard or use :insert without an argument

* fix: handle paste on disabled clipboard feature

* fix: handle wrong URIs

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-10-09 19:26:52 +02:00
Moshe Sherman
f2b4f01242 Vim like search (#279)
* add quick search within a list

* vim like search navigation

* close cmd line with esc

* format

* document changes in README
2020-10-05 13:50:12 +02:00
Moshe Sherman
fc79889665 play next (#278)
* add play next feature

* fix play_next insertion order

* fix play_next call for playable

* document play_next shortcut + reformat

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-10-04 16:58:55 +02:00
Moshe Sherman
77e5de562d Display album name for playable objects (#268)
* display album name

* give proper name to the space key

fixes #266

* use 50% for center offset

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-09-28 22:28:10 +02:00
Henrik Friedrichsen
1b1d392ab8 podcast support (#203)
* implement search for shows/podcasts

* create Playable supertype for queue to contain tracks and episodes

* wip: implement playback of episodes

* load spotify id from uri instead of raw id to fix podcast playback

* show duration for podcast episodes

* implement generic status bar for playables (tracks and episodes)

omit saved indicator for now as the library does not yet support podcasts

* instead of only the last 50 fetch all episodes of a show

* refactor: extract Playable code to separate file

* implement playback/queuing of shows + sharing url

* implement podcast library

* migrate mpris code to Playable supertype
2020-07-14 10:38:22 +02:00
Thomas Storey
e5419dae2d add methods and api usage to delete track from playlist (#211)
* wip: add methods and api usage to delete track from playlist

* enh: add ability to remove track from playlist with immediate visual feedback

* minor cosmetic changes

Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
2020-07-01 20:52:39 +02:00
Henrik Friedrichsen
510f1ff6ad add new themable color for selected + playing track
fixes #166
2020-04-09 23:50:56 +02:00
Henrik Friedrichsen
705a54c08c reformat + remove redundant closure 2020-04-02 21:21:51 +02:00
Marcin Sobczyk
07be9dc48d Command::Move: Add support for extreme moves
This patch adds a 'MoveAmount' enum that permits movements by integer
values or to abstract extremes which loosely translate to "top" for up
direction, "bottom" for down direction, etc. The goal behind the effort
is to add support for buttons like "Home" and "End".

The new enum has a 'Default' impl that yields a value of integer
movement by 1 field. This replaces the previous 'Option' wrap, that
in fact served the same purpose, with the value of '1' scattered
around different places in code.

Along with the enum, new commands have been defined to make use of it:

 - "move top"
 - "move bottom"
 - "move leftmost"
 - "move rightmost"
2020-03-31 10:49:08 +02:00
Henrik Friedrichsen
dccb36d8e7 update to rust edition 2018 + bump version 2020-03-15 11:06:24 +01:00
Henrik Friedrichsen
d2915316da various non-functional code cleanups 2020-02-21 23:33:08 +01:00
Tobias Langendorf
363e71242a Shuffle: Start with random track if not selecting track directly
Starting a playlist, album or artist with shuffle enabled always
starts on the first track in it and then plays the rest of the
queue shuffled.
This changes it so unless a track is picked directly, playback
will start on a random track of the selection.
2020-02-21 18:42:31 +01:00
Henrik Friedrichsen
6bf1d662dc minor code cleanups 2019-11-02 23:18:34 +01:00
Henrik Friedrichsen
31a8119749 draw pagination indicator if applicable 2019-10-31 12:30:25 +01:00
Henrik Friedrichsen
7aa70fcb6b fix deprecation warnings caused by old trait object syntax 2019-09-01 01:32:50 +02:00
Henrik Friedrichsen
980f6eb528 move to a separate save/delete binding approach
this is to address accidental deletions of playlists/tracks that some users
faced

closes #75

related #15
2019-08-13 21:59:11 +02:00
Henrik Friedrichsen
f7458b4137 make sharing to clipboard a feature that can be disabled
this is for users that want to eliminate dependences (e.g. libxcb).
the feature is enabled by default and must be explicitly disabled.

fixes #84
2019-08-13 11:49:27 +02:00
Henrik Friedrichsen
d213e8a54c introduce new context menu for simplified controls
as outlined in #75
2019-06-10 00:07:18 +02:00
Rasmus Larsen
1671db14c1 Move to enum-based commands 2019-05-20 22:15:12 +02:00
Rasmus Larsen
cd4bd627da Ensure no 'unknown command' error is thrown when no track is played 2019-05-10 20:20:55 +02:00
Rasmus Larsen
1a075694af Break share command into smaller chunks 2019-05-10 13:06:36 +02:00
Rasmus Larsen
641ddf0113 Remove extra trailing comma and reformat 2019-05-10 12:57:31 +02:00
Rasmus Larsen
224597ae92 Move share command handling completely to ListView 2019-05-10 12:55:22 +02:00
Rasmus Larsen
4897d97931 Move URL handling to relevant structs and share selected song 2019-05-09 16:04:07 +02:00
KoffeinFlummi
c96d666481 Clear queue on play command 2019-04-28 11:56:47 +02:00
Henrik Friedrichsen
18c2f6466a fix most of the clippy linter warnings 2019-04-23 22:28:05 +02:00
KoffeinFlummi
35303db5f0 cargo fmt 2019-04-23 01:47:40 +02:00
KoffeinFlummi
eed218d0c3 Implement browsing for albums, artists, playlists 2019-04-23 01:40:00 +02:00