Adding a playlist
We're now ready to add the playlist widget to our music player.
We'll use new crates, so add the following to the main.rs file:
extern crate gdk_pixbuf; extern crate id3;
The crate gdk_pixbuf will be used to show and manipulate the cover and the id3 crate to get the metadata from MP3 files.
Also, add the following to Cargo.toml:
gdk-pixbuf = "^0.3.0" id3 = "^0.2.0"
Next, we'll create a new module to contain this new widget:
mod playlist;
We'll start this module by adding a bunch of use statements:
use std::path::Path;
use gdk_pixbuf::{InterpType, Pixbuf, PixbufLoader};
use gtk::{
CellLayoutExt,
CellRendererPixbuf,
CellRendererText,
ListStore,
ListStoreExt,
ListStoreExtManual,
StaticType,
ToValue,
TreeIter,
TreeModelExt,
TreeSelectionExt,
TreeView,
TreeViewColumn,
TreeViewColumnExt,
TreeViewExt,
Type,
WidgetExt,
};
use id3::Tag;These will be followed by some constants:
const THUMBNAIL_COLUMN: u32 = 0; const TITLE_COLUMN...