Commit Graph

388 Commits

Author SHA1 Message Date
Bryan Schumaker 3d1b8773d5 ocarina: Added album art
I put it on the now playing page for now.  Eventually I'll put it in
other places, too.
2011-05-01 12:19:49 -04:00
Bryan Schumaker ad734ae8d3 ocarina: clean up export button 2011-05-01 12:19:39 -04:00
Bryan Schumaker a5dfe5302c ocarina: new export button
I also removed the old code
2011-05-01 12:19:31 -04:00
Bryan Schumaker 7c772e5315 ocarina: remove some more commented out code 2011-05-01 12:19:21 -04:00
Bryan Schumaker 4f129cae03 ocarina: don't expand long attribute list to variables
keep it as a tuple and pass it as a generic argument instead
2011-05-01 12:17:29 -04:00
Bryan Schumaker 832aec4daf ocarina: remove old pbar.py
The new slider code is smaller and more readable.
2011-05-01 12:17:18 -04:00
Bryan Schumaker 3fa902186b Ocarina: Added progress slider
Click to seek
2011-05-01 12:17:08 -04:00
Bryan Schumaker f9c1538a58 ocarina: Remove components/box.py
What was this file even used for...?
2011-05-01 12:16:58 -04:00
Bryan Schumaker 97189d7b93 Ocarina: Remove old menu code
Because nothing uses it anymore...
2011-05-01 12:16:47 -04:00
Bryan Schumaker de1fafcbc1 Ocarina: Added common menu items
Right now, it's just the "pause after current track" feature.
Eventually there may be more.
2011-05-01 12:16:38 -04:00
Bryan Schumaker 096564c942 ocarina: remove commented out code from footer 2011-05-01 12:16:27 -04:00
Bryan Schumaker 02d2b5c621 ocarina: remember footer state 2011-05-01 12:16:17 -04:00
Bryan Schumaker f8fb785ad0 ocarina: Remove old button code
This removes the old LikeButton(), DislikeButton(), and ToggleButton()
2011-05-01 12:16:05 -04:00
Bryan Schumaker a519ad62ab ocarina: Added like and dislike buttons 2011-05-01 12:15:56 -04:00
Bryan Schumaker 27c3d2b3f1 ocarina: Remove commented out code
This includes all of ocarina/components/label.py
2011-05-01 12:15:46 -04:00
Bryan Schumaker aac05e92b5 Ocarina: Added year, length and playcount attrs to nowplaying
It's begining to look like the Ocarina 4.3 style now playing page...
2011-05-01 12:15:34 -04:00
Bryan Schumaker 6c20398699 ocarina: Show some attributes on the now playing page
Title, album, and artist for now.
2011-05-01 12:15:22 -04:00
Bryan Schumaker 8ea0036df0 Ocarina: Added now playing page to detailed view
This is the first of (probably) multiple notebook pages that will be
added.  It still needs to show more information, but this is a start.
2011-05-01 12:15:12 -04:00
Bryan Schumaker 103c6bea35 ocarina: Added notebook for detailed information
I eventually want to support multiple pages and other stuff.
2011-05-01 12:15:00 -04:00
Bryan Schumaker 5297991b89 ocarina: Hide info bar when up button clicked
Once I make my expanded display, I will show that as well
2011-05-01 12:13:11 -04:00
Bryan Schumaker 21d6f57e89 Ocarina: Remove commented out code from library / playlist / queue
I was keeping this code as a reference, but I already implement
everything it does.  It can be removed now.
2011-05-01 12:12:55 -04:00
Bryan Schumaker 864f64cc84 ocarina: Move goto and clear functions
Now they are created right before the buttons are.  This makes it so I
can return buttons that do exactly what I want every time.
2011-05-01 12:12:41 -04:00
Bryan Schumaker f8c64e0f78 ocarina: Added random button
I also added code for creating toggle buttons easily.
2011-05-01 12:12:30 -04:00
Bryan Schumaker 86bac243d2 ocarina: clear current page
This clears whatever is on the current page and saves changes (in the
case of the playlist and library)
2011-05-01 12:12:22 -04:00
Bryan Schumaker 3b50c4071c ocarina: goto current song
I do this when the goto button is pressed and also when the song
changes.
2011-05-01 12:12:13 -04:00
Bryan Schumaker bce7651be5 ocarina: Set text on footer labels
This sets (title, album), position and duration values
2011-05-01 12:12:02 -04:00
Bryan Schumaker 5b5a232b43 ocarina: Add more callbacks
This should make the code more readable and useable
2011-05-01 12:11:52 -04:00
Bryan Schumaker d72d16f39d ocarina: Added callback methods
I eventually want to remove the event system from libsaria.  My first
step in doing this is to move usage of the event system in Ocarina to
one place.
2011-05-01 12:11:42 -04:00
Bryan Schumaker 5ab592dcda ocarina: Add buttons to tiny footer
The new buttons are much simpler than my old ones.  This should work out
better.
2011-05-01 12:11:14 -04:00
Bryan Schumaker b5665b016f Ocarina: Began redoing footer
The new code should be more maintainable and less confusing /
intimidating.
2011-05-01 12:11:03 -04:00
Bryan Schumaker 5d4d86275e Ocarina: move footer.py to new directory
I will split it up into multiple files
2011-05-01 12:10:43 -04:00
Bryan Schumaker f5eed60d78 ocarina: Play double clicked songs
Otherwise, what's the point of a gui?
2011-05-01 12:10:28 -04:00
Bryan Schumaker 1e7d992848 ocarina: Remove commented out code from ocarina/__init__.py
Not needed anymore.
2011-05-01 12:10:12 -04:00
Bryan Schumaker 35bb4a0ab3 ocarina: Remove dead code
This code was commented out for my gui revamp.  I don't need it anymore.
2011-05-01 12:10:00 -04:00
Bryan Schumaker 9a1a0471c5 ocarina: Re-added queue
Once again, using Ocarina-5.0 concepts (such as hiding the tab when the
queue is  empty)
2011-05-01 12:09:47 -04:00
Bryan Schumaker 13a74e47c3 Ocarina: Remove from playlist
I can remove multiple songs from the playlist now.
2011-05-01 12:09:32 -04:00
Bryan Schumaker bcd42cfea4 Ocarina: Add songs to playlist
Using a right click menu from the library
2011-05-01 12:09:09 -04:00
Bryan Schumaker 33b7f1ba0e Ocarina: Re-added playlist tab
The new tab uses my ocarina 5.0 concepts
2011-05-01 12:08:52 -04:00
Bryan Schumaker f902c11f9a ocarina: Filter the library again
This time, I use concepts I played with for Ocarina 5.0
2011-05-01 12:07:56 -04:00
Bryan Schumaker 0c02d6eff3 ocarina: Remove old, commented out code
It's not needed any more...
2011-05-01 12:07:38 -04:00
Bryan Schumaker 9c6db9ba9b ocarina: New listview code
I can fill in the listview from the library.
2011-05-01 12:07:23 -04:00
Bryan Schumaker 6385c1f342 Ocarina: Begin rewriting header
I show the entry, and I call a filter function for the current page.
2011-05-01 12:05:59 -04:00
Bryan Schumaker d20d4c3fcd Ocarina: Playlist and library tabs
I've readded these tabs, but I don't fill them in yet.  That'll wait
until I rewrite sources.
2011-05-01 12:05:46 -04:00
Bryan Schumaker b2db7d3327 Began gui rewrite
Cleaning up the code was proving to be more difficult than I initially
thought.  I have decided to rewrite the gui to make it less intimidating
and more easily modified.
2011-05-01 12:05:31 -04:00
Bryan Schumaker 8255c17ad1 Initialize library, playlist, queue from ocarina/__init__.py
It can't be done in ocarina.py anymore, so it has to be moved there.
2011-05-01 12:04:23 -04:00
Bryan Schumaker 36c3770e4b ocarina: Initialize from ocarina/__init__.py
This will allow me me to replace ocarina.py easily..
2011-05-01 12:03:54 -04:00
Bryan Schumaker dfa3eb0af1 Move Page() class to new file
This helps with my cleanup
2011-05-01 12:03:42 -04:00
Bryan Schumaker 3aee2cd867 move body.py to new directory
This should help to clean up everything a bit more.
2011-05-01 12:03:27 -04:00
Bryan Schumaker fb4e863b64 Move Source() class to ocarina/sources/__init__.py
This finishes my initial attempt at cleaning up this portion of the gui.
2011-05-01 12:03:12 -04:00
Bryan Schumaker 965ff4dc18 Move listview to new file
Continuing my source gui cleanup
2011-05-01 12:02:26 -04:00
Bryan Schumaker f194444895 Move ListStore creation code to new file
This continues my sources cleanup.
2011-05-01 12:02:15 -04:00
Bryan Schumaker 74545558a7 Move source column code to new file
This patch also moves the column into a new file.  This is the beginning
of my attempt to clean up the code used to display the song list.
2011-05-01 12:01:40 -04:00
Bryan Schumaker 2c1865d257 Measure startup time in ocarina/__init__.py
I was doing some of the calculation in ocarina.py, but it can be done
easier (and more accurately) in ocarina/__init__.py
2011-05-01 12:01:25 -04:00
Bryan Schumaker 08fa12d76d Don't create menu items in ocarina.py
I was creating the "Pause after current track" menu item in ocarina.py,
but it can easily be done in menu.py.
2011-05-01 12:00:55 -04:00
Bryan Schumaker c62ffd7e1f Initialize body in ocarina/__init__.py
This helps clean up ocarina.py a bit more.
2011-05-01 12:00:40 -04:00
Bryan Schumaker 7caeddf615 More window cleanups
This is looking like a less intimidating file now.  It should be more
usable going forward.
2011-05-01 12:00:23 -04:00
Bryan Schumaker ef78427954 Clean up window creation
I do as much as I can outside of the init() function to make the code
more readable.  Doing everything in init() can make things more
complicated and annoying.
2011-05-01 12:00:09 -04:00
Bryan Schumaker 6d08dedba5 ocarina: Single add_to_queue() function
This function is similar to the add_to_playlist() function I recently
added.  The idea is to have the queue add things to itself, rather than
having the playlist and library implement this function independently.
2011-05-01 11:59:07 -04:00
Bryan Schumaker f8ed280ba1 ocarina: Playlist adds selected to playlist
It was silly to have the library control adding songs to the playlist.
The playlist should provide an easy function that takes the selected
songs and adds them.
2011-05-01 11:58:47 -04:00
Bryan Schumaker 377c1a496d ocarina: Set header / footer visibility when adding page
This allows me to store the visible settings in the Page() class, rather
than having to store it with the rest of the content.
2011-05-01 11:54:23 -04:00
Bryan Schumaker c185524d62 ocarina: Selectively add header and footer to tab pages
If I don't want the header or footer on a tab page, I shouldn't have to
draw it.  This patch gives me a way to do that.
2011-05-01 11:54:06 -04:00
Bryan Schumaker 94f428e615 ocarina: sources.cur_lib_id doesn't exist anymore
I should use sources.get_attrs("id") to find the current id instead.
2011-05-01 11:53:42 -04:00
Bryan Schumaker c78f806244 plugins: All plugins have a __NAME__ value 2011-05-01 11:43:50 -04:00
Bryan Schumaker d28ca013f3 ocarina: Added initial plugin configuration page
This page will eventually be used to stop, start, and uninstall plugins.
2011-05-01 11:43:32 -04:00
Bryan Schumaker 8c2e7605ef ocarina: Create settings window every time
Trying to save the window each time wasn't working well.  I found that
clicking the preferences button a second time would display an empty
window, rather than what was saved.  The user probably won't notice the
time it takes to create the window again.
2011-05-01 11:43:14 -04:00
Bryan Schumaker 1e52558279 ocarina: Horizontal like / dislike buttons
This patch changes the like and dislike buttons to be arranged
horizontally, rather than vertically.
2011-05-01 11:42:53 -04:00
Bryan Schumaker 847b51908a ocarina: General settings page
The settings will be shown in a notebook, with a tabbed interface.  This
patch adds a "general" page for basic settings.
2011-05-01 11:42:32 -04:00
Bryan Schumaker 471db697e9 ocarina: Selectively create settings window
We should only do this if the window doesn't already exist.
2011-05-01 11:42:12 -04:00
Bryan Schumaker 93dcfe5f8e ocarina: New window for settings
Clicking the settings button will now create a new window for
configuring settings.
2011-05-01 11:41:58 -04:00
Bryan Schumaker fd1514202f ocarina: Create settings module
This module is for controlling various settings.  It will create a new
window and respond to any events.
2011-05-01 11:40:52 -04:00
Bryan Schumaker f5d6990bc0 ocarina: Create preferences button
This button will open a window for configuring Ocarina when clicked.
For now, clicking it will print out a message.
2011-05-01 11:40:30 -04:00
Bryan Schumaker 23cd4da304 Track version in libsaria
Tracking two different versions for Ocarina and libsaria was too much
work.  From now on, Ocarina and libsaria will have the same version.
Ocarina's version string will be set based on libsaria.
2011-05-01 11:40:09 -04:00
Bryan Schumaker cd914936f3 Bump minor version and mark development as True 2011-05-01 11:39:41 -04:00
Bryan Schumaker 5903d085b2 Current version is 4.3.3 2011-05-01 11:05:55 -04:00
Bryan Schumaker 7c4f32c30b ocarina: User cancels manual album art
This used to cause the album art to change to the Ocarina icon.  When
the user cancels setting album art, None is returned from the selector
function.  We should check for this before trying to set the image and
return early if path is None.
2011-05-01 11:05:55 -04:00
Bryan Schumaker 50cded315e bump bug version 2011-05-01 11:05:55 -04:00
Bryan Schumaker 6201f707cb Mark __dev__ as False
4.3 is almost done!
2010-12-30 11:26:20 -05:00
Bryan Schumaker f6b20e345a Use slash key to grab filter focus
This may be more natural to people familiar with vim.
2010-12-29 13:29:27 -05:00
Bryan Schumaker 4a34ce51f1 Added uptime() to ocarina package
Calling this function will return an object representing the total
uptime of Ocarina.
2010-12-27 12:22:47 -05:00
Bryan Schumaker bdd9c331e8 Track startup time in ocarina/__init__.py
The ocarina package can track the startup time better than the launcher
script.  Tracking it in the package will also make startup time
available to other callers.
2010-12-27 12:19:22 -05:00
Bryan Schumaker 1c4621a79a Set random directly
This makes much more sense than toggling it.  Toggling caused an
inconsistent state during testing.
2010-12-23 09:51:09 -05:00
Bryan Schumaker aa0f832356 Refresh the playlist after loading
After we load an xspf file, we should refresh the playlist to reflect
changes.
2010-12-18 16:44:18 -05:00
Bryan Schumaker 77f065b703 Export playlist to xspf
This patch adds support for saving a playlist as an xspf xml file.  I
only use the <location> tag to keep it simple.
2010-12-18 16:22:06 -05:00
Bryan Schumaker f869b17e2f Rename backup functions
Backup has been renamed to export
Restore has been renamed to import_xml
2010-12-18 14:52:31 -05:00
Bryan Schumaker 29152aca1d ToggleButton generic toggled signal
The ToggleButton should automatically respond to the toggled signal
2010-12-18 11:19:55 -05:00
Bryan Schumaker d8c5814f5a ToggleButton tooltip 2010-12-18 11:17:58 -05:00
Bryan Schumaker e1a709b6c3 Create ToggleButton class
The ToggleButton class is a base class for buttons to inherit from.  So
far, this is only the RandomButton, LikeButton, and DislikeButton
2010-12-18 11:15:12 -05:00
Bryan Schumaker 44ee38dd91 Remove pointless whitespace 2010-12-18 11:10:45 -05:00
Bryan Schumaker a0d231e964 Move RandomButton()
This puts it closer to the like / dislike buttons, since they are all
toggle buttons
2010-12-18 11:09:41 -05:00
Bryan Schumaker 05297d850c Remove unused code from like / dislike buttons 2010-12-18 11:08:37 -05:00
Bryan Schumaker a1293fb351 Draw like / dislike buttons
This patch adds the like and dislike buttons to the gui.
2010-12-18 11:05:53 -05:00
Bryan Schumaker 47dbd200ab Add like / dislike buttons
This patch adds buttons for liking and disliking a song.  I also use
this patch to add like / dislike icons.
2010-12-18 11:05:17 -05:00
Bryan Schumaker d380d0ec45 Use built-in selected_foreach
I also made a wrapper so I can do things with each selected ID.
2010-12-17 08:18:33 -05:00
Bryan Schumaker 23e93ee7ae Reorder shortcuts
If they are in arranged alphabetically the code is easier to read...
2010-12-17 08:09:02 -05:00
Bryan Schumaker 77130b0251 Added more shortcuts
I can now switch between the full and compact footer.  I can also goto
the current song.
2010-12-17 08:06:54 -05:00
Bryan Schumaker 07272cf65e Remove the timeout add function pointer
This is no longer needed for the filter entry, so I'll remove it
2010-12-16 22:42:07 -05:00
Bryan Schumaker c2e7b1bc31 Escape key focuses nothing
Pressing the escape key will no longer focus the tabs, but instead will
focus nothing.  I think this is better visually.
2010-12-16 22:33:50 -05:00
Bryan Schumaker 10eafb61b5 Improved shortcut behavior
When we successfully execute a shortcut, we shouldn't let anything else
happen in the event path.  Therefore, I stop the key-press-event if it
is successfully handled.

This patch also adds shortcuts for seeking during playback.
2010-12-16 22:16:39 -05:00
Bryan Schumaker f5e21df148 Button seeking controls
The gui seeking buttons should use the controls seeking functions,
rather than seeking through the audio layer directly.
2010-12-16 22:09:45 -05:00
Bryan Schumaker d45ea464ef Use a better shortcut system
The gtk.Entry() approach wasn't working.  My new way allows me to catch
keypresses directly from the window, rather than waiting for an entry to
change.
2010-12-16 22:02:34 -05:00
Bryan Schumaker 29665add24 Prevent gtk warning on startup
I need to check if the Source() has height 0 before scrolling.  A better
solution is to scroll when everything becomes visible, but I don't want
to figure that out right now... :P
2010-12-16 21:54:19 -05:00
Bryan Schumaker 243eb63f8a Don't keep saving window size
If the window size hasn't changed, we should not keep setting it.
2010-12-16 11:03:09 -05:00
Bryan Schumaker 21083ab1f7 Hide filter entry by default 2010-12-15 22:29:31 -05:00
Bryan Schumaker 9d08c5ce36 Added basic keyboard shortcuts
This patch adds an entry for keyboard shortcuts.  Right now, I only
support play/pause, stop and next.  I eventually plan to add more,
though.
2010-12-15 22:28:07 -05:00
Bryan Schumaker add6a61c30 Add body_box
The body_box is a vbox containing the main tabs (for now).  This will
soon be used for a keyboard shortcut entry, too.
2010-12-15 21:57:01 -05:00
Bryan Schumaker aa8f7d6188 Remove filter delay
I don't think I need this anymore ... filtering still feels fast without
it.
2010-12-15 09:32:52 -05:00
Bryan Schumaker c0a27fb02c Move update library button
I moved it to the other side of the clear button so that it's farther
away from the goto button.
2010-12-15 08:00:13 -05:00
Bryan Schumaker ee53d76238 Added a comment 2010-12-14 22:53:29 -05:00
Bryan Schumaker d57db55d46 Don't scroll if Source widget not realized
This was giving a gtk warning, and is fairly easy to check for.
2010-12-14 22:44:39 -05:00
Bryan Schumaker bcc622f06c Scroll to middle
When scrolling on song change, it looks better if we go to the middle
rather than somewhere near the top.
2010-12-14 22:39:58 -05:00
Bryan Schumaker 5a17c9c76f Added button tooltips
This patch adds tooltips to ALL gui buttons
2010-12-14 21:34:26 -05:00
Bryan Schumaker f74239a0e2 Add update button
When clicked, the entire library will be updated in the background.
2010-12-14 20:37:40 -05:00
Bryan Schumaker 5b555b841f Album art in footer bar
I now draw a small version of the album art in the footer bar.
2010-12-12 15:45:42 -05:00
Bryan Schumaker 8bd3ca0ffa Custom album art size
The size of the album art is now a parameter passed on construction.
The default is 64.
2010-12-12 15:42:20 -05:00
Bryan Schumaker 14f4cccb87 Don't hide AlbumArtImage()
The AlbumArtImage() was alwas hidden at first.  I don't think we need
this...
2010-12-12 15:40:49 -05:00
Bryan Schumaker 5c0f30c544 Set footer based on single variable
For some reason I was using ocarina.footer.up and ocarina.footer.down to
track the status of the footer.  This should really only be tracked
using one boolean...
2010-12-12 15:38:16 -05:00
Bryan Schumaker ce88872997 Initialize TimeLabel() to 00:00
This sets the inital value of a TimeLabel() to 00:00.  I found it
awkward to look at the inital time of a song as " / 03:55" or something
similar.  Now it will show "00:00 / 03:55"
2010-12-12 15:28:34 -05:00
Bryan Schumaker cfd30e8eac Smaller header buttons
I can scale down the 6 sided die image better than the old 20 sided die,
so it is ok to make the header images smaller.
2010-12-12 15:21:46 -05:00
Bryan Schumaker 6fc8415838 next() selects from queue
We check the queue for a song first, then go to the playlist.
2010-12-12 14:45:30 -05:00
Bryan Schumaker 4acb972583 Play songs in the queue
Selecting songs in the queue will play the song and remove it from the
queue.
2010-12-12 14:28:19 -05:00
Bryan Schumaker f47aa206d1 Remove songs from queue
I can now remove songs from the queue.  Additionally, I only add songs
to the queue if they are not already in it.
2010-12-12 14:20:12 -05:00
Bryan Schumaker c7c81c1b03 Queue reset
I can now reset the queue to an empty state.
2010-12-12 14:13:18 -05:00
Bryan Schumaker e7bab2fc94 Queue filtering
The queue can now be filtered using the default text entry.
2010-12-12 14:04:36 -05:00
Bryan Schumaker e997d4df33 Fill queue page
This patch shows what songs are currently in the queue.
2010-12-12 13:57:26 -05:00
Bryan Schumaker 1e3c48bbf1 Add songs to the Queue
I can add songs from both the library and the playlist to the queue
2010-12-12 13:54:38 -05:00
Bryan Schumaker 25dcd0619c Added framework for Queue
This patch adds the queue as a tab on the main window.  I also added the
libsaria queue functions, but right now the don't do anything.
2010-12-12 13:46:49 -05:00
Bryan Schumaker a233861cfd Playlist with generic init function
The playlist is now initialized using the generic init function.
2010-12-09 08:10:42 -05:00
Bryan Schumaker 9acd22b402 Library with generic init function
The library is now initialized with the generic init function.
2010-12-09 08:09:37 -05:00
Bryan Schumaker b9eb5609fc ocarina labels with generic get_attrs()
Labels can use the generic get_attrs() function to set their tags.
2010-12-07 08:10:17 -05:00
Bryan Schumaker 1089b85e88 Get_attrs current source
The generic get_attrs() function now works correctly.  I had to
introduce a "get_cur_id()" function for each source to get this working.
2010-12-07 08:07:10 -05:00
Bryan Schumaker f063da5b56 Began work on virtual sources
Virtual sources should make it easier to do things with the current song
without having to know anything about it (such as a song id or file
path).
2010-12-05 17:11:41 -05:00
Bryan Schumaker 3eeb35d81c Stop using file_to_id
We should now use file_id located in libsaria.path
2010-12-05 13:40:39 -05:00
Bryan Schumaker fbfc5738c6 Bump version numbers
We are now developing Ocarina 4.3!
2010-12-05 13:40:15 -05:00
Bryan Schumaker 7638fea8de Bump versions
Bump the minimum version required for plugins.  Also marked __dev__ =
False in Ocarina and Libsaria
2010-12-05 12:54:32 -05:00
Bryan Schumaker 43fd01e1cd Fill list with or without lock
The gtk.gdk lock is alread held when we add selected songs to the
playlist.  I deadlock if I try to grab it again.
2010-12-04 13:40:04 -05:00
Bryan Schumaker 86462fc6ec gdk lock when populating lists
Getting this lock seems to stop an assertion failure I was getting when
trying to fill and scroll at the same time.
2010-12-03 23:55:52 -05:00
Bryan Schumaker 84b220fae9 Return after list scrolling
We don't need to keep iterating over the list once we have scrolled to
the current song.  We can return early instead.
2010-12-03 23:33:25 -05:00
Bryan Schumaker d20a007c77 Filechooser callback in background
We should call the filechooser callback in the background so that gdk
threads have a chance to unlock and prevent deadlock.
2010-12-03 08:36:13 -05:00
Bryan Schumaker d20693bba7 Select and goto song improvements
When we select a song through the gui, we should call either the
playlist or library play_id() function for appropriate bookkeeping.

Additionally, on startup we seek to sources.cur_lib_id
2010-12-03 08:36:13 -05:00
Bryan Schumaker 4f5c3e8b57 Reorder header
Elements in the header have been reordered so they make more sense
2010-12-03 08:35:15 -05:00
Bryan Schumaker a6090a4247 Switch pages before removing current page
If we are asked to remove the current page, we should first switch to a
different page.
2010-12-03 08:35:15 -05:00
Bryan Schumaker f05e6c6336 Set default page
During startup, we should check if the initial page exists.  If it
doesn't we will switch to the default page instead.
2010-12-03 08:35:15 -05:00
Bryan Schumaker 72f85f9f92 Create a set locked function for album art
We appear to already be locked when we get to the setter function.  I
was getting deadlocked when trying to do anything.  To fix this, I
made it so I can set images without needing the lock.
2010-12-03 08:35:15 -05:00
Bryan Schumaker ba9e25c846 Change goto icon
I am now using the stock "jump to" icon, rather than "index"
2010-12-03 08:35:14 -05:00
Bryan Schumaker bf6a770e89 Lock image
This was uncommented, and led to problems.
2010-12-03 08:35:14 -05:00
Bryan Schumaker accb75848c Goto current song on load
When a song has been loaded, we should scroll to it.
2010-12-03 08:35:14 -05:00
Bryan Schumaker b12894d5a7 Goto song when filtering
When filtering, we should select the currently playing song if it is
visible.
2010-12-03 08:35:14 -05:00
Bryan Schumaker 5a508cefd3 Goto current song return early
We should return early if there is no currently playing song in the
list.
2010-12-03 08:35:14 -05:00
Bryan Schumaker 742333f1af Goto current song
There is no a button to scroll to the currently playing song.
2010-12-03 08:35:14 -05:00
Bryan Schumaker a71ae8319f AlbumArt widget is now an event box
This allows me to catch a button-press-event and show a file chooser to
select an image as the new album art for the currently playing song.
2010-12-03 08:35:14 -05:00