emmental/sidebar/view.py

53 lines
1.4 KiB
Python

# Copyright 2021 (c) Anna Schumaker.
import db
from gi.repository import Gtk
from . import model
from . import row
class TableView(Gtk.ListView):
def __init__(self, table):
Gtk.ListView.__init__(self)
self.add_css_class("normal-icons")
self.set_vexpand(True)
self.set_model(model.TableSelection(table))
if table == db.user.Table:
self.set_factory(row.UserFactory)
elif table == db.library.Table:
self.set_factory(row.LibraryFactory)
else:
self.set_factory(row.Factory)
def get_selection(self):
return self.get_model()
def get_selected_playlist(self):
return self.get_model().get_selected_playlist()
def get_table(self):
return self.get_model().get_table()
class TableWindow(Gtk.ScrolledWindow):
def __init__(self, table):
Gtk.ScrolledWindow.__init__(self)
self.set_child(TableView(table))
def get_selection(self):
return self.get_child().get_selection()
def get_selected_playlist(self):
return self.get_child().get_selected_playlist()
def get_table(self):
return self.get_child().get_table()
class UserView(Gtk.ListView):
def __init__(self):
Gtk.ListView.__init__(self)
self.set_model(model.UserSelection())
self.set_factory(row.UserRowFactory())
self.add_css_class("normal-icons")
self.set_single_click_activate(True)