Implement characters filter

Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
This commit is contained in:
TheJackiMonster 2022-10-21 01:51:06 +02:00
parent 29fbe2acbb
commit 3c0ab18fea
No known key found for this signature in database
GPG key ID: D850A5F772E880F9
2 changed files with 16 additions and 4 deletions

View file

@ -25,10 +25,13 @@ class CharactersView:
self.charactersStore = builder.get_object("characters_store")
self.refreshCharacterStore()
self.filteredCharactersStore = builder.get_object("filtered_characters_store")
self.mainCharactersStore = builder.get_object("main_characters_store")
self.secondaryCharactersStore = builder.get_object("secondary_characters_store")
self.minorCharactersStore = builder.get_object("minor_characters_store")
self.filteredCharactersStore.set_visible_func(self.filterCharacters)
self.mainCharactersStore.set_visible_func(lambda model, iter, userdata: model[iter][3] == Importance.MAIN.value)
self.secondaryCharactersStore.set_visible_func(lambda model, iter, userdata: model[iter][3] == Importance.SECONDARY.value)
self.minorCharactersStore.set_visible_func(lambda model, iter, userdata: model[iter][3] == Importance.MINOR.value)
@ -195,8 +198,14 @@ class CharactersView:
self.character.remove()
self.refreshCharacterStore()
def filterCharacters(self, model, iter, userdata):
name = validString(model[iter][1])
text = self.filterCharactersBuffer.get_text()
return text in name
def filterCharactersChanged(self, buffer: Gtk.EntryBuffer):
pass
self.filteredCharactersStore.refilter()
def filterCharactersDeletedText(self, buffer: Gtk.EntryBuffer, position: int, n_chars: int):
self.filterCharactersChanged(buffer)

View file

@ -37,14 +37,17 @@ along with Manuskript. If not, see <http://www.gnu.org/licenses/>.
<column type="gint"/>
</columns>
</object>
<object class="GtkTreeModelFilter" id="main_characters_store">
<object class="GtkTreeModelFilter" id="filtered_characters_store">
<property name="child-model">characters_store</property>
</object>
<object class="GtkTreeModelFilter" id="main_characters_store">
<property name="child-model">filtered_characters_store</property>
</object>
<object class="GtkTreeModelFilter" id="minor_characters_store">
<property name="child-model">characters_store</property>
<property name="child-model">filtered_characters_store</property>
</object>
<object class="GtkTreeModelFilter" id="secondary_characters_store">
<property name="child-model">characters_store</property>
<property name="child-model">filtered_characters_store</property>
</object>
<object class="GtkTextBuffer" id="conflict"/>
<object class="GtkListStore" id="details_store">