On Donnerstag, 20. Juni 2013 20:42:34 CEST, Jan Kundrát wrote:
You can also kill the ignores parameter, it doesn't appear to be used. Thomas, do you have a comment on that, given that originally added this?
The ignorelist is meant to have the addressbook skip entries already used in TO/CC/BCC/SENDER fields, what helps to limit the maximum of entries, thus the popup short, and get faster to the still relevant entries.
I'm also slightly unsure about whether it should be changed to a QList<QPair<QString, QString> > to pass the human readable names and e-mail addresses separately. Opinions?
+1 Allows to keep formatting in Trojitá (in case some absurd sender requires «» instead of <> or if we want to pass this through visual formatting that does not display <> but makes the human name bold or deconstrasts the mail or whatever)
I also wonder about the usefullness of the isValid()
The only reason I see is a runtime dependency driven preference chain, ie. try the LDAP company book first and if not available, use the local abook, being still better than nothing. Makes me wonder whether the interface should have "isEditable()" and what to do if not? Rresolve to local abook or similar? Should we have a "default" implementation in the core to avoid loading two plugins at the same time?
If so, it should probably asynchronous, but that would only make it troublesome to use it...
What about an error value system instead, ie. when the LDAP addressbook figures it does not work (no response in 500ms) it sets some error and signals completionAvailable. Trojita then clears the error and either tries the next plugin or resolves to some default? Cheers, Thomas