summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/SyncHowto.txt (renamed from bin/kdepim/korganizer/howtoSYNC.txt)0
-rw-r--r--bin/kdepim/WhatsNew.txt (renamed from bin/kdepim/korganizer/kopiWhatsNew.txt)6
-rw-r--r--korganizer/mainwindow.cpp19
3 files changed, 7 insertions, 18 deletions
diff --git a/bin/kdepim/korganizer/howtoSYNC.txt b/bin/kdepim/SyncHowto.txt
index 3cab446..3cab446 100644
--- a/bin/kdepim/korganizer/howtoSYNC.txt
+++ b/bin/kdepim/SyncHowto.txt
diff --git a/bin/kdepim/korganizer/kopiWhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 3f95dcf..3eecf8c 100644
--- a/bin/kdepim/korganizer/kopiWhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,283 +1,285 @@
1Info about the changes in new versions of KO/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2and KDE-Pim/Pi
3 2
4********** VERSION 1.9.7 ************ 3********** VERSION 1.9.7 ************
5 4
6KO/Pi - KA/Pi on Windows: 5KO/Pi - KA/Pi on Windows:
7Now a directory can be defined by the user, where the 6Now a directory can be defined by the user, where the
8application/config data should be saved. 7application/config data should be saved.
9 Define your desired path in the evironment variable 8 Define your desired path in the evironment variable
10 MICROKDEHOME 9 MICROKDEHOME
11 before starting KO/Pi or KA/Pi. 10 before starting KO/Pi or KA/Pi.
12 11
13An easy Kx/Pi to Kx/Pi syncing is now possible 12An easy Kx/Pi to Kx/Pi syncing is now possible
14(it is called Pi-Sync) via network. 13(it is called Pi-Sync) via network.
15Please look at the Sync Howto. 14Please look at the Sync Howto.
16 15
17Exporting of calendar data and contacts to mobile phones is now possible. 16Exporting of calendar data and contacts to mobile phones is now possible.
18The SyncHowto is updated with information howto 17The SyncHowto is updated with information howto
19access/sync mobile phones. 18access/sync mobile phones.
20Please look at the Sync Howto. 19Please look at the Sync Howto.
21 20
22Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly. 21Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly.
23Please disable Fastload for the original contact/calendar applications 22Please disable Fastload for the original contact/calendar applications
24and close them. 23and close them.
25KO/Pi and KA/Pi must be running in order to receive the data. 24KO/Pi and KA/Pi must be running in order to receive the data.
26(KO/Pi and KA/Pi are always running if Fastload for them is enabled!) 25(KO/Pi and KA/Pi are always running if Fastload for them is enabled!)
27 26
27In the KA/Pi details view are now the preferred tel. numbers displayed on top
28of the other data ( emails/tel.numbers/addresses)
29
28 30
29********** VERSION 1.9.6 ************ 31********** VERSION 1.9.6 ************
30 32
31Changes in the external application communication on the Zaurus 33Changes in the external application communication on the Zaurus
32in order to use less RAM when the apps are running. 34in order to use less RAM when the apps are running.
33First syncing of addressbooks (KA/Pi) is possible. 35First syncing of addressbooks (KA/Pi) is possible.
34 36
35 37
36********** VERSION 1.9.5a ************ 38********** VERSION 1.9.5a ************
37 39
38Fixed a bug in KO/Pi in the SharpDTM sync of version 1.9.5. 40Fixed a bug in KO/Pi in the SharpDTM sync of version 1.9.5.
39Fixed some small bugs. 41Fixed some small bugs.
40KA/Pi shows now the birthday in summary view. 42KA/Pi shows now the birthday in summary view.
41Now OM/Pi and KA/Pi are using the date format defined in KO/Pi 43Now OM/Pi and KA/Pi are using the date format defined in KO/Pi
42for displaying dates. 44for displaying dates.
43 45
44 46
45********** VERSION 1.9.5 ************ 47********** VERSION 1.9.5 ************
46 48
47There is still no Addressbook syncing! 49There is still no Addressbook syncing!
48 50
49New in 1.9.5: 51New in 1.9.5:
50 52
51Many bugfixes. 53Many bugfixes.
52Better searching in KA/Pi. 54Better searching in KA/Pi.
53You can configure in KA/Pi if you want to search only after 55You can configure in KA/Pi if you want to search only after
54<return> key pressed. 56<return> key pressed.
55 57
56Better mail downloading in OM/Pi. 58Better mail downloading in OM/Pi.
57 59
58First experimental alpha version of sync of KO/Pi with mobile phones. 60First experimental alpha version of sync of KO/Pi with mobile phones.
59See gammu documentation for supported phones. 61See gammu documentation for supported phones.
60You need to install the package kammu_1.9.5_arm.ipk for sync of KO/Pi with mobile phones. kammu_1.9.5_arm.ipk needs libbluetooth and libsdp. 62You need to install the package kammu_1.9.5_arm.ipk for sync of KO/Pi with mobile phones. kammu_1.9.5_arm.ipk needs libbluetooth and libsdp.
61Quick hint how to use: 63Quick hint how to use:
62NOTE: MOBILE PHONE SYNC IS EXPERIMENTAL! 64NOTE: MOBILE PHONE SYNC IS EXPERIMENTAL!
63Install kammu_1.9.5_arm.ipk , libbluetooth and libsdp. 65Install kammu_1.9.5_arm.ipk , libbluetooth and libsdp.
64Create syncprofile - mobile device 66Create syncprofile - mobile device
65Remove entry for model. (Leave empty ). 67Remove entry for model. (Leave empty ).
66Enable infrared on Zaurus and your Phone. 68Enable infrared on Zaurus and your Phone.
67Sync. 69Sync.
68To get a more detailed log, start kopi from konsole. 70To get a more detailed log, start kopi from konsole.
69 71
70********** VERSION 1.9.4 ************ 72********** VERSION 1.9.4 ************
71 73
72This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus. 74This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus.
73 75
74WARNING: 76WARNING:
75PLEASE BACKUP ALL YOUR DATA! 77PLEASE BACKUP ALL YOUR DATA!
76We have changed a lot and maybe there are some unknown problems. 78We have changed a lot and maybe there are some unknown problems.
77 79
78SYNC HANDLING HAS CHANGED! 80SYNC HANDLING HAS CHANGED!
79Such that, if you sync now with an already synded device, you will duplicated entries after the first sync. 81Such that, if you sync now with an already synded device, you will duplicated entries after the first sync.
80(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks). 82(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks).
81 83
82You need the kmicrokdelibs_1.9.4_arm.ipk as a base for the other programs. 84You need the kmicrokdelibs_1.9.4_arm.ipk as a base for the other programs.
83If you get the error: "Install only possible in main memory", just try it again to install it on SD card. That worked for me. And it was reported that rebooting Qtopia did help in this case as well. 85If you get the error: "Install only possible in main memory", just try it again to install it on SD card. That worked for me. And it was reported that rebooting Qtopia did help in this case as well.
84 86
85As programs are available: 87As programs are available:
86KO/Pi (korganizer ipk) - a calendar program. 88KO/Pi (korganizer ipk) - a calendar program.
87KA/Pi (kaddressbook ipk ) - an addressbook 89KA/Pi (kaddressbook ipk ) - an addressbook
88OM/Pi (kopiemail ipk ) an email program with pop/smtp and IMAP support. 90OM/Pi (kopiemail ipk ) an email program with pop/smtp and IMAP support.
89 91
90An alarm notification program ( korganizer-alarm ipk ) for KO/Pi that notifies you about alarms, even if the Zaurus is in suspend mode. 92An alarm notification program ( korganizer-alarm ipk ) for KO/Pi that notifies you about alarms, even if the Zaurus is in suspend mode.
91(If you do not see an icon in the taskbar after installing korganizer-alarm, please restart Qtopia) 93(If you do not see an icon in the taskbar after installing korganizer-alarm, please restart Qtopia)
92 94
93All the applications are installed in a "Pim" TAB. 95All the applications are installed in a "Pim" TAB.
94If this TAB is new on your system, you can get an icon in this TAB by installing pim_TAB_icon_1.9.4_arm.ipk 96If this TAB is new on your system, you can get an icon in this TAB by installing pim_TAB_icon_1.9.4_arm.ipk
95 97
96All the application are integrated. 98All the application are integrated.
97Such that you can choose in KO/Pi the attendees of a meeting from the addresses in KA/Pi. When you click in KA/Pi on the email address, OM/Pi is started to write the mail. 99Such that you can choose in KO/Pi the attendees of a meeting from the addresses in KA/Pi. When you click in KA/Pi on the email address, OM/Pi is started to write the mail.
98 100
99HINT: 101HINT:
100If you install KPhone/Pi 0.9.7, it will be called, if you click in KA/Pi on a phone number. 102If you install KPhone/Pi 0.9.7, it will be called, if you click in KA/Pi on a phone number.
101 103
102What's new? 104What's new?
103 105
104SYNC HANDLING HAS CHANGED! 106SYNC HANDLING HAS CHANGED!
105Such that, if you sync now with an already synded device, you will duplicated entries after the first sync. 107Such that, if you sync now with an already synded device, you will duplicated entries after the first sync.
106(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks). 108(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks).
107 109
108New in OM/Pi: 110New in OM/Pi:
109When copying(i.e. downloading mails) , you can specify, that only mails of a given size should be downloaded. Added mail copy possibility for selected mails. 111When copying(i.e. downloading mails) , you can specify, that only mails of a given size should be downloaded. Added mail copy possibility for selected mails.
110 112
111New in KO/Pi: 113New in KO/Pi:
112French is now available for KO/Pi. 114French is now available for KO/Pi.
113Choose menu:Actions - Configure:TAB locale 115Choose menu:Actions - Configure:TAB locale
114Syncing has changed. 116Syncing has changed.
115Phone sync available soon. 117Phone sync available soon.
116Not much changes, I cannot remember them ... 118Not much changes, I cannot remember them ...
117 119
118New in KA/Pi: 120New in KA/Pi:
119Beaming possible. 121Beaming possible.
120Sharp DTM readonly access possible( create a new DTM resource ); 122Sharp DTM readonly access possible( create a new DTM resource );
121Better searching possible. 123Better searching possible.
122Search is performed only after pressing the return key. 124Search is performed only after pressing the return key.
123Use wildcard * to specify parts of a name. 125Use wildcard * to specify parts of a name.
124 126
125Better name/email selection dialog (called from KO/Pi or OM/Pi). In this dialog, now searching is possible. Like in KA/Pi, use return key and wildcard * . 127Better name/email selection dialog (called from KO/Pi or OM/Pi). In this dialog, now searching is possible. Like in KA/Pi, use return key and wildcard * .
126 128
127A big improvement is the new management of the contact access. 129A big improvement is the new management of the contact access.
128In version 1.9.3, every application was using their own addressbook access data. 130In version 1.9.3, every application was using their own addressbook access data.
129That means, the addressbook was loaded up to three times in the memory, when accessed by KA/Pi, KO/Pi and OM/Pi. 131That means, the addressbook was loaded up to three times in the memory, when accessed by KA/Pi, KO/Pi and OM/Pi.
130That was wasting of memory, if you had several hundreds of contacts. 132That was wasting of memory, if you had several hundreds of contacts.
131 133
132Now only KA/Pi accesses the addressbook. 134Now only KA/Pi accesses the addressbook.
133If KO/Pi or OM/Pi want to get some name/email data, they request KA/Pi to open the name/email selection dialog and send it back to them. 135If KO/Pi or OM/Pi want to get some name/email data, they request KA/Pi to open the name/email selection dialog and send it back to them.
134If you click on an attendee in a meeting, its contact data is displayed in KA/Pi directly. 136If you click on an attendee in a meeting, its contact data is displayed in KA/Pi directly.
135That means, if KO/Pi or OM/Pi want to access contact data, KA/Pi is started first. 137That means, if KO/Pi or OM/Pi want to access contact data, KA/Pi is started first.
136 138
137New in the KO/Pi alarm applet: 139New in the KO/Pi alarm applet:
138Configure your own timer popup menu! 140Configure your own timer popup menu!
139(Text and minutes for timer countdown) 141(Text and minutes for timer countdown)
140Just edit the file 142Just edit the file
141(yourhomedir)/.kopialarmtimerrc 143(yourhomedir)/.kopialarmtimerrc
142and start/stop a timer to get a new menu with the data of this file. 144and start/stop a timer to get a new menu with the data of this file.
143 145
144********** VERSION 1.9.3 ************ 146********** VERSION 1.9.3 ************
1451) 1471)
146Now KO/Pi on Windows imports directly the calendar data of 148Now KO/Pi on Windows imports directly the calendar data of
147an installed Outlook. Should work with OL version >= 2000. 149an installed Outlook. Should work with OL version >= 2000.
148 150
149********** VERSION 1.9.2 ************ 151********** VERSION 1.9.2 ************
1501) 1521)
151KDE-Pim/Pi has got a new member: 153KDE-Pim/Pi has got a new member:
152KmicroMail (KM/Pi) is a mail program, 154KmicroMail (KM/Pi) is a mail program,
153which can handle IMAP and POP mail access. 155which can handle IMAP and POP mail access.
154It is based on Opie-Mail v3. 156It is based on Opie-Mail v3.
155All dependencies to the Opie libraries ar removed, 157All dependencies to the Opie libraries ar removed,
156such that no additional Opie lib is needed. 158such that no additional Opie lib is needed.
157It is already integrated in KO/Pi and KA/Pi. 159It is already integrated in KO/Pi and KA/Pi.
158It it now available for the Zaurus,probably it 160It it now available for the Zaurus,probably it
159will be available for other platforms later. 161will be available for other platforms later.
160Hint: 162Hint:
161Create your own contact (name + email) 163Create your own contact (name + email)
162in KA/Pi, select this contact and choose menu: 164in KA/Pi, select this contact and choose menu:
163Settings - Set Who Am I. 165Settings - Set Who Am I.
164Now the settings of this contact are used as 166Now the settings of this contact are used as
165the sender data in KM/Pi. 167the sender data in KM/Pi.
1662) 1682)
167KDE-Pim/Pi is split up in five different 169KDE-Pim/Pi is split up in five different
168packages now precompiled for Sharp Zaurus: 170packages now precompiled for Sharp Zaurus:
169--kmicrokdelibs_1.9.2_arm.ipk 171--kmicrokdelibs_1.9.2_arm.ipk
170The libs are needed for any 172The libs are needed for any
171of the following programs: 173of the following programs:
172--kaddressbook_1.9.2_arm.ipk 174--kaddressbook_1.9.2_arm.ipk
173--kmicromail_1.9.2_arm.ipk 175--kmicromail_1.9.2_arm.ipk
174--korganizer_1.9.2_arm.ipk 176--korganizer_1.9.2_arm.ipk
175Independ from that, there is the alarm applet 177Independ from that, there is the alarm applet
176available for KO/Pi, which also offers 178available for KO/Pi, which also offers
177quick access for a new mail or 179quick access for a new mail or
178showing the addressbook.: 180showing the addressbook.:
179--korganizer-alarm_1.9.2_arm.ipk 181--korganizer-alarm_1.9.2_arm.ipk
180Independend means, that the alarm applet 182Independend means, that the alarm applet
181does not need any of the libs or programs above to run. 183does not need any of the libs or programs above to run.
182But it would be quite useless without these programs. 184But it would be quite useless without these programs.
183NOTE: 185NOTE:
184If you get a 186If you get a
185"This application depends on other programs" 187"This application depends on other programs"
186during installation of 188during installation of
187--kmicrokdelibs_1.9.2_arm.ipk 189--kmicrokdelibs_1.9.2_arm.ipk
188you probably do not have to care about that. 190you probably do not have to care about that.
189kmicrokdelibs_1.9.2 will come with some 191kmicrokdelibs_1.9.2 will come with some
190resource plugins, which needs additional libraries. 192resource plugins, which needs additional libraries.
191(E.g. libopie1, if you want to use the 193(E.g. libopie1, if you want to use the
192opie resource connector in KA/Pi). 194opie resource connector in KA/Pi).
193If you do not have this libraries installed, 195If you do not have this libraries installed,
194you simply cannot use the resource. 196you simply cannot use the resource.
195To make it clear: 197To make it clear:
196If the libraries are missing, the applications 198If the libraries are missing, the applications
197using kmicrokdelibs will start, 199using kmicrokdelibs will start,
198because the resources are plugins. 200because the resources are plugins.
1993) 2013)
200KO/Pi and friends are now installable on SD-Card! 202KO/Pi and friends are now installable on SD-Card!
201It is recommended to install all libs and apps 203It is recommended to install all libs and apps
202on the SD card or all in the internal storage. 204on the SD card or all in the internal storage.
203There may be problems, if this is mixed. 205There may be problems, if this is mixed.
2044) 2064)
205Fixed two bugs in the alarm notification on Windows. 207Fixed two bugs in the alarm notification on Windows.
2065) 2085)
207Great improvement! 209Great improvement!
208KO/Pi uses now the latest version of libical. 210KO/Pi uses now the latest version of libical.
209Libical is the library which actually reads 211Libical is the library which actually reads
210the calendar files and extract the data from it. 212the calendar files and extract the data from it.
211With the old version, there were problems 213With the old version, there were problems
212(crashes or program hangs) when licical did read 214(crashes or program hangs) when licical did read
213files, which were not stored from KO/Pi. 215files, which were not stored from KO/Pi.
214I do not know, if the new libical works perfect, 216I do not know, if the new libical works perfect,
215but actually it works much better than 217but actually it works much better than
216the old version. 218the old version.
217There are no problems with compatibility with 219There are no problems with compatibility with
218old calendar files of KO/Pi, of course! 220old calendar files of KO/Pi, of course!
2196) 2216)
220New in KA/Pi: 222New in KA/Pi:
221Opie addressbook resource connector available! 223Opie addressbook resource connector available!
222You will need libopie1 and the opie addressbook, 224You will need libopie1 and the opie addressbook,
223of course. 225of course.
224With the Opie addressbook resource connector, 226With the Opie addressbook resource connector,
225you can access the Opie addressbook readonly in KA/Pi. 227you can access the Opie addressbook readonly in KA/Pi.
226If you want to edit or import the data into KA/Pi, 228If you want to edit or import the data into KA/Pi,
227do this: 229do this:
228a) Create an Opie resource. 230a) Create an Opie resource.
229 (Menu: Settings-Configure Resources). 231 (Menu: Settings-Configure Resources).
230After configuration and restarting KA/Pi you should see 232After configuration and restarting KA/Pi you should see
231the Opie contacts in KA/Pi. 233the Opie contacts in KA/Pi.
232b) Select some or all Opie contacts. 234b) Select some or all Opie contacts.
233(NOTE: +++++ 235(NOTE: +++++
234To know exactly, what contacts are Opie contacts, 236To know exactly, what contacts are Opie contacts,
235do this: Choose menu: 237do this: Choose menu:
236View-Modify View - TAB Fields. 238View-Modify View - TAB Fields.
237Select in the above list "Resource" and click 239Select in the above list "Resource" and click
238down arrow to add it to the "Selected fields". 240down arrow to add it to the "Selected fields".
239Click OK. 241Click OK.
240Now you have a new column "Resource" in your list, 242Now you have a new column "Resource" in your list,
241where you can see, what an Opie resource is. 243where you can see, what an Opie resource is.
242++++ NOTE end.) 244++++ NOTE end.)
243Ok, we do have now some Opie contacts seleted. 245Ok, we do have now some Opie contacts seleted.
244(Use SHIFT or CTRL key in order to multiple select). 246(Use SHIFT or CTRL key in order to multiple select).
245c) Choose menu: Edit-Copy. 247c) Choose menu: Edit-Copy.
246d) Choose menu: Edit-Paste. 248d) Choose menu: Edit-Paste.
247e) Select the resource, you want to add the contacts to. 249e) Select the resource, you want to add the contacts to.
248Congrats! Now you have read/write access to the copied 250Congrats! Now you have read/write access to the copied
249opie contacts as "real" KA/Pi contacts. 251opie contacts as "real" KA/Pi contacts.
250 252
251 253
252********** VERSION 1.9.1 ************ 254********** VERSION 1.9.1 ************
2531) 2551)
254 +++ IMPORTANT 1 +++ 256 +++ IMPORTANT 1 +++
255 257
256The storing place of the default calendar 258The storing place of the default calendar
257file has changed! 259file has changed!
258The default calendar file was 260The default calendar file was
259Applications/korganizer/mycalendar.ics 261Applications/korganizer/mycalendar.ics
260on Zaurus and 262on Zaurus and
261(yourHomeDir)/korganizer/mycalendar.ics 263(yourHomeDir)/korganizer/mycalendar.ics
262on Windows/Linux desktop. Now it is 264on Windows/Linux desktop. Now it is
263(yourHomeDir)/kdepim/korganizer/mycalendar.ics 265(yourHomeDir)/kdepim/korganizer/mycalendar.ics
264on Zaurus, Windows and Linux. 266on Zaurus, Windows and Linux.
265To load the old file, choose menu 267To load the old file, choose menu
266File-Load calendar backup. 268File-Load calendar backup.
267(It should be loaded automatically 269(It should be loaded automatically
268at startup with a warning message displayed). 270at startup with a warning message displayed).
269The place of the configuration file has changed too. 271The place of the configuration file has changed too.
270If you want to use your old KO/Pi config, 272If you want to use your old KO/Pi config,
271copy it to 273copy it to
272(yourHomeDir)/kdepim/config/korganizerrc 274(yourHomeDir)/kdepim/config/korganizerrc
273Please read VERSION 1.9.0 - topic 3) as well! 275Please read VERSION 1.9.0 - topic 3) as well!
274 276
275 +++ IMPORTANT 2 +++ 277 +++ IMPORTANT 2 +++
276 278
277Because of the new paths, you will need 279Because of the new paths, you will need
278a new version of the KO/Pi alarm applet 280a new version of the KO/Pi alarm applet
279for Zaurus. 281for Zaurus.
280Use version >= 1.9.1 282Use version >= 1.9.1
281 283
2822) 2842)
283Now the QWhat'sThis Icon works for items 285Now the QWhat'sThis Icon works for items
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index a69a0bd..58d8d34 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -831,536 +831,523 @@ void MainWindow::initActions()
831 // ****************************************************** 831 // ******************************************************
832 // menubar icons 832 // menubar icons
833 833
834 834
835 iconToolBar->setHorizontalStretchable (true ); 835 iconToolBar->setHorizontalStretchable (true );
836 //menuBar->insertItem( iconToolBar ); 836 //menuBar->insertItem( iconToolBar );
837 //xdays_action 837 //xdays_action
838 if (p-> mShowIconNewEvent) 838 if (p-> mShowIconNewEvent)
839 ne_action->addTo( iconToolBar ); 839 ne_action->addTo( iconToolBar );
840 if (p->mShowIconNewTodo ) 840 if (p->mShowIconNewTodo )
841 nt_action->addTo( iconToolBar ); 841 nt_action->addTo( iconToolBar );
842 if (p-> mShowIconSearch) 842 if (p-> mShowIconSearch)
843 search_action->addTo( iconToolBar ); 843 search_action->addTo( iconToolBar );
844 if (p-> mShowIconNext) 844 if (p-> mShowIconNext)
845 whatsnext_action->addTo( iconToolBar ); 845 whatsnext_action->addTo( iconToolBar );
846 if (p-> mShowIconNextDays) 846 if (p-> mShowIconNextDays)
847 xdays_action->addTo( iconToolBar ); 847 xdays_action->addTo( iconToolBar );
848 if (p-> mShowIconList) 848 if (p-> mShowIconList)
849 showlist_action->addTo( iconToolBar ); 849 showlist_action->addTo( iconToolBar );
850 if (p-> mShowIconDay1) 850 if (p-> mShowIconDay1)
851 day1_action->addTo( iconToolBar ); 851 day1_action->addTo( iconToolBar );
852 if (p-> mShowIconDay5) 852 if (p-> mShowIconDay5)
853 day5_action->addTo( iconToolBar ); 853 day5_action->addTo( iconToolBar );
854 if (p-> mShowIconDay7) 854 if (p-> mShowIconDay7)
855 day7_action->addTo( iconToolBar ); 855 day7_action->addTo( iconToolBar );
856 if (p-> mShowIconMonth) 856 if (p-> mShowIconMonth)
857 month_action->addTo( iconToolBar ); 857 month_action->addTo( iconToolBar );
858 if (p-> mShowIconTodoview) 858 if (p-> mShowIconTodoview)
859 todoview_action->addTo( iconToolBar ); 859 todoview_action->addTo( iconToolBar );
860 if (p-> mShowIconJournal) 860 if (p-> mShowIconJournal)
861 viewjournal_action->addTo( iconToolBar ); 861 viewjournal_action->addTo( iconToolBar );
862 icon = loadPixmap( pathString + "2leftarrowB" ); 862 icon = loadPixmap( pathString + "2leftarrowB" );
863 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); 863 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14);
864 if (p-> mShowIconBackFast) { 864 if (p-> mShowIconBackFast) {
865 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 865 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
866 connect( action, SIGNAL( activated() ), 866 connect( action, SIGNAL( activated() ),
867 mView, SLOT( goPreviousMonth() ) ); 867 mView, SLOT( goPreviousMonth() ) );
868 action->addTo( iconToolBar ); 868 action->addTo( iconToolBar );
869 } 869 }
870 icon = loadPixmap( pathString + "1leftarrowB" ); 870 icon = loadPixmap( pathString + "1leftarrowB" );
871 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); 871 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15);
872 if (p-> mShowIconBack) { 872 if (p-> mShowIconBack) {
873 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 873 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
874 connect( action, SIGNAL( activated() ), 874 connect( action, SIGNAL( activated() ),
875 mView, SLOT( goPrevious() ) ); 875 mView, SLOT( goPrevious() ) );
876 action->addTo( iconToolBar ); 876 action->addTo( iconToolBar );
877 } 877 }
878 if (p-> mShowIconToday) 878 if (p-> mShowIconToday)
879 today_action->addTo( iconToolBar ); 879 today_action->addTo( iconToolBar );
880 icon = loadPixmap( pathString + "1rightarrowB" ); 880 icon = loadPixmap( pathString + "1rightarrowB" );
881 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 881 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
882 if (p-> mShowIconForward) { 882 if (p-> mShowIconForward) {
883 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 883 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
884 connect( action, SIGNAL( activated() ), 884 connect( action, SIGNAL( activated() ),
885 mView, SLOT( goNext() ) ); 885 mView, SLOT( goNext() ) );
886 action->addTo( iconToolBar ); 886 action->addTo( iconToolBar );
887 } 887 }
888 icon = loadPixmap( pathString + "2rightarrowB" ); 888 icon = loadPixmap( pathString + "2rightarrowB" );
889 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 889 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
890 if (p-> mShowIconForwardFast) { 890 if (p-> mShowIconForwardFast) {
891 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 891 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
892 connect( action, SIGNAL( activated() ), 892 connect( action, SIGNAL( activated() ),
893 mView, SLOT( goNextMonth() ) ); 893 mView, SLOT( goNextMonth() ) );
894 action->addTo( iconToolBar ); 894 action->addTo( iconToolBar );
895 } 895 }
896 896
897 897
898 configureToolBarMenu->insertItem(i18n("What's This?"), 300); 898 configureToolBarMenu->insertItem(i18n("What's This?"), 300);
899 899
900 if (p-> mShowIconNewEvent) 900 if (p-> mShowIconNewEvent)
901 configureToolBarMenu->setItemChecked( 10, true ); 901 configureToolBarMenu->setItemChecked( 10, true );
902 if (p->mShowIconNewTodo ) 902 if (p->mShowIconNewTodo )
903 configureToolBarMenu->setItemChecked( 20, true ); 903 configureToolBarMenu->setItemChecked( 20, true );
904 if (p-> mShowIconSearch) 904 if (p-> mShowIconSearch)
905 configureToolBarMenu->setItemChecked( 120, true ); 905 configureToolBarMenu->setItemChecked( 120, true );
906 if (p-> mShowIconList) 906 if (p-> mShowIconList)
907 configureToolBarMenu->setItemChecked( 30, true ); 907 configureToolBarMenu->setItemChecked( 30, true );
908 if (p-> mShowIconDay1) 908 if (p-> mShowIconDay1)
909 configureToolBarMenu->setItemChecked( 40, true ); 909 configureToolBarMenu->setItemChecked( 40, true );
910 if (p-> mShowIconDay5) 910 if (p-> mShowIconDay5)
911 configureToolBarMenu->setItemChecked( 50, true ); 911 configureToolBarMenu->setItemChecked( 50, true );
912 if (p-> mShowIconDay7) 912 if (p-> mShowIconDay7)
913 configureToolBarMenu->setItemChecked( 60, true ); 913 configureToolBarMenu->setItemChecked( 60, true );
914 if (p-> mShowIconMonth) 914 if (p-> mShowIconMonth)
915 configureToolBarMenu->setItemChecked( 70, true ); 915 configureToolBarMenu->setItemChecked( 70, true );
916 if (p-> mShowIconTodoview) 916 if (p-> mShowIconTodoview)
917 configureToolBarMenu->setItemChecked( 80, true ); 917 configureToolBarMenu->setItemChecked( 80, true );
918 if (p-> mShowIconBackFast) 918 if (p-> mShowIconBackFast)
919 configureToolBarMenu->setItemChecked( 200, true ); 919 configureToolBarMenu->setItemChecked( 200, true );
920 if (p-> mShowIconBack) 920 if (p-> mShowIconBack)
921 configureToolBarMenu->setItemChecked( 210, true ); 921 configureToolBarMenu->setItemChecked( 210, true );
922 if (p-> mShowIconToday) 922 if (p-> mShowIconToday)
923 configureToolBarMenu->setItemChecked( 130, true ); 923 configureToolBarMenu->setItemChecked( 130, true );
924 if (p-> mShowIconForward) 924 if (p-> mShowIconForward)
925 configureToolBarMenu->setItemChecked( 220, true ); 925 configureToolBarMenu->setItemChecked( 220, true );
926 if (p-> mShowIconForwardFast) 926 if (p-> mShowIconForwardFast)
927 configureToolBarMenu->setItemChecked( 230, true ); 927 configureToolBarMenu->setItemChecked( 230, true );
928 if (p-> mShowIconNextDays) 928 if (p-> mShowIconNextDays)
929 configureToolBarMenu->setItemChecked( 100, true ); 929 configureToolBarMenu->setItemChecked( 100, true );
930 if (p-> mShowIconNext) 930 if (p-> mShowIconNext)
931 configureToolBarMenu->setItemChecked( 110, true ); 931 configureToolBarMenu->setItemChecked( 110, true );
932 if (p-> mShowIconJournal) 932 if (p-> mShowIconJournal)
933 configureToolBarMenu->setItemChecked( 90, true ); 933 configureToolBarMenu->setItemChecked( 90, true );
934 if (p-> mShowIconWhatsThis) 934 if (p-> mShowIconWhatsThis)
935 configureToolBarMenu->setItemChecked( 300, true ); 935 configureToolBarMenu->setItemChecked( 300, true );
936 936
937 QLabel* dummy = new QLabel( iconToolBar ); 937 QLabel* dummy = new QLabel( iconToolBar );
938 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 938 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
939 if (!p-> mShowIconStretch) 939 if (!p-> mShowIconStretch)
940 iconToolBar->setStretchableWidget ( dummy ) ; 940 iconToolBar->setStretchableWidget ( dummy ) ;
941 else 941 else
942 configureToolBarMenu->setItemChecked( 5, true ); 942 configureToolBarMenu->setItemChecked( 5, true );
943 if (p-> mShowIconWhatsThis) 943 if (p-> mShowIconWhatsThis)
944 QWhatsThis::whatsThisButton ( iconToolBar ); 944 QWhatsThis::whatsThisButton ( iconToolBar );
945 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 945 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
946 configureAgenda( p->mHourSize ); 946 configureAgenda( p->mHourSize );
947 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 947 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
948} 948}
949 949
950void MainWindow::exportToPhone( int mode ) 950void MainWindow::exportToPhone( int mode )
951{ 951{
952 952
953 //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 953 //ex2phone->insertItem(i18n("Complete calendar..."), 1 );
954 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 954 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
955 KOex2phonePrefs ex2phone; 955 KOex2phonePrefs ex2phone;
956 956
957 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection ); 957 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
958 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice ); 958 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
959 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel ); 959 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
960 if ( mode == 1 ) 960 if ( mode == 1 )
961 ex2phone.setCaption(i18n("Export complete calendar")); 961 ex2phone.setCaption(i18n("Export complete calendar"));
962 if ( mode == 2 ) 962 if ( mode == 2 )
963 ex2phone.setCaption(i18n("Export filtered calendar")); 963 ex2phone.setCaption(i18n("Export filtered calendar"));
964 964
965 if ( !ex2phone.exec() ) { 965 if ( !ex2phone.exec() ) {
966 return; 966 return;
967 } 967 }
968 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 968 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
969 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 969 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
970 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 970 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
971 971
972 int inFuture = 0; 972 int inFuture = 0;
973 if ( ex2phone.mWriteBackFuture->isChecked() ) 973 if ( ex2phone.mWriteBackFuture->isChecked() )
974 inFuture = ex2phone.mWriteBackFutureWeeks->value(); 974 inFuture = ex2phone.mWriteBackFutureWeeks->value();
975 QPtrList<Incidence> delSel; 975 QPtrList<Incidence> delSel;
976 if ( mode == 1 ) 976 if ( mode == 1 )
977 delSel = mCalendar->rawIncidences(); 977 delSel = mCalendar->rawIncidences();
978 if ( mode == 2 ) 978 if ( mode == 2 )
979 delSel = mCalendar->incidences(); 979 delSel = mCalendar->incidences();
980 CalendarLocal* cal = new CalendarLocal(); 980 CalendarLocal* cal = new CalendarLocal();
981 cal->setLocalTime(); 981 cal->setLocalTime();
982 Incidence *incidence = delSel.first(); 982 Incidence *incidence = delSel.first();
983 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 983 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
984 QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); 984 QDateTime end = cur.addDays( ( inFuture +1 ) *7 );
985 while ( incidence ) { 985 while ( incidence ) {
986 if ( incidence->type() != "Journal" ) { 986 if ( incidence->type() != "Journal" ) {
987 bool add = true; 987 bool add = true;
988 if ( inFuture ) { 988 if ( inFuture ) {
989 QDateTime dt; 989 QDateTime dt;
990 if ( incidence->type() == "Todo" ) { 990 if ( incidence->type() == "Todo" ) {
991 Todo * t = (Todo*)incidence; 991 Todo * t = (Todo*)incidence;
992 if ( t->hasDueDate() ) 992 if ( t->hasDueDate() )
993 dt = t->dtDue(); 993 dt = t->dtDue();
994 else 994 else
995 dt = cur.addSecs( 62 ); 995 dt = cur.addSecs( 62 );
996 } 996 }
997 else { 997 else {
998 bool ok; 998 bool ok;
999 dt = incidence->getNextOccurence( cur, &ok ); 999 dt = incidence->getNextOccurence( cur, &ok );
1000 if ( !ok ) 1000 if ( !ok )
1001 dt = cur.addSecs( -62 ); 1001 dt = cur.addSecs( -62 );
1002 } 1002 }
1003 if ( dt < cur || dt > end ) { 1003 if ( dt < cur || dt > end ) {
1004 add = false; 1004 add = false;
1005 } 1005 }
1006 } 1006 }
1007 if ( add ) { 1007 if ( add ) {
1008 Incidence *in = incidence->clone(); 1008 Incidence *in = incidence->clone();
1009 cal->addIncidence( in ); 1009 cal->addIncidence( in );
1010 } 1010 }
1011 } 1011 }
1012 incidence = delSel.next(); 1012 incidence = delSel.next();
1013 } 1013 }
1014 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice, 1014 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
1015 KPimGlobalPrefs::instance()->mEx2PhoneConnection, 1015 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
1016 KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1016 KPimGlobalPrefs::instance()->mEx2PhoneModel );
1017 1017
1018 setCaption( i18n("Writing to phone...")); 1018 setCaption( i18n("Writing to phone..."));
1019 if ( PhoneFormat::writeToPhone( cal ) ) 1019 if ( PhoneFormat::writeToPhone( cal ) )
1020 setCaption( i18n("Export to phone successful!")); 1020 setCaption( i18n("Export to phone successful!"));
1021 else 1021 else
1022 setCaption( i18n("Error exporting to phone!")); 1022 setCaption( i18n("Error exporting to phone!"));
1023 delete cal; 1023 delete cal;
1024} 1024}
1025 1025
1026 1026
1027void MainWindow::setDefaultPreferences() 1027void MainWindow::setDefaultPreferences()
1028{ 1028{
1029 KOPrefs *p = KOPrefs::instance(); 1029 KOPrefs *p = KOPrefs::instance();
1030 1030
1031 p->mCompactDialogs = true; 1031 p->mCompactDialogs = true;
1032 p->mConfirm = true; 1032 p->mConfirm = true;
1033 // p->mEnableQuickTodo = false; 1033 // p->mEnableQuickTodo = false;
1034 1034
1035} 1035}
1036 1036
1037QString MainWindow::resourcePath() 1037QString MainWindow::resourcePath()
1038{ 1038{
1039 return KGlobal::iconLoader()->iconPath(); 1039 return KGlobal::iconLoader()->iconPath();
1040} 1040}
1041 1041
1042void MainWindow::displayText( QString text ,QString cap ) 1042void MainWindow::displayText( QString text ,QString cap )
1043{ 1043{
1044 QDialog dia( this, "name", true ); ; 1044 QDialog dia( this, "name", true ); ;
1045 dia.setCaption( cap ); 1045 dia.setCaption( cap );
1046 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1046 QVBoxLayout* lay = new QVBoxLayout( &dia );
1047 lay->setSpacing( 3 ); 1047 lay->setSpacing( 3 );
1048 lay->setMargin( 3 ); 1048 lay->setMargin( 3 );
1049 QTextBrowser tb ( &dia ); 1049 QTextBrowser tb ( &dia );
1050 lay->addWidget( &tb ); 1050 lay->addWidget( &tb );
1051 tb.setText( text ); 1051 tb.setText( text );
1052#ifdef DESKTOP_VERSION 1052#ifdef DESKTOP_VERSION
1053 dia.resize( 640, 480); 1053 dia.resize( 640, 480);
1054#else 1054#else
1055 dia.showMaximized(); 1055 dia.showMaximized();
1056#endif 1056#endif
1057 dia.exec(); 1057 dia.exec();
1058} 1058}
1059void MainWindow::displayFile( QString fn, QString cap ) 1059void MainWindow::displayFile( QString fn, QString cap )
1060{ 1060{
1061 QString fileName = resourcePath() + fn; 1061 QString fileName = resourcePath() + fn;
1062 QString text; 1062 QString text;
1063 QFile file( fileName ); 1063 QFile file( fileName );
1064 if (!file.open( IO_ReadOnly ) ) { 1064 if (!file.open( IO_ReadOnly ) ) {
1065 return ; 1065 return ;
1066 1066
1067 } 1067 }
1068 QTextStream ts( &file ); 1068 QTextStream ts( &file );
1069 text = ts.read(); 1069 text = ts.read();
1070 file.close(); 1070 file.close();
1071 displayText( text, cap); 1071 displayText( text, cap);
1072} 1072}
1073void MainWindow::features() 1073void MainWindow::features()
1074{ 1074{
1075 1075
1076 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); 1076 displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") );
1077} 1077}
1078 1078
1079void MainWindow::usertrans() 1079void MainWindow::usertrans()
1080{ 1080{
1081 1081
1082 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") ); 1082 displayFile( "usertranslationHOWTO.txt",i18n("KO/Pi User translation HowTo") );
1083} 1083}
1084 1084
1085void MainWindow::synchowto() 1085void MainWindow::synchowto()
1086{ 1086{
1087#if 0 1087
1088 QPtrList<Incidence> er = mCalendar->rawIncidences(); 1088 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
1089 Incidence* inR = er.first();
1090 VCalFormat vf;
1091 QString strout;
1092 while ( inR ) {
1093 if ( inR->type() == "Todo" )
1094 strout = vf.todoToString( (Todo *) inR );
1095 if ( inR->type() == "Event" )
1096 strout = vf.eventToString( (Event *) inR );
1097 qDebug("incidence: \n%s\n ente\n\n",strout.latin1() );
1098 inR = er.next();
1099 }
1100#endif
1101 displayFile( "howtoSYNC.txt",i18n("KO/Pi Synchronization HowTo") );
1102} 1089}
1103void MainWindow::faq() 1090void MainWindow::faq()
1104{ 1091{
1105 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") ); 1092 displayFile( "kopiFAQ.txt",i18n("KO/Pi FAQ") );
1106 1093
1107} 1094}
1108void MainWindow::whatsNew() 1095void MainWindow::whatsNew()
1109{ 1096{
1110 displayFile( "kopiWhatsNew.txt",i18n("KO/Pi Version Info") ); 1097 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
1111 1098
1112} 1099}
1113void MainWindow::licence() 1100void MainWindow::licence()
1114{ 1101{
1115 KApplication::showLicence(); 1102 KApplication::showLicence();
1116 1103
1117} 1104}
1118void MainWindow::about() 1105void MainWindow::about()
1119{ 1106{
1120 QString version; 1107 QString version;
1121#include <../version> 1108#include <../version>
1122 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1109 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1123 i18n("KOrganizer/Platform-independent\n") + 1110 i18n("KOrganizer/Platform-independent\n") +
1124 "(KO/Pi) " + version + " - " + 1111 "(KO/Pi) " + version + " - " +
1125 1112
1126#ifdef DESKTOP_VERSION 1113#ifdef DESKTOP_VERSION
1127 i18n("Desktop Edition\n") + 1114 i18n("Desktop Edition\n") +
1128#else 1115#else
1129 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + 1116 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") +
1130#endif 1117#endif
1131 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") ); 1118 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") );
1132} 1119}
1133void MainWindow::keyBindings() 1120void MainWindow::keyBindings()
1134{ 1121{
1135 QString cap = i18n("Key bindings KOrganizer/Pi"); 1122 QString cap = i18n("Key bindings KOrganizer/Pi");
1136 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1123 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1137 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1124 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1138 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1125 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1139 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1126 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1140 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1127 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1141 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1128 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1142 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1129 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1143 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1130 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+
1144 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1131 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1145 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1132 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1146 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1133 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1147 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1134 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1148 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1135 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1149 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1136 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+
1150 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1137 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1151 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1138 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1152 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1139 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1153 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1140 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1154 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1141 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1155 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1142 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1156 i18n("<p><h3>In agenda view:</h3></p>\n") + 1143 i18n("<p><h3>In agenda view:</h3></p>\n") +
1157 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1144 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1158 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1145 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1159 i18n("<p><h3>In todo view:</h3></p>\n") + 1146 i18n("<p><h3>In todo view:</h3></p>\n") +
1160 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1147 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1161 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1148 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1162 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1149 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1163 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1150 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1164 i18n("<p><h3>In list view:</h3></p>\n") + 1151 i18n("<p><h3>In list view:</h3></p>\n") +
1165 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1152 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1166 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1153 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1167 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1154 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1168 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1155 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1169 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1156 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1170 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1157 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1171 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1158 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1172 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1159 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1173 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1160 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1174 i18n("<p><b>E</b>: Edit item</p>\n") + 1161 i18n("<p><b>E</b>: Edit item</p>\n") +
1175 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1162 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1176 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1163 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1177 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1164 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1178 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1165 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1179 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1166 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1180 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1167 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1181 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1168 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1182 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1169 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1183 i18n("<p><b>White</b>: Item readonly</p>\n"); 1170 i18n("<p><b>White</b>: Item readonly</p>\n");
1184 displayText( text, cap); 1171 displayText( text, cap);
1185 1172
1186} 1173}
1187void MainWindow::aboutAutoSaving() 1174void MainWindow::aboutAutoSaving()
1188{ 1175{
1189 QMessageBox* msg; 1176 QMessageBox* msg;
1190 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"), 1177 msg = new QMessageBox( i18n("Auto Saving in KOrganizer/Pi"),
1191 i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon, 1178 i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"), QMessageBox::NoIcon,
1192 QMessageBox::Ok, 1179 QMessageBox::Ok,
1193 QMessageBox::NoButton, 1180 QMessageBox::NoButton,
1194 QMessageBox::NoButton); 1181 QMessageBox::NoButton);
1195 msg->exec(); 1182 msg->exec();
1196 delete msg; 1183 delete msg;
1197 1184
1198 1185
1199} 1186}
1200void MainWindow::aboutKnownBugs() 1187void MainWindow::aboutKnownBugs()
1201{ 1188{
1202 QMessageBox* msg; 1189 QMessageBox* msg;
1203 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1190 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1204 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ 1191 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+
1205 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1192 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1206 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + 1193 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") +
1207 i18n("\nor report them in the bugtracker on\n") + 1194 i18n("\nor report them in the bugtracker on\n") +
1208 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1195 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1209 QMessageBox::NoIcon, 1196 QMessageBox::NoIcon,
1210 QMessageBox::Ok, 1197 QMessageBox::Ok,
1211 QMessageBox::NoButton, 1198 QMessageBox::NoButton,
1212 QMessageBox::NoButton); 1199 QMessageBox::NoButton);
1213 msg->exec(); 1200 msg->exec();
1214 delete msg; 1201 delete msg;
1215 1202
1216} 1203}
1217 1204
1218QString MainWindow::defaultFileName() 1205QString MainWindow::defaultFileName()
1219{ 1206{
1220 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1207 return locateLocal( "data", "korganizer/mycalendar.ics" );
1221} 1208}
1222QString MainWindow::syncFileName() 1209QString MainWindow::syncFileName()
1223{ 1210{
1224#ifdef _WIN32_ 1211#ifdef _WIN32_
1225 return locateLocal( "tmp", "synccalendar.ics" ); 1212 return locateLocal( "tmp", "synccalendar.ics" );
1226#else 1213#else
1227 return QString( "/tmp/kopitempfile.ics" ); 1214 return QString( "/tmp/kopitempfile.ics" );
1228#endif 1215#endif
1229} 1216}
1230 1217
1231void MainWindow::processIncidenceSelection( Incidence *incidence ) 1218void MainWindow::processIncidenceSelection( Incidence *incidence )
1232{ 1219{
1233 if ( !incidence ) { 1220 if ( !incidence ) {
1234 enableIncidenceActions( false ); 1221 enableIncidenceActions( false );
1235 1222
1236 mNewSubTodoAction->setEnabled( false ); 1223 mNewSubTodoAction->setEnabled( false );
1237 setCaptionToDates(); 1224 setCaptionToDates();
1238 return; 1225 return;
1239 1226
1240 } 1227 }
1241 1228
1242 //KGlobal::locale()->formatDateTime(nextA, true); 1229 //KGlobal::locale()->formatDateTime(nextA, true);
1243 QString startString = ""; 1230 QString startString = "";
1244 if ( incidence->type() != "Todo" ) { 1231 if ( incidence->type() != "Todo" ) {
1245 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1232 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1246 if ( incidence->doesFloat() ) { 1233 if ( incidence->doesFloat() ) {
1247 startString += ": "+incidence->dtStartDateStr( true ); 1234 startString += ": "+incidence->dtStartDateStr( true );
1248 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1235 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1249 1236
1250 } else { 1237 } else {
1251 startString = ": "+incidence->dtStartStr(true); 1238 startString = ": "+incidence->dtStartStr(true);
1252 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1239 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1253 1240
1254 } 1241 }
1255 1242
1256 } else { 1243 } else {
1257 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1244 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1258 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1245 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1259 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1246 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1260 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1247 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1261 } 1248 }
1262 1249
1263 } 1250 }
1264 else 1251 else
1265 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1252 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1266 if ( !incidence->location().isEmpty() ) 1253 if ( !incidence->location().isEmpty() )
1267 startString += " (" +incidence->location()+")"; 1254 startString += " (" +incidence->location()+")";
1268 setCaption( incidence->summary()+startString); 1255 setCaption( incidence->summary()+startString);
1269 1256
1270 enableIncidenceActions( true ); 1257 enableIncidenceActions( true );
1271 1258
1272 if ( incidence->type() == "Event" ) { 1259 if ( incidence->type() == "Event" ) {
1273 mShowAction->setText( i18n("Show Event...") ); 1260 mShowAction->setText( i18n("Show Event...") );
1274 mEditAction->setText( i18n("Edit Event...") ); 1261 mEditAction->setText( i18n("Edit Event...") );
1275 mDeleteAction->setText( i18n("Delete Event...") ); 1262 mDeleteAction->setText( i18n("Delete Event...") );
1276 1263
1277 mNewSubTodoAction->setEnabled( false ); 1264 mNewSubTodoAction->setEnabled( false );
1278 } else if ( incidence->type() == "Todo" ) { 1265 } else if ( incidence->type() == "Todo" ) {
1279 mShowAction->setText( i18n("Show Todo...") ); 1266 mShowAction->setText( i18n("Show Todo...") );
1280 mEditAction->setText( i18n("Edit Todo...") ); 1267 mEditAction->setText( i18n("Edit Todo...") );
1281 mDeleteAction->setText( i18n("Delete Todo...") ); 1268 mDeleteAction->setText( i18n("Delete Todo...") );
1282 1269
1283 mNewSubTodoAction->setEnabled( true ); 1270 mNewSubTodoAction->setEnabled( true );
1284 } else { 1271 } else {
1285 mShowAction->setText( i18n("Show...") ); 1272 mShowAction->setText( i18n("Show...") );
1286 mShowAction->setText( i18n("Edit...") ); 1273 mShowAction->setText( i18n("Edit...") );
1287 mShowAction->setText( i18n("Delete...") ); 1274 mShowAction->setText( i18n("Delete...") );
1288 1275
1289 mNewSubTodoAction->setEnabled( false ); 1276 mNewSubTodoAction->setEnabled( false );
1290 } 1277 }
1291} 1278}
1292 1279
1293void MainWindow::enableIncidenceActions( bool enabled ) 1280void MainWindow::enableIncidenceActions( bool enabled )
1294{ 1281{
1295 mShowAction->setEnabled( enabled ); 1282 mShowAction->setEnabled( enabled );
1296 mEditAction->setEnabled( enabled ); 1283 mEditAction->setEnabled( enabled );
1297 mDeleteAction->setEnabled( enabled ); 1284 mDeleteAction->setEnabled( enabled );
1298 1285
1299 mCloneAction->setEnabled( enabled ); 1286 mCloneAction->setEnabled( enabled );
1300 mMoveAction->setEnabled( enabled ); 1287 mMoveAction->setEnabled( enabled );
1301 mBeamAction->setEnabled( enabled ); 1288 mBeamAction->setEnabled( enabled );
1302 mCancelAction->setEnabled( enabled ); 1289 mCancelAction->setEnabled( enabled );
1303} 1290}
1304 1291
1305void MainWindow::importOL() 1292void MainWindow::importOL()
1306{ 1293{
1307#ifdef _WIN32_ 1294#ifdef _WIN32_
1308 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1295 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1309 id->exec(); 1296 id->exec();
1310 delete id; 1297 delete id;
1311 mView->updateView(); 1298 mView->updateView();
1312#endif 1299#endif
1313} 1300}
1314void MainWindow::importBday() 1301void MainWindow::importBday()
1315{ 1302{
1316 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1303 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1317 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1304 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1318 i18n("Import!"), i18n("Cancel"), 0, 1305 i18n("Import!"), i18n("Cancel"), 0,
1319 0, 1 ); 1306 0, 1 );
1320 if ( result == 0 ) { 1307 if ( result == 0 ) {
1321 mView->importBday(); 1308 mView->importBday();
1322 1309
1323 } 1310 }
1324 1311
1325 1312
1326} 1313}
1327void MainWindow::importQtopia() 1314void MainWindow::importQtopia()
1328{ 1315{
1329#ifndef DESKTOP_VERSION 1316#ifndef DESKTOP_VERSION
1330 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1317 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1331 i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"), 1318 i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"),
1332 i18n("Import!"), i18n("Cancel"), 0, 1319 i18n("Import!"), i18n("Cancel"), 0,
1333 0, 1 ); 1320 0, 1 );
1334 if ( result == 0 ) { 1321 if ( result == 0 ) {
1335 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1322 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1336 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1323 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1337 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1324 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1338 mView->importQtopia( categories, datebook, todolist ); 1325 mView->importQtopia( categories, datebook, todolist );
1339 } 1326 }
1340#else 1327#else
1341 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1328 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1342 i18n("Not supported \non desktop!\n"), 1329 i18n("Not supported \non desktop!\n"),
1343 i18n("Ok"), i18n("Cancel"), 0, 1330 i18n("Ok"), i18n("Cancel"), 0,
1344 0, 1 ); 1331 0, 1 );
1345 1332
1346#endif 1333#endif
1347} 1334}
1348 1335
1349void MainWindow::saveOnClose() 1336void MainWindow::saveOnClose()
1350{ 1337{
1351 KOPrefs *p = KOPrefs::instance(); 1338 KOPrefs *p = KOPrefs::instance();
1352 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1339 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1353 p->mToolBarUp = iconToolBar->x() > width()/2 || 1340 p->mToolBarUp = iconToolBar->x() > width()/2 ||
1354 iconToolBar->y() > height()/2; 1341 iconToolBar->y() > height()/2;
1355 mView->writeSettings(); 1342 mView->writeSettings();
1356 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) 1343 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
1357 save(); 1344 save();
1358} 1345}
1359void MainWindow::slotModifiedChanged( bool changed ) 1346void MainWindow::slotModifiedChanged( bool changed )
1360{ 1347{
1361 if ( mBlockAtStartup ) 1348 if ( mBlockAtStartup )
1362 return; 1349 return;
1363 int msec; 1350 int msec;
1364 // we store the changes after 1 minute, 1351 // we store the changes after 1 minute,
1365 // and for safety reasons after 10 minutes again 1352 // and for safety reasons after 10 minutes again
1366 if ( !mSyncManager->blockSave() ) 1353 if ( !mSyncManager->blockSave() )