Hi,

I'm a new subscriber, and I'm working on a GUI for TMSU (
https://bitbucket.org/oniony/tmsu/), a CLI-based file tagging system.

As part of that, I am attempting to implement a GtkEntry which
auto-completes tag names, with candidates sorted by similarity to the
fragment being completed.

The way I am currently doing this is very slow, even though I have
simplified the sort comparison function as far as possible.
It takes 2-5 seconds each time I type anything, for the display to catch up
and the completion to update.

When initializing the completion, I do:

        completion.get_model().set_sort_func(NAME_COLUMN,
compare_name_and_desc, 'foo')
        completion.get_model().set_sort_func(DESC_COLUMN,
compare_name_and_desc, 'foo')
        completion.get_model().set_sort_column_id(NAME_COLUMN,
gtk.SortType.DESCENDING)


Then I connect the entry's 'change' signal to this function, which simply
resets the sort function to use the new key.

def resort(entry):
    m = entry.get_completion().get_model()
    t = entry.get_text()

    # The delay is probably caused by this line:

    m.set_sort_func(NAME_COLUMN, compare_name_and_desc, t )
    print('sort reset to %r' % t)


full code is at 'https://bpaste.net/show/aa03e47d9bdd'. It requires
Levenshtein module.



Is there any faster way to do this?
_______________________________________________
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to