For the list and tree widgets, GTK+ follows the MVC pattern. MVC stands for Model-View-Controller.
Now we can add a constructor for our playlist:
impl Playlist { pub fn new() -> Self { let model = ListStore::new(&[ Pixbuf::static_type(), Type::String, Type::String, Type::String, Type::String, Type::String, Type::String, Type::String, Pixbuf::static_type(), ]); let treeview = TreeView::new_with_model(&model); treeview.set_hexpand(true); treeview.set_vexpand(true); Self::create_columns(&treeview); Playlist { model, treeview, } } }
The gtk::ListStore type is a model to represent the data as a list. Its constructor needs the types of the columns; in this case, most of the types are strings for the metadata of the MP3 files, such ...