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,360 +1,362 @@
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
284in the month view as well. 286in the month view as well.
285(See VERSION 1.7.8 Topic 1) ). 287(See VERSION 1.7.8 Topic 1) ).
2863) 2883)
287You can import birtsdays/anniversaries 289You can import birtsdays/anniversaries
288from KA/Pi into KO/Pi. 290from KA/Pi into KO/Pi.
289Choose menu File-Import birthdays. 291Choose menu File-Import birthdays.
290If you import twice, already imported items 292If you import twice, already imported items
291will not be imported again, if they 293will not be imported again, if they
292have not been changed in KO/Pi. 294have not been changed in KO/Pi.
2934) 2954)
294When syncing with sharp DTM, now a progress 296When syncing with sharp DTM, now a progress
295is shown, when the data is written back. 297is shown, when the data is written back.
296If there is much data in KO/Pi and no data 298If there is much data in KO/Pi and no data
297in DTM, that can take a long time. 299in DTM, that can take a long time.
298(But only for the first time ). 300(But only for the first time ).
2995) 3015)
300In the search dialog, you can search 302In the search dialog, you can search
301now for the name/email of an attendee 303now for the name/email of an attendee
302of an event/todo. 304of an event/todo.
303To get more space for displaying 305To get more space for displaying
304search results, the buttons 306search results, the buttons
305for "search" and "close" on the 307for "search" and "close" on the
306bottom are removed in the PDA version. 308bottom are removed in the PDA version.
307You have to click OK in the top right 309You have to click OK in the top right
308corner to do a search. 310corner to do a search.
3096) 3116)
310Now it is possible to disable the displaying 312Now it is possible to disable the displaying
311of todo items in the Allday part of the Agenda. 313of todo items in the Allday part of the Agenda.
312Choose Menu Action-Configure, 314Choose Menu Action-Configure,
313TAB Todo View, checkbox 315TAB Todo View, checkbox
314"Allday Agenda view shows todos" 316"Allday Agenda view shows todos"
3157) 3177)
316If FastLoad is enabled, now the settings and the 318If FastLoad is enabled, now the settings and the
317calendar data are saved, when KO/Pi is closed. 319calendar data are saved, when KO/Pi is closed.
318(If no Fastload is enabled, KO/Pi saves 320(If no Fastload is enabled, KO/Pi saves
319the data as well, of course) 321the data as well, of course)
3208) 3228)
321The Agenda View has a minimize-splitter now, 323The Agenda View has a minimize-splitter now,
322such that the height of the allday part can be 324such that the height of the allday part can be
323changed quickly. 325changed quickly.
324 326
325********** VERSION 1.9.0 ************ 327********** VERSION 1.9.0 ************
3261) 3281)
327KO/Pi is now merged with the new microKDE from KA/Pi. 329KO/Pi is now merged with the new microKDE from KA/Pi.
328KO/Pi accesses now KA/Pi as the addressbook. 330KO/Pi accesses now KA/Pi as the addressbook.
329The other ddressbook-plugins are not working any longer. 331The other ddressbook-plugins are not working any longer.
330(It is planned, that later KA/Pi itself uses these plugins) 332(It is planned, that later KA/Pi itself uses these plugins)
331New versions of KO/Pi are only available 333New versions of KO/Pi are only available
332together with KA/Pi as the KDE-Pim/Pi package. 334together with KA/Pi as the KDE-Pim/Pi package.
3332) 3352)
334If you click on an attendee of a meeting in the 336If you click on an attendee of a meeting in the
335event viewer, a detailed summary of the 337event viewer, a detailed summary of the
336attendee is shown. 338attendee is shown.
3373) 3393)
338The place of the configuration file has changed. 340The place of the configuration file has changed.
339If you want to use your old KO/Pi config, copy 341If you want to use your old KO/Pi config, copy
340Applications/korganizer/config_korganizerrc 342Applications/korganizer/config_korganizerrc
341to 343to
342Applications/korganizer/config/korganizerrc 344Applications/korganizer/config/korganizerrc
343 345
344********** VERSION 1.7.8 ************ 346********** VERSION 1.7.8 ************
3451) 3471)
346Now the QWhat'sThis ist working. 348Now the QWhat'sThis ist working.
347Enable the QWhat'sThis icon in the toolbar. 349Enable the QWhat'sThis icon in the toolbar.
348(You have to restart to reload the changed toolbar config). 350(You have to restart to reload the changed toolbar config).
349Now click on the QWhat'sThis Icon 351Now click on the QWhat'sThis Icon
350in the top right corner of KO/Pi. 352in the top right corner of KO/Pi.
351Then click on an item in the Agenda View: 353Then click on an item in the Agenda View:
352You will get a detailed display of the items content. 354You will get a detailed display of the items content.
3532) 3552)
354Some other very minor changes. 356Some other very minor changes.
355But I have forgotten the details ... 357But I have forgotten the details ...
356For that reason I start this log here: 358For that reason I start this log here:
357To document my changes, when I am doing it. 359To document my changes, when I am doing it.
358 360
359********** VERSION 1.7.7 ************ 361********** VERSION 1.7.7 ************
360Stable Version of KO/Pi \ No newline at end of file 362Stable Version of KO/Pi \ No newline at end of file
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index a69a0bd..58d8d34 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -575,1048 +575,1035 @@ void MainWindow::initActions()
575 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); 575 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 );
576 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); 576 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this );
577 day7_action->addTo( viewMenu ); 577 day7_action->addTo( viewMenu );
578 connect( day7_action, SIGNAL( activated() ), 578 connect( day7_action, SIGNAL( activated() ),
579 mView->viewManager(), SLOT( showWeekView() ) ); 579 mView->viewManager(), SLOT( showWeekView() ) );
580 580
581 icon = loadPixmap( pathString + "month" ); 581 icon = loadPixmap( pathString + "month" );
582 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); 582 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 );
583 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); 583 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this );
584 month_action->addTo( viewMenu ); 584 month_action->addTo( viewMenu );
585 connect( month_action, SIGNAL( activated() ), 585 connect( month_action, SIGNAL( activated() ),
586 mView->viewManager(), SLOT( showMonthView() ) ); 586 mView->viewManager(), SLOT( showMonthView() ) );
587 587
588 icon = loadPixmap( pathString + "todo" ); 588 icon = loadPixmap( pathString + "todo" );
589 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); 589 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 );
590 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); 590 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this );
591 todoview_action->addTo( viewMenu ); 591 todoview_action->addTo( viewMenu );
592 connect( todoview_action, SIGNAL( activated() ), 592 connect( todoview_action, SIGNAL( activated() ),
593 mView->viewManager(), SLOT( showTodoView() ) ); 593 mView->viewManager(), SLOT( showTodoView() ) );
594 594
595 icon = loadPixmap( pathString + "journal" ); 595 icon = loadPixmap( pathString + "journal" );
596 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 596 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
597 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 597 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
598 viewjournal_action->addTo( viewMenu ); 598 viewjournal_action->addTo( viewMenu );
599 connect( viewjournal_action, SIGNAL( activated() ), 599 connect( viewjournal_action, SIGNAL( activated() ),
600 mView->viewManager(), SLOT( showJournalView() ) ); 600 mView->viewManager(), SLOT( showJournalView() ) );
601 601
602 icon = loadPixmap( pathString + "xdays" ); 602 icon = loadPixmap( pathString + "xdays" );
603 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); 603 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 );
604 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 604 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
605 xdays_action->addTo( viewMenu ); 605 xdays_action->addTo( viewMenu );
606 connect( xdays_action, SIGNAL( activated() ), 606 connect( xdays_action, SIGNAL( activated() ),
607 mView->viewManager(), SLOT( showNextXView() ) ); 607 mView->viewManager(), SLOT( showNextXView() ) );
608 608
609 icon = loadPixmap( pathString + "whatsnext" ); 609 icon = loadPixmap( pathString + "whatsnext" );
610 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); 610 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 );
611 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 611 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
612 whatsnext_action->addTo( viewMenu ); 612 whatsnext_action->addTo( viewMenu );
613 connect( whatsnext_action, SIGNAL( activated() ), 613 connect( whatsnext_action, SIGNAL( activated() ),
614 mView->viewManager(), SLOT( showWhatsNextView() ) ); 614 mView->viewManager(), SLOT( showWhatsNextView() ) );
615 615
616#if 0 616#if 0
617 action = new QAction( "view_timespan", "Time Span", 0, this ); 617 action = new QAction( "view_timespan", "Time Span", 0, this );
618 action->addTo( viewMenu ); 618 action->addTo( viewMenu );
619 connect( action, SIGNAL( activated() ), 619 connect( action, SIGNAL( activated() ),
620 mView->viewManager(), SLOT( showTimeSpanView() ) ); 620 mView->viewManager(), SLOT( showTimeSpanView() ) );
621#endif 621#endif
622 622
623 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, 623 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0,
624 this ); 624 this );
625 mNewSubTodoAction->addTo( actionMenu ); 625 mNewSubTodoAction->addTo( actionMenu );
626 connect( mNewSubTodoAction, SIGNAL( activated() ), 626 connect( mNewSubTodoAction, SIGNAL( activated() ),
627 mView, SLOT( newSubTodo() ) ); 627 mView, SLOT( newSubTodo() ) );
628 628
629 actionMenu->insertSeparator(); 629 actionMenu->insertSeparator();
630 630
631 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); 631 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
632 mShowAction->addTo( actionMenu ); 632 mShowAction->addTo( actionMenu );
633 connect( mShowAction, SIGNAL( activated() ), 633 connect( mShowAction, SIGNAL( activated() ),
634 mView, SLOT( showIncidence() ) ); 634 mView, SLOT( showIncidence() ) );
635 635
636 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 636 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
637 mEditAction->addTo( actionMenu ); 637 mEditAction->addTo( actionMenu );
638 connect( mEditAction, SIGNAL( activated() ), 638 connect( mEditAction, SIGNAL( activated() ),
639 mView, SLOT( editIncidence() ) ); 639 mView, SLOT( editIncidence() ) );
640 640
641 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 641 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
642 mDeleteAction->addTo( actionMenu ); 642 mDeleteAction->addTo( actionMenu );
643 connect( mDeleteAction, SIGNAL( activated() ), 643 connect( mDeleteAction, SIGNAL( activated() ),
644 mView, SLOT( deleteIncidence() ) ); 644 mView, SLOT( deleteIncidence() ) );
645 645
646 646
647 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this ); 647 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
648 mCloneAction->addTo( actionMenu ); 648 mCloneAction->addTo( actionMenu );
649 connect( mCloneAction, SIGNAL( activated() ), 649 connect( mCloneAction, SIGNAL( activated() ),
650 mView, SLOT( cloneIncidence() ) ); 650 mView, SLOT( cloneIncidence() ) );
651 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this ); 651 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
652 mMoveAction->addTo( actionMenu ); 652 mMoveAction->addTo( actionMenu );
653 connect( mMoveAction, SIGNAL( activated() ), 653 connect( mMoveAction, SIGNAL( activated() ),
654 mView, SLOT( moveIncidence() ) ); 654 mView, SLOT( moveIncidence() ) );
655 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this ); 655 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
656 mBeamAction->addTo( actionMenu ); 656 mBeamAction->addTo( actionMenu );
657 connect( mBeamAction, SIGNAL( activated() ), 657 connect( mBeamAction, SIGNAL( activated() ),
658 mView, SLOT( beamIncidence() ) ); 658 mView, SLOT( beamIncidence() ) );
659 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this ); 659 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
660 mCancelAction->addTo( actionMenu ); 660 mCancelAction->addTo( actionMenu );
661 connect( mCancelAction, SIGNAL( activated() ), 661 connect( mCancelAction, SIGNAL( activated() ),
662 mView, SLOT( toggleCancelIncidence() ) ); 662 mView, SLOT( toggleCancelIncidence() ) );
663 663
664 actionMenu->insertSeparator(); 664 actionMenu->insertSeparator();
665 665
666 action = new QAction( "purge_completed", i18n("Purge Completed"), 0, 666 action = new QAction( "purge_completed", i18n("Purge Completed"), 0,
667 this ); 667 this );
668 action->addTo( actionMenu ); 668 action->addTo( actionMenu );
669 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); 669 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
670 670
671 icon = loadPixmap( pathString + "search" ); 671 icon = loadPixmap( pathString + "search" );
672 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 672 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
673 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); 673 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4);
674 search_action->addTo( actionMenu ); 674 search_action->addTo( actionMenu );
675 connect( search_action, SIGNAL( activated() ), 675 connect( search_action, SIGNAL( activated() ),
676 mView->dialogManager(), SLOT( showSearchDialog() ) ); 676 mView->dialogManager(), SLOT( showSearchDialog() ) );
677 677
678 icon = loadPixmap( pathString + "today" ); 678 icon = loadPixmap( pathString + "today" );
679 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); 679 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130);
680 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 680 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
681 today_action->addTo( actionMenu ); 681 today_action->addTo( actionMenu );
682 connect( today_action, SIGNAL( activated() ), 682 connect( today_action, SIGNAL( activated() ),
683 mView, SLOT( goToday() ) ); 683 mView, SLOT( goToday() ) );
684 684
685 if ( KOPrefs::instance()->mShowFullMenu ) { 685 if ( KOPrefs::instance()->mShowFullMenu ) {
686 actionMenu->insertSeparator(); 686 actionMenu->insertSeparator();
687 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); 687 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
688 688
689 } 689 }
690 // actionMenu->insertSeparator(); 690 // actionMenu->insertSeparator();
691 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, 691 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0,
692 this ); 692 this );
693 action->addTo( importMenu ); 693 action->addTo( importMenu );
694 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); 694 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) );
695 action = new QAction( "import_quick", i18n("Import last file"), 0, 695 action = new QAction( "import_quick", i18n("Import last file"), 0,
696 this ); 696 this );
697 action->addTo( importMenu ); 697 action->addTo( importMenu );
698 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); 698 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) );
699 importMenu->insertSeparator(); 699 importMenu->insertSeparator();
700 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, 700 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0,
701 this ); 701 this );
702 action->addTo( importMenu ); 702 action->addTo( importMenu );
703 connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); 703 connect( action, SIGNAL( activated() ), SLOT( importBday() ) );
704#ifndef DESKTOP_VERSION 704#ifndef DESKTOP_VERSION
705 importMenu->insertSeparator(); 705 importMenu->insertSeparator();
706 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, 706 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0,
707 this ); 707 this );
708 action->addTo( importMenu ); 708 action->addTo( importMenu );
709 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); 709 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) );
710#else 710#else
711#ifdef _WIN32_ 711#ifdef _WIN32_
712 importMenu->insertSeparator(); 712 importMenu->insertSeparator();
713 action = new QAction( "import_ol", i18n("Import from OL"), 0, 713 action = new QAction( "import_ol", i18n("Import from OL"), 0,
714 this ); 714 this );
715 action->addTo( importMenu ); 715 action->addTo( importMenu );
716 connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); 716 connect( action, SIGNAL( activated() ), SLOT( importOL() ) );
717#endif 717#endif
718#endif 718#endif
719 719
720 importMenu->insertSeparator(); 720 importMenu->insertSeparator();
721 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, 721 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0,
722 this ); 722 this );
723 action->addTo( importMenu ); 723 action->addTo( importMenu );
724 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); 724 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) );
725 725
726 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, 726 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0,
727 this ); 727 this );
728 action->addTo( importMenu ); 728 action->addTo( importMenu );
729 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); 729 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) );
730 730
731 importMenu->insertSeparator(); 731 importMenu->insertSeparator();
732 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, 732 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0,
733 this ); 733 this );
734 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); 734 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) );
735 735
736 736
737 //LR 737 //LR
738 QPopupMenu *ex2phone = new QPopupMenu( this ); 738 QPopupMenu *ex2phone = new QPopupMenu( this );
739 ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 739 ex2phone->insertItem(i18n("Complete calendar..."), 1 );
740 ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 740 ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
741 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); 741 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) );
742 importMenu->insertItem( i18n("Export to phone"), ex2phone ); 742 importMenu->insertItem( i18n("Export to phone"), ex2phone );
743 743
744 importMenu->insertSeparator(); 744 importMenu->insertSeparator();
745 action = new QAction( "manage cat", i18n("Manage new categories..."), 0, 745 action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
746 this ); 746 this );
747 action->addTo( importMenu ); 747 action->addTo( importMenu );
748 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); 748 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
749#ifndef DESKTOP_VERSION 749#ifndef DESKTOP_VERSION
750 importMenu->insertSeparator(); 750 importMenu->insertSeparator();
751 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, 751 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0,
752 this ); 752 this );
753 action->addTo( importMenu ); 753 action->addTo( importMenu );
754 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); 754 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) );
755 755
756 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, 756 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0,
757 this ); 757 this );
758 action->addTo( importMenu ); 758 action->addTo( importMenu );
759 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); 759 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) );
760#else 760#else
761 importMenu->insertSeparator(); 761 importMenu->insertSeparator();
762 icon = loadPixmap( pathString + "print" ); 762 icon = loadPixmap( pathString + "print" );
763 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); 763 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this );
764 action->addTo( importMenu ); 764 action->addTo( importMenu );
765 connect( action, SIGNAL( activated() ), 765 connect( action, SIGNAL( activated() ),
766 this, SLOT( printCal() ) ); 766 this, SLOT( printCal() ) );
767 767
768 icon = loadPixmap( pathString + "print" ); 768 icon = loadPixmap( pathString + "print" );
769 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); 769 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this );
770 action->addTo( importMenu ); 770 action->addTo( importMenu );
771 connect( action, SIGNAL( activated() ), 771 connect( action, SIGNAL( activated() ),
772 this, SLOT( printSel() ) ); 772 this, SLOT( printSel() ) );
773#endif 773#endif
774 importMenu->insertSeparator(); 774 importMenu->insertSeparator();
775 action = new QAction( "beam all", i18n("Save"), 0, 775 action = new QAction( "beam all", i18n("Save"), 0,
776 this ); 776 this );
777 action->addTo( importMenu ); 777 action->addTo( importMenu );
778 connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); 778 connect( action, SIGNAL( activated() ), this, SLOT( save() ) );
779 action = new QAction( "beam all", i18n("Exit (+save)"), 0, 779 action = new QAction( "beam all", i18n("Exit (+save)"), 0,
780 this ); 780 this );
781 action->addTo( importMenu ); 781 action->addTo( importMenu );
782 connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); 782 connect( action, SIGNAL( activated() ), this, SLOT( close() ) );
783 783
784 //menuBar->insertItem( "Configure",configureMenu ); 784 //menuBar->insertItem( "Configure",configureMenu );
785 //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); 785 //configureMenu->insertItem( "Toolbar",configureToolBarMenu );
786 icon = loadPixmap( "korganizer/korganizer" ); 786 icon = loadPixmap( "korganizer/korganizer" );
787 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); 787 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this );
788 action->addTo( helpMenu ); 788 action->addTo( helpMenu );
789 connect( action, SIGNAL( activated() ), 789 connect( action, SIGNAL( activated() ),
790 SLOT( keyBindings() ) ); 790 SLOT( keyBindings() ) );
791 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); 791 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this );
792 action->addTo( helpMenu ); 792 action->addTo( helpMenu );
793 connect( action, SIGNAL( activated() ), 793 connect( action, SIGNAL( activated() ),
794 SLOT( features() ) ); 794 SLOT( features() ) );
795 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); 795 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this );
796 action->addTo( helpMenu ); 796 action->addTo( helpMenu );
797 connect( action, SIGNAL( activated() ), 797 connect( action, SIGNAL( activated() ),
798 SLOT( aboutAutoSaving() ) ); 798 SLOT( aboutAutoSaving() ) );
799 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); 799 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this );
800 action->addTo( helpMenu ); 800 action->addTo( helpMenu );
801 connect( action, SIGNAL( activated() ), 801 connect( action, SIGNAL( activated() ),
802 SLOT( aboutKnownBugs() ) ); 802 SLOT( aboutKnownBugs() ) );
803 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); 803 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this );
804 action->addTo( helpMenu ); 804 action->addTo( helpMenu );
805 connect( action, SIGNAL( activated() ), 805 connect( action, SIGNAL( activated() ),
806 SLOT( usertrans() ) ); 806 SLOT( usertrans() ) );
807 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); 807 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this );
808 action->addTo( helpMenu ); 808 action->addTo( helpMenu );
809 connect( action, SIGNAL( activated() ), 809 connect( action, SIGNAL( activated() ),
810 SLOT( synchowto() ) ); 810 SLOT( synchowto() ) );
811 action = new QAction( "Whats New", i18n("What's new?"), 0,this ); 811 action = new QAction( "Whats New", i18n("What's new?"), 0,this );
812 action->addTo( helpMenu ); 812 action->addTo( helpMenu );
813 connect( action, SIGNAL( activated() ), 813 connect( action, SIGNAL( activated() ),
814 SLOT( whatsNew() ) ); 814 SLOT( whatsNew() ) );
815 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); 815 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this );
816 action->addTo( helpMenu ); 816 action->addTo( helpMenu );
817 connect( action, SIGNAL( activated() ), 817 connect( action, SIGNAL( activated() ),
818 SLOT( faq() ) ); 818 SLOT( faq() ) );
819 819
820 820
821 action = new QAction( "about", i18n("About..."), 0, this ); 821 action = new QAction( "about", i18n("About..."), 0, this );
822 action->addTo( helpMenu ); 822 action->addTo( helpMenu );
823 connect( action, SIGNAL( activated() ), 823 connect( action, SIGNAL( activated() ),
824 SLOT( about() ) ); 824 SLOT( about() ) );
825 action = new QAction( "licence", i18n("Licence..."), 0, this ); 825 action = new QAction( "licence", i18n("Licence..."), 0, this );
826 action->addTo( helpMenu ); 826 action->addTo( helpMenu );
827 connect( action, SIGNAL( activated() ), 827 connect( action, SIGNAL( activated() ),
828 SLOT( licence() ) ); 828 SLOT( licence() ) );
829 //menuBar->insertSeparator(); 829 //menuBar->insertSeparator();
830 830
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() )
1367 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1354 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1368 else 1355 else
1369 msec = 1000 * 600; 1356 msec = 1000 * 600;
1370 mSaveTimer.start( msec, true ); // 1 minute 1357 mSaveTimer.start( msec, true ); // 1 minute
1371 qDebug("KO: Saving File in %d secs!", msec/1000); 1358 qDebug("KO: Saving File in %d secs!", msec/1000);
1372 mCalendarModifiedFlag = true; 1359 mCalendarModifiedFlag = true;
1373} 1360}
1374void MainWindow::save() 1361void MainWindow::save()
1375{ 1362{
1376 if ( mSyncManager->blockSave() ) 1363 if ( mSyncManager->blockSave() )
1377 return; 1364 return;
1378 mSyncManager->setBlockSave(true); 1365 mSyncManager->setBlockSave(true);
1379 if ( mView->checkFileVersion( defaultFileName()) ) { 1366 if ( mView->checkFileVersion( defaultFileName()) ) {
1380 1367
1381 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1368 QTime neededSaveTime = QDateTime::currentDateTime().time();
1382 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1369 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1383 qDebug("KO: Start saving data to file!"); 1370 qDebug("KO: Start saving data to file!");
1384 mView->saveCalendar( defaultFileName() ); 1371 mView->saveCalendar( defaultFileName() );
1385 1372
1386 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1373 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1387 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1374 qDebug("KO: Needed %d ms for saving.",msNeeded );
1388 QString savemes; 1375 QString savemes;
1389 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1376 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1390 setCaption(savemes); 1377 setCaption(savemes);
1391 } else 1378 } else
1392 setCaption(i18n("Saving cancelled!")); 1379 setCaption(i18n("Saving cancelled!"));
1393 mCalendarModifiedFlag = false; 1380 mCalendarModifiedFlag = false;
1394 mSyncManager->setBlockSave( false ); 1381 mSyncManager->setBlockSave( false );
1395} 1382}
1396 1383
1397void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1384void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1398{ 1385{
1399 if ( !e->isAutoRepeat() ) { 1386 if ( !e->isAutoRepeat() ) {
1400 mFlagKeyPressed = false; 1387 mFlagKeyPressed = false;
1401 } 1388 }
1402} 1389}
1403void MainWindow::keyPressEvent ( QKeyEvent * e ) 1390void MainWindow::keyPressEvent ( QKeyEvent * e )
1404{ 1391{
1405 qApp->processEvents(); 1392 qApp->processEvents();
1406 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1393 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1407 e->ignore(); 1394 e->ignore();
1408 // qDebug(" ignore %d",e->isAutoRepeat() ); 1395 // qDebug(" ignore %d",e->isAutoRepeat() );
1409 return; 1396 return;
1410 } 1397 }
1411 if (! e->isAutoRepeat() ) 1398 if (! e->isAutoRepeat() )
1412 mFlagKeyPressed = true; 1399 mFlagKeyPressed = true;
1413 KOPrefs *p = KOPrefs::instance(); 1400 KOPrefs *p = KOPrefs::instance();
1414 bool showSelectedDates = false; 1401 bool showSelectedDates = false;
1415 int size; 1402 int size;
1416 int pro = 0; 1403 int pro = 0;
1417 //qDebug("MainWindow::keyPressEvent "); 1404 //qDebug("MainWindow::keyPressEvent ");
1418 switch ( e->key() ) { 1405 switch ( e->key() ) {
1419 case Qt::Key_Right: 1406 case Qt::Key_Right:
1420 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1407 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1421 mView->goNextMonth(); 1408 mView->goNextMonth();
1422 else 1409 else
1423 mView->goNext(); 1410 mView->goNext();
1424 showSelectedDates = true; 1411 showSelectedDates = true;
1425 break; 1412 break;
1426 case Qt::Key_Left: 1413 case Qt::Key_Left:
1427 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1414 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1428 mView->goPreviousMonth(); 1415 mView->goPreviousMonth();
1429 else 1416 else
1430 mView->goPrevious(); 1417 mView->goPrevious();
1431 showSelectedDates = true; 1418 showSelectedDates = true;
1432 break; 1419 break;
1433 case Qt::Key_Down: 1420 case Qt::Key_Down:
1434 mView->viewManager()->agendaView()->scrollOneHourDown(); 1421 mView->viewManager()->agendaView()->scrollOneHourDown();
1435 break; 1422 break;
1436 case Qt::Key_Up: 1423 case Qt::Key_Up:
1437 mView->viewManager()->agendaView()->scrollOneHourUp(); 1424 mView->viewManager()->agendaView()->scrollOneHourUp();
1438 break; 1425 break;
1439 case Qt::Key_I: 1426 case Qt::Key_I:
1440 mView->showIncidence(); 1427 mView->showIncidence();
1441 break; 1428 break;
1442 case Qt::Key_Delete: 1429 case Qt::Key_Delete:
1443 case Qt::Key_Backspace: 1430 case Qt::Key_Backspace:
1444 mView->deleteIncidence(); 1431 mView->deleteIncidence();
1445 break; 1432 break;
1446 case Qt::Key_D: 1433 case Qt::Key_D:
1447 mView->viewManager()->showDayView(); 1434 mView->viewManager()->showDayView();
1448 showSelectedDates = true; 1435 showSelectedDates = true;
1449 break; 1436 break;
1450 case Qt::Key_O: 1437 case Qt::Key_O:
1451 mView->toggleFilerEnabled( ); 1438 mView->toggleFilerEnabled( );
1452 break; 1439 break;
1453 case Qt::Key_0: 1440 case Qt::Key_0:
1454 case Qt::Key_1: 1441 case Qt::Key_1:
1455 case Qt::Key_2: 1442 case Qt::Key_2:
1456 case Qt::Key_3: 1443 case Qt::Key_3:
1457 case Qt::Key_4: 1444 case Qt::Key_4:
1458 case Qt::Key_5: 1445 case Qt::Key_5:
1459 case Qt::Key_6: 1446 case Qt::Key_6:
1460 case Qt::Key_7: 1447 case Qt::Key_7:
1461 case Qt::Key_8: 1448 case Qt::Key_8:
1462 case Qt::Key_9: 1449 case Qt::Key_9:
1463 pro = e->key()-48; 1450 pro = e->key()-48;
1464 if ( pro == 0 ) 1451 if ( pro == 0 )
1465 pro = 10; 1452 pro = 10;
1466 if ( e->state() == Qt::ControlButton) 1453 if ( e->state() == Qt::ControlButton)
1467 pro += 10; 1454 pro += 10;
1468 break; 1455 break;
1469 case Qt::Key_M: 1456 case Qt::Key_M:
1470 mView->viewManager()->showMonthView(); 1457 mView->viewManager()->showMonthView();
1471 showSelectedDates = true; 1458 showSelectedDates = true;
1472 break; 1459 break;
1473 case Qt::Key_Insert: 1460 case Qt::Key_Insert:
1474 mView->newEvent(); 1461 mView->newEvent();
1475 break; 1462 break;
1476 case Qt::Key_S : 1463 case Qt::Key_S :
1477 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1464 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1478 mView->newSubTodo(); 1465 mView->newSubTodo();
1479 else 1466 else
1480 mView->dialogManager()->showSearchDialog(); 1467 mView->dialogManager()->showSearchDialog();
1481 break; 1468 break;
1482 case Qt::Key_Y : 1469 case Qt::Key_Y :
1483 case Qt::Key_Z : 1470 case Qt::Key_Z :
1484 mView->viewManager()->showWorkWeekView(); 1471 mView->viewManager()->showWorkWeekView();
1485 showSelectedDates = true; 1472 showSelectedDates = true;
1486 break; 1473 break;
1487 case Qt::Key_U : 1474 case Qt::Key_U :
1488 mView->viewManager()->showWeekView(); 1475 mView->viewManager()->showWeekView();
1489 showSelectedDates = true; 1476 showSelectedDates = true;
1490 break; 1477 break;
1491 case Qt::Key_H : 1478 case Qt::Key_H :
1492 keyBindings(); 1479 keyBindings();
1493 break; 1480 break;
1494 case Qt::Key_W: 1481 case Qt::Key_W:
1495 mView->viewManager()->showWhatsNextView(); 1482 mView->viewManager()->showWhatsNextView();
1496 break; 1483 break;
1497 case Qt::Key_L: 1484 case Qt::Key_L:
1498 mView->viewManager()->showListView(); 1485 mView->viewManager()->showListView();
1499 break; 1486 break;
1500 case Qt::Key_N: 1487 case Qt::Key_N:
1501 mView->viewManager()->showNextXView(); 1488 mView->viewManager()->showNextXView();
1502 showSelectedDates = true; 1489 showSelectedDates = true;
1503 break; 1490 break;
1504 case Qt::Key_V: 1491 case Qt::Key_V:
1505 mView->viewManager()->showTodoView(); 1492 mView->viewManager()->showTodoView();
1506 break; 1493 break;
1507 case Qt::Key_C: 1494 case Qt::Key_C:
1508 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 1495 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
1509 break; 1496 break;
1510 case Qt::Key_P: 1497 case Qt::Key_P:
1511 mView->showDatePicker( ); 1498 mView->showDatePicker( );
1512 break; 1499 break;
1513 case Qt::Key_F: 1500 case Qt::Key_F:
1514 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1501 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1515 mView->editFilters(); 1502 mView->editFilters();
1516 else 1503 else
1517 mView->toggleFilter(); 1504 mView->toggleFilter();
1518 break; 1505 break;
1519 case Qt::Key_X: 1506 case Qt::Key_X:
1520 mView->toggleDateNavigatorWidget(); 1507 mView->toggleDateNavigatorWidget();
1521 break; 1508 break;
1522 case Qt::Key_Space: 1509 case Qt::Key_Space:
1523 mView->toggleExpand(); 1510 mView->toggleExpand();
1524 break; 1511 break;
1525 case Qt::Key_A: 1512 case Qt::Key_A:
1526 mView->toggleAllDaySize(); 1513 mView->toggleAllDaySize();
1527 break; 1514 break;
1528 case Qt::Key_T: 1515 case Qt::Key_T:
1529 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1516 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1530 mView->newTodo(); 1517 mView->newTodo();
1531 else { 1518 else {
1532 mView->goToday(); 1519 mView->goToday();
1533 showSelectedDates = true; 1520 showSelectedDates = true;
1534 } 1521 }
1535 break; 1522 break;
1536 case Qt::Key_J: 1523 case Qt::Key_J:
1537 mView->viewManager()->showJournalView(); 1524 mView->viewManager()->showJournalView();
1538 break; 1525 break;
1539 case Qt::Key_B: 1526 case Qt::Key_B:
1540 mView->editIncidenceDescription();; 1527 mView->editIncidenceDescription();;
1541 break; 1528 break;
1542 // case Qt::Key_Return: 1529 // case Qt::Key_Return:
1543 case Qt::Key_E: 1530 case Qt::Key_E:
1544 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1531 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1545 mView->newEvent(); 1532 mView->newEvent();
1546 else 1533 else
1547 mView->editIncidence(); 1534 mView->editIncidence();
1548 break; 1535 break;
1549 case Qt::Key_Plus: 1536 case Qt::Key_Plus:
1550 size = p->mHourSize +2; 1537 size = p->mHourSize +2;
1551 if ( size <= 18 ) 1538 if ( size <= 18 )
1552 configureAgenda( size ); 1539 configureAgenda( size );
1553 break; 1540 break;
1554 case Qt::Key_Minus: 1541 case Qt::Key_Minus:
1555 size = p->mHourSize - 2; 1542 size = p->mHourSize - 2;
1556 if ( size >= 4 ) 1543 if ( size >= 4 )
1557 configureAgenda( size ); 1544 configureAgenda( size );
1558 break; 1545 break;
1559 1546
1560 1547
1561 default: 1548 default:
1562 e->ignore(); 1549 e->ignore();
1563 } 1550 }
1564 if ( pro > 0 ) { 1551 if ( pro > 0 ) {
1565 mView->selectFilter( pro-1 ); 1552 mView->selectFilter( pro-1 );
1566 } 1553 }
1567 if ( showSelectedDates ) { 1554 if ( showSelectedDates ) {
1568 ;// setCaptionToDates(); 1555 ;// setCaptionToDates();
1569 } 1556 }
1570 1557
1571} 1558}
1572 1559
1573void MainWindow::fillFilterMenu() 1560void MainWindow::fillFilterMenu()
1574{ 1561{
1575 selectFilterMenu->clear(); 1562 selectFilterMenu->clear();
1576 bool disable = false; 1563 bool disable = false;
1577 if ( mView->filterView()->filtersEnabled() ) { 1564 if ( mView->filterView()->filtersEnabled() ) {
1578 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 ); 1565 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 );
1579 } 1566 }
1580 else { 1567 else {
1581 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 ); 1568 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 );
1582 disable = true; 1569 disable = true;
1583 } 1570 }
1584 selectFilterMenu->insertSeparator(); 1571 selectFilterMenu->insertSeparator();
1585 QPtrList<CalFilter> fili = mView->filters(); 1572 QPtrList<CalFilter> fili = mView->filters();
1586 CalFilter *curfilter = mView->filterView()->selectedFilter(); 1573 CalFilter *curfilter = mView->filterView()->selectedFilter();
1587 CalFilter *filter = fili.first(); 1574 CalFilter *filter = fili.first();
1588 int iii = 1; 1575 int iii = 1;
1589 while(filter) { 1576 while(filter) {
1590 selectFilterMenu->insertItem( filter->name(), iii ); 1577 selectFilterMenu->insertItem( filter->name(), iii );
1591 if ( filter == curfilter) 1578 if ( filter == curfilter)
1592 selectFilterMenu->setItemChecked( iii, true ); 1579 selectFilterMenu->setItemChecked( iii, true );
1593 if ( disable ) 1580 if ( disable )
1594 selectFilterMenu->setItemEnabled( iii, false ); 1581 selectFilterMenu->setItemEnabled( iii, false );
1595 filter = fili.next(); 1582 filter = fili.next();
1596 ++iii; 1583 ++iii;
1597 } 1584 }
1598} 1585}
1599void MainWindow::selectFilter( int fil ) 1586void MainWindow::selectFilter( int fil )
1600{ 1587{
1601 if ( fil == 0 ) { 1588 if ( fil == 0 ) {
1602 mView->toggleFilerEnabled( ); 1589 mView->toggleFilerEnabled( );
1603 } else { 1590 } else {
1604 mView->selectFilter( fil-1 ); 1591 mView->selectFilter( fil-1 );
1605 } 1592 }
1606} 1593}
1607void MainWindow::configureToolBar( int item ) 1594void MainWindow::configureToolBar( int item )
1608{ 1595{
1609 1596
1610 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); 1597 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) );
1611 KOPrefs *p = KOPrefs::instance(); 1598 KOPrefs *p = KOPrefs::instance();
1612 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); 1599 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 );
1613 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); 1600 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 );
1614 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); 1601 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 );
1615 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); 1602 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 );
1616 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); 1603 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 );
1617 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); 1604 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 );
1618 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); 1605 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 );
1619 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); 1606 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 );
1620 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); 1607 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 );
1621 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); 1608 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 );
1622 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); 1609 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 );