Commit Graph

521 Commits

Author SHA1 Message Date
Keith Edmunds
6aa09bf28a Save new playlist (commit to db) 2024-05-02 22:44:11 +01:00
Keith Edmunds
dfc51e1399 Hover previous track to see list
Fixes #205
2024-04-28 17:07:02 +01:00
Keith Edmunds
80687df82e Don't react to second of two quick 'return' key presses
Fixes #228
2024-04-28 13:15:15 +01:00
Keith Edmunds
09dcba90a9 Attempt to detect sound system access problem
Fixes #232
2024-04-28 13:02:54 +01:00
Keith Edmunds
e179e57459 Add required session.commit() calls 2024-04-27 21:56:11 +01:00
Keith Edmunds
2e8fae99ed Pull in recent V3 updates 2024-04-27 21:54:17 +01:00
Keith Edmunds
a9763b7a11 Initial GUI test running. Test coverage: 42%. 2024-04-27 21:52:31 +01:00
Keith Edmunds
7cd03d7a2b Fix up db import 2024-04-27 21:52:31 +01:00
Keith Edmunds
9d44642fea Migrate to Alchemical 2024-04-27 21:52:28 +01:00
Keith Edmunds
6890e0d0c2 Improve test coverage 2024-04-27 21:51:47 +01:00
Keith Edmunds
ebf62fe161 Fix #233 2024-04-27 18:47:06 +01:00
Keith Edmunds
4c638ab608 More issue #223 debug 2024-04-24 17:56:16 +01:00
Keith Edmunds
2454e8e4b9 Tidy up logging around issue #223 2024-04-13 10:39:51 +01:00
Keith Edmunds
e813a80a5b Debugging for #223 2024-04-05 11:23:00 +01:00
Keith Edmunds
92320c8922 Re-enable status line messages re play controls enabled/disabled 2024-04-05 10:21:26 +01:00
Keith Edmunds
4714364517 Resize rows on copy/paste
Fixes #226
2024-03-27 08:47:32 +00:00
Keith Edmunds
cf66cef60a Use dialog box to check for unintended play next track 2024-03-25 17:48:56 +00:00
Keith Edmunds
50b051a864 Improve resize rows speed 2024-03-22 14:21:37 +00:00
Keith Edmunds
b116f062e9 Update packages, fix one bug 2024-03-01 17:58:25 +00:00
Keith Edmunds
ab867c1a67 Logging changes to try to debug #223 2024-03-01 11:07:42 +00:00
Keith Edmunds
f0c6d884ef Fix bug importing tracks with no row selected 2024-02-15 23:00:27 +00:00
Keith Edmunds
c511bf053e Rework Audacity initialisation 2024-02-10 15:51:23 +00:00
Keith Edmunds
af6e0f69be Speed up changing to tab with lots of tracks
Fixes: #219
2024-01-19 10:16:28 +00:00
Keith Edmunds
2ecb67629e Don't exit if Audacity not running
Handle Audacity integration better

Fixes: #215
2024-01-19 10:12:41 +00:00
Keith Edmunds
4fce750223 Refactor / simplify start/stop times
Fixes #218
2024-01-19 09:58:52 +00:00
Keith Edmunds
fcbdfc65ac Resize rows after hiding/showing played
Fixes #216
2024-01-19 09:57:25 +00:00
Keith Edmunds
c5dd913b98 Resize rows on show/hide played 2024-01-18 22:59:02 +00:00
Keith Edmunds
b0278b92b0 Try to eliminate occasional short pause at start of track
Made playing the track the last thing in play_next()
2024-01-14 15:11:38 +00:00
Keith Edmunds
128fe2925f Disable selected row timing during move_unplayed 2024-01-12 10:36:05 +00:00
Keith Edmunds
d3999ca63d Fix moving rows between playlists 2024-01-05 09:54:55 +00:00
Keith Edmunds
8de9bf0d6e Deselect track after pasting 2023-12-22 15:36:42 +00:00
Keith Edmunds
37711f883f Rework Audacity import/export 2023-12-22 13:40:24 +00:00
Keith Edmunds
3922be2642 Report track import errors correctly 2023-12-22 13:21:12 +00:00
Keith Edmunds
e43c9f3b17 Add successive tracks below those just added 2023-12-17 14:33:24 +00:00
Keith Edmunds
4b6c8b0634 Rewrite logging
Add lots of log.info() statements
2023-12-17 00:12:03 +00:00
Keith Edmunds
2432039b72 Best-efforts resize row heights on open 2023-12-16 12:37:41 +00:00
Keith Edmunds
74bdbe2975 Improve open in / import from Audacity 2023-12-16 12:34:23 +00:00
Keith Edmunds
f228a371f2 Ensure all rows correctly resized for height 2023-12-16 02:37:49 +00:00
Keith Edmunds
b74007119d Name source and proxy models consistently 2023-12-16 02:36:16 +00:00
Keith Edmunds
45243759b8 Stackprinter dump if no fade graph 2023-12-15 18:46:30 +00:00
Keith Edmunds
90f8e20843 Fix scroll to current/next track with played tracks hidden 2023-12-15 18:27:42 +00:00
Keith Edmunds
184318078f Better fix for setting track/header row spans correctly 2023-12-15 17:55:22 +00:00
Keith Edmunds
2f0ad5cd52 Fix track rows sometimes displayed as header rows 2023-12-15 14:10:54 +00:00
Keith Edmunds
7ed54f2bab Fix issues saving/restoring active tab
Fixes #212
2023-12-08 14:00:59 +00:00
Keith Edmunds
243bc765f9 Clean up editing
No need to disable (and re-enable) play controls.

Fixes #191
2023-12-01 22:44:28 +00:00
Keith Edmunds
f9b8f1d8d3 V3 tweaks and polishes 2023-11-28 19:59:45 +00:00
Keith Edmunds
0f1d5117cc V3 tweaks 2023-11-27 22:44:20 +00:00
Keith Edmunds
4eabf4a02a WIP V3: ready for testing 2023-11-27 21:46:19 +00:00
Keith Edmunds
b1442b2c7d WIP V3: check track already present in playlist when adding 2023-11-27 20:55:24 +00:00
Keith Edmunds
3cab9f737c WIP V3: click on current/next header scrolls to track 2023-11-27 16:16:33 +00:00
Keith Edmunds
02391f04b1 WIP V3: hide played tracks working 2023-11-27 11:27:25 +00:00
Keith Edmunds
480c832852 WIP V3: implement searching with QSortFilterProxyModel (ooo!) 2023-11-26 15:22:01 +00:00
Keith Edmunds
c626d91f26 WIP V3: copy and paste rows to same or other playlist works 2023-11-23 10:59:03 +00:00
Keith Edmunds
551a574eac WIP V3: move unplayed rows 2023-11-23 04:44:36 +00:00
Keith Edmunds
48b180e280 WIP V3: move selected tracks works 2023-11-22 19:57:14 +00:00
Keith Edmunds
223fb3bdec WIP V3: tests for moving rows between playlists pass 2023-11-22 16:57:16 +00:00
Keith Edmunds
5769e34412 WIP V3: move ImportTrack back to musicmuster.py 2023-11-20 12:40:45 +00:00
Keith Edmunds
e3d20c9bdc WIP V3: cleanup 2023-11-20 11:24:12 +00:00
Keith Edmunds
5add1f01c6 WIP V3: use signals to open wikipedia/songfacts pages
Also open wikipedia page on selecting next track
2023-11-19 21:50:39 +00:00
Keith Edmunds
88e638a56e WIP V3: search wikipedia/songfacts from menu 2023-11-19 21:31:09 +00:00
Keith Edmunds
db547cbdb7 WIP V3: import tracks working 2023-11-19 16:02:44 +00:00
Keith Edmunds
262ab202fc WIP V3: catch proposed duplicate playlist name
Fixes #197
2023-11-19 11:13:49 +00:00
Keith Edmunds
f4a374f68c WIP V3: select duplicate rows working 2023-11-19 03:09:58 +00:00
Keith Edmunds
77774dc403 WIP V3: marn new playlist as open 2023-11-18 15:46:07 +00:00
Keith Edmunds
8f2ab98be0 Fix create playlist from template and tab handlding
Tab restore code rewritten.
2023-11-18 14:29:52 +00:00
Keith Edmunds
199f0e27fa WIP V3: fixup row insertion/deletion
All row insertions and deletions are now wrapped in beginRemoveRows /
endRemoveRows (and similar for insertions).
2023-11-17 22:17:47 +00:00
Keith Edmunds
e37f62fe87 WIP V3: fixup closing tabs 2023-11-17 22:14:51 +00:00
Keith Edmunds
eae8870d4d WIP V3: resume working 2023-11-16 19:09:41 +00:00
Keith Edmunds
2861511f1f WIP V3: remove functions, formatting 2023-11-16 00:08:12 +00:00
Keith Edmunds
1b4411d7e5 Set up fade graph before playing track 2023-11-13 21:24:21 +00:00
Keith Edmunds
d2254b6ddd WIP V3: Use config settings for warning timers 2023-11-13 21:22:05 +00:00
Keith Edmunds
813588e8e9 WIP V3: track stop implemented 2023-11-07 20:11:12 +00:00
Keith Edmunds
6f31ed7afc WIP V3: set up track_sequence handling 2023-11-06 20:00:04 +00:00
Keith Edmunds
c20dc0288f V3 WIP: implement playing_track structure 2023-11-05 08:15:59 +00:00
Keith Edmunds
a8ac67b9e3 V3 WIP Black 2023-11-05 08:03:02 +00:00
Keith Edmunds
a35905dee8 WIP V3: play track working 2023-11-03 15:16:27 +00:00
Keith Edmunds
e137045812 WIP V3: select next track works with caveats
Peformance isn't great
Selecting a non-existent track isn't caught
2023-11-01 22:53:25 +00:00
Keith Edmunds
d9ad001c75 Relayout files
Created classes.py and moved common classes to classes.py. Ordered
imports.
2023-11-01 19:08:22 +00:00
Keith Edmunds
15ecae54cf Move MusicMusterSignals into helpers 2023-11-01 07:49:40 +00:00
Keith Edmunds
fedcfc3eea WIP V3: Add track to header row implemented 2023-10-31 20:09:45 +00:00
Keith Edmunds
9554336860 Move SQLAlchemy statements to models.py 2023-10-31 13:04:21 +00:00
Keith Edmunds
734d5cb545 Make MusicMusterSignals a singleton class
Moved into datastructures.py
2023-10-31 08:14:34 +00:00
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
858c86d907 test_insert_header_row passes 2023-10-25 22:17:52 +01:00
Keith Edmunds
95c7ccbf34 WIP V3: editing saves 2023-10-21 13:49:13 +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
978b83ba67 WIP: V3 header rows span columns 2023-10-19 18:29:09 +01:00
Keith Edmunds
bec336d2a3 WIP V3: playlist populates from database 2023-10-19 13:49:07 +01:00
Keith Edmunds
d57ffbdb09 Implement select duplicate rows
Fixes #157
2023-10-16 23:16:56 +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
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
87ab973439 Implement playlist range sort and unsort 2023-10-12 02:43:17 +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
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
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
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
65f2f4f351 Ensure volume is set to VOLUME_VLC_DEFAULT on play 2023-04-21 14:37: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
a8ffa6f231 Upgrade PyQt5 → PyQt6 2023-04-12 21:55:13 +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
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
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
3a14207c71 Ensure we pass ints to signal 2023-03-25 16:30:58 +00:00
Keith Edmunds
25287c8f7f Tidy playlist header colours
Simplify and also ensure that playlist tab is uncoloured after
unsetting next track.
2023-03-25 15:52:17 +00:00
Keith Edmunds
9c66333729 musicmuster refactor: signal next tracks, tab colouring 2023-03-19 15:21:02 +00:00
Keith Edmunds
a30f054eb0 Set tab colours correctly 2023-03-17 22:43:36 +00:00
Keith Edmunds
ca86f59736 Rename function file_is_readable to file_is_unreadable 2023-03-12 16:47:45 +00:00
Keith Edmunds
f96e02d9ae Remove unused function _deferred_save() 2023-03-12 16:43:51 +00:00
Keith Edmunds
b126a70139 Fix and improve hide played tracks
Last played track is now not hidden until
Config.HIDE_AFTER_PLAYING_OFFSET milliseconds after next track starts
playing.
2023-03-12 13:00:46 +00:00
Keith Edmunds
f30fff5356 Fix development bug that truncated playlists
Saving of playlist and updating note colours more consistent.
2023-03-12 10:33:10 +00:00
Keith Edmunds
80e698680b Clean up header and note updates
• rationalise number of functions
• make colour handling cleaner
• optimise when playlist is saved
2023-03-12 09:53:11 +00:00
Keith Edmunds
ad071bb74b Consistently use clear_next() to clear next track 2023-03-10 23:10:54 +00:00
Keith Edmunds
2422adea21 Fix play sometimes stopping almost immediately 2023-03-10 22:34:23 +00:00
Keith Edmunds
ee7436221e Playlist save / session work 2023-03-09 08:35:16 +00:00
Keith Edmunds
ae1835a421 Use signals to updates note text after editing
Hypothesis: this stops some kind of database race condition or
similar.
2023-03-08 20:08:17 +00:00
Keith Edmunds
c5f89dbcf4 WIP playlists refactor: unify note and tab colour settings 2023-03-05 19:44:13 +00:00
Keith Edmunds
530ee60015 WIP: playlists.py refactoring 2023-03-04 23:02:21 +00:00
Keith Edmunds
613fa4343b Fix cancelling creation of new playlist 2023-02-26 22:03:13 +00:00
Keith Edmunds
45a564729b WIP playlists refactor including fixing saving playlist 2023-02-25 19:45:56 +00:00
Keith Edmunds
cc2f3733b2 Start using signals to call for saving playlist 2023-02-25 19:44:02 +00:00
Keith Edmunds
58ec47517d WIP: playlists.py refactor 2023-02-24 19:31:38 +00:00
Keith Edmunds
c14f03f0c1 WIP: playlists.py refactor
Reset colour of current track when it has finished and is on a
different tab to the next track.
2023-02-19 21:31:06 +00:00