43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
from . import column
|
|
from . import controls
|
|
from . import model
|
|
from . import runtime
|
|
from gi.repository import Gtk
|
|
|
|
Model = model.TagModel()
|
|
|
|
def on_filter_pending(filter, pending):
|
|
runtime.set_visible_count(FilterModel.get_n_items())
|
|
|
|
FilterModel = Gtk.FilterListModel()
|
|
FilterModel.connect("notify::pending", on_filter_pending)
|
|
FilterModel.set_filter(Model.Controls.filter)
|
|
FilterModel.set_model(Model)
|
|
|
|
Selection = Gtk.MultiSelection()
|
|
Selection.set_model(FilterModel)
|
|
|
|
View = Gtk.ColumnView()
|
|
View.add_css_class("data-table")
|
|
View.set_enable_rubberband(True)
|
|
View.set_hexpand(True)
|
|
View.set_vexpand(True)
|
|
View.set_model(Selection)
|
|
|
|
View.append_column(column.Column("#", "tracknumber"))
|
|
View.append_column(column.Column("Title", "title", width=250, expand=True))
|
|
View.append_column(column.Column("Length", "length", align=100))
|
|
View.append_column(column.Column("Artist", "artist", width=150))
|
|
View.append_column(column.Column("Album", "album", width=150))
|
|
View.append_column(column.Column("Year", "year"))
|
|
View.append_column(column.Column("Count", "playcount"))
|
|
View.append_column(column.Column("Last Played", "lastplayed", width=150))
|
|
|
|
Scroll = Gtk.ScrolledWindow()
|
|
Scroll.set_child(View)
|
|
|
|
Box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 0)
|
|
Box.append(Model.Controls)
|
|
Box.append(Scroll)
|