Index: trunk/kdepim/kpilot/ChangeLog =================================================================== --- trunk/kdepim/kpilot/ChangeLog (revision 231533) +++ trunk/kdepim/kpilot/ChangeLog (revision 231534) @@ -1,3079 +1,3088 @@ TODO LIST (Moved again to the file TODO) KPilot Developer's notes for June 15th, 2003 ============================================ +2003-6-15 Adriaan de Groot +* Yay, father's day. Which includes me. Mira drew me a wonderful card. +* Fixed some TL problems in debug output, and added documentation. + +2003-6-14 Adriaan de Groot +* Fixed the conduit config dialog's repaint and behavior problems by + ditching the .ui file and implementing it by hand again. I'll look + into a switch back to .ui later. + 2003-6-12 Reinhold Kainhofer * Tracked down why the handheld crashes with Invalid UniqueID error - message (bugs #59313 and #51216). RecordIDs are supposed to be 3 - bytes, and the handheld will crash if they are longer. For some - reason, several entries in the calendar or the addressbook were - assigned longer Record IDs, so I added a check for invalid values - before sending them to the handheld. This fixes the symptoms (i.e. - these crashes won't appear in the future again, and new valid ids - will be assigned), but there is still another bug that assigned + message (bugs #59313 and #51216). RecordIDs are supposed to be 3 + bytes, and the handheld will crash if they are longer. For some + reason, several entries in the calendar or the addressbook were + assigned longer Record IDs, so I added a check for invalid values + before sending them to the handheld. This fixes the symptoms (i.e. + these crashes won't appear in the future again, and new valid ids + will be assigned), but there is still another bug that assigned the wrong values in the first place... - -2003-6-9 Reinhold Kainhofer -* Fixed crash from bug #59315. I used the value of a char as a char*, - in the code for extension cards in the sysinfo conduit. pilot-link - doesn't detect my Clie's memory stick as extension card so this code - was never executed on my machine, and I didn't detect the bug myself. - + +2003-6-9 Reinhold Kainhofer +* Fixed crash from bug #59315. I used the value of a char as a char*, + in the code for extension cards in the sysinfo conduit. pilot-link + doesn't detect my Clie's memory stick as extension card so this code + was never executed on my machine, and I didn't detect the bug myself. + 2003-6-1 Reinhold Kainhofer * Fixed several (possible and really occuring) null pointer crashes -* Submited most of the items in our TODO list as bugs or wishes on +* Submited most of the items in our TODO list as bugs or wishes on bugs.kde.org 2003-5-31 Reinhold Kainhofer * Restructured the setup dialog of KPilot. Several per-conduit settings were moved to global settings. The conduits now have isFullSync(), isFirstSync(), getSyncDirection(), and getConflictResolution() members for these settings. I think I fixed all conduits to use these new settings and didn't miss anything. * The Backup works again (fast sync doesn't do a backup, hot sync does conduits and a fast backup, full sync does a full backup where the modified flags are ignored). Also added a fast backup where only modified records are retrieved. 2003-6-1 Adriaan de Groot * pilotComponent.cc Another fix for 52138 - I'd missed the category drop-down box. * Woo. After months of wrestling, I actually managed to run KPilotTest and list the contents of my m500. Sometimes, there is something to be said for Linux and a working USB stack. This means I have limited testing hardware available again. * Minor fixups to make HEAD compile with 3.1.x again. 2003-5-31 Adriaan de Groot * Updated my build environment to HEAD. This will leave some people in the dust, for sure, since 4.4.0 will thus have an address conduit that requires HEAD, not 3.1.x. Perhaps we can ship two tarballs, but that's going to start to be messy again. * Talked to lioux about conduits and categories on IRC. It seems that PC->Palm syncs usually respect categories and such, but Palm->PC doesn't, among other little tidbits. He'll file bug reports. KPilot Developer's notes for May 30th, 2003 =========================================== 2003-5-30 Adriaan de Groot * Spent this week at conferences (Mira at 8 weeks was the youngest attendee of the EEF School on Formal Methods, though I doubt she'll remember how to do protocol verification in PVS). 2003-5-19 Reinhold Kainhofer * This weekend I wrote this new conduit for KPilot, called sysinfoconduit. It writes all important Palm system information to a text or html file. For an example, see http://reinhold.kainhofer.com/Linux/KPilot/KPilotSysInfo.html. The output is completely customizable via templates. Currently, txt and html templates are available, but the user can provide his/her own template in the conduit configuration dialog. The current html template uses css for the markup, and passes the w3c html validator without warnings. Hopefully, the debug output section will help us kpilot developers track down problems easier (the users can send us the output of this conduit, and we can let it write out all important stuff we need/want to see). 2003-5-11 Adriaan de Groot * kpilotDCOP.h Changed enum values so that you can distinguish between call failed and normal operation. * conduitConfigDialog.cc When closing config dialog, release last selected conduit. 2003-5-9 Adriaan de Groot * Fixed up some config issues in the NULL conduit. * Added conduitName() to conduit config things and their actions, to provide a user-readable name for the conduit. 2003-5-5 Adriaan de Groot * plugin.{h,cc} Added a maybeSave() function for the new conduit config style. Removed some unused variables. * conduitConfigDialog.{h,cc} Using maybeSave() to save or cancel selection changes. 2003-5-3 Adriaan de Groot * Spent lots of time panicing my system and causing fatal exceptions on my Pilot by playing with pilot-link 0.11.7 and FreeBSD's USB stack. * kpilotlink.cc Suppress printing the "accidentally in acceptDevice" more than once. Try to escape from the infinite socketnotifier loop. 2003-5-2 Adriaan de Groot * Aiming for bi-weekly notes this month again. * Looks like I reverted the PRETTY_FUNCTION printing. * I'm working from an everything-HEAD-except vcal and abbrowser checkout, because the new resources framework breaks everything. * Next KPilot tarballs will be 4.4.0 (HEAD) release. KPilot Developer's notes for April 30th, 2003 ============================================= 2003-4-25 Adriaan de Groot * Updated resizing action in the conduit config dialog. * Added a ConduitConfigBase to the knotes conduit. * Changed a bunch of Name[] entries for the time conduit. We need shorter names; most of them are horribly redundant. * Noticed that the conduit checklist items don't always get painted right. Added a workaround. 2003-4-24 Adriaan de Groot * More work on the conduit configuration stuff. * Make FUNCTIONSETUP print PRETTY_FUNCTION instead of just FUNCTION. * Added a ConduitConfigBase object to the time conduit. 2003-4-22 Reinhold Kainhofer * Cleanup of several cout and other debug messages * In the addressbook and todo conduits, after the sync the AppInfoBlock is written back to the databases so that adding categories to the database finally works. 2003-4-21 Adriaan de Groot * Changed the description for the KPilot NULL conduit to just "NULL", since both "KPilot" and "conduit" are redundant in this context. * Messed around a little with the types of plugin code, created a class ConduitConfigBase which is supposed to supplant the current config widget stuff. 2003-4-21 Reinhold Kainhofer * Implemented different ways to convert the bookmarks in the doc conduit when doing Handheld->PC sync. * Some tab order fixes in several conduit setup dialogs. * Improved the question when the handheld and the KPilot user names don't match. 2003-4-20 Adriaan de Groot * Added the sources for a generic DB viewer and a datebook viewer. These don't show up anywhere yet though. The datebook viewer has no functionality yet. * kpilot.cc Minor change to detect non-functioning daemon better. * Restored the tooltip code to the conduit config dialog. Removed the "description" column again. * uiDialog.{h,cc} Moved the addAboutPage() code to a static function so that it can be reused elsewhere. * plugin.{h,cc} Added a new base class ConduitConfigBase for deriving the configuration widgets for conduits from. This will make them more generically pluggable. 2003-4-19 Reinhold Kainhofer * Fixed the categories sync in both the addressbook and the todo conduits. 2003-4-18 Adriaan de Groot * Laurent Montel did some compile fixes for restrictive (NO_ASCII_ ...) compile environments. And I fixed them to match the coding guide. * Make file installer emit a [] message like the conduits do, to give the "No files to install" message context. Tell the user how many files will be installed. * Tell the user if the daemon can't be started. Tell the user what charset is selected. 2003-4-17 Adriaan de Groot * Finished moving the conduit config to checklist items. Worked out a sensible compromise with the command buttons. The conduit descriptions (comment lines in the .desktop files) need work. 2003-4-16 Reinhold Kainhofer * Tried to add a logMessagePart slot which would append some words to the last line of the sync log (but would not start a new paragraph, and more text could be added to the last paragraph). Realized that this is not possible in a QTextEdit with LogText, and using RichText is too buggy to be useful. However, I found a way to get rid of the pseudo- progressbar in the libmal output, so this is not an issue any longer. 2003-4-16 Adriaan de Groot * Moved conduit config to a list of QCheckListItems, finally. This was easier than I thought. Took a bit of time to polish, though. This change introduces a new class ConduitConfigWidget which could be placed in a tab elsewhere if needed. 2003-4-15 Reinhold Kainhofer * Finally fixed the configure.in.in check for libmal in the malconduit * calendar conduit had wrong RadioButton IDs, so the Resource and LocalCalendar settings were messed upt 2003-4-14 Adriaan de Groot * Made some reasonable mock-ups, see my kpilot page, mulled over the non-editing by the viewers. I'm now working in HEAD only. * kpilot.{h,cc} Fixed up backwards compatibility. 2003-4-12 Adriaan de Groot * Mucking about with KPilot's UI again. Trying to remove dialogs and to make the viewers just viewers. 2003-4-1 Adriaan de Groot * My daughter, Mira Annelie Engel, was born this evening and is a bouncing healthy girl. But she's going to put a crimp in KPilot development, that's for sure. KPilot Developer's notes for March 26th, 2003 ============================================= 2003-3-26 Adriaan de Groot * pilotLocalDatabase.cc [BOTH] Qt 3.0 compatibility. * More merging: lib/ just spacing fixes. * kpilot/ In HEAD, muck about with the toggle actions that were removed from kpilot.cc. This stuff is supposed to build in all KDE 3.x. * I've been thinking about _where_ to hack next. HEAD is evolving further under Reinhold's influence, and I feel pretty much stymied in BRANCH because I can't touch strings and the like. However, I'm still running KDE 3.1 and dedicated to KDE 3.0 compatibility as well. Since the things I want to change are in lib/ and kpilot/ and affect strings, I'm going to pick up those from HEAD, but stick to BRANCH conduits for the next while. Then I can catch up with HEAD in the conduits one by one. So initial KPilot 4.4.x tarballs will be from a mix of CVS branches. We might consider doing the conduit releases separately from KPilot itself - more 3rd party-ish - since the conduits change far more drastically than KPilot itself. Initial plans for 4.4.0: disable editing in the viewers ; move the configuration things into the JanusWidget, and out of separate dialogs. 2003-3-24 Reinhold Kainhofer * Adapted the layout of the addressbook conduit's setup dialog to resemble the one from the calendar/todo conduit * Addressbook conduit: Implemented the option to sync with an arbitrary vcard file instead of only the standard addressbook. This actually involved quite a lot of dealing with resources, factories etc., so I'm still looking for an easier way to obtain the addressbook from a single local vcard file. 2003-3-23 Reinhold Kainhofer * Lot of work on the docconduit. Finished the KPalmDOC application. It converts text files to .pdb files that can be viewed as ebooks on the handheld. The user can either convert single text files to or from PalmDOC .pdb files, or choose a directory, where all *.txt or *.pdb files will be converted to another directory. I created some icons by just putting the text mime-type icon behind the kpilot icon, so the icons don't look too well. All artists are welcome to improve them. * Tried to implement a configure option for libmal, and use autoconf's built-in functionality to detect libmal. Doesn't work yet, so I haven't commited it yet. 2003-3-23 Adriaan de Groot * More merging .. conduits today: * null/ There's a single string change, "Failure" -> "failure". * expense/ knotes/ Nothing changed - except the Makefile.am, which breaks things in HEAD. * malconduit/ "" -> QString() for QString cleanness. Some authors should have been credits. There's still a spelling fix string change in HEAD. Lots of spacing updates. 2003-3-21 Adriaan de Groot * Heh, noone ever noticed the "Edit Toolbars" menu item called the "Edit Keyboard Shortcuts" dialog. 2003-3-20 Adriaan de Groot * Merging between BRANCH and HEAD. * options.h [BRANCH] Upped the version number again. * lib/ [BOTH] Merged documentation, fixed minor bug in plugin.cc in HEAD. * kpilot/ [BOTH] Merged stuff. * pilotDaemon.{h,cc} [HEAD] The daemon has extra DCOP features and kroupware. * kpilot.h [HEAD] Extra in-use code and Ben's removal of toolbars (supported by standards in KDE 3.2 - this needs backporting and #ifdeffing). * conduitConfigDialog.cc [HEAD] Has all the setup stuff for the checkbox list conversion (a GJJ) but #if 0'ed out. * kpilotConfig{Dialog,}.{h,cc} [HEAD] Adds a GUI for the pilot encoding. * kpilotDCOP.h [HEAD] Extra configure methods from David. * listCat.h [BOTH] One-up the spelling mafia. 2003-3-17 Adriaan de Groot * [fileInstallWidget.cc] Applied file-installer multiselect patch from Ulrik Mikaelsson. * [pilotDaemon.cc] Applied DCOP interface additions from David Mott. 2003-3-15 Adriaan de Groot * The popmail conduit runs in backup mode during syncs. So do all the other conduits. What's going on? Thanks to Tobia Baier for spotting this. Worse still, the bug comes from the difference between & and &&. Fixed. * syncStack.cc [BOTH] Fixed --backup bug. * David Mott is back with more patches, but he's got competition from Ulrik Mikaelsson, who's also doing GJJs. KPilot Developer's notes for March 12th, 2003 ============================================= 2003-3-12 Adriaan de Groot * Lots of administrivia changes, like the FSF address. * Really ought to merge the copyright changes into BRANCH, since they're still being released with weird copyright assignments. * vcal conduit in local-test mode will write out an .ics. 2003-3-4 Adriaan de Groot * Welcome back to David Mott, author of several patches already and ready to dive into the code again for GJJs. Happy distraction, dude. * [vcal-conduitbase.cc] Checked against wrong KDE_VERSION. [BRANCH] * Various merging from BRANCH to HEAD. Layout fixups here and there. * Test mode in the vcal conduit by default uses local databases from /tmp. 2003-3-3 Adriaan de Groot * pilotDatabase.h [BRANCH] Merged additional parameters to findDatabase from HEAD. Merged every other change in lib/ from BRANCH to HEAD. * pilotRecord.{h,cc} [BRANCH] Added instrumentation for alloc/delete count. 2003-3-2 Adriaan de Groot * Continued instrumentation of the vcal conduit. 2003-3-2 Reinhold Kainhofer * the DOC conduit now also finds the correct sync direction if the user only wants PC->PDA or only PDA->PC sync. Also, if a text was deleted on one side, it is also deleted on the other end * The resolution dialog of the DOC conduit now uses a QScrollView instead of a QTable for the list of conflicting texts * In the DOC conduit, regular expressions as bookmark names work now. E.g. a bookmark search string of "return (\S+);" and a bookmark name of "RetVal: $1" or "RetVal: \1" replaces all $i or \i by the i-th subexpression of the match. * DOC databases are now also kept locally if the user set this option (installDatabases has the addidtional argument not to delete the files) * The calendar and todo conduits now use the standard calendar by default. The user can also specify a single file to sync with instead of the whole calendar. * The calendar and todo conduits use identical setup dialogs, so there is no reason for code duplication. Removed the setup dialog of the todo conduit and derived it from the calendar conduit setup dialog. * Updated the copyright lines in the source files as well as in the about tabs of kpilot and the conduits. * Since we have the calendar resource framework, the calendarr conduit can run even while korganizer has the calendar open without causing calendar corruption. So I removed the check for running korganizer and alarm daemon 2003-2-28 Adriaan de Groot * Discovered that the changes from 2003-1-31 to syncAction.{h,cc} had disappeared in some of my periodic CVS screwups. Re-did them. * vcal-conduitbase.{h,cc} [BRANCH] Added more instruments for running test mode. 2003-2-27 Adriaan de Groot * Merged Reinhold's print-conduit-id patch from HEAD. * Continued updating the documentation. Ripped out the revision history, Lauri says I'm the only developer in the history of KDE to actually maintain it in the docs. * Updated version to 4.3.9 now that 4.3.8 is out. * Started work on a real test mode for the vcal conduit. * syncStack.cc [BRANCH] Set conduit action name to the conduit's name. KPilot Developer's notes for February 26th, 2003 ================================================ 2003-2-26 Adriaan de Groot * Finally solved KDE 3.0 build issues, incorporated minor fixes, updated build scripts and RELEASED KPILOT 4.3.8. Get it from the website, possibly in a few hours after it updates or from my personal backup copy (replace pilone by adridg in the URL). KPilot Developer's notes for February 14th, 2003 ================================================ 2003-2-14 Adriaan de Groot * Happy Valentine's Day, eh. Remember guys, today your girlfriend _is_ more important than hacking. Which reminds me .. 2003-2-13 Adriaan de Groot * kpilotLink.{h,cc} [BRANCH] Added a messagesType flag to distinguish error messages from normal once-only messages in shouldPrint(). Print out device name before opening in open(). 2003-2-12 Adriaan de Groot * Applied David Mott's DCOP patches to HEAD. Also applied his RMB patches to HEAD. This takes care of some GJJs. * memoWidget.cc [BOTH] Replaced the label "Memos:" beside the category combobox by "Category:" which is also used by the address widget. Kept the old string around for safekeeping. * Dealing with non-latin1 Pilots again, now in Russian. And it _seems_ to work. I think last week's changes were sufficiently general. Added in the rest of the Pilot languages as well, from the JPilot source. 2003-2-10 Adriaan de Groot * popmail-conduit.cc [HEAD] Did some actual TODO_I18N work, removed printfs from the message construction in the conduit. Added a GJJ for it. * pilotDaemon.cc has lots of Kroupware additions in HEAD and also changes "unix" -> "KDE" in the about box. * conduitConfigDialog.cc has lots of new code for changing the conduit list to a list of checkboxes. * kpilotConfigDialog_base has been edited in HEAD for new Kroupware options. Same with kpilotConfigDialog.cc, kpilotConfig.{h,cc}. * conduitSetup.cc may be deprecated, but there was a minor difference between files. HEAD <- BRANCH (ie. HEAD gets BRANCH version). * hotSync.cc variable names changed, BRANCH <- HEAD. * interactiveSync.cc typos and latin1() fixes. BRANCH <-> HEAD. * logWidgetDCOP.h still had Log: tag in it,. removed [HEAD,BRANCH] * abbrowser conduit has new custom field code. Did BRANCH <- HEAD for the includes, though, just to normalize 'em. But, to quote TMBG, "Who keeps moving my #includes?" The only unmerged stuff that _could_ be merged is minor code beautification in @@ -1496,22 +1563,26 @@ * Should re-add a Pilot*Database constructor that takes a const char * for those places that already have a dbName. * vcalconduit has startOffset() support for alarms. 2003-2-9 Adriaan de Groot (merge status) * Merging. I hate merging. We _definitely_ need a better process for this, like merging every fix into HEAD as soon as it's done. That would save a lot of effort, I think. And I'm going to check out KPilot with -kk for merging efforts from now on. Here's the list of features I found in HEAD that are not in BRANCH: - KPilotDeviceLink::installFiles() extra arguments. - KPilotDeviceLink::findDatabase() extra arguments. - PilotDatabase::createDatabase() and deleteDatabase() added. - Pilot*Database::readNextModifiedRec() extra arguments. - Pilot*Database::deleteRecord() added. - PilotLocalDatabase::PilotLocalDatabase extra arguments. - FileInstallWidget lots of changes. FileInstaller as well. [MERGED] * Managed to revert, prevert, and advert syncStack.{h,cc} all in one go. I think I have it back to normal now. KPilot Developer's notes for February 7th, 2003 =============================================== * KPilot 4.3.7 is released. Tarballs on the website tonight. * Need to backport the changes from 2002-11-10 to BRANCH. * Grep for and destroy latin1() calls in code. These are now in the code to keep KPilot working under QT_NO_ASCII_CAST conditions, but should all be replaced by the proper functions instead - either QFile::encodeName() or by updating other functions to take QStrings instead of const char *, and using the Pilot codec where appropriate. * Reinhold's on vacation for a little while. 2003-2-7 Adriaan de Groot * Updated the website some. * options.h [BRANCH] Version number now 4.3.7. 2003-2-6 Adriaan de Groot * Did a big chunk of merging from BRANCH to HEAD. Discovered two things that didn't work well: - Changes in the abbrowser conduit wrt. getCustomField() - Memo widget optimizations I hope I got them right. I'm going back to work in BRANCH. * Constant strings in the source are now (almost all) marked with CSL1() for Constant String Latin 1. This reduces the number of hits for [lL]atin1. The macro uses a syntactic trick to make sure it's only applied to constant strings. 2003-2-5 Adriaan de Groot * Almost everywhere [BRANCH] Search and destroyed latin1(). * options.h [BRANCH] Handle properly. Um, sort of. The dag-blabbed file is obsolete in KDE 3.2, required in 3.1, and incomplete in 3.0. Ignore it instead. Ignore all the fancy Q* operator < to the kpilotrc file in the top part (ie. after DeviceName). 2003-2-1 Adriaan de Groot * Some time spent tracking down double activations of slowShowMemo(). * memoWidget.{h,cc} [BRANCH] Removed double initialization. Removed heavy-handed initialize() call after memo deletion. Found potential data-loss bug with deleting memos after unselecting one. Decided that extended select in this case is just _evil_. I can't decide which memo to show after deselections, and there's several other problems as well related to slotUpdateButtons(). Reverted the multiple-select. * options.h [BRANCH] Added the TODO_I18N macro to BRANCH as well, where it's more important. * kpilotlink.cc [BRANCH] Reordered ReadSysInfo and ReadUserInfo to copy JPilot's setup, maybe that will help with password issues. * kpilot.cc [BRANCH] Cleaned up deprecated headers. * conduitConfigDialog.cc [BRANCH] Preparing to repair the clumsy conduit selection and activation KPilot Developer's notes for January 30th, 2003 =============================================== * Ugh. Looked at jpilot source. Now I remember why doing C often seemed a little unproductive. But it does give some very useful information: We need a combo box to choose the Pilot's encoding. We can use the list from JPilot. Next, we need to make _all_ the QString::fromLatin1() and QString::latin1() -- also all the implicit ones -- that refer to pilot records use the right codec. This will require some possibly major work on the database classes. * The logging is still lousy for many conduits. I ran the notes and address conduits, and the log was less than enlightening. * We need to sync _all_ databases, not just the conduited ones. * Encoding and decoding non-latin1 Pilots is a priority. 2003-2-1 Adriaan de Groot * memoWidget.{h,cc} [BRANCH] Applied patch from David Mott for the GJJ "Lose QMLE". Good job! ... Ugh, and it breaks on KDE 3.0. Hacked. * pilotDatabase.h [BRANCH] Missing #include fixed. How this ever compiled is a mystery to me. * pilotRecord.{h,cc} [BRANCH] Inlined trivial functions. * pilotRecord.{h,cc} pilotAppCategory.h [BRANCH] Start of codec support. * Put together some scripts to do more automated building and testing in KDE 3.1 and 3.0 environments. This makes tarball delivery a _lot_ easier. 2003-1-31 Adriaan de Groot * Let's do the time-warp again! * syncAction.{h,cc} [HEAD] Added a delayDone() function for use from exec() to avoid possible stack growth as follows: conduitExec() exec() syncDone() SyncStack::conduitDone() delete syncAction // The one whose exec() we're still in! conduitExec() // Another conduit! ... return true; I'm not sure I trust all the pointers to still be OK when this happens. Using delayDone() makes sure that exec() and conduitExec() return first and we get back to the main event loop. * syncStack.{h,cc} [HEAD] Using a stack instead of a queue has some comp-sci chique, but little practical value. Break up the API to make it more easy to use elsewhere and practical to insert extra items (like Kroupware) into the sync order. 2003-1-30 Adriaan de Groot * Removing local8bit() calls in the code. They're not wanted. * Marked conduitSetup.{h,cc} as deprecated and removed from build. * Looked into bug #52138 again, and I just can't see it. My Pilot syncs fine with KAddressbook and KNotes, both ways, with names and memos with any latin1 character. [Update: aha! The bug is about Japanese language Sony Clie's. So it turns out there are Pilots that don't use latin1 at all. I'll take a look at how jpilot deals with them.] * I'd like to change the About box tag-line for KPilot to: KPilot - HotSync software for KDE for a variety of consistency reasons. This can only happen in HEAD, though. * Reversed some confusing accidental commits by me in the debugging department for the daemon. 2003-1-26 Adriaan de Groot * Ugh. Still sick with the flu. Hacking just a little, though. The Kroupware stuff in HEAD needs to be moved. Ugh, it's ugly. It needs to become a conduit of its own, but it's hard to tell just what it's doing. 2003-1-24 Adriaan de Groot * Received a patch from David Mott that removes lots of the Log: tags from the KPilot source (mostly in kpilot/). Finished the job too, committed. 2003-1-20 Adriaan de Groot * For the next little while, I'll be working in _BRANCH fixing bugs as best I can. These will end up in KDE 3.1.x releases. Reinhold will be working in HEAD, adding neat features. BRANCH will be merged to HEAD regularly so that no bug-fixes are lost in HEAD. * Reduced debugging output clutter in PilotAddress by changing to FUNCTIONSETUPL(). Assigned Levels are: 4=PilotAddress. 2003-1-18 Reinhold Kainhofer * Removed several Log: ... tags from the conduits I maintain * started implementing the custom fields sync of the addressbook conduit. I still have problems converting a string to a QDate using a custom format * Cleanup of includes in my conduits. * Some more work on the DOCConduit. There are still several open issues, but the basic functionality works just fine! KPilot Developer's notes for January 17th, 2003 =============================================== 2003-1-15 Adriaan de Groot * Back to BSD. Committed lots of header file changes. Did some fixing for strlcpy() in 3_0_BRANCH for folks with KDE < 3.0.5a. 2003-1-11 Adriaan de Groot * Weirdly, I can list the databases on the pilot just fine with kpilotTest, but at the end of the sync the pilot complains about the password. * Similarly, using the daemon I can back up the pilot just fine (pilot-link 0.11.3, all this) and at the end the pilot complains. The data is backed up just fine, though. * Wow, USB connections are _fast_. * Weirdness comes in threes: after a while the debug output stops printing. Even when it's sent to cerr directly. Hmm .. has something to do with printing NULL QStrings. * [hotSync.cc] Every "Backing up:" message was logged twice. * [logWidget.cc] Added more version information. Discovered that QTextView is obsolete. Fixed log tailing problem. #ifdeffed it to Qt 3.1 and later. 2003-1-10 Adriaan de Groot * [kpilot/interactivesync.cc] Some strlcpy problems when compiling HEAD (or BRANCH) KPilot on a KDE 3.0 system. Since we don't maintain branches, backwards compatibility in HEAD is essential. Added #if KDE_VERSION < 310. * [lib/kpilotlink.cc] Might have found the source of the KPilot-hangs-with-USB problems. There's a note in the QSocketNotifier docs saying not to disable read-notifiers. I did anyway, and it never caused problems before. Added some workaround crud. * I'm currently building kdelibs and base and pim on a Linux box, something I haven't done in over a year. This will allow me access to a USB stack that can actually handle the m500, so I can do some more testing. Primary platform remains FreeBSD, though, for all-the-other-KDE-problems- on-nonlinux. * Made a round of removing , since it's already in options.h. Needed a "using namespace std;" in options to get stuff to work. 2003-1-9 Adriaan de Groot * Made new tarballs of the build system (for 3.0 and 3.1) and the sources. * Decision: I'm going to do bugfixes in _BRANCH. Reinhold can do bugfixes and new conduits in HEAD, and I'll merge from BRANCH to HEAD fairly regularly. I think that's the best balance between getting stuff out the door and sticking to the KDE release schedule. * Decision: Remove all the Log: tags from the source files. The Id: tags stay in, for debugging output. 2003-1-1 Adriaan de Groot * Ho ho ho. Happy new year. KPilot Developer's notes for December 30th, 2002 ================================================ 2002-12-30 Reinhold Kainhofer * Some more work on the docconduit. I'm currently restructuring again, so right now it doesn't work at all, but should be finished really soon now. * Add a method PilotDatabase::deleteDatabase() to delete the database. * Add a warning to the vcal conduit's setup dialog to clear any misconception about conflict resolution. Also changed "Pilot" to "handheld" at several places. 2002-12-15 Reinhold Kainhofer * Added a parameter "bool useDefaultPath=false" to PilotLocalDatabase::PilotLocalDatabase to prevent resetting the dbPathName to the default path (kpilot/DBBackup/UserName) 2002-12-13 Reinhold Kainhofer * Initial import of the docconduit, which syncs text files on the desktop with PalmDOC databases (kind of e-book format for the palm) on the handheld for use with AportisDoc, TealReader, QED, etc. * VCalConduit: yearly recurrence now works correctly (had wrong yearly recurrence type rYearlyDay instead of rYearlyMonth) * Addressbook conduit: _equal also compares the categories to check if an item was changed * Added the new methods createDatabase(..) and deleteRecord(..) to the PilotDatabase classes. createDatabase creates a new database with given type and creator, and deleteRecord deletes either a single record or all records in the whole database * PilotDatabse::readNextModifiedRec has a new optional argument of type int* which receives the index of the returned record. * PilotDatabase::findDatabase has optional arguments int index=0, long type=0, long creator=0 KPilot Developer's notes for november 10th, 2002 ================================================ 2002-11-10 Adriaan de Groot * Is kate acting up? I would have sworn I did some ChangeLog editing last night. Anyway: * Expanded the DCOP interface so the daemon can signal KPilot when the HotSync is done. This causes postHotSync things to be called and unfreezes the FileInstaller. * Adjusted the progress bar during installing files. * Daemon->Quit now still waits til lthe end of the sync. * Display some form of progress during a restore. Reduce verbosity a little. 2002-11-08 Adriaan de Groot * Clear the file installer list after a HotSync. Disable dropping files on the installer during a Sync. * When installing files, the "done" message was printed at the beginning of the last file to be installed. Fixed. 2002-11-07 Adriaan de Groot * only call slotTextChanged() in the MemoWidget when switching memos, and only if the memo is changed. This saves rewriting the database every time you hit a key in the memo edit box. 2002-11-06 Adriaan de Groot * Fix the KNotes conduit's name. 2002-11-05 Adriaan de Groot * Patched up the website again a bit. * Mucking about in libkcal to make it useful for KPilot. * Lots of includes changed in the vcalconduit to reflect that. 2002-11-02 Adriaan de Groot * Regarding the "Hidden config feature", it's in the group for the popmail conduit, called "outboxFolder". Set it to the i18n'ed name of KMail's outbox. Damn KMail's DCOP interface / config. This should make it possible to send mail with KMail again. * Finally got a separate build tree of KPilot working. Can distribute sources again, now, assuming SLAC can suffer the bandwidth penalty. * Most of libkcal's header files aren't installed. Why? Is it really intended to be totally internal to the kdepim module in KDE's CVS? 2002-10-31 Adriaan de Groot * Happy Hallowe'en, eh. 2002-10-27 Adriaan de Groot * Don't you hate code / feature freezes? It always stops KPilot development in it's tracks, if only because fixing the bug related to KMail's outbox requires a new string. Bitch bitch, moan moan. * Added new TODO_I18N macro to flag I18N todos. The popmail conduit is a big candidate for fixups. * Thought of a new starter project: moving the popmail conduit config dialog to Qt Designer. Another one would be to fixup the capitalization of popmail in that conduit. * Added extra undocumented configuration option to the popmail conduit in an effort to save KMail sending capability. KPilot Developer's notes for september 19th, 2002 ================================================= 2002-09-13 Reinhold Kainhofer * Finally, the addressbook conduit is in a shape where I can release it with beta 2. There are still some issues (e.g. duplication as conflict resolution is messed up on the next sync. Also, entries with newlines in an address field are always determined as changed, so the fast sync is not so fast with them.), but they can be targeted later on. 2002-09-10 Adriaan de Groot * Problems related to immediate "Exiting on Cancel" traced back to having two pilot-link versions installed; compile against one and link against the other. 2002-09-02 Adriaan de Groot * Added finer-grained pilot-link version checking in configure.in.in. Removed all support for ancient pilot-link versions. 2002-08-30 Adriaan de Groot * Much mucking about with dlp_ functions in an attempt to discover why syncing wasn't discovering _any_ of my databases. Also handling dlp_ReadUserInfo failures, indicating possible password use. Weird. 2002-08-28 Adriaan de Groot * Mess around a bit with Chris' crashes and the exiting-on-cancel one. * PilotDaemon not passing on correct signals and slots to KPilot. This should finally enable some progress-meter changing. * Ditched the check of dlp_OpenConduit when the device is opened initially, it's returning -18 after the user name is read correctly. The USB support under FBSD is still very patchy, though, since it thinks I have just one database. 2002-08-24 Adriaan de Groot * Add a "Fail Now" mode to the NULL conduit to help debugging. 2002-08-24 Adriaan de Groot * (syncAction.cc) Whoops, forgot to implement the timeout feature in interactive questionYesNo. * One more go through all the sources removing warnings. 2002-08-23 Adriaan de Groot * (addressWidget.cc) Added more debugging output in response to bug #45977. Gosh, it's even a FreeBSD user. This basically means that the database can't be opened, and I have no idea why. * (kpilotlink.cc) Added more debugging output in KPilotLink::acceptDevice() to deal with problems from Chris Cowell and Beat Straehl. * (kpilotlink.cc) (Perhaps) check pilot-link version more gracefully. * (pilotUser.h) bzero() new KPilotUser data structures, just in case. * (interactiveSync.cc) Fix compile warnings. * (knotes-action.cc) Fix bug that causes the KNotes conduit to hang when KNotes isn't running. * (everything dependent on SyncAction) Changed the type of exec() to virtual bool, and removed it from the slots. Added a new slot execConduit() which calls exec(). This makes you return a value from exec(), and false is intended to indicate "processing never started due to errors" and will cause execConduit() to generate a generic error message and emit the syncDone(this) signal, which is otherwise easily forgotten when just doing return; KPilot Developer's notes for august 15th, 2002 ============================================== 2002-08-15 Reinhold Kainhofer * Implemented categories in the todo conduit * Fixed the bug which prevented error messages from being included in the hotsync log (the signals from fDeviceLink were not connected!) * Included the malconduit in the CVS tree (but disabled its compilation for now), wrote several emails asking for permission to either relicense libmal to use MPL 1.1, or to include special permission into KPilot's COPYING to permit linking to libmal. KPilot Developer's notes for july 31th, 2002 =========================================== 2002-07-31 Reinhold Kainhofer * Added a time conduit which syncs the time from the pc to the palm * Also wrote an AvantGo conduit, but didn't add it to the cvs tree yet because it uses libmal, which is MPL (and thus GPL-incompatible). We have yet to figure out a way to make them compatible... KPilot Developer's notes for july 17th, 2002 =========================================== 2002-07-17 Reinhold Kainhofer * A first almost-working version of the address conduit. Chances are, some data will be lost, but most parts work. "Duplicate entries" conflict resolution setting does not yet work. KPilot Developer's notes for july 4th, 2002 =========================================== 2002-07-04 Reinhold Kainhofer * Added a function KPilotDeviceLink::tickle() which prevents a timeout on the palm side if it is called with a timer (e.g. when a dialog is open) * Some more work on the addressbook conduit, which seems to be trickier than I had thought initially. KPilot Developer's notes for june 24th, 2002 ============================================ Moving on past 3.0.2 and trying to sort things out. 2002-06-24 Adriaan de Groot * The config file the daemon allocates is read-only. This is inconvenient when conduits want to save data in the config file. Backed that out, am now worried about what happens when you leave the KPilot UI running during a sync, since both applications have a RW copy of the config file. 2002-06-24 Reinhold Kainhofer Still fighting with the addressbook conduit. The Palm -> PC way already seems to work. Haven't committed anything yet to prevent breaking compilation of the kdepim module with a conduit which won't work yet anyway. KPilot Developer's notes for june 16th, 2002 ============================================ 2002-06-16 Reinhold Kainhofer * backported many fixes in the vcal conduits to the BRANCH for the 3.0.2 release. * For the addressbook conduit I implemented a method QValueList PilotDatabase::idList() which returns a list of all record ids in the database * KPilotDeviceLink::openDatabases now fetches the database from the palm if no backup copy exists on the PC. KPilot Developer's notes for june 9th, 2002 =========================================== Not sure just what Reinhold has been up to recently, but I know I've been sitting in the sun and relaxing. Mostly. H==HEAD, B==Branch in the bracketed notes after the patch description. 2002-06-10 Adriaan de Groot * Using version 4.3.3 in BRANCH for the 3.0.2 release, and 4.3.4 in HEAD for later. 2002-06-08 Adriaan de Groot * Conduits, conduits, conduits and documentation, documentation, documentation. That's what we need. Sigh. 2002-06-07 Adriaan de Groot * Patched VCalConduitBase::cleanup() to be careful about calling functions on objects that may not be allocated. [H,B] * Patched VCalConduitBase to use variables from ConduitBase. [H] * Added tooltip for daemon. Gosh, that's ugly. Should put a nicer message in there. [H] KPilot Developer's notes for may 25th 2002 ========================================== 2002-05-23 Adriaan de Groot * KNotes syncing now really seems to work both ways. * Time to deal with a lot of little administrative files. * Fixed tooltips in config dialog. * KPilotTest now resets after a sync as well. * Added hooks in LogWidget to allow extra buttons. 2002-05-21 Adriaan de Groot * Renamed PilotDatabase::cleanUpDatabase() to cleanup(), this affected the Serial and Local reimplementations and also the abbrowser conduit, which is the only conduit to do the right thing and cleanup the database after a sync. * Added missing close and delete on the databases for plugins. 2002-05-19 Adriaan de Groot * Time to take a good hard look at the conduits individually. We'll start with the notes conduit, since it only does one- way syncing. I suspect this will chime in some more testing instrumentation in the base classes for conduits, too. * Changed lots of bitconstants to hex, for clarity. * Added a FlagLocal to plugin.h with the intent that you can then try to sync two _local_ databases -- so you don't even need a Pilot for testing. * The KNotes conduit now tries to do something sensible with getting notes back to the Pilot, but fails. KPilot Developer's notes for may 18th 2002 ========================================== 2002-05-18 Adriaan de Groot * Bunch of compile fixes. What happened? 2002-05-15 Adriaan de Groot * Updated the version number. * Removed the device type combobox, since it's not needed. * Updated the what's this text for the speed combobox. * Removed the "alpha" warning from the log widget. KPilot Developer's notes for april 28st 2002 ============================================ Hopefully we'll have merged the HEAD version of the vcal conduit -- by Reinhold K. -- with branch so that it actually works. KPilot Developer's notes for april 21st 2002 ============================================ A week when I should have been working on KPilot, and I've been working on the build system instead. Reinhold K. has hinted that he's making tremendous progress on the vcal conduit, which is a good thing. 2002-04-20 Adriaan de Groot * Closed a few bugs that I could verify are resolved. Other conduit- related bugs remain open even if I suspect they're done, since I haven't actually physically tested them. 2002-04-16 Adriaan de Groot * Finally committed all of David B's patches and things. [HEAD] * More modification of configure.in.in and the Makefile.am's to make pilot-link more easily found (I hope). [BRANCH] 2002-04-15 Adriaan de Groot * Cosmetic fix: center splash image under KDE3 as well. * Fixed misleading debug statement when KPilot starts the daemon. KPilot Developer's notes for mid-april 2002 =========================================== 2002-04-13 Adriaan de Groot * Received a patch from Carlo Perassi for handling cases where there is no user name set in the Pilot. * Worked on configure changes to detect pilot-link automatically and properly. [BRANCH] 2002-04-09 Adriaan de Groot * Did some minor debugging in setting flags for the conduits. 2002-04-07 Adriaan de Groot * There are now two real branches of development for KPilot. KDE_3_0_BRANCH gets bugfixes to the existing code, while HEAD gets new features. I imagine I'll merge BRANCH back to HEAD sometime when I feel that the main bugs are out (like next week, I hope). I'll be showing where patches go until we merge again. * Added a message (no i18n) showing KPilot and pilot-link versions. * Still need a workaround for dlp_addSyncLogEntry() for pilot-link 0.10.1 [BRANCH - should go in HEAD as well] * Fixed Makefile.am bug in popmailconduit. [BRANCH] - --test mode wasn't working with kpilotTest (when running conduits) [BRANCH] 2002-04-06 Adriaan de Groot * Applied patch to avoid crash with undefined symbol. I forget who sent it in, though. Thanks to you, anonymous! Wrote a script to catch this kind of situation in the future. KPilot Developer's notes for sometime in march 2002 =================================================== 2002-03-09 Adriaan de Groot * Sanitized syncStack so that nextAction isn't so ambiguous. * Fixed missing default (--list) in kpilotTest. * Some neatness fixes in pilotDaemon.cc and pilotDaemonDCOP.h. * Test syncs shouldn't run conduits or install files. Fixed in pilotDaemon. * The daemon leaked 2 FD's on every sync, which is bad. Added some extra ::close() calls, which fixes this (under p-l 0.9.5 and 0.10.1). * Mucked about with USB devices some more, but it looks like the m500 is going to be unusable under FBSD for some time. This isn't bad, since I can then concentrate on getting things working with the serial PalmV. * It might be a good idea to start using the daemon to do just device tests instead of kpilotTest -- though it doens't make a big difference. 2002-03-08 Adriaan de Groot * Fiddled around w/ getting a broadband connection, for whatever reason. I guess effortless connectivity is the goal. Fiddled with my new m500 USB and discovered that pilot-link 0.10.1pre works perfectly with it under Linux (well, pilot-xfer -l works). Under FreeBSD, though, it seems that there's nothing available for this kind of device. Hmph. So now I need to spend some time to figure out how to get KDE up and running on my somewhat deprecated Linux install. Serve the source by NFS? 2002-03-07 Adriaan de Groot * Finally picked up where I left off, adding yet another message to the startup log window (again, I think this is temporary). The versions of relevant items now appear there. * Messed around with crashes while deleting CleanupActions. 2002-03-06 David Bishop * Lots of work on exporting memos in XML format. It looks like the whole memo viewer widget is going to be reworked, slightly. * Finished off the kdDebug() repairs someone else started. KPilot Developer's notes for february 11th 2002 =============================================== 2002-02-06 Adriaan de Groot * kpilot/listItems.cc lib/pilotRecord.cc - Removed some FUNCTIONSETUPs, since they were really clogging debugging output and not adding anything interesting. Changes some other debug output as well. * kpilot/addressWidget.cc - I *think* I squashed a memory leak, caused by createTitle which was still returning char * instead of QString. Moved to QString anyway. 2002-02-03 Adriaan de Groot * kpilot/Icons/kpilot-hotsync.png - Whipped up a new icon for HotSyncing. This makes all the icons in the Janus view the same size. KPilot Developer's notes for february 2nd 2002 ============================================== 2002-01-26 Adriaan de Groot * Wherever - Invented an icon for the address viewer. - Doubleclick on conduit in active column configures it. - Fixed some compile problems under KDE3. - Messed around with the vcal conduit. - Configuring conduits resets the daemon. - You can't reset the daemon during a sync; replaced fQuitAfterSync. I'm starting to think the logWidget belongs with the *daemon* (and should be showable from the daemon's context menu), not from KPilot (which should be just a viewer). Opinions? 2002-01-27 Adriaan de Groot * Wherever - Got rid of the remaining dlp_ functions in code outside of kpilotlink.cc and pilotSerialDatabase.cc. This leaves the pi_ stuff. Development of KPilot is now done on a 80x25 serial terminal running at 38400 baud. I have no idea what kind of effect this will have, but it means I can sit on the couch and do devel work :) 2002-02-02 Adriaan de Groot * lib/kpilotlink.{h,cc} - Continue moving pilot-link related things (pi_*) into the KPilotLink class, so that Dag might have an easier time of it. * lib/options.cc - Removed some messy #ifdef DEBUG stuff, with debugging enabled call tracing is now default on. * kpilot/logWidget.cc - Added some text stating that KPilot is really alpha. Noone will read this, of course, and it will only piss off the translators. KPilot Developer's notes for january 25th 2002 ============================================== Found my Pilot again, made tea, thought about Dag's and Neil's comments on ColdSync (I still believe that ColdSync has the drawback that it's not meant to be a library you can build on, it resembles the pilot-xfer tools much more than anything else). Grepped for dlp_ in the sources. They seem fairly isolated, which is good -- maybe we *can* move to some other Pilot access method. Looked at some old sources. *uuuuugly*. PilotRecord, PilotAppCategory, PilotTodoEntry, etc. could use a good dose of sanity. 2002-01-21 Adriaan de Groot * conduits/vcalconduit/* - Some serious rewriting going on. * kpilot/hotSync.cc - Removed old KPilotLink code - Moved calls from dlp_OpenConduit to KPilotDeviceLink::openConduit() * lib/syncAction.h lib/kpilotlink.{h,cc} - Added openConduit to abstract the underlying lib interface more. * kpilot/logWidget.cc - suppress empty log lines. * lib/pilotLocalDatabase.{h,cc} - Added a hook for UserCheck to set the default search path for databases opened by name only. It's time to say hi, welcome, and thanks to a couple of new people on the KPilot / kde-pim team. There's Chris Abiad, who has already made his presence felt on the mailing list. Thanks for fielding questions for me, Chris, and stalling on the question of when the next release is. Chris will also be maintaining the website. Next up is Stephanie Bryant, a writer of technical documentation. She'll be helping me document the various files in kpilot/lib so that they actually form an understandable and usable API for third-party conduit-writers. Philipp Hullmann, you should be overjoyed to hear this :) Once she's practiced on KPilot, Steph will be leaving us for kdelibs, where weird and wonderful things await ... 2002-01-25 Adriaan de Groot * *.ui - Danimo was wondering why we use ToolTips everywhere instead of WhatsThis. My answer was "because we knew about QToolTip before QWhatsThis." Anyway, switching over to the correct form of on-line help is a simple search- and-replace thing. So that has happened. David, can you keep that in mind as well? * kpilot/pilotDaemon.{h,cc} kpilot/Icons/ - Minor changes to get the daemon's icons to display properly. - Woo.. the busysync icon is *ugly*. Partly fixed, and I hope Kristof can do something about it sometime. Really we need the icon in 4 rotated states (well, maybe 2) to indicate activity during the sync. - Of course the daemon was exiting after each sync .. I forgot to initialize fQuitAfterSync (which isn't used, BTW, except if you use DCOP to call quitNow()) to false. * kpilot/kpilot.cc - Forgot to inform daemon of changing settings. * kpilot/syncStack.cc - All conduits now put *something* in the Sync log. KPilot Developer's notes for january 20th 2002 ============================================== It's been a slightly sleepy time. Some rocky backporting has occurred, though, as KDE3-isms sneak into the codebase and break my compiles at home. At work, though, I've switched to KDE3 and it's really nice. Now if only I could release a version of KPilot that works before KDE3 comes out and makes all this compatibility effort moot ... 2002-01-15 Adriaan de Groot * conduits/vcalconduit/* - Class Recurrence is the KDE3 name of class KORecurrence. Where the libkcal API has changed, added #ifdefs to use the right one, and #define Recurrence KORecurrence when compiling under KDE2. 2002-01-16 David Bishop * *.ui - Added 's to all tooltips, neatness fixes. 2002-01-16 Adriaan de Groot * lib/options.{h,cc} - Added support for both ostream and kdbgstream << QSize to avoid plugin crashes when the plugin is compiled with different DEBUG_CERR settings from libkpilot. 2002-01-19 Adriaan de Groot * Documentation - Added a warning "Docs out of date" to the docs, adapted all the top-level README &c. files to reflect the current situation. 2002-01-20 Adriaan de Groot * lib/pilotLocalDatabase.{h,cc} - Added new constructor that doesn't take a path, but just uses the application-instance database directory. * lib/plugin.{h,cc} - Added isRunning() to PluginUtility, since several conduits need to know if the application they are syncing is already running or not. * conduits/knotes/knotes-action.{h,cc} - Replaced knotesRunning by call to isRunning(); * conduits/vcalconduit/* - Started a real re-write of the vcal conduit (what??!) * TODO - Updated the TODO list with some concrete stuff. KPilot Developer's notes for december 31st 2001 =============================================== Time to go out with a bang, eh. Fixing the VCal conduits so they actually do a sync was a fair bit of work, partly because it was so weirdly crufty, partly because of the peculiar separation of the todo from the vcal conduit. 2001-12-28 Adriaan de Groot * conduits/vcalconduit/vcalBase.{h,cc} * conduits/vcalconduit/vcal-conduit.{h,cc} * conduits/vcalconduit/todo-conduit.{h,cc} - Well, it compiles now. * lib/plugin.{h,cc} - Added isBackup() so that conduits can now also do their own backups. Note that conduits aren't called (yet) during a backup action. * conduits/popmail/* - Why the heck does this (still) use FILE *? - It compiles and there is a sync action. Next up is checking out kpilotTest and making sure that it does sensible things, like closing the device handle, allowing multiple syncs, and running file install correctly. After that, testing testing testing. 2001-12-28 Adriaan de Groot * kpilot/main-test.cc - Added one-letter cmd-line-options, sanity checking. - Switched to SyncStack integrated syncing (see below). * kpilot/main-config.cc - Removed unused new-style option. * kpilot/syncStack.{h,cc} - New files encapsulating sync sequence knowledge. 2001-12-29 Adriaan de Groot * kpilot/pilotDaemon.{h,cc} - Switched to SyncStack. * lib/kpilotlink.cc - Work around an off-by-one bug in pilot-link versions < 0.9.6. * kpilot/interactiveSync.cc - Added support for don't ask again in the check-user questions. This changes the API of questionYesNo, but only inserts a (defaulted) parameter, so "regular" calls of this should be unaffected. The GUI isn't updated at all (?) during a backup action. Hmph. Well, only between databases, but that's not much. The backup appears to work, which is a good thing. Gonna hafta try the restore action soon ;) 2001-12-29 Adriaan de Groot * conduits/null/null-*.{h,cc} - Fixed some configuration load / restore / use bugs. Moved configuration keys to the factory. * kpilot/syncStack.{h,cc} - The conduit proxy action also needs to proxy the messages from the conduit. I never knew connect(p,SIGNAL(),q,SIGNAL()) worked! Wow. * kpilot/logWidget.{h,cc} - Added missing slot for logProgress. Aieee! I'm becoming a kate user, vi is suffering from abandonment on my devel box. This is troubling -- using the software you write. Heck, next thing you know, I'll be using KPilot to sync my Pilot. Ewwwww. 2001-12-29 Adriaan de Groot * kpilot/conduitConfigDialog.{h,cc} - Removed old Exec= style conduits entirely. They're warned for now. * conduits/abbrowserconduit/* - See conduit run. See DrKonqui. Whee! Oh, and this *one* conduit has a name of the form bla_conduit, while all others are bla-conduit. Yay. See pointer get used before initialization. Cool! It crashes elsewhere. Isn't delayed loading great? __rs__FR11QDataStreamRt5QDict1Z12ContactEntry And ... that was fucking amazing. Greg, you da man. OK, so that one also runs to completion, at least the first time. It looks like FirstTime isn't being turned off like it should, so I'll do that by hand. OK, changes get copied from the Pilot to KAddressbook ok, but the conduit seems to read *all* records from the Pilot, not just the modified ones. That's bad for the batteries. Oh well, I'm just so happy it works that I'll move on to the next conduit and deal with bugs tomorrow. * conduits/expense/* - Seems to work fine. * conduits/knotes/* - Undefined symbols ... man, I (semi) hate libtool libraries. See, I just left some essential code *out* here, and thus libtool thinks it'll be resolved later. Ha! OK, it at least copies new KNotes to the Pilot. That's enough for now. * conduits/popmail/* - Um, does this actually *do* anything? OK, config fixes, dcop fixes ... and voila, a message shows up in the outbox of KMail. So let's call sending via KMail a success and have a cup of tea. * conduits/vcalconduit/* - Now things get hairy / exciting. Let's start with the ToDo conduit: kpilotTest: WARNING: [void ConduitProxy::exec()] : Can't create SyncAction. Very wise. Of course, the code to create a conduit is not in the factory. Brilliant! Nothing a little cut-n-paste can't cure, and configure, and .. DrKonqui. Did some indenting, my brain hurts from trying to (a) understand this (b) fix all the memory leaks. Rewrite? - VCalConduit: it doesn't crash, but it's probably going to read all the things from my Pilot and install them in KOrganizer with a date of 0000/00/00 (from looking at the debug messages as they fly by). And .. whump, KOrganizer now can't read the .ics file anymore. *Every* sync, KPilot tells me that the name in the pilot is different from the name in KPilot. Gotta fix that. 2001-12-30 Aaron J Seigo * kpilot/logWidget.cc * kpilot/kpilot.cc - Paint the KPilot version number in the splash screen. 2001-12-30 Adriaan de Groot * conduits/vcalconduit/vcal-conduit.cc * conduits/vcalconduit/vcalBase.cc - Removed some __FUNCTION__ things, added #ifdef DEBUG to debug code. In some other files, too. - The code in vcalBase.cc is in heavy need of an invocation of indent. It's horrible and ugly in other ways, too, but this is a start. 2001-12-31 Adriaan de Groot Some general polishing of ToolTips &c. * kpilot/* - Added Kristof's icon for the file installer. It's still a preliminary version, though. - TODO: after reconfiguring the username, re-initialize all components in kpilot, to get the new databases. - Switched the ToolTips in the address viewer to use - TODO: ditch the toolbar; perhaps add the select-kind-of-sync functionality to the logWidget. KPilot Developer's notes for december 27th 2001 =============================================== So I never posted the previous notes. And besides Maarten's little comment on the odd jobs, no response either --- but then again, it was Xmas and maybe people had more important things to do. I know I had enough dinners that I can fast & hack for the rest of the week. Things fixed now: * conduits/vcalconduit/ - All the configuration dialogs now look ok, after a little fiddling about with the .ui files, and the configuration is saved as well. A sync is out of the question right now. Yet another odd job: someone (David?) needs to check all the ToolTips in the .ui files for the conduits with Qt *2*'s designer. And we need to check that all the configurations are in fact saved properly. Testers? KPilot Developer's notes for december 23rd 2001 =============================================== HoHoHo. Let's look back in the ChangeLog to see where we were one year ago. Struggling with the vcal conduit (it's *still* wonky); missing the 2.1 release deadine (was it that long ago?); cleaning up code. In these complex modern final days, (to quote Pogo), what's up? 2001-12-18 Adriaan de Groot * conduits/expense/* * conduits/null/* - These two conduits now have a full configure dialog that's sized correctly (afaict without messing around with font settings), that saves the settings, and have a working sync action. Whee! 2001-12-20 Adriaan de Groot * conduits/abbrowser/* - This conduit now has a working config dialog and does a sync, although I haven't really looked at the sync code itself to check for bugs. * conduits/knotes/* - Ditto; it configures and syncs, although the sync is rather sparse. I discovered that const char * const is a useful type, though. It saves an accessor function for KConfig entry keys. The bad conduits: * conduits/popmail/* - Still no .ui file and not many tooltips, but you *can* configure this conduit. No sync though. * conduits/todoconduit/ - This one is seriously deprecated and I'll try to remove it soon. * conduits/vcalconduit/* - It's got a .ui file which is used badly and which is missing layouts. Not a hint of saving configurations though. OPEN JOBS: Are you bored? Is your love life lackluster? Do you want to MAKE MONEY FAST? Do you want to FIND OUT WHAT MICROSOFT DOESNT WANT YOU to KNOW? ... um ... back to reality: If you'd like to help out with KPilot but don't really know where to start, and would like to get a little acquainted with the code, the coding style, and some of the conventions used in KPilot, read on! If you have grep and a text editor, read on! The code, and particularly the debugging code, has gone though a number of phases. For a while, there was that --debug 1023 stuff. I've decided that that's actually kinda cumbersome for a GUI program, and debugging has switched back to an all-or-nothing kinda thing. So some things need to be changed all over the source code, and that's just the kind of exploratory job for someone with grep and vi. In particular: * kdDebug() everywhere needs to change into DEBUGCONDUIT, DEBUGKPILOT, or one of the other DEBUG* macros defined in kpilot/lib/options.h. This will send the debugging output to the sensible debug area. Which one you choose depends on where the file lives -- choose wisely. * DEBUG* calls everywhere need to be surrounded by #ifdef DEBUG #endif. This is because some compilers don't optimize away unused strings, leading to big bulky (well, sorta) executables. Adding the #ifdefs makes sure that there's nothing at all left over from the debugging code when debugging is turned off. * __FUNCTION__ needs to be replaced by k_funcinfo. The popmail conduit is bad for that one, at the very least. * if (debug_level) and its cousin if (debug_level & SOMETHING) need to be removed, along with the set of brackets they introduce. The debugging statement (usually just a kdDebug() << whatever << endl;) needs to be out-dented one tabstop, to line it up properly. These are, in one sense, rotten little jobs. But they'll take you to all the corners of the KPilot code, show you some ugly (and some not-so-ugly) code, and give you a feel for "the lay of the land." After that, fixing all the remaining off-by-one bugs in the vcal conduit should be a breeze. KPilot Developer's notes for december 16th 2001 =============================================== Worked on some conduits for danimo, who has UI updates. So more conduits compile now, but I haven't tested them. However, they do get installed if you do make install, and they may eat your Pilot, you Buick, or New York when run. USE EXTREME CAUTION. I think the NULL conduit is safe, though :) Abbrowser Conduit: it compiles, and it has but a setup dialog and a sync part which has not been tested at all. * Makefile.am - Fixed up includes, removed old PISOCK_INCLUDE. * abbrowser-conduit.cc - Changed kdDebug() to DEBUGCONDUIT, applied indent style, #ifdef DEBUGs - Replaced static QString objects by const char * (KConfig keys) - Removed old files - Assume FirstTime is always *true*, this is at least partly broken, but it makes the conduit compile at least. The other conduits all compile and have config dialogs but don't do anything. And in other news, little bugfixes and other neat stuff sometimes shows up in my mailbox. Martin Junius is a long-time contributor, and he's volunteered (again) to make new KPilot rpms for RH 7.2 once the system is stable again. * kpilot/addressWidget.cc setupWidget() - Martin Junius found a display bug and sent a patch. * conduits/vcalconduit/vcal-conduit.cc setRepetition() - Philipp Hullmann noticed that the Pilot's week starts on day 0 = sunday, and in KDE day 0 = monday. KPilot Developer's notes for december 2nd 2001 =============================================== More work on the expense conduit. In conduits/expense: * setupDialog.h - Added an #include to make header self-contained. * setupDialog.cc - Disabled MySQL button, since there's no code to make it work. - Disabled "logRotate" stuff, since I can't remember what was wanted there and there's no code for it. * expense.cc - Reordered #includes, removed extra #ifdeffing. Removed extra #includes. - Split up actions into CSV, MySQL and Postgres specific parts. - Made the other-db methods also write CSV files if needed. - Support both overwrite and append modes for CSV. - TODO: create the mysql code. - TODO: patch possible security hole in echo passwd | - TODO: spawn fewer processes for psql. - TODO? use klocale's date formatting, not US-specific code. * expense.h - Changes reflecting the above, and - Documenting what's going on. In other news: * conduits/knotes/knotes-action.cc listNotes() - Removed spurious #ifdef DEBUG. Test mode should always work. And oh, wow, thanks to messing around with the logWidget for KPilot, KPilotTest now also has a funky splash screen :) * kpilot/main-test.cc main() - connect signals from the test action to the log widget. KPilot Developer's notes for november 25th 2001 =============================================== More work on the Expense conduit. In other news: * kpilot/logWidget.{h,cc} Nifty feature for the sync log: clear the log. Save the log. ToolTips. KPilot Developer's notes for november 18th 2001 =============================================== Kudos to Marko Hollomon for spotting a pointer error in the KPilot daemon and fixing it. The patch changes pilotDaemon.{h,cc}. Thanks too to Palle Girgensohn, who made an icon for the internal memo- viewer and the KNotes conduit. This looks really neat in the new IconView mode of the main KJanusWidget. Shuffling the DCOP interfaces and cleaning up the UI, by [ade]: * logWidget.{h,cc} Made the splash more like a splash, removed some ugliness, moved the progress bar into the SyncLog widget. * kpilotDCOP.h Removed the spurious filesChanged() call -- use KDirWatcher instead. * kpilot.{h,cc} Removed the inheritance from kpilotDCOP.h, moved the DCOP interface to LogWidget. Removed the status bar, since it's all in the LogWidget anyway. * pilotDaemon.cc Renamed KPilotDCOP interface, removed filesChanged DCOP signal. * Makefile.am Now logWidget requires kpilotDCOP, so moved that. Now that conduits are .so's, the conduitConfigDialog needs to have some strings changed to reflect that they're not executed anymore [ade]. * conduitConfigDialog.{h,cc} Added a warnNoLibrary function, moved warnings to Qt richtext. The FileInstallerWidget has some lousy strings with \n, and it needs a KDirWatcher [ade]. * fileInstallWidget.{h,cc} Changed the i18n strings to remove \n's. The Watcher remains a TODO. Attacked the expense conduit, finally. Maybe *this* one won't run aground on things like fundamental API changes in the stuff it syncs against. * Makefile.am Removed spurious LIBPISOCK_PATH, moved files around a little. * setupDialog.{h,cc} Ported to UIDialog classes, layout fixups. This is the one conduit that still uses hard-coded layouts. It's possible, see? This isn't really the way to go, I'd much rather have David B. make dialogs with Qt designer. Added a break; in ExpenseDBPage::slotPolicyChanged() to avoid warnings. KPilot Developer's notes for november 11th 2001 =============================================== Much messing-about with hardware, OSsen and the like has delayed many things. I've discovered that the configure.in.in and Makefile.am for KPilot were really badly broken under anything non-Linux. * configure.in.in Possibly fixed all kinds of shell-script breakage (under Solaris) and not-finding pilot-link under FreeBSD. You will have to pass in the --with-extra-libs and --with-extra-includes flags; configure now looks there correctly. * All the Makefile.am's Removed the extra spurious $(LIBPISOCK_PATH) which was breaking things under FreeBSD. * lib/uiDialog.{h,cc} Added a virtual bool function validate() so that when Okaying a dialog, you can check first for valid settings. The default implementation is return true; * kpilot/kpilotConfigDialog.{h,cc} Added validate(), check that string for Pilot device doesn't overflow the buffer for it. Also enforce the length restriction for the device name. This is all conditioned on pilot-link < 1.0.0. * kpilot/kpilot.{h,cc} Use a KJanusWidget instead of a QWidgetStack and deprecate the View menu to make it clearer which views / actions / things KPilot actually *has*. Moved the Spash Screen to the log widget, and made it a real splash. KPilot Developer's notes for october 28th 2001 ============================================== So fun to have distributions release broken versions of an application. It sometimes makes me wish I didn't have to commit stuff to CVS at all until the application is totally right according to me (which is then sure to run into trouble with the KDE release schedule). Another fun thing is wrestling with broken hardware. But it's finally fixed now. So I hope the pace picks up again now. I've been working on the abbrowser conduti sporadically, so we now have at least three conduits partially ported to the new setup. KPilot Developer's notes for october 21st 2001 ============================================== 2001-10-21 Adriaan de Groot Since to do the popmail conduit I first need to learn about IOSlaves and the KNotes conduit is hard, I spent some time playing with the abbrowser / KAddressbook conduit. * conduits/abbrowser/* () Removed all the old files for the setup dialog, now using David Bishop's .ui files with some polish from me (like putting his name in the "Author" field in the .ui file). () Fixed up the Makefile.am to make the library and the test apps. () Added a factory function. () Removed all the palettes from the deconflict dialog. This takes 150k out of the .ui file. Next challenge is to make it respect the KDE system settings. 2001-10-20 Adriaan de Groot Worse is when your AGP bus turns out to be broken instead. * conduits/knotes/knotes-action.{h,cc} () Added method resetIndexes which should be called at the end of every phase of the sync, basically to reset the counter and list iterator to the beginning of the list of KNotes. () Added method modifyNoteOnPilot which does the modified-notes-to Pilot work. It isn't very robust yet, since it doesn't handle weird cases (modified yet unknown on Pilot, for example) at all. 2001-10-19 Adriaan de Groot Dern. Having your video card break and being thrown back to a 4MB SiS card fit only for a firewall with no monitor is *no* fun. Where's a 24-hour computer store when you need one? Not only that, but I realise I'm going to have to put some serious thought into the KNotes conduit and how it is supposed to sync. So since that's hard, I'm going to look at the Mail conduit instead, since the functionality there is pretty much complete. 2001-10-18 Adriaan de Groot * kpilot/Icons/ () Incorporated most of Kristof Borrey's fantastic new icons for KPilot. * conduits/knotes/ () Removed old files setupDialog.{h,cc} * conduits/knotes/knotes-action.{h,cc} () Added new function getConfigInfo that reads the config file for the lists of Ids (matching KNote ids to memo ids). 2001-10-16 Adriaan de Groot * lib/options.h Upped the version number to 4.2.9b just because. * kpilot/kpilot.cc Changed some credits around, copyright notice, etc. * kpilot/Makefile.am kpilot/Makefile-standalone Fixed some breakage caused by all the moving around of files. You may need to make clean ; make in KPilot some time to get things back to normal. KPilot Developer's notes for october 16th 2001 ============================================== 2001-10-16 Adriaan de Groot Well, the b-day party got in the way of actually releasing something, and there's quite a lot of polish still to apply -- ie. the KNotes conduit still does nothing more than install new notes to the Pilot. So I'm going to start keeping the TODO list more up to date, including assignments for various people, and keeping the ChangeLog more up-to-date according to the ChangeLog standard, instead of these long rambling stories. 2001-10-14 Adriaan de Groot Whee! It's KDE's birthday today. What a fitting day to finally release a version of KPilot that actually works, has useful features, and doesn't gum up your Pilot hopelessly. 2001-10-10 Adriaan de Groot * Actually add new KNotes to the memo pad. This means conduit syncing is actually coming closer. Works from kpilotTest. * Renamed --test --list in kpilotTest, added option --notest to force a conduit to *really* run (may be hazardous!) from the tester. * Moved many things into lib/ -- whatever is shared between KPilot and conduits, basically. * Wow! There's stuff in PilotAddress I'd never noticed before that deserves to be moved to a superclass -- like setCategory. Kudos to Greg. * Updated the TODO list. * Added a nicer credits section in the about page of dialogs. 2001-10-09 Adriaan de Groot * nothing! Fixed old compile issues on KDE 2.2 iob Solaris. 2001-10-08 Adriaan de Groot * Added lots of things in lib/ to enforce some kind of uniformity on conduits and factories. Utility functions, too. * Added an app-icon for the KNotes conduit. It's ugly as all get-out. * Added a test-conduits and a list-conduits mode to kpilotTest. * Went back and tested all the stuff we already had, since this re-architecting carries risks. This showed that not everything had gone right: I'd lost track of the pilot socket somewhere. Hmph. Two rounds of re-writing headers, all the parameters finally end up in the right place. * The knotes conduit now lists new knotes but doesn't install them. KPilot Developer's notes for october 7th 2001 ============================================= Ah, post-KDE3-alpha1. And that when KPilot remains completely 2.1 and 2.2 compatible. A new release of KPilot for 2.2 is imminent, say oct. 14th or so. KDE 2.2.2 was just released, but contains no changes to KPilot at all -- all the bugfixes were not of the kind that would fit in the 2.2.2 plan. 2001-10-07 Adriaan de Groot Hmm. Missed a few days. What I remember: * Implemented the Null- and KNotes-conduits setup dialogs in plugin libraries using David's UI files. That was fun and easy to do. * Make the new-style conduit configurator handle plugin libraries. This was less fun, but it works. I haven't had any feedback on which of the two config dialogs is easier to use, but right now I'm leaning towards the new-style one (two columns + some buttons, just like it was *long* ago.) D'nD would be nice though. * The new-style thingy doesn't handle saving which conduits are enabled. * Made a new subdir lib/, since the plugins need to share some code with KPilot and you need a .so to make it link properly. * Wrestled with sensible layout of the about page. 2001-10-01 Adriaan de Groot * Picked up David's new UI file for the conduit configuration dialog and gave that a whirl. The results can be found in kpilotConfig, use --help to find out which options to use. KPilot Developer's notes for september 30th 2001 ================================================ 2001-09-30 Adriaan de Groot Last minute sneak-it-in-for-the-alpha things. More code and layout cleanup, although the big commit changing to tabs & the KPilot style was yesterday. Fixed some minor display bugs, made preHotSync more useful, normalized some strings. The kpilot/Icons/ directory now contains only those icons actually needed and used, and they're all in PNG format. Saves lots of space, in the sense that the KPilot binary is 300k smaller now than it was, due to dumping XPMs. I added a private-d-ptr to kpilot.h, but haven't moved all the data members there. For an app it doesn't matter so much, but this will reduce the amount of recompiling and who knows what the plugin API will look like eventually. The conduit configuration is different -- again -- and easier to understand. 2001-09-27 Adriaan de Groot * Added FUNCTIONSETUP everywhere. * Replaced email addresses with kde-pim@kde.org or groot@kde.org. * Removed qDebug everywhere. 2001-09-26 Adriaan de Groot * Surrounded much debugging output with #ifdef DEBUG. * Replaced remaining calls to kdDebug() by macros with debug areas. * Applied indent everywhere. * Added some () where needed to resolve ambiguity. 2001-09-25 Adriaan de Groot Wrestled with crashes (cerr << i ; debugstatement ; cerr << i ; gave two different values for i) caused by mixing debug conde and non-debug code. Discovered that qglobal.h defines DEBUG unless NO_DEBUG is set. Hmph. Also found that gcc does a poor job in optimizing away debugging statements with NDEBUG defined. Therefore, debugging statements will be once again surrounded by #ifdefs. The plan is that I'll get all the code formatting and this kind of silly issues out of the way in the next few days and then start to deal with the next problem, namely the existing conduits. 2001-09-24 Adriaan de Groot * kpilot/uiDialog.{h,cc} * kpilot/kpilotConfigDialog.cc * kpilot/kpilotConfigDialog_base.ui Minor changes to get the dialog to size correctly when other fonts / other settings are used. This solves David's complaint about ugly dialogs. * kpilot/hotSync.{h,cc} () Removed lots of commented out code from previous incarnations. () Added a cleanup action. () Removed a heap-corruption bug caused by using QStringList & and then deleting what it points to in FileInstallAction. () Removed deadlock when last file to install couldn't be read. () Moved RestoreAction to interactiveSync.{h,cc}, since I feel it needs to ask "Are you sure?" at the very least. * kpilot/interactiveSync.{h,cc} New files with support for, and some types of, interactive syncing. Used for asking the user questions during a sync, for example confirm dialogs. This means we can now update user settings &c, since we needed some interaction for that. Moved RestoreAction to here. * kpilot/kpilotlink.{h,cc} Made exec() pure virtual for SyncActions, since that makes more sense than having an empty default action. * kpilot/Makefile.am Added interactiveSync.cc to the list of sources. * kpilot/pilotUser.h Squashed a buffer overflow. Squashed several buffer overflows. Yowk! This code has been around since 1996? * kpilot/main-test.h Added some extra code to make the sync cleaner; handled the move of RestoreAction. KPilot Developer's notes for september 23rd 2001 ================================================ My current development platform is RH 7.1 with KDE 2.1.1 -- even so I'm committing things into HEAD. I'm sure this will explode sometime and I'll be forced to upgrade to KDE 2.2 or worse, but for now, that's the platform I'm aiming for. I'd like to take a moment to thank David Bishop, for sending me .ui files, for causing noise on the mailing lists, and for being a pleasure to work with. Together we've wrestled with Qt designer, uic, and replacing the KPilot dialogs with something sensible made with designer. * kpilot/options.h * kpilot/kpilotConfig.{h,cc} * kpilot/kpilot.cc kpilot/kpilotDaemon.cc kpilot/main-*.cc Factored out the --debug flags from each individual app, now in options.cc. This means each file with a main() was modified too. I must say it was a real bitch figuring out exactly which sequence of calls were needed for KCmdLineArgs::addCmdLineOptions(), and then finding out that ParsedArgs() also needed help. * kpilot/kpilotDaemon.cc Sneaking in the QStack<> stuff just under the wire was a bad idea. Fixed an uninitialized pointer bug. * kpilot/hotSync.cc Fixed missing syncDone() signal in FileInstallAction; added some logProgress() calls, extra debugging. * kpilot/kpilot.cc Added KillDaemonOnExit logic to KPilotInstaller. 2001-09-23 Adriaan de Groot * kpilot/uiDialog.{h,cc} * kpilot/kpilotConfigDialog.{h,cc} * kpilot/kpilotConfigDialog_base.ui New files -- the .ui file is from David Bishop -- re-implementing the configuration dialog using modern technology. uiDialog.{h,cc} are abstract base classes, suitable for reuse. kpilotConfigDialog.{h,cc} contains the behavior of the dialog, and the .ui file the UI. * kpilot/kpilotConfig.{h,cc} Switched around #ifdef and #ifndef. This disabled setting debug levels in code with debugging on. Duh. Getting it right then showed all kinds of bugs in the other code. Added some documentation explaining possible crashes due to missing KApplication instance. FINALLY did something sensible about code duplication -- added get and set methods to a subclass of KConfig for all KPilot settings. * kpilot/kpilotOptions.{h,cc} Is deprecated and removed. Say hello to the new world of .ui files. * kpilot/kpilot.{h,cc} * kpilot/memoWidget.cc * kpilot/addressWidget.cc * kpilot/conduitSetup.cc Lots of little changes to reflect the KPilotConfig changes. Mostly removing calls to setGroup() and readEntry(), which are now safely encapsulated. * kpilot/pilotDaemon.{h,cc} * kpilot/pilotDaemonDCOP.h Removed cruft, adapted to KPilotConfigSettings, and adapted to SyncActions. Changed silly startHotSync(int) DCOP method to requestSync(int). 2001-09-21 Adriaan de Groot * kpilot/hotSync.{h,cc} Added an InstallFilesAction class, to run during a HotSync. 2001-09-20 Adriaan de Groot * kpilot/kpilotlink.{h,cc} * kpilot/main-test.{h,cc} All these files changed because of yet another re-architecting. Now we have HotSyncActions, which have direct access to the PilotDeviceLink, and which do "something". The test action just lists the databases present on the device. This has been tested with USB and with serial devices. * kpilot/hotSync.{h,cc} Changed again to split the actions away from the device link (really, how I ever decided on that is a mystery to me now). * kpilot/Makefile-standalone A Makefile that can be tweaked, that does not use autoconf, and is useful for making standalone tarballs. 2001-09-17 Adriaan de Groot * kpilot/Makefile-kpilotConfig () New file for building a standalone config program. * kpilot/main-config.{h,cc} () New .h file, new classes for implementing some behavior. The behavior is very minimal right now, but as an illustration for David (hey, now he needs to learn C++ coding) it's fine. * TODO () Thought of lots of new things to do. KPilot Developer's notes for september 16th 2001 ================================================ KPilot now compiles completely again, at least on a KDE 2.1.1 platform. I'll check w/ KDE 2.2 as soon as I get that working here, and then we'll take another look at Qt3 -- I saw Cornelius has already put some changes in. 2001-09-15 Adriaan de Groot * TODO () Added a TODO file. I didn't copy all the TODO's from the ChangeLog into it, though, since many make no sense right now. 2001-09-13 Adriaan de Groot * kpilot/kpilotlink.{h,cc} () Changed fTransientDevice into fDeviceType since we have lots of variants to deal with. () Added functions installFiles() and installFile() to handle the installation (!) of files to the Pilot. * kpilot/pilotDaemon.cc () Finally dealt with all the changed classes and methods of the device link. (slotEndHotSync) No need to tell the link to end the Sync, since it's the one that's telling *us*. 2001-09-08 Adriaan de Groot * kpilot/options.h () I've installed RH 7.1 and gone back to KDE 2.1.1. Whee. They've somehow utterly broken kdDebug() and kdWarning(). Added compile flag DEBUG_CERR to make all the debugging info go to cerr instead. * kpilot/kpilot.cc () Startup notification was added to startService...() in 2.2, so now there's an #ifdef handling that case. 2001-09-07 Adriaan de Groot * kpilot/pilotComponent.h () Fixed up #ifdefs for new style * kpilot/kpilotlink.h () Make many data members private with protected access functions. (statusString) Made into a virtual function. 2001-09-06 Adriaan de Groot * kpilot/Makefile.am () Forgot to add logWidget.cc to kpilot_SOURCES * kpilot/kpilotOptions.cc () Added more tooltips, switched most to rich text. () Changed default value for SyncFiles to true. * kpilot/kpilotlink.{h,cc} () Added new state CreatedSocket and member fRetries (open) Allow for retries on pi_bind(), since it may fail on USB style devices. () Added ASSERT() and member fDeviceLink to enforce singleton=ness. * kpilot/main-test.{h,cc} () Added ASSERT() to enforce singleton-ness. * kpilot/hotSync.{h,cc} () New files, containing most of the old HotSync code from kpilotlink.{h,cc}, now using the new KPilotDeviceLink base class. KPilot Developer's notes for september 5th 2001 =============================================== It's tough keeping this ChangeLog up-to-date, since I'm doing lots of work but not committing much to CVS. But I'll try to keep things documented nonetheless. 2001-09-05 Adriaan de Groot A new application, kpilotTest, has been added. It does a very basic test of the pilot-link library and some device handling for KPilot. It is *not* installed by default, since it's pretty much useless for normal use, but useful to get some feedback about whether the new architecture works as expected. A new widget, LogWidget (logWidget.{h,cc}) is now included for, yup, logging stuff. It's used to long things during a sync. pilotListener is no longer built or needed. A new application, kpilotConfig, has been added. It is not installed by default. It just calls up a config dialog for KPilot, much like kpilot --config does. It's useful mostly because it exercises a clear subset of the code. I've tooltipified (?) the whole hardware setup dialog. I think it really needs more work, since the distribution of options is really unclear. And why are exactly *these* things grouped together? The "Address" tab really should go. The compilation of everything besides kpilotTest and kpilotConfig is now seriously broken (tm). KPilot Developer's notes for september 3rd 2001 =============================================== Hoo doggies. This is a *big* set of changes. I finally sat down to do some of the serious rework that KPilot has been needing for a long time. In essence: * Use DCOP for as much communication as possible, and * Support USB devices and other transient device nodes. Basically PilotDaemon and KPilotLink have been completely rewritten. What more is there to say? Almost every file has changed, even the coding guidelines have been relaxed (I'm not going to put #ifdefs around #include anymore, not since it turns out that the gnu cpp handles this situation efficiently anyway). Comments and documentation in most files have been vastly improved. KPilot Developer's notes for august 27th 2001 ============================================= Hm. Long time no notes. Which is not to say that nothing happened, since while I was away at a conference in Finland I dropped in at Marko G's place (see patches listed way down below) and we had a great time talking about KPilot, hacking, etc. I forget what I patched there, though. 2001-08-27 Adriaan de Groot * kpilot/addressWidget.* Fixed up Martin's patch to make it comply with the KPilot coding style, added some more docs, did a bunch of re-layouting. I read somewhere that there is a direct correlation between shoddy indenting style and bug density. * kpilot/pilotDaemon.h Added a missing class declaration for KServerSocket. * kpilot/kpilot.{h,cc} Removed all remaining KPilotLink cruft. KPilot now communicates with the daemon through DCOP only. Still very much on the TODO list: - actually make the daemon quit when that's relevant - ditch pilotListener (backport from kitchensync) KPilot Developer's notes for august 2nd 2001 ============================================ Vacation good. Bugs bad. Received a wonderful patch in the mail from Martin Junius, which proves once again that he's really dedicated to making KPilot look good and work well. Martin's patch "pushes the envelope" udirng the freeze, so it may not get in into KDE 2.2. 2001-08-01 Adriaan de Groot * kpilot/pilotDaemon.cc (PilotSystemTray) Fix for bug #29764 -- I'd forgotten to initialize some pointers in the constuctor again. * conduits/abbrowser/abbrowser-conduit.cc (main) Workaround for bug #28104 allowing abbrowser to start from the conduit. * conduits/abbrowser/Makefile.am Minuscule change enabling --enable-final builds here. 2001-07-23 Martin Junius * kpilot/addressEditor.cc (MakeField, MakeFieldL): removed i18n(), now done in initLayout(). (initLayout): use i18n() for label strings passed to MakeField. This is IMHO a cleaner approach than using I18N_NOOP() as before. (phoneLabelText): new function, get text for phone label, basically fAppInfo->phoneLabels[] featuring some sanity checking. (fillFields): use phoneLabelText(). (initLayout): dito. (initLayout): argument addressInfo removed, no longer needed. 2001-07-21 Martin Junius * kpilot/addressEditor.cc (initLayout): use m_phoneLabel[] for display phone labels because this change from entry to entry and cannot be set to fixed texts. (fillFields): update phone labels for editor dialog. (initLayout): reworked and hopefully ;-) improved spacing. * kpilot/addressWidget.cc (setupWidget): replaced QMultiLineEdit with QTextView for address info widget. (slotShowAddress): function totally rewritten to use QTextView and the Qt pseudo-XHTML code for formatted display of the address entry. The sequence and formatting is more or less what my Palm IIIxe does. KPilot Developer's notes for june 15th 2001 =========================================== The 2.2b1 tarballs are packaged real soon now. Whee! This marks the release of KPilot 4.2.3 (KDE 2.2, third subpackage release (alpha1, alpha2, beta1)). This version scheme makes it much easier to keep track of what was released when. Many bugs were fixed after Cornelius sent a message asking about the KPilot code; the abbrowser conduit has been renamed the KAddressBook conduit (it's still in conduits/abbrowser), some little stuff in the vcal conduit was fixed, much dead code was removed from KPilot and some code was simplified. Cornelius' mail also somehow pushed me into reading the KDE-PIM server suggestions. I'm sure you've noticed how much mail *that* has caused. KPilot Developer's notes for june 5th 2001 ========================================== [ade]: Well, I'm back from my conference -- which was pretty neat -- and lo! In my mailbox are many patches to be applied. Thanks guys. This keeps KPilot moving forward even when all of the "regular" developers are doing silly things (like moving). 2001-06-05 Palle Girgensohn * */Makefile.am I had to tweak some Makefiles to get kpilot working on FreeBSD. KPilot must include LIBPISOCK_PATH in its INCLUDES setup. [Newer CVS versions already did, but I would like to note my appreciation for sent-in patches that aid in portability -- ade] 2001-06-02 Philipp Hullmann * conduits/vcalconduit/*.{h,cc} This is a new version of my large todoconduit/vcalconduit patch, hopefully more suitable for human consumption than the previous one. It mostly splits the large sync functions into smaller pieces, simplifies the code for recurring events a lot, and moves some more code to vcalBase. * kpilot/pilot*Entry.cc ... and one more patch to PilotDateEntry and PilotTodoEntry: replace notes of length 0 with empty ones. 2001-05-23 Philipp Hullmann * kpilot/pilot{Date,Todo}Entry.{h,cc} Many fixes realted to accidental freeing of unallocated memory and some pointer ugliness. Fixes rare crashes on machines where malloc() doesn't zero the memory. 2001-05-25 Adriaan de Groot * *.cc, options.h Simplified the debugging code, no more #ifdef DEBUG if (debug_level &) stuff, just straightforward DEBUGXXX statements which get optimized aay for free when debugging is turned off. KPilot Developer's notes for may 14th 2001 ========================================== Not a lot of movement on the coding front for me [ade]; I did remember mothers' day though. Changes relevant to KPilot: * abbrowser has moved into kdebase, so the abbrowser conduit will now be available to everyone, not just those that also compile all of kdepim. 2001-05-08 Marko Gronroos * conduits/popmail/* Totally revamped the mail conduits with a new, well designed setup. This solves most of the smtp and sendmail problems we've been having. KPilot Developer's notes for may 7th 2001 ========================================= It's been great to receive patches from all over the place in the past two weeks. What has been fixed is listed below; I have the nasty feeling that one set of patches has slipped through the cracks. If you've sent me a patch in the past two weeks and don't find yourself listed here, please let me know. 2001-04-27 Adriaan de Groot * I actually worked on the docs. Stephan Kulow's meinproc HTMLizer was wonderfully useful here. The docs aren't completely up-to-date yet, but they're moving. 2001-04-28 Martin Junius * kpilot/kpilot.cc (initMenu): use KToggleAction and setExclusiveGroup for view menu. (addComponentPage): same here for the other components. (initMenu): setChecked for view_kpilot action. 2001-05-07 Philipp Hullmann * conduits/vcalconduit/todo-conduit.cc (): fixed missing due-date bugs KPilot Developer's notes for april 26th 2001 ============================================ Ahh, spring is in the air; the time when a young man's mind turns to nights of C++ hacking. This has been a great few weeks for open- source collaboration. I've had useful and helpful mail from Philipp Hullmann, Martin Junius, and Marko Gronoos (maybe more -- if i've forgotten you please complain privately) with patches, hints, and offers of help. Thanks guys! * Fixed the non-initialization of the conduitCombo pointer by removing it completely. (Thanks Martin!) At compile-time you can choose between XML and traditional UI style. [19-4] * Greg's abbrowser conduit is (almost) ready for the prime-time! [23-4] * Fixed bug where absent executables could hang the conduit setup dialog. [23-4] * Fixed small UI bug where toggling toolbar didn't resize the contents of the main KPilot window. [23-4] * Removed unnecessary connection to (serial) pilot database when conduits are started in --info or --setup mode. [23-4] * Discovered many i18n bugs in the sendmail conduit. Ouch. Some fixed. [23-4] * In a flash, implemented sending-via-KMail in the sendmail conduit. This is utterly untested and possibly hazardous. I'd appreciate it if some people used a test account for KMail and tried it out. I will too, soon. [23-4] * Looked for the right place to force KPilot conduits to use the KPilot .po file. The TLs are now OK. Thanks to Marko for prodding me to sort this bug out (conduit in Finnish is "siirtokanava"). [24-4] * Added QToolTips and buddies to the NULL conduit setup. [24-4] * Fixed a bug in the KMail sending if you use a different outbox from "outbox". [26-4] * Made KPilotLink::addSyncLogEntry marginally more useful -- this is to work towards a read log window. As a side effect (which obscures what I've done a little) I've reformatted kpilotlink.h according to the coding style guide, and added docs. [26-4] Todo: * Found out why the vcal and todo conduits are so slow -- they really do read in the whole Pilot database through the serial line *twice* each sync. This needs fixing. [19-4] * Add QToolTips to the remaining conduits. [24-4] * Add "buddies" to relevant entry fields (usually QLineEdits). [24-4] * Remove all the UI stuff from KPilotLink and put it somewhere sensible. [26-4] * Split KPilotLink into the client and server ends. [26-4] The following list is stuff from the ChangeLog that was once on the Todo list; I'm repeating it here because it was time we went through it again to see how things stand. I've added comments in [ ] after each. * Split KPilotLink into its separate functionalities: config management, local database management, and link from daemon to conduits. [partly done, but kpilotlink still serves both ends of a client-server link] * Make KPilot and KPilotDaemon communicate only through DCOP. [bad idea - causes extra overhead, and the kpilotlink protocol is pretty good] * Add an extra message concerning NULL user on hotsync. * Make the progress bar show something during a conduit sync. * Should just use the KPilotLink::config object to store all kinds of user settings instead of copying them from the config file to local variables, since this is just asking for inconsistency. [dunno -- as long as KPilot is the app for configuring what the daemon does, we just have to get KPilot to tell the daemon to re- read the config file when something changes.] * Clean up more of the butt-ugly parts of the code base [less of this now!] * KPilot is an i18n nightmare [less of this now!] * The password dialog in the popmail conduit is probably a very bad idea I think kdesud should come into play here. [not looked into] * The messages need validation - Pilot vs pilot, HotSync vs whatever * Actually *doing* a fast sync for Heiko * More and better information in the progress bar * KPilot should display the sync log as well, just like the Pilot does. This is useful for reporting the result of a sync to the user (who then doesn't need to look at the Pilot) * I noticed Thomas Zander has submitted an official wishlist item: DateBk3 (the new date book format in PalmOS3.5) support. I think I'll get back to him on that when Mirko pans out with the free hardware goodies from Palm :) KPilot Developer's notes for april 19th 2001 ============================================ * Martin Junius has contributed an XML GUI framework for KPilot, so it now finally uses the "modern" way of doing GUIs. This *does* mean it's time for yet-another set of screenshots for the docs and yet-another set of menus for users to get used to. [14-4] * Disposed of reported bug: bad category selection. [15-4] * Moved the todo-conduit into the vcalconduit directory. This makes building much simpler. [15-4] * Fixed up more #include shenanigans for --enable-final. (Don't forget the #ifndef conventions from HOWTO-CODE.txt!) KPilot now builds without warnings with --enable-final --disable-debug. [15-4] Things to do: * Fixup the documentation. * Add QToolTips to the conduits setups, KPilot's setup, and the conduit setup. This is already partially done, but someone else needs to finish this off. * Make KPilot installation and run easier -- JPilot seems to work out-of-the box on systems where KPilot doesn't. * Look into bugs #23385 (crash in VCalConduit), #20318 (munged 8-bit chars) and #24291 (doubled appointments). KPilot Developer's notes for april 8th 2001 =========================================== It seems like only yesterday that KDE 2.1.1 was out, and we're already in KDE 2.2b1. Thoreau said "Simplify, Simplify". Anyway, this week's feature creep: * Bugfix for infinite loop when changing categories. [1-4] * Some xpms could profitably be removed, since we use pngs now. [1-4] * I normalized some more header-file #ifdef / #defines. [1-4] * Incorporated patches from Aaron Seigo. [1-4] * The todo conduit didn't compile due to changes in vcalBase. [1-4] * The vcal conduit's test mode has been expanded. [1-4] * KPilot's version number has been upped (again) to 4.2.1 for the KDE 2.2a1 release; I hope we can up the revision number with every release of KDE 2.2 move on to KPilot 4.3 with KDE 2.3. [9-4] * Messed around with some of the icons and images. [9-4] KPilot Developer's notes for march 24th 2001 ============================================ KDE 2.1.1! With bugfixes and translation fixes! So only some of the bugfixes listed under march 10th have made it into there. On the western front though, we have: * Chris Molnar has started work on DB integration for the expense conduit, so that you can actually do something useful with it. The CSV export seems to be done, too. Thanks Chris! * Greg Stern has pretty much finished the abbrowser conduit (which a *lot* of people have wanted for a long time). It hasn't been committed yet, but will be soon. * The memo viewer has been very slightly beautified. * Some work for bugs #22112 and #21908, fixing deficiencies in the todo- conduit and in selecting categories under other locales. This isn't done yet, though -- some attempts have been checking into CVS for testing. KPilot Developer's notes for march 10th 2001 ============================================ This weeks "cleanup" action is to normalize the #ifdef thingies in the header files so that they follow some kind of plan. And then reduce the number of #includes actually included by adding #ifdefs areound most of them, to prevent redundant #includes. This is a pain, but some say it's worth it in compile time. (See Documentation/HOWTO-CODE.txt for info). * Removed yet another silly struct tm issue. [4-3] * Added FileInstaller to KPilotDaemon. [4-3] * Added DCOP to KPilot. Files dropped on daemon show up in KPilot. [4-3] * Added a #define KPILOT_VERSION to unify all the version strings. [5-3] * Added Documentation/HOWTO-CODE.txt for the source code conventions. [5-3] * Fixed a bunch of Solaris compile issues. [5-3] * Factored out a bunch of generic vcal code from the vcal conduit into a new base class VCalBaseConduit; the todo conduit also inherits from there. [10-3] * Yet another stab at the "latin1 chars munged in KOrganizer" bug. [10-3] The double-sync problem still exists though, which is bad. I suspect that some extra bytes are left waiting in the serial port queue after slotEndSync but I haven't got that sorted out yet. The web-site has been updated, finally, which means you can finally check for new releases and info there again: http://www.slac.com/~pilone/kpilot_home/ And, I've started to use KDevelop 1.4 for maintaining KPilot. I'm still making the transition from vi / make / 4 konsole windows, but so far I've been mostly pleased by the effect it has. Bugs that are still open in the bug database: (Dan? you bored?) * Todo conduit doesn't take due dates into account * Double sync * Address edit window doesn't follow addressDB custom fields & layout Things to think about: * Usability. I've swept all the menu items into one "File" menu that contains two configure wrenches, 4 actions, and a quit button. I'm wondering whether this is the right way to go or whether separate "file", "sync" and "conduit" menu items would be better. KPilot Developer's notes for march 4th 2001 =========================================== So after "the big cleanup" I've continued doing cleanup code in smaller chunks with more commits, mostly for reasons of bug-tracking. Dates in [] indicate when the fix or change was committed. * Removed a really stupid crash from KPilotConfig::fixed(). [23-2] * The internal conduits' names weren't reported properly anymore. This is a binary and source incompatible change. [23-2] * Extra debugging while starting the listener process. [26-2] * Changed exit(-1) to exit(3) in the daemon. [26-2] * Use Qt layout classes in fileInstallWidget. [26-2] * Removed some null-conduit comments from the KNotes conduit. [26-2] * Removed some #include for Solaris. Cleaned up other includes as well, just a little. [26-2] * Started a change to KActions. [ 1-3] * Added a new FileInstaller for use in the daemon and the widget. [ 1-3] It's currently only used by the widget. * Added listItems.{h,cc} in response to bug #21392; changed address and memo widgets to use them. [ 4-3] KPilot Developer's notes for february 19th 2001 =============================================== Yay! KDE 2.1 is out. Which means we can commit all kinds of changes to KPilot again, not just well-thought-out bugfixes. That means that we can get to work on cleaning up the code base again. * Split all the config-file stuff out of KPilotLink into a new class KPilotConfig. Fixed all the resulting include dependencies. * The function fixed() in KPilotInstaller obviously belongs to KPilotConfig. * The {address,memo,fileInstall} widgets all had unnecessary dependencies on KPilotInstaller. Removed. KPilotInstaller now adds the widgets it creates itself. * Removed as many dependencies on kpilot.h and kpilotlink.h as possible. * Removed a bunch of char[] buffer stupidities from pilotLocalDatabase &c. * Removed the database open and close functions from kpilotlink. All the sensible fixes, like those listed under feb. 4th, will come later. KPilot Developer's notes for february 4th 2001 ============================================== Nick Papadonis spent hours tracking down the vcal conduit crash and we found at least one bug in kpilotlink. It's been removed and I hope this quashes all the vcal crashes. Other than that there's simply not much we *can* do with the message and feature freeze and all. This is why the todo-immediately-after-freeze list exists: * Split KPilotLink into its separate functionalities: config management, local database management, and link from daemon to conduits. * Make KPilot and KPilotDaemon communicate only through DCOP. * Add an extra message concerning NULL user on hotsync. * Sort out all the icon issues. * Make the progress bar show something during a conduit sync. KPilot Developer's notes for january 6th 2001 ============================================= Happy Millennium. I ([ade]) am off on a two-week vacation to Calgary, so no KPilot news from me till (almost) february. There have been several troublesome bugreports this week, ranging from "all the conduits crash" to "daemon dies on hotsync." That don't make me happy at all. Done this week: * Built POSE, the Palm Emulator, so this may help in testing stuff for the OS versions that I don't actually have. POSE is a real $#*%^ to build, but I can now actually use my PalmV on-screen (with a PalmIII skin, which is kinda weird). * Replaced the addressEditor widget with something less stone-age. * Added a nifty feature so that you can edit one address in two windows and they keep semi-in-sync. abbrowser doesn't have this (which means abbrowser has a bug :( ). * #&$%#$ conduitApp doesn't turn the GUI on by default, so recent vcal crashes can be blamed on trying to create a KMessageBox without a GUI :( Changed the default values. * Tried fixing some ugly icons. I'm no artist though. * Teeny-tiny layout change in Address page of setup dialog. * If you try to add records to the address book before you've done a HotSync / Backup KPilot has an empty AddressDB and doesn't deal with the address very well. Added a sorry() there. * Added a doTest() to vcal-conduit. * More cleanups in the debugging code. There's still a weird mix of code controlled by --debug and kdebugdialog style stuff. Functions kdWarning() and kdError() should be given __FUNCTION__ as their << argument, while kdDebug() should get fname as first argument. This will make all the debugs optimize away painlessly while keeping the warnings and error messages. Since messages may change status some time there's now a #define TEST_DEBUG that makes fname a weird object that can only be passed to kndbgstreams. So sensible combinations are: production: NDEBUG defined, DEBUG undefined, TEST_DEBUG undefined test nodebug: NDEBUG defined, DEBUG undefined, TEST_DEBUG defined testing: NDEBUG undefined, DEBUG defined, TEST_DEBUG defined * Actually KPilotLink::doFullBackup wasn't all that bad. Still, all the code needs going-over for i18n yuckiness. doFullRestore() was worse; also fixed up directory yuckiness. Note to self: text for user is i18n()ed, kdDebug() &c. is in english ('cause Dan or I have to read it :) ) * Finished integrating Heiko's patches. I believe that both HotSync and FastSync now do what the ought to do. * Started adding a DCOP interface to the daemon. Other stuff: * It's a HotSync and a Pilot. I'll change strings in the source as I come across them. As for conjugations: I HotSynced, it HotSyncs. Todo: * Should just use the KPilotLink::config object to store all kinds of user settings instead of copying them from the config file to local variables, since this is just asking for inconsistency. * Close bug 16457.html in some way. * More vcal work * Clean up more of the butt-ugly parts of the code base (less of this now!) * Tell the KOrganizer docs people about KPilot * KPilot is an i18n nightmare - The const char *s in the pilot databases can be addressed most easily, I think. - get rid of most of the strcpy, strcat, etc. But not all! We're stuck with pilot-link, after all. * The password dialog in the popmail conduit is probably a very bad idea I think kdesud should come into play here. Anyway, a KMail conduit would be much cooler and safer. Sigh. Things-to-be-considered: * Splitting kpilotlink up into its various functionalities KPilot Developer's notes for december 30th 2000 =============================================== Ho ho ho. Merry Christmas. Happy new year. Last week started out with Thomas Zander reporting that he *still* has the totally bizzarre and inexplicable crash in KPilot that he's had ever since KPilot was ported to KDE2 (+). That pretty much colors this week's work. The rest of the week was used for the KNotes conduit. After a pleasant exchange of ideas with Wynn Wilkes (of KNotes) we got a DCOP interface working and this make the KNotes conduit more useful. Talked to Greg about the kab conduit and he's enthusiastic about the possibilities there, we hope to have a framework in CVS soon. Done: * Claimed some debug areas (5510,5511,5512). * KNotes rereads the notes dir after a sync, so new notes (which have come from Pilot memos) appear there. * KNotes conduit --test now displays all the notes (on screen) that knotes shares with the pilot. This is a test (!) of the DCOP stuff, mostly. * KNotes conduit now has a checksum function (md5) to reduce the number of notes that has to be copied between KNotes and the Pilot. * Applied Dag Nygren's vcal patches so that repeating events now show up in KOrganizer properly. * Fixed the button-enabling in the address app * Added more debugging output for Thomas. * Added more debugging output for Nick. Todo: * More vcal work * Clean up more of the butt-ugly parts of the code base * Tell the KOrganizer docs people about KPilot * KPilot is an i18n nightmare - The const char *s in the pilot databases can be addressed most easily, I think. - KPilotLink::doFullBackup should cause i18n people to run away - get rid of most of the strcpy, strcat, etc. But not all! We're stuck with pilot-link, after all. * The messages need validation - Pilot vs pilot, HotSync vs whatever * The password dialog in the popmail conduit is probably a very bad idea + Thomas' crash produces the following (partial) backtrace: #4 0x408960b7 in read_png_image () from /usr/kde2/source/qt-copy/lib/libqt.so.2 #5 0x40838dd9 in QImageIO::read () from /usr/kde2/source/qt-copy/lib/libqt.so.2 #6 0x40836cf1 in QImage::load () from /usr/kde2/source/qt-copy/lib/libqt.so.2 #7 0x408305b2 in QImage::QImage () from /usr/kde2/source/qt-copy/lib/libqt.so.2 #8 0x40483fcf in KIconLoader::loadIcon () from /usr/kde2/lib/libkdecore.so.3 #9 0x805a166 in KPilotInstaller::initIcons () which is weird since the only possible png image being read is the quit icon, which is standard in KDE2. Maybe some weird combo of options? KPilot Developer's notes for december 18th 2000 =============================================== It looks like kdepim and KPilot aren't going to make the 2.1 release. Darn. This does give us more time to deal with docs and bugfixes. Every time I get something done though I find I've discovered two new things to do :(. I hope Lukas will help out with a lot of the i18n stuff though. Done: * Moved all the (english) docs to the correct place. * More doc fixes: use &kpilot; and &pilot; properly, added screen shots for various conduit setups. The docs still aren't complete but they're a darn sight better than they were. * Modal dialogs need exec() instead of show() * Changes in kdelibs caused some dialogs to hang in slotCancel() * Changes in includes means we have to include kdebug.h ourselves * Get rid of cerr and use kdDebug or kdWarning or kdError as appropriate. There are still a very few cerrs left in places where we can't rely on kdDebug(). * Added #ifdef DEBUG to the debug sections of code. So KPilot now compiles without debugging stuff. I realise now that I should have stuck to the KDE kdDebug() guidelines, but, um, I didn't know they existed when the port from KDE1 to KDE2 started. Darn. ToDo: * More vcal work * Clean up more of the butt-ugly parts of the code base * Detect memo-too-large in knotes conduit * Try to reduce number of updates in knotes conduit * Figure out a nice DCOP interface with Wynn (KNotes) * Finally take a look at kab or whatever for the address book conduit. Should probably talk to Greg about this one too. * Tell the KOrganizer docs people about KPilot * Fix the button-enabling in the address app * KPilot is an i18n nightmare - The const char *s in the pilot databases can be addressed most easily, I think. - KPilotLink::doFullBackup should cause i18n people to run away - get rid of most of the strcpy, strcat, etc. But not all! We're stuck with pilot-link, after all. * The messages need validation - Pilot vs pilot, HotSync vs whatever * The password dialog in the popmail conduit is probably a very bad idea KPilot Developer's notes for december 10th 2000 =============================================== Lots of internal stuff going on: * The sense of the debugging flags was the wrong way around, so using --debug 4 gave you all the UI debugging messages as opposed to just the major and minor ones. This is what you get from suggesting debug 1023 all the time. * BaseConduit had some weird debugging output -- not controlled by --debug -- so patched that up. And there was ugliness in the icon loading function. This changes the interface to BaseConduit slightly, 3rd party conduit authors beware. * Finally fixed up the Makefile.ams for the standard conduits so that they run properly (without setting LD_LIBRARY_PATH). Visible changes: * Fixed up the documentation, the screenshots, the descriptions of the conduits, etc. etc. It's still not complete but at least it matches what happens when you run KPilot. Still on the todo-list: * Really fix the vcal conduit. I've patched some things up and once again I hope it works, but since I can't reproduce the error I'm a little stuck here. Still on the wish-list: * Actually *doing* a fast sync for Heiko * More and better information in the progress bar * The PilotMemo class is butt-ugly and filled with weird C-string manipulations. * KPilot should display the sync log as well, just like the Pilot does. This is useful for reporting the result of a sync to the user (who then doesn't need to look at the Pilot) * I noticed Thomas Zander has submitted an official wishlist item: DateBk3 (the new date book format in PalmOS3.5) support. I think I'll get back to him on that when Mirko pans out with the free hardware goodies from Palm :) KPilot Developer's notes for december 2nd 2000 =============================================== Almost Sinterklaas, so I'd like to wish all the KPilot users in .nl a Happy Sinterklaas en Weg met de Kerstman. UI Changes: * Added Heiko's Fast-Sync icon .. but it's ugly and hard to distinguish from the regular icon. This needs fixing by an artist. * Added an ugly restore icon as well. * Added an undocumented config-file option. You can now add the following line to kpilotrc in the null group if you really want to: ToolbarIcons=list where list is a comma-separated list of icons to appear on the KPilot toolbar. You can choose from HotSync,FastSync,Backup and Restore. The standard setting is: ToolbarIcons=HotSync,Backup That's not a lot but it should keep Heiko happy for a while and it reminds us that we should move towards a more modern method of setting up the UI -- or not? * Tried to fix some UI weirdneses like: - Delete Memo button enabled when no memo selected but QListBox has the nasty habit of always having *something* selected, even if you can't see what it is. Now I know that the internal conduits -- memoWidget and addressWidget will probably die out soon when we have a real working kab2 conduit as well as a KNotes conduit, but till then it's nice to have something that at least obeys basic UI design rules. * The following bugs in QListBox and QListView made me ditch the old two column layout with movement buttons for something else. Let me know which one you prefer. - There is some *bizzarre* behavior in the handling of conduits being selected: select the top item in the left column, the top item in the right column (um, so install a conduit first) and then the top item in the left column again. The new layout allows you to drag conduits from one state (available) to another (active). Click on a conduit to set it up -- you may have to doubleclick depending on you KDE settings. Internal Changes: * Conduits that crash no longer hang KPilot and the entire sync. * Made a lot of static const int members of various classes enum values instead, and added a function write() to CStatusMessages for a clean way to write status messages to the link. * Replaced several if else if ... constructions with switch() * Added a sensibleTitle() and shortTitle() to PilotMemo for use by the KNotes conduit (and maybe others) Documentation: * Spent a little time on the (english) documentation and brought a few parts of it back up-to-date. It needs up-to-date URL's, probably we should move the mailing list to kde-pim@kde.org, and we need new screenshots. Wishlist: * More and better information in the progress bar * The PilotMemo class is butt-ugly and filled with weird C-string manipulations. * KPilot should display the sync log as well, just like the Pilot does. This is useful for reporting the result of a sync to the user (who then doesn't need to look at the Pilot) KPilot Developer's notes for november 25th 2000 =============================================== Spent most of the week at a conference, but managed to get the KNotes conduit almost fully functional. New memos (KNotes) are copied to the desktop (Pilot). Memos changed on the pilot are changed on the desktop. However, not all deleted memos are deleted on the other side, nor are modified memos copied from the desktop to the Pilot. I don't know what the desired action for KPilot is in the cases of deleted memos. Any suggestions? There's now a config option in the KNotes conduit setup, but maybe that should be subsumed by the global Local Overrides Pilot setting. Anyway, if a memo is deleted on the Pilot the corresponding KNote is deleted as well. If KNotes is running and the KNotes conduit makes changes, these aren't picked up by KNotes. There are also some obvious race conditions caused by the conduit writing KNotes config files. This basically means that we need to talk to the KNotes maintainer to resolve these coordination problems. As for the code, I wrote this: class KNotesOptions : public setupDialog { Q_OBJECT protected: static const QString KNotesGroup; }; [with better layout, of course] But there's a static QString there, and I read somewhere that Static Objects Are Evil (tm). I could use a const char * there, since it's just the name of a group in the config file, but what's the consensus on things like this? I did handle some more of Heiko's patches. From last week's list: - Some phone number magic I don't understand yet - Some changes in the address import function - getShowPhone() -- don't understand that yet either - Fix bad repeat-n-times handling in vcal-conduit This leaves just the Fast Sync capability still unimplemented. Given the release schedule that has been discussed recently (and we really do want to have KPilot in KDE 2.1, so as to add a nifty feature to the desktop as a whole) I think feature creep should be abandoned for the time being and we should try to fix as many bugs in what we have before the release (around the middle of december, IIRC). This means testing, lots of it. So people, take the plunge, give it a try, compile the latest kdepim CVS stuff with KPilot in it and then complain when your Pilot catches fire, OK? O yeah .. when you *do* give it a try, make sure you do something like: $ export LD_LIBRARY_PATH=$QTDIR/lib: $ kpilot --debug 1023 To make sure none of the conduits crashes with library loading problems and with all the debugging messages turned on. KPilot Developer's notes for november 19th 2000 =============================================== Fixes: * Added most of Heiko's patches to the vcal-conduit * Added convention to conduits --info handling: return "" for no databases. Handled in conduitSetup as well. * Made some minor changes to the info page presented in dialogs (generally the setup dialog of a conduit) so that it gracefully handles weird settings and handles its own resizing properly. * Added some const-qualifiers to various char *s * Add a "kill daemon on exit" feature -- there was already some code for this, but not complete. * Changed all the boolean config entries to booleans as opposed to 0-or-1 ints. * Removed all the "const char * id defined but not used" warnings * Added some extra robustness in PilotDaemon::setupConnections * Made the daemon obey the "show in system tray" setting -- this was broken during the first port to KDE2 * Handle reconfiguration through the settings dialog properly -- at least KPilot picks up the changes to "Kill Daemon on Exit" * (re)Added --test option to conduits, though not all of them will support actual tests. * KNotes conduit is now functional in the sense that notes you write on your desktop are in fact copied to the Pilot. Some general comments: * Suggestion: call the desktop files for conduits conduit-pilot-appname.desktop and the conduit executables themselves conduit-pilot-Appname This at least gives conduits some consistent naming scheme and the addition of -pilot leaves some namespace for conduits for other PDA's. Well, actually this naming scheme isn't much good. But we *do* need to think about how to handle sync-programs for various PDA's in a nice fashion -- I can imagine having a Nokia phone, a Psion and a Pilot and wanting to sync them all. Still on the todo-list: * Fix bad repeat-n-times handling in vcal-conduit * Dealing with the rest of Heiko's patches - Some phone number magic I don't understand yet - Some changes in the address import function - Fast-sync capability (this is different from SyncLast) - getShowPhone() -- don't understand that yet either * More and better information in the progress bar * The PilotMemo class is butt-ugly and filled with weird C-string manipulations. KPilot Developer's notes for november 14th 2000 =============================================== Lots of things have changed in the class hierarchy. * Jorg's bug in the memo-import function was handled OK in addressWidget, but it seemed clumsy to deal with the same problem in two different places. Moved findSelectedCategory() to PilotComponent. Added some other convenience functions there for the category combo box. * The getConfig() change was very poorly done, sorry about that. Added some (semi-) bizarre debugging functions into options.{h,cc} that are #ifdeffed out. * Ditched all the #ifdef KDE2 stuff and dropped the KDE1 backport. * Added a .desktop file for the NULL conduit (with some translations of my own) * Added Qt2 layout code to the address and memo widgets so that they become easier to i18n() (ie. they display properly when the string lengths change). * Adopted some of Heiko's patches: - New feature ForceFirst causes every conduit to behave as if FirstTime=true every time (this is off by default, which matches previous behavior) - New feature SyncLastPC causes a slow sync if the Pilot is synced with a different PC than the last time it was synced (this is on by default, matching old behavior) - "fixed" font in address and memo editor replaced by the user's system preference - In some cases the title (first name+last name or something similar) in an address was empty. This now gives the title [unknown] - Similar for memos Let's sum up the current wishlist: * KNotes conduit * Dealing with the rest of Heiko's patches - Proper multi-day appointments in the vcal conduit - Some phone number magic I don't understand yet - Some changes in the address import function - Fast-sync capability (this is different from SyncLast) - getShowPhone() -- don't understand that yet either These patches are quite useful but it takes a lot of work to unsnarl them, which is why they're taking so long. Developer's notes for november 9th 2000 ======================================= What's new? Lots of little bugs found by code review, some new (trivial?) features. KPilot 4 is in Mandrake cooker so it receives a little more attention now than before. * Jorg Habenicht found a bug in the memo-import function. It causes array-bounds overruns. The same bug was present in many other parts of the memo widget. I think I got them all. * Added some robustness checking in the daemon to cover weird cases like running conduits by hand. * Added better handling of the "first time" dialog in the vcal conduit. * The NULL-conduit now has an extra configuration field "Databases" which you can attach it to. This allows you to do a bogus conduit sync with a database (almost equivalent to putting it in the "backup only" entry of the global KPilot settings, except you run the external conduit. * Made KPilotLink::getConfig return a reference instead of a pointer, to avoid new()ing and delete()ing the config data structure all the time. I hope this increases consistency as well. This has caused lots of little type changes throughout the conduit system, so third-party conduit authors beware :) -- all the changes cause compile failures though. * Jorg brought in a patch so that KPilot uses the pilot-link environment variables to set initial values. Some wishlist-style items: * The memo and address internal conduits are (a) ugly and (b) impossible to i18n properly, because they have hard-coded sizes. Need to spend some time cleaning that up. * Really, it's time to write a conduit that syncs with KNotes. It's not that hard, but KNotes has some silly bugs that need fixing first :( * A patch to introduce a notion of "fast sync" has been produced for KPilot 3.2.1 -- we're now looking into how to integrate that into the KPilot 4.x series. The idea is you only run a sync on the databases you have a conduit for. Developer's notes for october 29th 2000 ======================================= * Thomas Zander pointed out that KPilot doesn't write a config file the first time it is run, leading it to *still* believe it's the first time it's run the next time. Fixed. * In PilotDaemon::setupConnections() things have been reorganized so that a failure on opening the Pilot device will not allow KPilot to start. * Added an undocumented Debug= entry to conduit's configuration, to ease debugging. Conduits will have to read this themselves. * Added a "Run KPilot" menu item to the daemon. And there's some really strange behavior that I've noticed: when I run the setup for an external conduit -- which is a separate process -- KPilot always "jumps in front" of that conduits setup dialog when I give KPilot the focus. This is very irritating. Bugs noted still remaining: * Much weirdness in conduit startup (mode must be set before running the conduit's constructor, but mode wasn't set till after) has been looked at but not repaired. * The vcal-conduit had trouble running a sync the first time (you really should do a backup instead). We're working on this one. Developer's notes for october 26th 2000 ======================================= OK, I admit it: code,commit,announce,test is the *wrong* way to do things. I made some mistakes in the code that looks up conduits in the .desktop files, so conduits *still* won't run with this morning's commits. This has been fixed now, and the conduits run. Of course, vcalconduit just SIGSEGV'ed on me, so ... This brings me to a couple of wishlist items for KPilot: * A "Cancel" button. I just clicked on Backup when I was aiming for HotSync, and there's nothing I can do about it. * A timeout when running conduits so that badly behaved conduits don't hang up the KPilot system. Some other minor issues have been fixed as well: * Boatloads of compiler warnings in the included .xpm files * Some i18n stuff And new questions raised for people who know the code (I'm thinking Preston or Cornelius may be able to explain): * vcal-conduit.cc line 522, what's the purpose of voStatus there? Developer's notes for october 23rd 2000 ======================================= It's been a week where I couldn't bring myself to tackle really big problems, like an address-book conduit for kab or pine. So I sat back and polished things, wandered through the code finding little bugs (if I was an OpenBSD kinda guy I'd call it a proactive code audit). This has led to: A whole slew of minor fixes: * Updated Help menu in main menu bar * Removed superfluous about tab in kpilot setup dialog * Fixed config-doesn't-change bug * Disable autostart-daemon option if .desktop file unavailable * Added quit icon into file menu * Added hotsync and backup icons into file menu * Cleaned up include files in conduitSetup.h * Cleaned up dialog code in conduitSetup.cc for KDE2 compliance * Fixed conduits-not-running-during-sync bug in kpilotlink.cc * Fixed a minor Qt2 incompatibility in messageDialog.cc * Fixed some i18n issues in kpilotlink.cc * Replaced sprintf stuff with QString operations in kpilotlink.cc * Added hot-sync to file menu for consistency (it's in the toolbar) * Added logic in showTitlePage in kpilot.cc to reduce flicker Some remaining issues: * The icon for "About KPilot" in the help menu is the wrong one * We still need pretty icons for various things (like external conduits) Some questions: * Is there a memory leak with the config file in kpilotOptions.cc? * Do we really want to be new() and delete()ing the config file so often? Perhaps getConfig() should do some caching. * Should we add icons for the other menu items? * Is there an entry iterator in KConfig so that you can iterate over entries in a certain group (and possibly delete them?) Some philosophical stuff: * Maybe it's time to ditch the internal conduits altogether and work on external conduits for kab and knotes? Although that would still leave the file installer. Maybe a splash of the kpilot logo and then an icon view of what has been dropped into the file installer? As far as I can tell KPilot 4 now has the same functionality and bugs as KPilot 3.2.1 did (with some polishing). So you still have to be careful with KOrganizer. But I think the framework is sufficiently OK to make it worthwhile to really write some conduits for various KDE 2 apps. Like a kab conduit and a knotes conduit.