1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
|
** KPILOT CHANGELOG **
======================
TODO: Figure out why archived records are bad.
[23:07] <till> Now i'm hunting why new entries on the palm are dropped and
deletes from the palm as well.
[23:44] <till> [ade]: Hm, I delete a task on the palm, sync, and the
record->isDeleted() is false, on sync, but it is modified and
updated on the pc, although that does not change anything.
TODO: store map of pilot-id <-> uid elsewhere (not in the .vcf file)
TODO: don't make ActionQueue auto-delete the actions in it.
TODO: provide template-based, interpreted databases much like the
AppInfo classes now have.
TODO: give the knotes conduit a decent test mode.
TODO: only re-write a local database if it is changed.
2007-12-30 Jason 'vanRijn' Kasper
* Fixing bug reported by Pablo Yepes on kdepim-users mailing list. We did
severe goofiness with middle names... The Palm can't handle them, so we
blindly tacked firstname + " " + lastname and stuck it into the Palm's
firstname field. The problem is that whenever a copy from palm->pc is
done, the kludged first name is transferred to kabc ("firstname middle").
And, it's compounded by every change in either direction. It's an ugly
hack and I've removed it. The only way to work around it would be to add
an additional check for !firstname.endsWith(abEntry.additionalName()),
but that's even sillier. Stop the insanity!
2007-12-17 Jason 'vanRijn' Kasper
* Woot! Fixing major breakage for funky usb devices. pulled back some
removed code from KDE 3.5.6's kpilot for usb workaround code and fit it
into the new threaded model. This fixes syncing for me on my Palm Treo
700p.
* Reformatting and cleaning up kpilotdevicelink.cc.
* New Private.h to hold the bits of kpilotdevicelink.cc that should not be
exposed via kpilotdevicelink.h. Also, DeviceCommThread extends QObject
and QThread, so we need to have automoc run on it.
* Switching from using QCustomEvent to using QEvent for device tickle
thread to match what is done in kpilotdevicelink.
2007-04-15 Jason 'vanRijn' Kasper
* merging all development and bug fixes from kdepim-3.5.5+ branch into
stable branches/KDE/3.5 in preparation for KDE 3.5.7
* cmake cleanups
* namespacing and cleanups in sysinfoconduit
* lots of debugging cleanups. remove #ifdef DEBUG from much of the code.
* cleanups in memofile conduit. now try to use new (OS5) database
(MemosDB-PMem) if it's found, otherwise fall back to the legacy one
(MemoDB)
* as a first step to combatting the "kpilot ate my future" e-mails (read:
data loss), we now use a CUDCounter (Create/Update/Delete). step 1 is to
track these and report on them to the user in their sync log. step 2 is
to catch ill behavior and prompt the user as to whether or not to allow
kpilot to make the large amount of changes. step 3 is to allow the user
to configure the count or percentage of changes that kpilot can make
without his/her confirmation. step 1 is done. we'll approach steps 2 and
3 post kde 3.5.7.
* new strings related to the above
* bug fixing in popconduit... making sure we always have a sent date
* Bertjan has the start of knotes cleanup going on
* bug fixing in vcalconduit... long-time bug that existed in libkcal that
caused every calendar resource save to mark every calendar event as
modified. now kpilot won't have to sync every record every time.
* bug fixing kabc resource problems in abbrowser conduit. although it's
not documented in kabc, it looks like we should be removing a local
resource from the address book before we delete it.
* bringing mal conduit back alive again. none of our small band of merry
men use it, though, so it may or may not actually do what it's supposed
to.
* fixing bug where we were saving conduit databases to DBBackup instead of
conduits/ directory.
* changing KPilotDeviceLink to use a separate thread, dedicated to doing
device communication. this is much better design as a start, but fixes
the problems kpilot was having (and widely talked about) where kpilot
would hang and crash if our user was using "usb:" or "net:any" devices
because of how these new "device"s operated (allowed immediate opening,
even though there is no physical device connected, and then hung
indefinitely until the real device connected).
* bringing in design documents (jpegs) for memofile conduit from 2004-12-12
(they're not installed, but are valuable for documentation and insight)
* icon naming error bug fix 122582
2006-10-24 Jason 'vanRijn' Kasper
* Getting rid of FastSync. The only difference between it and HotSync was
that HotSync did a Backup and FastSync did not. Having a third
permutation because of not having a way to set it in the Backup settings
seems wrong. Also, if one of them is to go, I think that HotSync is much
more recognizable and widely used than FastSync.
* Allowing finer-grained control around when database backups are done.
This is so that users can choose when they want a backup to be done.
The problem I need to solve for myself is that since I'm now syncing
between 2 PCs, I need a full sync to be done whenever I switch. But I
do not EVER want an automatic backup to be done. Currently, this is not
possible. Fixing it. =:) This will also allow for schedule backups to
be done, which is also of interest to me.
2006-01-30 Adriaan de Groot
* Updated pilot-link to today's CVS, with one change - use of pl_socklen_t
in inet.c changed back to socklen_t.
* Added --loop to kpilotTest to repeatedly run the same action. Only
works for --list right now.
2006-01-23 Adriaan de Groot
* Gosh, where to begin. KPilot moved SVN repositories, changed build
systems, had the guts of the device link class refactored, bumped the
plugin API version again, and tons more. The commit logs are probably
the most useful source of information about what's changed.
2005-08-18 Adriaan de Groot
* Found out that the PilotAppCategory constructor that takes
a PilotRecord * was passing subsequent parameters in the wrong
order, which caused Jason's problem below.
* Renamed soem icons and fixed up the icon loading code so that
the "sidebar" icons in KPilot can now be themed as well.
2005-08-18 Jason 'vanRijn' Kasper
* Started fixing bug #103581. Got side-tracked by my discovery that when
we change ToDos on the palm, we sync them to the PC and then promptly
delete them from the Palm--not very nice of us. I'll try to get the rest
working tomorrow, but the end result will be that if our user changes a
ToDo category and there is only one category in korganizer for that ToDo,
we will change the category for the KCal event. If there is already more
than one category that korganizer knows about, then we'll continue to
append the Palm's category to the one in korganizer.
2005-08-17 Adriaan de Groot
* Promote the new Pilot*Info (template) classes which simplify loading
AppInfo structures from a database. Deprecate some AddressEntry
constructors to do so, and add one that takes a PilotAddressInfo
instead. In kpilot/, replace a bunch of error-prone buffer-handling
calls by the use of these template classes.
* Use PilotAddressInfo also in the abbrowser conduit. This removes a
bunch of tricky encoding handling from the conduit and puts it in
the base Info class, where it belongs.
2005-08-16 Jason 'vanRijn' Kasper
* Fixed annoyance in vcalconduit (korganizer calendar/todo conduit) that
caused it to not clean up duplicates/things that should be deleted from
the Palm on a copy PC to Handheld sync.
* Fixed some majorly ugly bugs in the addressbook conduit that caused
duplicate addressbook records to be generated and not deleted once
created.
2005-08-15 Adriaan de Groot
* Added lots of null-pointer checks so that it may become possible to
run conduits without a device link soon. This would be good for testing.
* Noticed that the factory code needs refactoring into templates.
Did so, and ported the abbrowser factory to it. Basically, this
removes a lot of cut-and-paste from the whole thing. Same for the
timeconduit.
2005-06-05 Adriaan de Groot
* I learned to make Chinese dumplings yesterday. That's a much better use
of a saturday afternoon than bug hunting, don't you think?
* Put lots of effort into the dox for PilotDateEntry, normalized a lot
of things, gave things slightly more sensible names. This is work towards
implementing the DatabaseInterpreter for appointments, so you can treat
the data on the Pilot as a sequence of (libkcal) Events instead of as
binary blobs.
* Patch from Dylan G applied that replaces 15s and 16s in the code with a
defined constant (there already was one, just not used consistently).
Did some more rationalizing, finally removed the CATEGORY_COUNT define
which was just a duplicate.
2005-05-27 Adriaan de Groot
* Start of the PIM meeting! Way!
* Committed some critical data-loss fixes yesterday. Too late for the KDE 3.4.1 release.
Argh. I think it would have been better not to touch BRANCH at all and leave it
at the same buggy state as in KDE 3.4.0
* Fairly large-scale deprecation of functions in lib/, finally factored out the
shared attributes/category/id stuff from records and AppCategory objects.
2005-05-26 Jason 'vanRijn' Kasper
* Fixing nasty little bug (#106324) causing data loss in memofile conduit
* isFirstSync() is true for both copyHHtoPC and copyPCtoHH. memofile
conduit only wants to do copyHHtoPC if we're either told to, or we don't
have any local memos in the filesystem
2005-05-22 Adriaan de Groot
* Gratuitously update the version number, call this one "kind" (Dutch for
"child", or otherwise short for "kind of liable to eat your data").
This sort-of makes me wish we'd just left BRANCH totally unchanged
since the last release. KDE 3.4.1 tomorrow.
2005-05-20 Adriaan de Groot
* Split PISOCK_LIB into PISOCK_LIB and PISOCK_LDFLAGS. This makes it possible
to slip the include and library dir for pilot-link right in front, which in
turn makes it possible to build against development pilot-link versions even
if there are installed copies in standard locations as well.
* Extended the AppInfo template class with a pack function as well, so that
reading and writing AppInfo blocks can be delegated there.
* Ported the ToDo conduit to use the PilotToDoInfo template instantiation.
2005-05-16 Adriaan de Groot
* Added yet another constructor to the local databases, this time hopefully
one that doesn't have a horribly convoluted semantics -- it just opens
a file (or not).
* Added more tests for lib. These will always fail unless you have a copy
of Aesop's fables in /tmp .
2005-05-13 Adriaan de Groot
* Friday the 13th! I merged HEAD to BRANCH and am now working in
BRANCH (branches/KDE/3.4/kdepim/kpilot) to do bugfixes. New features
and strings go in HEAD, and we'll forward-port bugfixes at some
point. The cutover is revision 413061.
2005-05-11 Adriaan de Groot
* Wasted much time trying to get generic FreeBSD USB support for non-
Visors working in pilot-link-0.12 before I found out that ColdSync
doesn't support that either.
* Removed non-working calendar conduits (calendarbaseconduit/ and
calendarconduits/) from the conduits dir; restore them w/ SVN
commits near 412528. These were recordconduit-based conduits
by Reinhold, but I broke the RecordConduit in the meantime.
2005-05-07 Adriaan de Groot
* After tweaking pilot-link 0.12-pre3 so that KPilot will with it (has to do
with API consistency) the AppInfo template class works again, and i've
extended it a little to make setting and getting category names nicer.
* Applied the new template to the memofile conduit.
2005-04-22 Adriaan de Groot
* Fixed (I hope) bug in notepad conduit related to having zero records in the
database.
* Added some more dox.
2005-04-20 Adriaan de Groot
* Finally added a general test() function to sync actions to mirror the
exec() call. By default, this calls exec() and logs a warning. Removed it
again because it won't work -- SyncAction doesn't _have_ a SyncMode set.
* Started doing a little bit of test code in the KNotes conduit.
2005-04-18 Adriaan de Groot
* Being on vacation doesn't mean I'm not on the job. Doxied a lot, did some cleanup.
* Renamed PilotLocalDatabase::writeID() and changed its signature, since it
was kind of stupid. Doxied it, too.
2005-04-12 Adriaan de Groot
* For a lark, and for David, re-added some KDE 3.2 compatibility code.
* Template madness! An easy way to create the right appinfo's from any database.
2005-04-11 Adriaan de Groot
* Bumped KPilot version.
* Added a test program for some parts of the library. Woo! A first!
Finally something resembling actual software engineering in KPilot.
* Cleaned up headers that weren't including all required (system) headers.
* Moved all the conduits to the new SyncMode.
2005-04-10 Adriaan de Groot
* Some useful patches from Philip T. to the vcal conduit committed.
* Made the sync mode a full-fledged class and ported lib/ and kpilot/
to use it. Disabled all the conduits for the time being. Bumped the
conduit API because of this. This might cause some serious breakage
for the time being.
2005-04-09 Adriaan de Groot
* Geez, can we switch to Subversion yet?
* Committed the weird-ass record conduit template changes. This makes the
RecordConduit a fully templated "container". You plug in 5 other classes
to get a working implementation. This is similar to what the record
conduit already. The main difference is that it is easier to re-use
the things you plug into the recordconduit template. I have a KNotes
partial implementation that wraps KCal::Calendar, so that is immediately
reuseable for the other 4-button ones.
* Ripped out test mode from KPilotTest and elsewhere, since it wasn't working
at all. I think the "mode" setting for conduits needs a lot more structure.
Just having an enum doesn't cut it (what about doing a test-mode local
PC to HH sync? Such a sync could be used to produce .pdb files from Kontact
data, which is just what the doctor ordered sometimes).
2005-03-22 Adriaan de Groot
* Long drought in doing any KPilot work or updating the ChangeLog.
* Meddled in lib/ some to add modifiedIDList() and sanitize some types.
* Prepared to make fFirstSync private, though it has getters and setters
so that doesn't really do much for OO'ness.
* Wrote a template class for doing syncs generically, to replace the
RecordConduit. This one I understand, at least. It's not done yet though,
by a long shot, though I have classes to plug in to it for KNotes.
2005-01-30 Adriaan de Groot
* Fixed one nasty random crash thanks to vanRijn, probably fixed
the KNotes HHtoPC problem, tagged 4.4.7, released it. This
is the last version to support KDE 3.2 at all, since KDE PIM
moved to KDE 3.3 ages ago and KDE 3.4 is at the door.
2005-01-12 Adriaan de Groot
* Made KNotes conduit work when KNotes is embedded in kontact, too.
* One branch of the check-username code wasn't setting the username properly.
* More debugging niftiness, major NO_CAST cleanup.
* Fixed sysinfo conduit, which didn't read its config file.
2005-01-11 Adriaan de Groot
* Added a workaround for buggy Zire USB behavior. It works most of the time.
* Fixed memory leak when reading AppInfo.
* Updated website with some more OS-specific information. As always, I am
in dire need of workable explanations for OS (usually Linux-distro)
specific quirks.
* Worked on debugging output a little, normalized more output.
* Verified that copy PC to HH works on Addressbook, ToDo, Calendar.
2005-01-05 Adriaan de Groot
* Pilot-link 0.12, when it comes out, is source incompatible with 0.11,
but KPilot is already ported to it.
* Fixed up silly conflict resolution question in the datebook, but
really it needs the field-by-field resolution that the addressbook has.
* In KPilotDeviceLink, move around check for unconfigured device to
notice earlier, before doing any work. Minor coding style fixes.
* Revamped debugging (again) so it's now much more 7 * 191; the call trace
is pretty readable now.
2004-12-27 Adriaan de Groot
* Quitting and having the daemon go with you works now.
2004-12-07 Adriaan de Groot
* Tried to make conduit descriptions more consistent. Remember: "handheld",
not "Pilot". Removed ugly const_cast. Added depth indication to the
call trace -- this is a pretty big change, it makes the output from
kpilot with --debug 1 more tree-ish, so it's easier to see what is being
called from where.
2004-12-06 Adriaan de Groot
* Imported memofile from vanRijn.
2004-11-30 Adriaan de Groot
* Having a second child .. puts a dent in development time.
* Make the daemon's next-sync match the one in KPilot, added tooltips
and whatsthis. Make the daemon tell KPilot what the next sync is,
so that changes from the tray menu are visible. This removes some strings.
2004-11-29 Adriaan de Groot
* Waiting for second child .. puts a dent in development time too.
* Ported KPilot to pilot-link 0.12 (unreleased) which adds support
for newer devices and saves memory in the process.
* Data-loss on restore bug fixed by Will Stephenson.
2004-11-23 Adriaan de Groot
* Squashed several silly bugs in wizard and startup code.
2004-11-17 Adriaan de Groot
* Hiatus in KPilot due to working upstream on pilot-link.
* Patches from Olivier, merci.
2004-10-11 Adriaan de Groot
* Made an actual CVS tag for KPilot, kpilot_4_4_6. Uploaded new 4.4.6
tarballs. Updated the site. Posted more developer's notes.
* Added initial encoding-selection boxes to the doc conduit, to indicate
that the input text files are not UTF-8 but something else.
* Started revamping PilotLocalDatabase so we can get rid of the must-
sync-to-delete-new-(memo|address|whatever) in the internal viewers.
* All the bugs in the database really need a "can you check this again"?
added. Till Adam has been messing with recent code and is reporting
new crashes and bugs.
2004-10-07 Adriaan de Groot
* Started adding encoding support to PalmDOC conduit dialogs. Not
sure how to proceed there.
* Closed some more bugs, generally confused about some of the bugs
remaining in the database -- I need cooperation from the folks
reporting the bugs.
* Went on a str*cpy() hunt to avoid bad copies; converted most to
strlcpy(). Not the ones in the docconduit, though, since there,
the strncpy()s go to a data structure that doesn't necessarily
expect NUL termination (note to self: need to check that _extracting_
data from the structure doesn't rely on NUL).
2004-10-05 Adriaan de Groot
* I wonder if the codec() stuff shouldn't move from the PilotAppCategory
to the device link -- after all, it's the _device_ that knows what
the encoding is (who knows, maybe future versions of Pilots will be
able to tell th desktop this).
* Added a localBackup action, so we can make ~ backup files of all the
database files before doing a sync, just in case.
* Merged lots of bugs.
* Found out that KPilot uses title instead of prefix for the honorific
titles in the addressbook - this means KPilot and KAddressbook got
out of sync. Fixed.
* New questionYesNoCancel() didn't return correct button codes.
* Checked all the codec stuff, added some in relevant places but can't
spot any addressbook fields that are not synced.
2004-10-04 Adriaan de Groot
* Bail if the Pilot disconnects, but only between conduits. Conduits
themselves should still check for disconnect.
* Bug maintainence turned up a useful patch for category support
in the calendar.
2004-10-01 Adriaan de Groot
* Merged nice patch from Adrian S for HotPlug.
* Moved tickle stuff into a separate thread, so that it doesn't
require a Qt event loop to keep the Pilot awake.
* Added tickles in the right (?) places in the abbrowser - around
the loading part.
* Discovered that UserCheck used KMessageBox::question*() instead of
a version with timeouts. Fixed that by adding a qYNCancel() to
InteractiveSync, and updated both qYN*() methods there to use
KDE 3.3 KMessageBox support.
* Merged InteractiveAction with SyncAction, cleaning up the inheritance
tree and making it possible to conduits to use the question* methods.
2004-09-26 Adriaan de Groot
* Put up new tarballs on kpilot.org.
* Patched up the KNotes conduit a little - notes listed as modified
but unknown to the Pilot are now added as new.
* Bumped version to 4.4.5. Polished the splash a little.
* Fixed 71122, finally. There wasn't any code at all in the conduit
for deleting memos.
2004-09-22 Adriaan de Groot
* Added some cheap RTTI to PilotDatabase, so you can call
dbType() to find out if it's really a local or a serial DB.
* Stared at the doc conduit for a long time. Did whitespace first.
2004-09-18 Adriaan de Groot & Reinhold Kainhofer
* Deprecated a bunch of poorly-named functions in lib/, and
moved everything to the new names. Finally, no more getCat(),
but just category().
* Detect special case of bad resource headers in file installer.
* Rearranged sync enum just a little. Moved eTest out of the way,
since it's not really a valid value to pass to the demon and made
0 the value to indicate "default, whatever is stored in the
config file".
* Fixed up sync-type not honored, clarified next-sync menu (I
think so, didn't ask -usability about it though).
2004-08-16 Adriaan de Groot
* Was away at a summer school for two weeks. Got no KPilot stuff
done except an off-by-one bug in the memo stuff.
* Split the CopyHHtoPC code out in the knotes conduit,
ready for QThreading (maybe).
2004-07-27 Adriaan de Groot
* MAL conduit proxy password not loaded properly. Reported by
Olivier D.
* Clean out ancient cruft in fileInstaller.{h,cc}. Run file installer
twice, to allow conduits to create files to install. Determine
list of files at ::exec() time, not at object creation time.
* Added some docs to the conduit configure.in.in.
* Give PERL conduit more information to work with.
2004-07-19 Adriaan de Groot
* In kontact, if the daemon gets started it shouldn't complain loudly
about messed-up configurations.
2004-07-14 Adriaan de Groot
* Joyeux quatorze juillet! Spent most of the past week totally ignoring
KPilot, working on personal websites, KDE-FreeBSD, and porting
k3b to FreeBSD (breaking it on Linux only briefly).
2004-06-29 Reinhold Kainhofer
* Fix the bug that todos that were marked finished on the handheld
lost that state when synced to the PC.
* A few layout adjustments for the perl/python conduits (QTextEdit
instead of QLineEdit)
2004-06-29 Joern Ahrens
* Corrected the behavior of the configuration dialog, when the
screensaver option is changed.
* Moved the tickle code from InteractiveAction to SyncAction.
Now it can be used in ConduitAction subclasses as well.
* Ahh, got Adriaans m100, now I'm able to test without destroying
my data on the palm. Thanks Adriaan !
2004-06-27 Joern Ahrens
* Filled the notepad conduit with life. The notepads are saved as png
files in a configurable directory.
2004-06-21 Adriaan de Groot
* Disable editor buttons when 'internal editors' is disabled (Carlos)
and fix up the tooltips when they are disabled. Also update some
copyright lines. Work on the docs.
2004-06-16 Adriaan de Groot
* Disposed of foolish file installer bug. Updated tarballs on website
before fixing it, so now we're stuck :) Looked at 71122 again,
testing with my m500.
* Corrected finaly layout problems in some conduit config pages.
2004-06-10 Adriaan de Groot
* Much delay in getting back to work on KPilot, even after a new mobo
arrived for my primary devel system. Useful patches were received
in the meantime, and commited by Joern. Olivier D. has started
improving the MAL conduit, wrt. proxy and password support.
2004-06-02 Joern Ahrens
* Improved the wizards whatsthis text, thanks to David Bishop
2004-05-30 Adriaan de Groot
* Handle first-time startups more gracefully by just running configure or
the config wizard. Better reporting of non-running daemon. Fix some
copyright headers. Add icons to next-sync menu in daemon.
2004-05-28 Adriaan de Groot
* Make the tarballs available on the site; still no resolution for
memo bug, or timezone bug. Change strings in the applications to
point ot the new kpilot.org.
2004-05-20 Adriaan de Groot
* Tested new tarballs for 4.4.3, and they seem ok. Put their md5s up on the
website. Note that the memos-not-deleted-on-palm bug still exists, as
do 60 others by last count.
2004-05-16 Adriaan de Groot
* Put up the new KPilot.org website.
* Updated docs about net: syncing, thanks to Miles Sabin.
* Patch from Joern probably closes 4 bugs at once.
2004-05-11 Reinhold Kainhofer
* Deprecated the JPilotProxy and expenses conduits, moved to nonbeta.
2004-05-07 Adriaan de Groot
* PilotDatabase was a QObject. I wonder why, it didn't have signals or slots.
* PilotDatabase creation and destruction is now tracked (counted, at least,
so you can see if there's a leak there).
2004-04-30 Adriaan de Groot
* Vrolijke koninginnedag!
* Finally updated the site some.
* Removed deprecated files, started using KDevelop, fixed random stuff.
2004-04-28 Adriaan de Groot
* [kpilotConfigDialog] Added UI for screenlockSecure option. Docs, too.
* [kpilot] Changed hotSync button to one with a little dropdown
menu, thanks to Joern. [kpilotConfig] String fix for outdated config.
[probeDialog] Fixed up comments. [hotSync] Normalized debugging output.
[pilotDaemon] Fixed backwards logic.
2004-04-26 Adriaan de Groot
* [kpilot.kcfg] Added [a68k] as default skip in the database list.
* [pilotDaemon] Use standard names for sync actions. Queue sorry
when sync type is bad.
* [hotSync] Change signature of backup action, lose the confusing
int mode parameter.
* [syncStack] Took out the mode stuff, replaced with SyncAction::SyncMode.
This simplified a lot of things, actually. Removed extra changed-PC check
in ConduitProxy, on the assumption this is already checked elsewhere.
2004-04-21 Adriaan de Groot
* [hotSync] Made skip-database work properly, with wildcard support
and proper checking again, so you can now backup your Pilot and
specify that FATFS and *a68k can be skipped. Even did docs for it.
* [syncAction] Added function to return standard names for the
(enum) sync actions.
2004-04-19 Adriaan de Groot
* Cleaned up header comments, copyrights, body comments, indentation,
brace style, and unused code in all kinds of files. Normalized use of
magic constant 0xffff in PilotRecord::APP_BUFFER_SIZE. Removed
some * in char *buffer[] where char buffer[] was meant, reducing KPilot's
stack memory usage there by a factor of 4 or more.
* Patch from Joern Ahrens to close another Bugzilla bug.
2004-04-18 Reinhold Kainhofer
* Finish the autodetection of the handheld for the wizard. You *CAN* pi_bind
to multiple devices, so I just create a bunch of device links and wait for
connected signals... This also means we can get rid of page one of the wizard.
There is one problem left: If /dev/pilot or so is a symlink to a real device,
a connection on /dev/pilot and the actual device will be detected, and kpilot
will lock up. I guess I'll have to keep a (static) QStringList of real devices
we are bound to in KPilotDeviceLink and disallow binding to the same real
device again.
2004-04-18 Adriaan de Groot
* Default debug_level to 0, so it doesn't print the call trace, but just the
(sometimes) useful debug output; use --debug 1 to print the call trace.
* [pilotDaemon] Add more useful warning output when conversation with screen-
saver fails. Add human-friendly way to request a specific sync type.
Factor out a whole lot in the startHotSync() to clear up the actual logic.
* Massive damage inflicted to factor out the one set of sync-enums and
use them everywhere, while cleaning up the setup-sync logic too.
Remove leading 'e' from enum type names (not the elements).
2004-04-16 Adriaan de Groot
* Fixed double dialog when cancelling a change in the selection in the config
dialog. Took patch from Joern to fix resize problem in abbrowser resolution
dialog. Minor constructor mod in pilotMemo.h, and a much more nasty problem
in pilotMemo.cc, which seems to use a wrong memo length. Added some
docs. Removed a warning in addressWidget.cc.
* [conduitConfigWizard] Can't assign copyright except in writing, and even then
in the EU you can't renounce your copyright. Added a "None" sync setting,
for the use-case described on 4-11.
2004-04-11 Adriaan de Groot
* Testing, testing, 1, 2, 3. Let's look at a use case: someone who doesn't want
to sync his or her palm with KDE apps, but does want a convenient application
to install files and keep a backup of their palm. How can they use KPilot?
Well, uncheck all the conduits except install files, set the daemon to auto-start,
and do nothing more than drop the pilot inthe cradle occasionally and hit the
HotSync button. Use kpilot's viewers to check the state of the backup.
* [conduitConfigDialog] Use the CE macro for general config pages. Tighten typing
on handleGeneralPages. Add names to the viewers tabs. Make unsaved-changes
message make sense.
2004-04-11 Reinhold Kainhofer
* Fix the codec handling to use KGlobal::charsets.
* Implemented the startListening and stopListening methods of the daemon.
* Fixed the config dialog so that just showing a conduit's config widget
doesn't trigger the modified signal.
* Some cleanup in the daemon
2004-04-10 Reinhold Kainhofer
* Split kpilot's configuration into several files, one for each conduit.
Also wrote a kconf_update script so the old settings are preserved.
We still need to sort out the remaining settings written to kpilotrc.
* Corrected all path variables in the .kcfg files from type String to Path
* The configuration wizard now also sets the conduits' settings to sensitive
defaults for the chosen application (kde pim, kontact, evolution)
2004-04-10 Adriaan de Groot
* Move about in config dialog to sensible spot. Follow suggestions by Carlos
to simplify the config dialog a bit. Default general setup to open, even
if the message says it it for esoteric stuff.
2004-04-09 Adriaan de Groot
* Work on docs. Accept patch from Joern for broken config in abbrowser
conduit. Receive docs patches from Carlos.
2004-04-05 Adriaan de Groot
* Work on the Kontact plugin for KPilot, make daemon's installedConduits
DCOP call return human-readable names instead of internal stuff.
2004-04-04 Adriaan de Groot
* Split out the general settings pages so that no tab widgets are
needed. Joern's title patch for those pages made the tabs weird
anyway, and now things are consistent, at least. We could move
the backup page to "Actions", if we want.
2004-04-01 Adriaan de Groot
* Happy birthday to Mira, who has now managed to watch a whole
year of KPilot development, and has learned to sit up and say
"aya!" appreciatively when Daddy fixes a bug. Or something.
2004-03-28 Adriaan de Groot
* Added a "reset daemon" button. Added whatsthis help to toolbar.
* Added a "suppress confirm" option to the notes conduit, partly
for 71122.
* Suppressed some more warnings. Fixed little buglets. Put off
testing 71122 as long as possible.
2004-03-26 Adriaan de Groot
* Another day, another fix from Joern.
* Backported the fix for backup settings being ignored from Sebastian V.
(Actually, just used his original patch, which didn't use kcfgXT.
* Prevent sync when screen locked, as a security measure.
* Still haven't tested 69595 or 71122. Ugh.
2004-03-24 Adriaan de Groot
* 71122 has been top of the list for over a week - not getting around to
it at all. Fixes elsewhere; working on getting a Linux machine up and
running to be able to run POSE with a null-modem pseudo-device.
* Another patch from Joern; arr, it's a learning experience!
* Removed logging weirdness in the fileinstall action.
2004-03-19 Adriaan de Groot
* Discovered that the daemon's DCOP interface disappears after one
HotSync. Man, that's weird. Removed QString(CSL1()) constructs -
CSL1() returns a QString already. Using DCOPClient::attach() in
the pop conduit is a really bad idea!
* Picked bug 72251 to work on tonight. Closed another one related to
settings not propagating properly as well.
* Minor cleanup in the log on the pilot, get conduits to start on new lines.
Use correct name for icon. Handle FastSync correctly, don't queue all
the extra checks for it based on the sync settings (or do we want to
deprecate fastsync as a fNextSyncMode entirely?). At end of sync
reset next sync to normal.
2004-03-17 Reinhold Kainhofer
* Implemented a first version of the config wizard. The code to autodetect
the device is not yet finished, though.
* Extended the daemon DCOP interface to stop listening and start listening
on the configured device (needed e.g. if some other application wants to
bind to that device for some time, like the autodetect dialog needs to).
Here, also the code for really (de-)attaching to the device is not there
yet, just the interface to the functions.
2004-03-17 Adriaan de Groot
* Ripped out all the dead and broken and useless code in the mail
conduit, fixed up the code that was left, reduced the size of the
setup dialog, and ended up with something that actually works again.
Fixed bugs 60579 and 77948.
* Yet another patch from Joern, added him to credits, too.
2004-03-15 Adriaan de Groot
* Patches from David Mott and Joern Ahrens today. Excellent!
* Worked on the docs and website some.
2004-03-14 Reinhold Kainhofer
* Make sure the config is really read in in the vcal conduit's setup dlg.
* also the conduit version number of the vcal conduit needs to be really
written to the cfg file to make sure categories are really synced. So far,
the version number was not written to the config, which resulted in a full
sync every time!
2004-03-13 Adriaan de Groot
* Stared at the screen for a while trying to think of how to test syncing
with my spare m100 without breaking my existing stuff from my m500.
And I realize that it means I need a second monitor and to run X dual-head.
* Some minor rearrangements in the config dialog again.
* Added configuration widget to perl conduit.
2004-03-12 Adriaan de Groot
* Received patches from Joern Ahrens and Sebastian Voitzsch for
various issues. Thanks guys! It's contributions like this that
really inspire me to keep working on KPilot. Reinhold and I can't
do everything by ourselves.
* There will be tarballs of KPilot 4.4.2 soon; this will make it
possible to get the bugfixes from Joern and Sebastian - and others -
on your system now without waiting for another KDE release.
2004-03-08 Reinhold Kainhofer
* Ported all conduits' setup dialog to the new style and remove all old code
* First steps for the config wizard.
* Updated the malconduit to work with libmal 0.4, too (using configure
checks, as the code is source-incompatible)
* Moved the kpilot config page to the correct place in the kontact
setup dlg hierarchy
* Fixed a crash in the old-style conduits' setup code (widget was removed
in favor of some other, but code still tried to access it)
2004-03-08 Adriaan de Groot
* Wow, lots of activity by Reinhold. I hope he updates the ChangeLog
sometime as well.
* Revert the variable timeout, just do a straight 5 second wait, that
should just fix it, and save us a lot of trouble too. Anyway, who
wants to sync again within 5 seconds of the previous one finishing?
It's just as well that the value wasn't saved anywhere anyway.
2004-03-05 Adriaan de Groot
* Spent most of the day putting together new tarballs, so I can push
KPilot improvements out the door again when needed.
2004-03-02 Adriaan de Groot
* Add a variable timeout after the sync, specially for some T3 users.
Thanks to Alec Mitchell for pointing that out and providing an initial patch.
2004-02-25 Adriaan de Groot
* In the KNotes conduit: Coding style fixes. Cleanup doubled strings.
Improved status reporting. Probably dealt with the memo viewer issue.
* Imported another patch from David Mott, for drag-n-drop file install.
* Added a config option and UI for running conduits during a backup.
Default to not, in order to fix bug 7xxxx.
2004-02-21 Adriaan de Groot
* At FOSDEM, not much hacking was done, but it was fun and boozy.
2004-02-03 Adriaan de Groot
* I see lots of spelling fixes have been introduced in HEAD. Thanks, TLs.
* Plans for a photo conduit (Zire71) and a NotePad conduit are forming.
pilot-link has the relevant code already, it just needs to be fit
into KPilot's form.
* Worked on the KNotes conduit some more. Remember to update the
local database copy, and non-CopyHHtoPC code needs work.
2004-01-31 Adriaan de Groot
* Finished up the KNotes conduit, I think. The copy to PC part was
a little over-enthusiastic.
2004-01-25 Adriaan de Groot
* Fixed up copyright notices here and there. Dan is listed as copyright
holder in lots of files he's never worked on; since copyright cannot
be assigned except in writing, I'm going to have to take responsibility
for my parts.
* Fixed up conduit modes in kpilotTest.
* Removed compile warnings in the vcal conduit.
* Moved 72342 to top of list, since now I got HHtoPC copy
working in kpilotTest I can actually _see_ the bug. It seems to be in
PilotMemo.
2004-01-20 Adriaan de Groot
* Added experimental A-A-P build system.
* Cleanups in conduit config, added stub buttons for wizards.
2004-01-16 Adriaan de Groot
* De-tabified ChangeLog again.
* Updated version. Hope that \374 makes sense (it's a ü).
* Added explanation for "Actions" page in config. Ditto for "Conduits".
Prevent user from collapsing the tree.
* Fixup layout for popmail conduit when including it in the config dialog.
* Experimental stab at separating the config into separate bits in the
new KCM config dialog.
2004-01-02 - 2004-01-11 Reinhold Kainhofer
* This was work done in osnabrueck_branch, at the 2004 kdepim meeting
and the week afterwards. This issue is one of the feature targets
for the kdepim 3.3 release in Q1 2004.
* Moved the general setup dialog from a separate dialog to a page of
the conduit config dlg. Combined the kpilot setup and conduit config
dialog to one dialog.
* Implemented the kontact plugin for KPilot (showing status information)
* Added three DCOP functions to the daemon for querying status information
* Hotsync log is written out to a file (~/.kde/share/apps/kpilot/lastsync.log)
* Converted all conduits to KConfig XT (mail und kroupware still missing)
* Converted the config dialog to a KCM module
* KPilot plugin for contact: shows status in summary and makes config available
* kpilotDaemon sends a DCOP signal when its settings/state are changed
* New DCOP functions in the daemon to query its state and settings
* the kontact plugin also detects if the daemon is quit
* Use a QSplitter in the config dialog instead of the QHBox layout
* implemented the kconf_update scripts to move groupless entries to the
[General] group
* Still missing:
o) KConfig sync between the three processes working on the
kpilot config: kpilot, kpilotDaemon and possibly kontact
with the kpilot plugin
o) Wizard to setup kpilot correctly for kontact (the defaults
should suffice, just in case someone played around and
messed them up)
2004-01-02 - 2004-01-04 Adriaan de Groot
* This was work done in osnabrueck_branch, at the 2004 kdepim meeting.
* Fixed the TODO_I18N -> they're all i18n() now.
* Discovered ttypatch, which is da bong. Thanks to Dan Clemmensen
for writing it, and Bernhard Reiter for showing it to me. All of
a sudden, POSE actually looks usable.
2004-01-02 Adriaan de Groot
* Non-functional commits all over; split off osnabrueck_branch.
* Naming changes in todo conduit.
* Fix sync race in knotes conduit.
2003-12-29 Adriaan de Groot
* Reenabled the popmail conduit, but in severely limited form.
2003-12-28 Adriaan de Groot
* Committed the knotes stuff, since it does do HH->PC properly. OTOH,
I don't think the mode code is right in that conduit either.
* Stared at various bugs that I can't reproduce.
* Looked into #69987, changed some names in the todo conduit.
* Changed the parts of the changelog to real changelog format
(dates must be yyyy-mm-dd, with leading zeroes if needed).
2003-12-23 Adriaan de Groot
* Added recent hardware reports. If you reported something and I've
forgotten it, please send me a gentle reminder.
* Added IrDA howto from Stuart, who failed to provide an email
address that I can respond to.
* I think I got the KNotes conduit working again, but it needs some
testing so that change hasn't been committed yet.
2003-12-12 Adriaan de Groot
* Reduce warnings in vcalconduit.
2003-12-10 Adriaan de Groot
* Fix for #66321 - fill in a default value for the vcal file.
2003-12-05 Adriaan de Groot
* Het heerlijk avondje is gekomen. Damn right it is.
2003-12-02 Adriaan de Groot
* Removed #if 0'ed code; moved some deprecated code to #if 0; removed
use of deprecated stuff. Fixed up includes.
2003-11-23 Adriaan de Groot
* Minor string fixups that don't affect TL.
2003-11-22 Reinhold Kainhofer
* Fixed the broken conduit config dialog (wasn't able to show config
widgets of more than one conduit. If you configured one conduit, and
switched to another, its config widget couldn't be added to the stack).
* Configure conduits dialog now has an apply button.
2003-10-21 Adriaan de Groot
* Updated the website some with lots of new hardware. Thanks to
everyone who reported new stuff.
2003-10-10 Adriaan de Groot
* Sure, we let the ChangeLog slide, but didn't do much, I don't
think, over the summer. Main point is that AAP can pretty much
build KPilot now, suck to be auto* and make.
2003-07-30 Reinhold Kainhofer
* The addressbook conduit now uses a different algorithm to find
the type of address on the PC to sync with.
First, if there is a preferred address (no matter if home, work
or whatever), this one is synced to the handheld. If no preferred
address exists, either home or work (depending on the setting in
the conduit config dialog) is used for the sync. If that doesn't
exist, either, the other one (work/home) is tried. If that also
doesn't exist, and the address is copied to the PC, its type is
set to preferred+the setting from the config dialog.
This fixes both bugs #50560 (conduit should sync with preferred
address) as well as bug #60659 (conduit should use the existing
address from the PC, even if the type is not the one chosen in
the config dialog). (also backported to BRANCH)
* Allow two addressbook entries with the same name and organization,
but different phones, addresses etc. Actually, it allows entries
which are equal up to at least one entry. This fixes bug #59569.
* Fixed bug #60691 where events recurring monthly on a given weekday
were shifted by one day. (also backported to BRANCH)
* Also, when initializing a LocalCalendar, you are not supposed
to give a time zone...
* Also, fixed infinite loop glitch by Cornelius.
* If the user chose to sync to an iCalendar file instead of the
standard (resource) calendar, and he gave an empty or invalid
file name, an error message is now written out to inform him/her
about the problem.
I don't want to ask him for a file name, because one of the
guidelines of conduit development is that a sync should be able
to run without user intervention.
this should probably also be backported, but it introduces two
new i18n strings, so it is not possible. Thus the bug will remain
in 3.1 branch.
* Fixed the toolbar configuration.
2003-07-27 Reinhold Kainhofer
* The internal editor action now displays the contents of the conflicting
records and lets the user decide which one overrides (Fixes bug #61103).
* For this I added a function getTextRepresentation(bool richText) to
PilotAppCategory, PilotAddress, PilotMemo, PilotDateEnty and PilotTodoEnty,
which returns the contents of the record as a string that can be displayed
to the user. Moved that code from the internal viewers to the classes.
* If there is no nice-text representation, I now use KHE::KHexEdit to
show the raw contents, so the user gets an idea of the conflicting records.
2003-07-26 Adriaan de Groot
* Time flies when you're having fun and mucking with other
bits of KDE. Worked on meinproc, build fixes, dependencies, etc.
2003-07-26 Reinhold Kainhofer
* Changed a few accelerators (duplicates reported by Dr.Klash)
* Also show items marked as deleted in the GenericDB viewer.
* All conduits now have their own copy of the handheld's database
in $KDEHOME/share/apps/kpilot/conduits/UserName/*.pdb. This was
needed so that backup runs don't break the conduit's algorithm to
detect changed records on the PC. So far, we compared each entry
to the corresponding entry in the backup database. It that changed,
basically we are screwed.
For this new feature I extended the constructur of PilotLocalDatabase
to take an additional boolean parameter useConduitDBs. If that is set,
the db will be opened in ..../conduits/Username/
* Do not return "Unfiled" or "Nicht abgelegt" as category label
if no category is set. Instead return an empty string.
* Added isArchived() and makeArchived() methods to PilotAppCategory
to set the dlpRecArchived flag.
* Changed the way how the DBBackup/username/ and conduits/username/
directories are created (now I'm using KStandardDirs::makeDir and
KStandardDirs::exists).
* FirstSync now also means PC->HH or HH->PC directions (which is clear
intuitively, as with these direction, nothing that's on the other
side should matter at all).
* Added eDelete to the sync actions in the SyncAction class
2003-07-15 to 2003-7-26 Reinhold Kainhofer
Complete rewrite of the addressbook conduit (for the, umhh, third(?) time).
* NEW FEATURE: custom fields can now also be synced with
birth date, URL, ICQ, etc. (bug #50871)
* Conflict resolution shows the whole conflicting item
and all conflicting fields (so far, every conflicting
field was shown on its own, bug #59222). The conflict
resolution is done completely independent from the addressee
object and might so be reused later in other conduits as well.
* Separated the mechanism to detect changes from the mechanism
to sync/merge addressees. This makes the whole thing a lot
easier to understand and maintain, and there are far less
cases you have to consider.
* the conduit now obeys the global conflict resolution (ask,
PC overrides, HH overrides, last sync overrides, duplicate)
and sync direction (fast, full, only PC->HH, only HH->PC)
settings. Bug #59220.
* The "only HH->PC" and "only PC->HH" sync directions first
copy all existing entries to the receiving end, and only then
remove all other entries from there. This avoids data loss if
the connection breaks while such a special sync is running.
* Added a crash handler to clean up the addressbook if the
conduit crashes.
2003-07-11 Reinhold Kainhofer
* Records in the PilotLocalDatabase with ID 0 (i.e. new records
added by KPilot's internal editors) will always be treated as
modified records and found by readNextModifiedRecord, even if
they don't have the dirty flag set. This ensures that all new
records from KPilot will be added to the handheld
* Finished the internal todo editor:
Entries can be maked completed and edited directly in the check
list view.
Moved the editor dialog to a designer ui file instead of a
manually created layout
* Finished the sync action that copies the changes done in the
internal editors of KPilot to the handheld. So, finally, the
internal viewers/editors of KPilot are working again, unlike
the last few years, where they were in a terribly broken state.
2003-06-01 to 2003-7-10 Reinhold Kainhofer
* I was busy with a lot of stuff from KPilot, none of which is actually
in a state where I can commit it. In particular, I'm working on
-) Custom field sync of the addressbook conduit
-) Make the conflict resolution of the abook conduit more
intuitive (ask just once for each conflicting address)
-) Finish up the todo editor
-) Make the generic DB viewer an editor (more or less finished,
but the KHexEdit widget is not yet publically available, so
I can't commit that part either)
-) Implement the InternalEditorAction which syncs the changes
done in the internal editors/viewers to the handheld
KPilot Developer's notes for July 9th
=====================================
2003-7-9 Adriaan de Groot
* Ditched spurious code in KNotes conduit config. Updated copyrights,
still assigned to Dan. Updated the notes interface stubs.
2003-7-7 Adriaan de Groot
* Added a conduit description to PalmDOC. Well, fixed the "Conduit"
vs. "Comment" typo in the .desktop file.
2003-7-6 Adriaan de Groot
* Made the bugreport and question and help links in the about pages
clickable through KActiveLabel. Made the credits text scrollable
with a QTextEdit.
* Weird redraw bugs reappear in the conduit config dialog, fixed again.
* Added sorryVersionOutdated() to KPilotConfig to notify user that
the configs are old, and telling what's changed. Used in kpilot and
the daemon. Includes cleanup. Use getDebugLevel() properly.
2003-7-5 Adriaan de Groot
* Upped the config version number to 440.
* Worked on the docs (really!), so the HEAD docs now reflect _some_ of
the reality of KPilot 4.4.0. Noted lots of inconsistencies.
Put in lots of TODO's, and the whole thing needs going over.
* Using the trademark HotSync in the GUI might not be a good idea.
Removed where I could, added a trademark reference in the about pages.
2003-7-5 Adriaan de Groot
* Renamed all conduit plugins from lib<bla>conduit (and variants) to
conduit_<bla>, so that they're easier to identify in $KDEDIR/lib/trinity.
Of course, this doesn't work right. Feh.
* Removed listCat again.
* Implemented a notion of "internal conduit", so that we can move
the "install files" and "kroupware" stuff to the conduit config
dialog and out of the general stuff, where it looks weird.
2003-7-4 Adriaan de Groot
* Removed the words "KPilot", "KDE" and "Conduit" from all the conduit names.
* Removed double logging in NULL conduit, added message for explicit fail.
Use the generic config dialog implementation. I see now that the NULL
conduit isn't built or installed anymore. Fixed its .desktop comment.
* Disabled the expenses and popmail conduit from compiling.
* Made new-style config for the vcal conduit. Made new-style config for the
todo conduit. Stripped out lots of extra #includes. Stripped out extra
Q_OBJECT macros. Reduced space in widget some. Fixed void return 0;
Fixed improper AboutData in todo conduit.
* New-style for abbrowser. Minor == vs = mixup.
* Shrunk margin for kpilot config dialog. Use the available charsets from
KDE instead of our own list. Added a quit-after-sync option.
2003-6-29 Adriaan de Groot
* Added some code validation support to plugin.h
* Messed about with popmail's config. What was the firewall stuff for?
Created new-style configs, didn't complete the load/save code, and
then sortof gave up because is there really any point to doing this
conduit without switching to the SMTP ioslave? And using identities
then?
2003-6-26 Adriaan de Groot
* Removed stupid comment in popmail/Makefile.am
2003-6-25 Adriaan de Groot
* Be consistent about naming the sysinfo conduit "System Information"
in user-visible strings.
* Remove "conduit" from the name of the Palm DOC conduit, and add a
new-style config panel to it. Made it resize properly.
* Note that ConduitConfigBase::load() and its overrides should set
fModified to false.
2003-6-22 Adriaan de Groot
* Turn off NO_CAST_ASCII when doing DEBUG_CERR, because ostream is
lacking an operator << for QString. (Nicer is probably to add
such an operator, but hey.)
* Removed uselessly virtual conduitName() function from conduit classes.
No-one was overriding it anyway.
* The vcal and abbrowser conduits shouldn't be compiled if you're building
KPilot HEAD on older systems.
2003-6-21 Adriaan de Groot
* Fixed up the layout of the sysinfo conduit.
* Documented ConduitConfigBase::isModified() and made it virtual.
* Fixed up the sysinfo conduit and saving modified entries.
* Moved the --debug argument to all apps individually.
2003-6-20 Adriaan de Groot
* Updated the hardware lists on the website.
* Updated some "What's This?" texts.
* Removed evil static QStrings in kpilotConfigDialog.cc.
* Discovered that the "start at login" functionality has been broken forever.
* Added a workaround for KTimeWidget not present in KDE 3.1.x.
2003-6-20 Reinhold Kainhofer
* Implemented the dialog to change the database flags and the dates (DBInfo
struct) in the internal generic DB viewer. PilotLocalDatabase got a new
method setDBInfo for this.
* Implemented creating, editing and deleting records in the generic DB editor.
* Added the CHexViewWidget from khexedit to the kpilot/kpilot/ directory.
There are still several open issues with it (i.e. how do I set the data
at all???)
2003-6-19 Reinhold Kainhofer
* Implemented the list of records in the generic DB viewer. To be
able to sort the records by their index, I had to write my own
compare method of the QListViewItem, which compares the numerical
representation of the column entries. For large DBs (>300 records)
this is way too slow (QString::toULong for each comparison, increasing
with n*n), so I had to implement some caching. Now even large databases
are sorted very fast.
2003-6-16 Reinhold Kainhofer
* First layout of the internal calendar viewer/editor. The KDatePicker
poses a big problem to me as it swallows all toolbar buttons.
* Implemented a InternalEditorAction to sync changes done to the databases
in the internal viewers. Every PilotComponent that changes a database
needs to mark it as dirty (e.g. markDBDirt("AddressDB")) so the
Action knows which databases need to be considered.
2003-6-15 Reinhold Kainhofer
* Implemented a first layout of the generic database viewer. To view
the records, I'd need a hex editor, which is not available in KDE, yet.
I tried using the widget that khexedit uses, but somehow I can't get
it to work :-((
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
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-1 Reinhold Kainhofer
* Fixed several (possible and really occurring) null pointer crashes
* 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 committed 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 <kdebugclasses.h> 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 <<s and do it all by hand.
2003-2-2 Adriaan de Groot
* conduitConfigDialog.cc [HEAD] Started inserting code for improved
conduit selection and activation.
* kpilot.cc [BRANCH] Improve perceived startup time by delaying
the loading of databases till the GUI is up.
* options.h [BRANCH] To enforce discipline, use NO_ASCII_CAST.
NOT COMMITTED - it'll break a lot of debug stuff as well.
However, as an occasional test, it's a good idea.
* {many files} [BRANCH] Clean up random char * conversions.
* kpilotConfig.{h,cc} [BRANCH] Introduce config entry for encoding.
* kpilot.cc pilotDaemon.cc pilotAppCategory.h pilotRecord.cc [BRANCH]
Use the config entry for encoding. Applications that use any
PilotAppCategory derived class - ie. that interpret data from the
Pilot in any way - should call setupPilotCodec() beforehand with
the name of the encoding (QString::null == "ISO8859-1", the default,
or use something like "Shift-JIS").
* pilotMemo.{h,cc} memoWidget.cc [BRANCH] Use the codec for the returned
title of the memo. This is the first step on making PilotMemo return
everything in QString format suitable for any encoding. In order to
change the encoding, add
Encoding=<name>
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 <iostream.h>, 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<recordid_t> 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. No-one 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 <qt>'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 <qt>
- 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 <qwidget.h> 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 [email protected] or [email protected].
* 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 <qt></qt> 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <getopt.h> 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 [email protected], 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 "<none>" 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.
|