Make use of model view pattern. Use evntfilters to split complementary keyboard events between proposallist and inputline. Use pedantic compiler warings. Use a delegate to draw the list entries. Draw theme-based icons based on mimetyes.