Keith Edmunds
9554336860
Move SQLAlchemy statements to models.py
2023-10-31 13:04:21 +00:00
Keith Edmunds
813b325029
Black reformatting, tidying
2023-10-31 08:15:24 +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
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
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
4a03596bd3
Ensure current track visible toggling hide/show played
2023-03-25 10:30:18 +00:00
Keith Edmunds
9c66333729
musicmuster refactor: signal next tracks, tab colouring
2023-03-19 15:21:02 +00:00
Keith Edmunds
728feb1c8e
Allow multiple selected rows to be marked unplayed
2023-03-19 13:47:49 +00:00
Keith Edmunds
c9c47c3133
Retain current/next colours when pasting tracks
2023-03-17 23:07:14 +00:00
Keith Edmunds
0b2e7c7e31
Update last played time when track ends
2023-03-17 22:50:54 +00:00
Keith Edmunds
a30f054eb0
Set tab colours correctly
2023-03-17 22:43:36 +00:00
Keith Edmunds
eafacc3b21
Retain current/next colouring after editing notes
2023-03-17 18:28:32 +00:00
Keith Edmunds
a29bf3fce5
Fix first track staying green after end
2023-03-17 16:27:01 +00:00
Keith Edmunds
b30f2d5cc3
Fix play with mplayer
2023-03-16 15:20:31 +00:00
Keith Edmunds
6bf9330b62
Fix 'called set_header on track row'
...
Ensure playlist is saved before updating track start/end times.
2023-03-15 18:28:37 +00:00
Keith Edmunds
f3631b2c2b
Synchronise row start/end updates
...
Row start/end time updates were being run in a different SQLAlchemy
session to the database updates and thus there was a lack of
synchronisation.
Now they run in the same session.
2023-03-14 22:59:39 +00:00
Keith Edmunds
3197c844a5
Print stack trace to stdout on internal error
2023-03-13 09:12:19 +00:00
Keith Edmunds
e22351386f
Fix bug editing header rows
2023-03-13 09:11:47 +00:00
Keith Edmunds
ee422aacb3
Update track times after drag and drop
2023-03-12 18:48:36 +00:00
Keith Edmunds
380806d27a
Change row to row_number
2023-03-12 18:43:23 +00:00
Keith Edmunds
c6840d2356
Improve copying track path
2023-03-12 18:41:44 +00:00
Keith Edmunds
453e42172b
Use Audacity and mplayer without session
2023-03-12 18:41:13 +00:00
Keith Edmunds
019bc87eb0
Fix sense of file_is_unreadable()
2023-03-12 18:38:00 +00:00
Keith Edmunds
ee64a4a035
Remove unused function _get_row_start_time
2023-03-12 17:08:13 +00:00
Keith Edmunds
9c67b9bd8e
Change row to row_number
2023-03-12 17:03:47 +00:00
Keith Edmunds
3cc90f8c11
Remove unneeded function _get_current_track_start_time
2023-03-12 16:53:13 +00:00
Keith Edmunds
71daccab12
Remove unneeded function _get_current_track_end_time
2023-03-12 16:51:02 +00:00
Keith Edmunds
ca86f59736
Rename function file_is_readable to file_is_unreadable
2023-03-12 16:47:45 +00:00
Keith Edmunds
d609656ae3
Change row to row_number
2023-03-12 16:44:12 +00:00
Keith Edmunds
f96e02d9ae
Remove unused function _deferred_save()
2023-03-12 16:43:51 +00:00
Keith Edmunds
6c53d59f1a
Fix adding/removing track from row
2023-03-12 16:23:56 +00:00
Keith Edmunds
b9fd7a5d21
Clean up editing
2023-03-12 16:23:36 +00:00
Keith Edmunds
669125794f
Change row to row_number
2023-03-12 16:22:59 +00:00
Keith Edmunds
4094b63f44
Switch to existing infotab if it contains required URL
2023-03-12 13:25:20 +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
39ec7f470b
Fixup section duration times
2023-03-11 16:05:10 +00:00
Keith Edmunds
16ad7ae5aa
Produce consistent log output
2023-03-11 16:02:26 +00:00
Keith Edmunds
d54f1bedda
Remove colon-in-path conditional fix
2023-03-10 23:11:23 +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
889d32cc90
Post editing fixes
...
Fix row or cell colour
Fix row height after expanding when editing starts
2023-03-08 20:09:15 +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
8dd13a2ba2
Log file that creates sessions
2023-03-08 20:07:07 +00:00
Keith Edmunds
dda74782b6
Keep section headers bold
2023-03-07 18:02:17 +00:00
Keith Edmunds
4af1d4906c
Never hide current or next row
2023-03-07 18:02:00 +00:00
Keith Edmunds
ea5e4a2215
Fix merge error
2023-03-05 20:23:43 +00:00
Keith Edmunds
e80a74cc40
Fixup track start/end times
2023-03-05 20:21:27 +00:00
Keith Edmunds
d92612c69a
Tidy up when track start/stop times are recalculated
2023-03-05 20:19:40 +00:00