Commit graph

89 commits

Author SHA1 Message Date
Christopher Snowhill
4bed0af868 Core Data Store: Handle concurrency properly
All concurrency from other threads should pass through the viewContext's
performBlock or performBlockAndWait functions, and no other way. So now,
all access to Core Data is either happening on the main thread, or by
using these code blocks, all of which will wait for their access to
proceed.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-10-30 16:54:52 -07:00
Christopher Snowhill
c9181f571f Better locking behavior for playlist storage
This should fix up potential locking issues with maintaining a copy of
the results set while certain other background actions may happen, such
as the player updating play counts while playing.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-10-11 23:09:05 -07:00
Christopher Snowhill
47258b02b1 [Core Data] Add access locking
Apparently we need this to prevent Core Data from stomping on itself
when another thread accesses it.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-15 07:00:11 -07:00
Christopher Snowhill
4df50c7fc3 Fix the Spotlight search panel
It was previously crashing horribly on adding search results. This makes
it actually functional, and renders it using a view-based table instead.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-15 06:18:01 -07:00
Christopher Snowhill
b4e3c05c87 [Playlist Loader] Load files in the background
Load new playlist entries in the background, asynchronously.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-06 14:28:14 -07:00
Christopher Snowhill
2c2a058126 Cog now requires macOS 10.13 as a minimum version
All optional fallback code for older versions has also been removed, and
everything now assumes 10.13.0 or newer. Some cases are still included
for point releases, such as 10.13.2.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-23 23:23:07 -07:00
Christopher Snowhill
5cb08291bf [Sandbox / Core Data] Refine global variable usage
Refine the global variable usage, eliminating double underscore prefixes
and trusting that static global variables will exist in the object where
the class was created. Got rid of that nasty NSApplication extension
hack that was previously in use.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-21 00:01:07 -07:00
Christopher Snowhill
333c6c7e8b [Spotlight Panel] Fixed to work with new Core Data
Fixed the implementation to work correctly with the new Core Data
storage system. Tracks will be garbage collected later.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-16 17:37:11 -07:00
Christopher Snowhill
4c95c943ef [Playlist Storage] Rewrite to use Core Data
Completely rewrite the playlist storage once again, this time with a
much faster Core Data implementation. It still uses a little magic for
Album Artwork consolidation, but string consolidation doesn't seem to be
needed to reduce the disk storage size. Works much faster than my silly
implementation, too.

Old implementations are still kept for backwards compatibility with
existing playlists.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-16 07:14:33 -07:00
Christopher Snowhill
b927f4c02b Replace more NSDictionary use with literals
Use literals to initialize fixed NSDictionary objects in various places.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 19:56:04 -08:00
Christopher Snowhill
85c7073649 Reformat my own source code with clang-format
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-06 21:49:27 -08:00
Christopher Snowhill
684951bdc0 Change a bunch of NSArray declarations to const collection literals 2022-01-18 18:12:57 -08:00
Christopher Snowhill
217b3d4cf9 Attempt to clean up 10.13+ stuff with fallbacks to the old ways 2021-09-23 00:49:51 -07:00
Christopher Snowhill
13bd399b31 Clean up most warnings and update some dependencies 2021-04-29 18:16:24 -07:00
Dzmitry Neviadomski
832fa6dbd0 Even more deprecations fixes. 2021-01-27 05:45:02 +03:00
Chris Moeller
0e3644177e Updated everything else to ARC, and plugged a release cycle. 2016-05-05 13:05:39 -07:00
Chris Moeller
97f6e8b472 mamburu: Made clicking on pop-up menu items of path control inside spotlight panel work 2013-10-11 06:35:53 -07:00
Chris Moeller
7f449edc14 mamburu: Fixed hanging/crashing on directory change in spotlight panel 2013-10-11 06:13:57 -07:00
Chris Moeller
e5a648578b mamburu: Logging improved, no more excessive logging in release builds 2013-10-11 05:03:55 -07:00
Chris Moeller
ec0e45381e Cleaned up most of the warnings, eliminated use of deprecated APIs, and fixed the hotkeys crashing. 2013-10-03 01:00:58 -07:00
vspader
288c5cbee5 Misc leaks fixes. 2009-09-01 21:14:07 -07:00
vspader
a1a50b6f8b Moved Spotlight panel into English.lproj. 2009-03-07 13:38:25 -08:00
vspader
03937f480b Cleaned up modified add behavior. 2009-02-28 14:22:33 -08:00
vspader
9ad32e82ad Moved commonly used file to a new location. 2009-02-28 09:45:08 -08:00
vspader
3b9d20fdc5 Fixed sorting for non-0 padded files. 2009-02-28 09:41:37 -08:00
vasfed
e063790e93 Updated APL plugin to use new protocol
Added support for behavior modifiers on addition/opening of files
Added Command+Control as modifier for open/enqueue
2008-05-09 21:24:49 +00:00
vspader
ae469a43ec Fix for spotlight crash. 2008-03-13 02:07:49 +00:00
matthewleon
e24ee695a6 Spotlight window properly saves location. 2008-03-11 22:10:18 +00:00
vspader
208065494c Fix for spotlight playlistentry dealloc and added missing fields to playlistentry dealloc. 2008-03-09 02:05:00 +00:00
matthewleon
c94d31f6d9 Dealloc for PlaylistEntry seems to shrink memory leak. 2008-03-09 00:22:48 +00:00
matthewleon
2124066761 Wrote dealloc for SpotlightPlaylistEntry. Still need to find large leak. 2008-03-08 23:47:29 +00:00
matthewleon
2d00f4b70b Spotlight panel font size bindings completed. 2008-03-05 13:16:06 +00:00
matthewleon
34fc115253 Playlist sorts are case insensitive. 2008-03-05 12:26:30 +00:00
vspader
9ded206919 Fixed tab in spotlight panel. 2008-03-04 01:03:13 +00:00
vspader
5346f0dbde Fixed font-size changing. 2008-03-04 01:00:09 +00:00
matthewleon
69e802052e Spotlight sorts by track number properly. 2008-03-03 23:02:52 +00:00
matthewleon
9e8173bc74 PlaylistEntry cleanup. 2008-02-29 21:54:09 +00:00
matthewleon
5346d85099 Fixed compiler warnings by converting PlaylistEntry length property to NSNumber. 2008-02-29 20:09:59 +00:00
vspader
b7beb276f2 Moved SpotlightController registerDefaults to awakeFromNib to hopefully prevent crash. 2008-02-23 14:09:34 +00:00
areff
a624737861 Both File Drawer and Spotlight Panel will now show and hide when their shortcuts are pressed. 2008-02-21 10:45:09 +00:00
vspader
eeba50f6e1 Cleaned up PlaylistEntry. 2008-02-20 00:44:40 +00:00
matthewleon
94f23c4fdb Spotlight: Search scopes work and crash solved. We now return to regular programming. 2008-02-18 20:46:53 +00:00
matthewleon
b6a46c5ca1 Search scopes no longer work but the program won't crash :) 2008-02-18 20:40:02 +00:00
matthewleon
67816346e0 Spotlight: Elegant solution to storing search scopes. 2008-02-18 20:09:02 +00:00
matthewleon
aa3b716e09 Fixed Spotlight import. 2008-02-18 16:55:31 +00:00
matthewleon
b68a2c3a69 Overhauled Spotlight metadata importing to make it more easily expandable and reuse NSValueTransformer code. 2008-02-18 12:59:20 +00:00
matthewleon
678f6e2dbb Eliminated SpotlightPlaylistView, which is redundant for the time being. 2008-02-18 10:28:24 +00:00
matthewleon
a02859a3fc Moved rowHeight binding of PlaylistView from IB into code. 2008-02-18 10:21:34 +00:00
matthewleon
7f52608e6c Font size implemented through bindings. 2008-02-18 00:11:38 +00:00
vspader
c2a2f531a8 Moved StringToURLTransformer initialize code. 2008-02-17 21:18:01 +00:00