I can see your house from here

677 views
598 views

Published on

Joint presentation with Till Adam and Marius Bugge Monsen.
The model/view framework is one of the most powerful areas of Qt4, but also one of the most complex. It is elegant in its design, but proves to be difficult to master for many who try in practice. While a lot of effort went into anticipating how developers would use and potentially mis-use this API, real world usage patterns, best practices and common errors turn out to be interestingly deviant. Marius, who was part of the original architecture team behind these classes, and Till, who has taught the concepts to varied audiences and seen a wide range of real world applications of them both in his work on KDEPIM and as a consultant at KDAB, combine their experiences in this presentation to provide a unique joint perspective.

Published in: Technology, Career
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
677
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

I can see your house from here

  1. 1. I can see your house from here Part 1
  2. 2. 7.5 Years
  3. 3. 79 Files
  4. 4. 32957 Lines Of Code
  5. 5. The Beginning
  6. 6. Author reggie Client reggie-piefke Date 2002/12/03 14:43:32 Description nothing yet Jobs fixed -
  7. 7. Author espenr Clientespenr-deimos Date 2002/12/04 19:30:30 DescriptionAdded a FileTableModel and changed main to test it. Reads the columns in the astronomy_large.txt backwards and will reread the file if you edit it. (Just touch it) Jobs fixed -
  8. 8. Author mmonsen Clientmmonsen-elysium Date 2002/12/05 15:37:13 DescriptionQItemModel subclass that implements a directory tree as a data source. Jobs fixed -
  9. 9. A Rush of Creativity
  10. 10. 2002/12/09
  11. 11. 2002/12/13
  12. 12. 2002/12/16
  13. 13. 2002/12/18
  14. 14. 2002/12/20
  15. 15. 2003/01/06
  16. 16. 2003/01/07
  17. 17. 2003/01/09
  18. 18. 2003/01/10
  19. 19. 2003/01/016
  20. 20. 2003/01/24
  21. 21. 2003/02/03 Last commit by reggie.
  22. 22. 2003/03/04 espenr releases Qt 3.1.2
  23. 23. Decisions
  24. 24. Author mmonsen Clientmmonsen-elysium Date 2003/10/23 16:49:51 DescriptionAdd QObjectRepository. This is an object pool to avoid new/deletes. Use it on MemModelItems (for testing). Jobs fixed -
  25. 25. Author mmonsen Clientmmonsen-elysium Date 2003/10/26 16:08:11 DescriptionIntroduce the alt_ classes. They are the begining of the implementation of item views using QModelIndex instead of QGenericModelItem. The model items are just too heavy. Jobs fixed -
  26. 26. Author harald Clientharald-morpork Date 2003/11/11 21:26:08 DescriptionHere we go - first implementation of a database model Jobs fixed -
  27. 27. Author espenr Clientespenr-phobos Date 2004/01/21 11:49:57 Descriptionmove new itemviews into qt4 (no they are not finished) Jobs fixed -
  28. 28. Author espenr Clientespenr-phobos Date 2004/02/11 20:06:25 Descriptionchanged QGenericItemModel to have roles (Display, Decoration, ToolTip etc) and removed the use of "elements" everywhere. <snipp> Jobs fixed -
  29. 29. Author mmonsen Client mmonsen-elysium Date 2004/02/25 17:06:16 Description QGenericItemModel -> QAbstractItemModel. Jobs fixed -
  30. 30. Complexity
  31. 31. Author mmonsen Client mmonsen-elysium Date 2004/05/04 18:22:39 Description Add QPersistentModelIndex. Jobs fixed -
  32. 32. Author rraggi Clientrraggi-rabagast Date 2004/07/01 17:13:10 DescriptionInitial implementation of the new Property Editor Jobs fixed -
  33. 33. 2004/08/21 - 29 Akademy 2004
  34. 34. Author mmonsen Clientmmonsen-onyx Date 2004/08/26 22:17:16 DescriptionAdd QProxyModel. The idea is that you can subclass this model and use it for filtering and sorting. Jobs fixed -
  35. 35. Author mmonsen Client mmonsen-elysium Date 2004/10/22 19:25:11 Description Add a model pointer to QModelIndex. Jobs fixed -
  36. 36. Towards the Goal
  37. 37. Author espenr Client espenr-phobos Date 2005/02/27 22:31:42 Description branch 4.0 from main Jobs fixed -
  38. 38. 2005/06/28 Qt 4.0 Released!!!
  39. 39. Work Continues
  40. 40. I can see your house from here Part 2
  41. 41. Disclaimer: Marius, Espen, I want your baby
  42. 42. the five stages of grief
  43. 43. Denial
  44. 44. Anger
  45. 45. Bargaining
  46. 46. The Mutz Axiom “the solution to every engineering problem is QProxyModel”
  47. 47. View Model political correctness proxy sorting proxy Stuff
  48. 48. View Model Stuff political correctness proxy Stuff sorting proxy
  49. 49. Depression
  50. 50. - excessive minimalism - missing error handling guidance - hard to make transactional - hard to implement undo - tree complexity imposed on the table case
  51. 51. - treacherously public internalId/internalPointer - unfortunately named QStandardItemModel - "thou shall not work on foreign indexes" not enforced (NVI?) - MVC, but not really
  52. 52. Acceptance
  53. 53. QAbstractItemView QAbstractItemModel political correctness proxy View sorting proxy Stuff Model Controller
  54. 54. marius@cutehacks.com till@kdab.com
  55. 55. Image Credits: Stuck in Customs on flickr Michelle Smorgon on flickr

×