53 lines
1.4 KiB
Python
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)
|