28 lines
690 B
Python
28 lines
690 B
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
from gi.repository import GObject, Gio
|
|
|
|
class TagModel(GObject.GObject, Gio.ListModel):
|
|
def __init__(self, tag=None):
|
|
GObject.GObject.__init__(self)
|
|
self.tag = tag
|
|
|
|
def do_get_item_type(self):
|
|
return GObject.TYPE_PYOBJECT
|
|
|
|
def do_get_n_items(self):
|
|
if self.tag:
|
|
return len(self.tag)
|
|
return 0
|
|
|
|
def do_get_item(self, n):
|
|
if self.tag:
|
|
return self.tag[n]
|
|
|
|
def do_get_object(self, n):
|
|
return self.tag[n]
|
|
|
|
def switch_tag(self, tag):
|
|
prev = len(self.tag) if self.tag else 0
|
|
self.tag = tag
|
|
self.items_changed(0, prev, len(self.tag))
|