Commit Graph

765 Commits

Author SHA1 Message Date
Keith Edmunds
3557d22c54 WIP V3: insert track works 2023-10-30 21:55:02 +00:00
Keith Edmunds
e4b986fd2e Implement active_tab and active_model 2023-10-30 16:39:02 +00:00
Keith Edmunds
3832d9300c move_rows implemented; all tests pass 2023-10-28 11:30:37 +01:00
Keith Edmunds
617c39c0de Reworked inserting rows into model
_insert_row() handles database
insert_header() handles playlist_rows and display updates
2023-10-27 12:01:09 +01:00
Keith Edmunds
f57bcc37f6 WIP V3 model development 2023-10-27 06:58:22 +01:00
Keith Edmunds
37cdaf3e3f Call scalars() from session rather than row results 2023-10-27 06:41:40 +01:00
Keith Edmunds
858c86d907 test_insert_header_row passes 2023-10-25 22:17:52 +01:00
Keith Edmunds
87172c8757 WIP V3: drag 'n' drop rows working with tests 2023-10-24 21:46:21 +01:00
Keith Edmunds
86a1678f41 WIP V3: move row initial tests working
More tests to write
2023-10-24 20:48:28 +01:00
Keith Edmunds
da658f0ae3 V3 WIP testing working for test_models 2023-10-23 17:39:56 +01:00
Keith Edmunds
9d3e4b8d0c V3 WIP Drag and drop partly implemented
UI works but outputs model changes needed to stdout
2023-10-22 22:53:59 +01:00
Keith Edmunds
4903330e44 V3 WIP Add ROWS_FROM_ZERO option 2023-10-22 22:51:37 +01:00
Keith Edmunds
d6572c13b5 V3 WIP Black formatting 2023-10-21 14:07:42 +01:00
Keith Edmunds
95c7ccbf34 WIP V3: editing saves 2023-10-21 13:49:13 +01:00
Keith Edmunds
5d19d1ed9f Move playlists_v3 to playlists 2023-10-21 11:07:25 +01:00
Keith Edmunds
93d780f75a V3 WIP: ESC works in editing 2023-10-21 11:03:03 +01:00
Keith Edmunds
b75dc4256a WIP V3 don't send session to playlist tab 2023-10-21 09:02:36 +01:00
Keith Edmunds
0690a66806 Edit partially working
setData called but not implemented
ESC not detected in edit
2023-10-20 23:17:19 +01:00
Keith Edmunds
d579eb81b4 WIP V3 2023-10-20 20:47:08 +01:00
Keith Edmunds
cbdcd5f4fc Fix column spanning to not be recursive 2023-10-20 16:25:48 +01:00
Keith Edmunds
bb14b34c2e WIP V3: column widths set/save works 2023-10-20 11:30:54 +01:00
Keith Edmunds
dbbced7401 Fix repr() for Settings 2023-10-20 11:06:50 +01:00
Keith Edmunds
5fb5e12bb8 WIP: V3: All headers displaying 2023-10-20 08:54:48 +01:00
Keith Edmunds
978b83ba67 WIP: V3 header rows span columns 2023-10-19 18:29:09 +01:00
Keith Edmunds
9a01bf2c2c Don't error on header rows 2023-10-19 15:09:49 +01:00
Keith Edmunds
1c8fb05ffa WIP V3: gap and bitrate column background working 2023-10-19 15:05:30 +01:00
Keith Edmunds
bec336d2a3 WIP V3: playlist populates from database 2023-10-19 13:49:07 +01:00
Keith Edmunds
51a827093a Add return type in music.py 2023-10-19 13:49:07 +01:00
Keith Edmunds
8acd279cfe Clean up music.py interface 2023-10-17 22:52:51 +01:00
Keith Edmunds
d2444159ac Improved fading
fade() takes an optional parameter, fade_seconds
fading is now logarithmic
2023-10-17 22:38:57 +01:00
Keith Edmunds
2ca2471f5e Fix bug where unable to preview first row of playlist. 2023-10-16 23:25:09 +01:00
Keith Edmunds
d57ffbdb09 Implement select duplicate rows
Fixes #157
2023-10-16 23:16:56 +01:00
Keith Edmunds
f35b8b93b1 Fix up cron database check 2023-10-16 20:39:53 +01:00
Keith Edmunds
64c3e3066b Filter virtualenv lines from stackprinter dump 2023-10-16 20:31:32 +01:00
Keith Edmunds
3e2293195a Improve track creation in database
Pass all arguments to Tracks.__init__ on track creation
Smarten up metadata collecting
Reformat code
Reinstate stackprinter, but with more sensible settings (mostly
defaults, oddly enough)
2023-10-16 19:44:51 +01:00
Keith Edmunds
8cd8f80883 Shift-sort reverses sort 2023-10-15 22:46:32 +01:00
Keith Edmunds
d7c64141f2 Remove unused app/ui/playlist_ui.py 2023-10-15 22:25:48 +01:00
Keith Edmunds
3a612558e4 Set playlist column widths before populating playlist
Big speed improvment. Loading a 540 line playlist went from 0.445s to
0.264s.
2023-10-15 22:17:46 +01:00
Keith Edmunds
9ac2911a55 Typing and mypy fixes 2023-10-15 21:04:54 +01:00
Keith Edmunds
3513c32a62 Speed increases, more typing, cleanup
Pull all playlist row info in one database query when loading a
playlist.

Fixup some type hints in models.

Comment out stackprinter calls - they mostly get in the way
interactively.
2023-10-15 19:04:58 +01:00
Keith Edmunds
ae87ac82ba Migrate model to SQLAlchemy 2.0 DeclarativeBase 2023-10-15 09:51:02 +01:00
Keith Edmunds
a8c5a56c1a Implent subtotal times and unplayed time 2023-10-13 19:01:22 +01:00
Keith Edmunds
8cebf7829b Save playlist after undoing sort 2023-10-12 18:44:01 +01:00
Keith Edmunds
c8a7ae7f73 Black formatting 2023-10-12 08:55:26 +01:00
Keith Edmunds
87ab973439 Implement playlist range sort and unsort 2023-10-12 02:43:17 +01:00
Keith Edmunds
06e457a3da Save sorted selection 2023-10-10 01:28:31 +01:00
Keith Edmunds
8e2edb6af3 Add sort selection 2023-10-10 01:27:36 +01:00
Keith Edmunds
ee391e42e7 Minor tidying 2023-10-10 01:27:13 +01:00
Keith Edmunds
c078fa69e7 Only create one infotab at initialisation. 2023-10-06 19:10:19 +01:00
Keith Edmunds
da8272b29b Fix flickering when first marking a track as next
Pre-create the infotabs as adding the first one caused the flicker.
2023-10-06 18:04:11 +01:00
Keith Edmunds
b3905e062d Improve artist search
Replicate recent changes in title search to artist search
2023-10-06 10:58:15 +01:00
Keith Edmunds
6d48bcc9d0 Remove double ampersand in last track header 2023-10-06 10:52:28 +01:00
Keith Edmunds
f3a5ed2e72 Track selection dialog bugfix
If multiple tracks had the name name, only one would be listed.
2023-10-05 13:49:52 +01:00
Keith Edmunds
bb700d26f1 Faster track selection diaglog
Use better query to load last_played times along with tracks
2023-10-04 08:11:41 +01:00
Keith Edmunds
b2f826dfcc Much improved performance adding tracks 2023-10-01 15:17:27 +01:00
Keith Edmunds
c1fae2f91a Much improved performance adding tracks 2023-10-01 15:09:41 +01:00
Keith Edmunds
403c470c8a In track add dialog, ESC clears currently selected track 2023-09-30 21:32:08 +01:00
Keith Edmunds
c087858674 Add track dialog: add header if note given but no track selected 2023-09-30 20:45:12 +01:00
Keith Edmunds
494e124ac8 Separate path display from title/artist buttons, track add dialog 2023-09-30 20:38:46 +01:00
Keith Edmunds
dcab21bdde Reset preview button if preview track ends
Fixes #178
2023-07-14 17:16:14 +01:00
Keith Edmunds
cd04ec6339 Flake8 fixes 2023-07-09 23:27:13 +01:00
Keith Edmunds
a0a2903706 Make updating of clock backgrounds more efficient 2023-07-09 23:23:18 +01:00
Keith Edmunds
da267562ea Fix clocks for resumed track 2023-07-09 23:19:27 +01:00
Keith Edmunds
2ca1d30609 Rewrite timers/tick code
Fixes #176
2023-07-09 23:18:37 +01:00
Keith Edmunds
cb2017e953 Add button icons; wire up Stop button 2023-07-09 16:20:10 +01:00
Keith Edmunds
c7284c4397 Merge branch 'buttons' into dev 2023-07-09 16:15:29 +01:00
Keith Edmunds
986257bef6 Flake8 and Black run on all files 2023-07-09 16:12:21 +01:00
Keith Edmunds
fbc780b579 Put elapsed/total time below Preview button 2023-07-09 15:40:56 +01:00
Keith Edmunds
722043d049 Move Stop button away from other buttons
Fixes #177
2023-07-09 15:39:22 +01:00
Keith Edmunds
d3834928fd Remove padding around volume graph 2023-06-22 00:24:32 +01:00
Keith Edmunds
09f0e11aa7 Improve clock management
- tick() implemented independently of Config.TIMER_MS
 - have tick() call periodic functions
 - don't rely on vlc get_time() (too coarse)
2023-06-19 09:40:32 +01:00
Keith Edmunds
b706008101 Make volume fade graph update much smoother.
VLC get_time and get_position are very granular, only updating about
3-4 times a second. Instead, calculate play_time by substracting track
start time from current time and expressing that as milliseconds.
2023-06-19 00:55:04 +01:00
Keith Edmunds
4eb3a98c95 Added volume fade graph. 2023-06-18 09:20:55 +01:00
Keith Edmunds
6ae6d8e94e WIP volume graphs using matlibplot 2023-06-13 07:55:24 +01:00
Keith Edmunds
df265ead69 Unset preview button if there's no track to preview 2023-06-12 17:54:58 +01:00
Keith Edmunds
52a4de0c01 Implement preview button
Fixes #172
2023-06-11 17:49:29 +01:00
Keith Edmunds
c0ae9eba9f Don't scroll display after drop
With no code, display scroll back to where the source rows came from.
With code we had, we ensured dropped rows were visible, but display
would still scroll.
Now freeze display as it is when rows are dropped.
2023-05-01 18:04:03 +01:00
Keith Edmunds
e3ad7787af Make header row span columns after drag and drop 2023-05-01 17:27:30 +01:00
Keith Edmunds
65f2f4f351 Ensure volume is set to VOLUME_VLC_DEFAULT on play 2023-04-21 14:37:48 +01:00
Keith Edmunds
f07ff56987 Intercept ESC on cell edit 2023-04-18 21:33:48 +01:00
Keith Edmunds
4a927084c9 Fix (workaround) volume going to zero after track starts 2023-04-14 11:12:13 +01:00
Keith Edmunds
8a6812e405 Greatly simplifed drag and drop code 2023-04-13 17:29:58 +01:00
Keith Edmunds
32cc0468e8 Disable drag and drop (todo: fix in qt6) 2023-04-13 14:45:29 +01:00
Keith Edmunds
a8ffa6f231 Upgrade PyQt5 → PyQt6 2023-04-12 21:55:13 +01:00
Keith Edmunds
69d379ab10 Disconnect _cell_changed signal on edit abort 2023-04-10 13:58:32 +01:00
Keith Edmunds
ebc087f1f6 Improve typing 2023-04-10 13:58:07 +01:00
Keith Edmunds
3d32ce2f34 WIP to improve info tabs 2023-04-10 10:50:09 +01:00
Keith Edmunds
b122ac06a9 Workround to have tabs display 2023-04-10 10:49:54 +01:00
Keith Edmunds
028c6cd43c Fix(?) music starting with volume=0 2023-04-09 17:53:06 +01:00
Keith Edmunds
fe338aaf4a Tidy up scene change code 2023-04-09 17:45:48 +01:00
Keith Edmunds
a923f32070 First pass of OBS scene change 2023-04-09 16:02:44 +01:00
Keith Edmunds
7dac80dcf6 Use QThreadPool to manage fades 2023-04-08 17:48:41 +01:00
Keith Edmunds
c0e1732bbc Fix replace_files prompt not showing 2023-04-06 18:51:08 +01:00
Keith Edmunds
c5c5c28583 Change PlaylistRows.row_number to plr_rownnum 2023-04-02 17:23:49 +01:00
Keith Edmunds
f3c86484fe Change remaining PlaylistRows.row_number to row_no 2023-04-02 15:14:11 +01:00
Keith Edmunds
f9f1e5f237 Change PlaylistRows.row_number to row_no 2023-04-01 19:59:25 +01:00
Keith Edmunds
5cb6e83cd5 Specifiy Python3 in hashbang line 2023-04-01 19:45:48 +01:00
Keith Edmunds
16a9880583 Improve track search performance
Searching for a track was wrapping the search string in % signs
(wildcards). The leading % meant the database didn't use the index.
Dropped leading % (user can add it manually if needed).
2023-04-01 19:45:07 +01:00
Keith Edmunds
69bfd3cff9 Default to moving existing track when adding a new track 2023-03-25 17:20:10 +00:00
Keith Edmunds
3a14207c71 Ensure we pass ints to signal 2023-03-25 16:30:58 +00:00