From kde-pim Thu Jul 15 23:38:08 1999 From: Rik Hemsley Date: Thu, 15 Jul 1999 23:38:08 +0000 To: kde-pim Subject: Grouping + importing X-MARC-Message: https://marc.info/?l=kde-pim&m=93216824000134 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--_=XFMail.1.3.p0.Linux:990716003719:16278=_" This message is in MIME format --_=XFMail.1.3.p0.Linux:990716003719:16278=_ Content-Type: text/plain; charset=iso-8859-1 Hi folks. I've spent the last week trying to come up with a generic addressbook format. This doesn't mean a new text file format, it means an OO model that provides the following features: 1) Extensibility at all levels. 2) Easy access to all parts of addressbook entities. 3) Speed. 4) Import abilities through a plugin interface. 5) Grouping of entities. I think I'm at least part of the way there. If anyone's looked in pim/ab_test you'll see my first effort, which was a little poor. What I've done today is to implement a fair amount of what I've been planning. It isn't checked into CVS yet. I've attached some files to show how things work from the perspective of user code. If you're interested and have the time, please take a look at these files and try to get an impression of what's going on. I'd like some feedback - positive and negative. The model I have created supports grouping to any depth, uses shared data (via QString), is fairly typesafe, is very fast, is extensible, provides import through plugins and makes it easy to access all levels of the structure. I think that just about covers the requirements :) Note that when AddressBook::import() is called a plugin is dynamically loaded and its import() function called. If there is no plugin available, the import file is not readable, or any other error occurs, the only effect is that AddressBook::import() returns 0 (for the number of records imported). Cheers, Rik -- KDE - Colour outside the lines : http://www.kde.org [[without]] - software for KDE : http://without.netpedia.net --_=XFMail.1.3.p0.Linux:990716003719:16278=_ Content-Disposition: attachment; filename="vcard1" Content-Transfer-Encoding: base64 Content-Description: The VCard used in the test Content-Type: application/octet-stream; name=vcard1; SizeOnDisk=103 QkVHSU46VkNBUkQNCk46SGVtc2xleTtSaWs7TWFyaw0KRk46UmlrIEhlbXNsZXkNCkVNQUlMO1RZ UEU9SU5URVJORVQ6cmlrQGtkZS5vcmcNClRaOjAwOjAwDQpFTkQ6VkNBUkQNCg== --_=XFMail.1.3.p0.Linux:990716003719:16278=_ Content-Disposition: attachment; filename="log.gz" Content-Transfer-Encoding: base64 Content-Description: The output from v2 Content-Type: application/octet-stream; name=log.gz; SizeOnDisk=644 H4sICI5tjjcAA2xvZwC9VW1P4kAQ/t5fMeELmBxE0OhdiblDKUqEHuEaztOYy0qnsGHbJbtbiP/+ pgvWymGiYGyatJl59pnXnalWd32cHtcGZARMCMDEcMNROzvTVR0v43h04e5uyc1Upub+HrSMzJIp zJXBFGHQ7YNBFufCrilraMsEfrEkRKVfoK/bHvxUE5ZwzQyXSa5sc4VjIwtwyzPkM7jCWAt83Cea YnaMnAtcoICJkulcA3kJZopcQYzxAzkMFXIlVZov8GAfo8ELQ6+kEqBvrW6JF+i5GTGRogs31Svk k6lx4aRcL/1HvTW1u1FvnCoWco9ctIzBeG54MqH8g5AsBAZzkU54ApFUUF6MmQrLthg8nktlIOIC 1/J6eR/bowuiWHfV3zlTGqFyenTggv1fqXPF11xROYAx9QuGG4hvJ4Q4x8xzwROEszMonXuXXd8d XbSG7dIGvH7cIPyFTAxdS3tCbyJOM0YflzBeoSxtqrNklXx3XbMm1a/ZZ2pWctZkPYI9kzQaeURb 9ceHpL/M2iXz+BVMnTARV9oMGFWAcP4rwMzYIuufJ+Cml46/aq/VBypHWV6zC/6e4Du+W+jaTw28 8+bIi/fqHbF5/Va31wz+DLyzrh94Q98LXMVnP2Yh1qSafGqwW3x5a/QFlx0vZlyQgsXu8y+VvrFD 6YNb9/CQ3k/NQ3D71rCtb/sMpe7TkKNxPcWwBkOkmVjPd3fNGSie2IH5USudloRCoKVTMJNv25fb oZOSzYTFtB7sruhkWbICAIu10j4PQ5rRVuyCvfWZuMdyLIk/YHv/RiG+0I5mBpZMQ5QmNRqoUYQI DwrZDL7vw/4P02BQG3UJAAA= --_=XFMail.1.3.p0.Linux:990716003719:16278=_ Content-Disposition: attachment; filename="v2.cpp.gz" Content-Transfer-Encoding: base64 Content-Description: The test program Content-Type: application/octet-stream; name=v2.cpp.gz; SizeOnDisk=2403 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 Bj+qLvvaHAAA --_=XFMail.1.3.p0.Linux:990716003719:16278=_-- End of MIME message