282
281
py + self.tree_view.selected_row_renderer.icon_y_offset)
287
# ----------------------------------------------- testcode
288
from softwarecenter.enums import NonAppVisibility
291
def get_query_from_search_entry(search_term):
294
return xapian.Query("")
295
parser = xapian.QueryParser()
296
user_query = parser.parse_query(search_term)
300
def on_entry_changed(widget, data):
303
new_text = widget.get_text()
304
(view, enquirer) = data
306
with ExecutionTime("total time"):
307
with ExecutionTime("enquire.set_query()"):
308
enquirer.set_query(get_query_from_search_entry(new_text),
310
nonapps_visible=NonAppVisibility.ALWAYS_VISIBLE)
312
store = view.tree_view.get_model()
313
with ExecutionTime("store.clear()"):
316
with ExecutionTime("store.set_from_matches()"):
317
store.set_from_matches(enquirer.matches)
319
with ExecutionTime("model settle (size=%s)" % len(store)):
320
while Gtk.events_pending():
325
GObject.source_remove(widget.stamp)
326
widget.stamp = GObject.timeout_add(250, _work)
329
def get_test_window():
330
import softwarecenter.log
331
softwarecenter.log.root.setLevel(level=logging.DEBUG)
332
softwarecenter.log.add_filters_from_string("performance")
333
fmt = logging.Formatter("%(name)s - %(message)s", None)
334
softwarecenter.log.handler.setFormatter(fmt)
336
from softwarecenter.testutils import (
337
get_test_db, get_test_pkg_info, get_test_gtk3_icon_cache)
338
from softwarecenter.ui.gtk3.models.appstore2 import AppListStore
341
cache = get_test_pkg_info()
342
icons = get_test_gtk3_icon_cache()
345
from softwarecenter.db.appfilter import AppFilter
346
filter = AppFilter(db, cache)
347
filter.set_supported_only(False)
348
filter.set_installed_only(True)
351
from softwarecenter.db.enquire import AppEnquire
352
enquirer = AppEnquire(cache, db)
353
store = AppListStore(db, cache, icons)
355
from softwarecenter.ui.gtk3.views.appview import AppView
356
view = AppView(db, cache, icons, show_ratings=True)
357
view.set_model(store)
361
entry.connect("changed", on_entry_changed, (view, enquirer))
364
box.pack_start(entry, False, True, 0)
365
box.pack_start(view, True, True, 0)
368
win.set_data("appview", view)
369
win.set_data("entry", entry)
370
win.connect("destroy", lambda x: Gtk.main_quit())
372
win.set_size_request(600, 400)
377
if __name__ == "__main__":
378
win = get_test_window()
379
win.get_data("entry").set_text("gtk3")