Nots from KDE PIM BoF at Akademy 2016
- knarf (Franck)
- * please add yourself to the list if I missed you *
The plan is to have a KDE PIM User Survey to learn about which features our users use and how they use it so that we can prioritize work on certain features or remove the others.
For (Y/N) questions, the possible answers to choose from should be
- "Yes, I regularly use this feature and I would miss it if it vanished"
- "Yes, sometimes and I would miss it"
- "Yes, but it's not that important"
- "No, but I might"
- "Yes, now that I know about it"
- "Yes, if it worked better"
- "No, this feature has no value for me"
- "Gamaral thinks this is way too complicated"
Questions we collected on the BoF:
- Do you use Kontact or KMail?
- How many email accounts do you have? (#)
- How many identities do you have? (#)
- How many email folders (cca) do you have? (#)
- How many messages do you have in your biggest folder? (#)
- Do you have at least one IMAP account? (Y/N)
- Do you have at least one POP3 account? (Y/N)
- Do you use offline IMAP? (Y/N)
- Do you use mail filters? (Y/N)
- Do you use local mail filters? (Y/N)
- Do you use sieve mail filters? (Y/N)
- Do you cryptographically sign your messages? (Y/N)
- Do you use custom fonts settings? (Y/N)
- Do you use custom colors settings? (Y/N)
- Which window layout do you use?
- * 3 columns
- * 2 columns with email preview
- * 2 columns without email preview
- How many favorite folders do you have? (#)
- How many message tags do you have? (#)
- Do you use custom message templates? (Y/N)
- Do you use custom mail headers? (Y/N)
- Do you use auto-resize image attachments? (Y/N)
- Do you use external composer? (Y/N)
- Do you use Follow-up reminder? (Y/N)
- Do you use Send Later? (Y/N)
- Do you use Archive feature? (Y/N)
- Do you use Ad-block? (Y/N)
- Do you use Anti-virus? (Y/N)
- Do you use Anti-spam? (Y/N)
- Do you use Translator? (Y/N)
- Do you use URL shortener (Y/N)
- Do you use "Change letter case" feature? (Y/N)
- Do you use custom character encoding when sending message (Y/N)
- Do you print your emails? (Y/N)
dvratil, vkrause, mlaurent and others will meet the week after Akademy and will discuss more questions to be possibly included.
We also ended up with a list of features that can be killed or changed their default:
- "Close message window after reply" checkbox - remove this feature
- Systray settings - modern systrays can handle the behaviour for us, no need to have it managed by KMail
- Gravatar HTTPS - no reason to even switch HTTPS off
- "Hide tabbar when there's only one tab" - remove this options, should be always on
- "Close button on each tab" - remove this option, should be always on
- "Replace :poop: by poop emoticons" - always on
- might have issues when email contains code or references which might get mistakenly converted to emoticons
- Volker notes that KNode had a context-menu feature to temporarily turn this off
- Remove Rot-13 converter
- Turns out Rot-13 converted is just an example plugin and is not installed in RELEASE builds
We briefly discussed with Sandro releasing of libmimetreeparser. Kube wants to use libmimetreeparser, but that currently lives inside of messagelib repo with other libraries. Kube would like for libmimetreeparser to be a separate repo with API and ABI promises.
- dfaure/ervin: we could just have a CMake option to build messagelib only with libmimetreeparser
- dvratil: we don't really want to add yet another repo. Any contributions going to libmimetreeparser will go through review from Sandro anyway because me or Laurent don't dare touching the code :-) so he can make sure we don't do anything that would be API/ABI incompatible
Message list optimization
dvratil, dfaure and ervin briefly talked about optimizing message list to solve the overhead of doing beginInsertRows()/endInsertRows(0 for each single message, triggering slow paths inside QAbstractItemView/QTreeView.
- dvratil suggested batching of the signals, but that's very hard to do without substantial changes to the Model design
- dfaure suggested disconnecting the model from the view during threading
- since the Model also handles thread expansion, we would need a second pass after the model is attached back to the view to expand some threads