| Commit message (Collapse) | Author | Files | Lines |
|
|
|
This new screen views all information available on a song: its
location, file name, and tags.
|
|
The local variable "entry" was only declared when lyrics were enabled,
but it is now used by CMD_LOCATE, too.
|
|
Pressing 'l' switches to the file browser (screen_file) and locates
the previously selected song in the server's database.
|
|
Making the function return the index makes it more flexible: those who
want the pointer can use filelist_get(), and the others may use the
index for other purposes.
|
|
"entity" is not being used after its initial assignment.
|
|
When calling browser_change_directory() before a filelist was set,
ncmpc would crash due to a NULL pointer dereference. This scenario is
not possible currently, since the open() method allocates the
filelist.
|
|
Return true/false instead of 0/-1.
|
|
All functions must receive UTF-8 file names. Delete all which still
work with locale strings, and remove the _utf8 suffix from the others.
|
|
Don't convert the character set of strings to and from the current
locale. This library cannot know what the strings are going to be
used for, so it should not mess with them.
|
|
The function browser_change_directory() did not free the return value
of g_path_get_dirname().
|
|
Disable lots of smaller features which don't have a separate configure
option:
- xterm title
- screen list
- horizontal scrolling
- MPD version number check
- key binding checks
- character set conversion
- bitrate display
- highlighting in the file browser
- completion / history
|
|
A local variable was only used by the lyrics screen code. Put #ifdef
around its declaration.
|
|
screen_t is a singleton. We do not have to pass it around
everywhere. Export the one global variable.
|
|
mpdclient_finish_command() is already imported by mpdclient.h, don't
do it again in the sources.
|
|
We do not need to save a stack of list window states. When we return
to a parent directory, we just have to find the directory which we
come from in the parent list. Note that this patch resets the cursor
when going to the root directory, but I think it's not that important,
and I will deal with that later.
|
|
g_basename() is always available, no need to implement a fallback.
Also use g_path_get_dirname(), g_path_get_basename().
|
|
Moved the format string for playlist files to the constant
"playlist_format".
|
|
Move everything which deals with UTF-8 strings and character set
conversion to charset.c, header charset.h.
|
|
Use options.list_format and options.status_format directly instead of
these two macros.
|
|
Don't make everybody include ncmpc.h just to have generic features.
Move generic i18n macros to a separate header.
|
|
gdb is for debugging. We don't need D() calls littered all over.
|
|
When we created created browser_cmd(), several functions of the
screen_browser API weren't used by other sources anymore. We can now
unexport them.
|
|
screen_lyrics_switch() opens the lyrics screen and displays the lyrics
of the specified song. This way, the user may view the lyrics of any
song in the database browser.
|
|
Merge a lot of code from the 3 browser screen into browser_cmd().
|
|
CMD_ADD ('a') appends a song to the playlist, no matter if it is
already there, i.e. unlike CMD_SELECT, it does not toggle the song.
|
|
Follow the same code style als MPD itself.
|
|
Move the portion of screen_get_mouse_event() which handles list_window
clicks to list_window.c. The code contained a NULL pointer
dereference, which is now fixed.
|
|
Don't call filelist_get() with an invalid index.
|
|
Since we do a lot of indexed accesses to the filelist, a linked list
doesn't seem appropriate. Use GPtrArray instead.
|
|
browser_get_selected() checks if there is a file list and a valid
selection, and returns the selected entry.
|
|
Avoid direct accesses to the filelist struct, provide an API for that.
|
|
The separate filelist library does not depend on mpdclient, so the
prefix is superfluous.
|
|
A song should not be twice in the browser. Simplify set_highlight()
by finding the entry with mpdclient_filelist_find_song().
|
|
The caller must not pass NULL to set_highlight(). Replaced check with
assertion.
|
|
It is guaranteed that the "song" attribute is not NULL, remove the
check.
|
|
browser_select_entry() checked the entry's "highlight" flag twice: the
first time, it was toggled, and the second time, action was performed
based on the flag. Merge the two checks.
|
|
The function browser_select_entry() returns early when the entity type
is not "SONG". No need to double check that.
|
|
Moved code from browser_handle_select(). Call this new function also
from browser_handle_select_all(). This fixes a bug in select_all():
it actually did not select all, but stopped after the first song.
|
|
|
|
Merge code from all 3 browser screens into one generic browser
function.
|
|
Isolate the generic browser code from the directory browser.
|