summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-10-12 20:54:38 (UTC)
committer zautrix <zautrix>2004-10-12 20:54:38 (UTC)
commit95ce1ce07164da5660a2bf1992fed4c263c6afca (patch) (unidiff)
tree46309cb90affec4c56f7453e3e87af7368744e98
parent60a63813f7ec38fe275e7ef06033a6d3eb3ec31c (diff)
downloadkdepimpi-95ce1ce07164da5660a2bf1992fed4c263c6afca.zip
kdepimpi-95ce1ce07164da5660a2bf1992fed4c263c6afca.tar.gz
kdepimpi-95ce1ce07164da5660a2bf1992fed4c263c6afca.tar.bz2
howto files moved
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
@@ -1,1832 +1,1819 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkdepim/phoneaccess.h> 42#include <libkdepim/phoneaccess.h>
43#include <libkcal/kincidenceformatter.h> 43#include <libkcal/kincidenceformatter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "calendarview.h" 46#include "calendarview.h"
47#include "koviewmanager.h" 47#include "koviewmanager.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49#include "koagendaview.h" 49#include "koagendaview.h"
50#include "koagenda.h" 50#include "koagenda.h"
51#include "kodialogmanager.h" 51#include "kodialogmanager.h"
52#include "kdialogbase.h" 52#include "kdialogbase.h"
53#include "kapplication.h" 53#include "kapplication.h"
54#include "kofilterview.h" 54#include "kofilterview.h"
55#include "kstandarddirs.h" 55#include "kstandarddirs.h"
56#include "koprefs.h" 56#include "koprefs.h"
57#include "kfiledialog.h" 57#include "kfiledialog.h"
58#include "koglobals.h" 58#include "koglobals.h"
59#include "kglobal.h" 59#include "kglobal.h"
60#include "klocale.h" 60#include "klocale.h"
61#include "kconfig.h" 61#include "kconfig.h"
62#include "simplealarmclient.h" 62#include "simplealarmclient.h"
63#include "externalapphandler.h" 63#include "externalapphandler.h"
64 64
65using namespace KCal; 65using namespace KCal;
66#ifndef _WIN32_ 66#ifndef _WIN32_
67#include <unistd.h> 67#include <unistd.h>
68#else 68#else
69#include "koimportoldialog.h" 69#include "koimportoldialog.h"
70#endif 70#endif
71#include "mainwindow.h" 71#include "mainwindow.h"
72 72
73class KOex2phonePrefs : public QDialog 73class KOex2phonePrefs : public QDialog
74{ 74{
75 public: 75 public:
76 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 76 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
77 QDialog( parent, name, true ) 77 QDialog( parent, name, true )
78 { 78 {
79 setCaption( i18n("Export to phone options") ); 79 setCaption( i18n("Export to phone options") );
80 QVBoxLayout* lay = new QVBoxLayout( this ); 80 QVBoxLayout* lay = new QVBoxLayout( this );
81 lay->setSpacing( 3 ); 81 lay->setSpacing( 3 );
82 lay->setMargin( 3 ); 82 lay->setMargin( 3 );
83 QLabel *lab; 83 QLabel *lab;
84 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 84 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
85 lab->setAlignment (AlignHCenter ); 85 lab->setAlignment (AlignHCenter );
86 QHBox* temphb; 86 QHBox* temphb;
87 temphb = new QHBox( this ); 87 temphb = new QHBox( this );
88 new QLabel( i18n("I/O device: "), temphb ); 88 new QLabel( i18n("I/O device: "), temphb );
89 mPhoneDevice = new QLineEdit( temphb); 89 mPhoneDevice = new QLineEdit( temphb);
90 lay->addWidget( temphb ); 90 lay->addWidget( temphb );
91 temphb = new QHBox( this ); 91 temphb = new QHBox( this );
92 new QLabel( i18n("Connection: "), temphb ); 92 new QLabel( i18n("Connection: "), temphb );
93 mPhoneConnection = new QLineEdit( temphb); 93 mPhoneConnection = new QLineEdit( temphb);
94 lay->addWidget( temphb ); 94 lay->addWidget( temphb );
95 temphb = new QHBox( this ); 95 temphb = new QHBox( this );
96 new QLabel( i18n("Model(opt.): "), temphb ); 96 new QLabel( i18n("Model(opt.): "), temphb );
97 mPhoneModel = new QLineEdit( temphb); 97 mPhoneModel = new QLineEdit( temphb);
98 lay->addWidget( temphb ); 98 lay->addWidget( temphb );
99 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 99 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
100 mWriteBackFuture->setChecked( true ); 100 mWriteBackFuture->setChecked( true );
101 lay->addWidget( mWriteBackFuture ); 101 lay->addWidget( mWriteBackFuture );
102 temphb = new QHBox( this ); 102 temphb = new QHBox( this );
103 new QLabel( i18n("Max. weeks in future: ") , temphb ); 103 new QLabel( i18n("Max. weeks in future: ") , temphb );
104 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 104 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
105 mWriteBackFutureWeeks->setValue( 8 ); 105 mWriteBackFutureWeeks->setValue( 8 );
106 lay->addWidget( temphb ); 106 lay->addWidget( temphb );
107 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 107 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
108 lab->setAlignment (AlignHCenter ); 108 lab->setAlignment (AlignHCenter );
109 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 109 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
110 lay->addWidget( ok ); 110 lay->addWidget( ok );
111 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 111 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
112 lay->addWidget( cancel ); 112 lay->addWidget( cancel );
113 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 113 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
114 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 114 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
115 resize( 220, 240 ); 115 resize( 220, 240 );
116 116
117 } 117 }
118 118
119public: 119public:
120 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 120 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
121 QCheckBox* mWriteBackFuture; 121 QCheckBox* mWriteBackFuture;
122 QSpinBox* mWriteBackFutureWeeks; 122 QSpinBox* mWriteBackFutureWeeks;
123}; 123};
124 124
125int globalFlagBlockStartup; 125int globalFlagBlockStartup;
126MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 126MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
127 QMainWindow( parent, name ) 127 QMainWindow( parent, name )
128{ 128{
129 129
130#ifdef DESKTOP_VERSION 130#ifdef DESKTOP_VERSION
131 setFont( QFont("Arial"), 14 ); 131 setFont( QFont("Arial"), 14 );
132#endif 132#endif
133 mClosed = false; 133 mClosed = false;
134 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 134 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
135 QString confFile = locateLocal("config","korganizerrc"); 135 QString confFile = locateLocal("config","korganizerrc");
136 QFileInfo finf ( confFile ); 136 QFileInfo finf ( confFile );
137 bool showWarning = !finf.exists(); 137 bool showWarning = !finf.exists();
138 setIcon(SmallIcon( "ko24" ) ); 138 setIcon(SmallIcon( "ko24" ) );
139 mBlockAtStartup = true; 139 mBlockAtStartup = true;
140 mFlagKeyPressed = false; 140 mFlagKeyPressed = false;
141 setCaption("KOrganizer/Pi"); 141 setCaption("KOrganizer/Pi");
142 KOPrefs *p = KOPrefs::instance(); 142 KOPrefs *p = KOPrefs::instance();
143 KPimGlobalPrefs::instance()->setGlobalConfig(); 143 KPimGlobalPrefs::instance()->setGlobalConfig();
144 if ( p->mHourSize > 18 ) 144 if ( p->mHourSize > 18 )
145 p->mHourSize = 18; 145 p->mHourSize = 18;
146 QMainWindow::ToolBarDock tbd; 146 QMainWindow::ToolBarDock tbd;
147 if ( p->mToolBarHor ) { 147 if ( p->mToolBarHor ) {
148 if ( p->mToolBarUp ) 148 if ( p->mToolBarUp )
149 tbd = Bottom; 149 tbd = Bottom;
150 else 150 else
151 tbd = Top; 151 tbd = Top;
152 } 152 }
153 else { 153 else {
154 if ( p->mToolBarUp ) 154 if ( p->mToolBarUp )
155 tbd = Right; 155 tbd = Right;
156 else 156 else
157 tbd = Left; 157 tbd = Left;
158 } 158 }
159 if ( KOPrefs::instance()->mUseAppColors ) 159 if ( KOPrefs::instance()->mUseAppColors )
160 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 160 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
161 globalFlagBlockStartup = 1; 161 globalFlagBlockStartup = 1;
162 iconToolBar = new QPEToolBar( this ); 162 iconToolBar = new QPEToolBar( this );
163 addToolBar (iconToolBar , tbd ); 163 addToolBar (iconToolBar , tbd );
164 mCalendarModifiedFlag = false; 164 mCalendarModifiedFlag = false;
165 165
166 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 166 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
167 splash->setAlignment ( AlignCenter ); 167 splash->setAlignment ( AlignCenter );
168 setCentralWidget( splash ); 168 setCentralWidget( splash );
169#ifndef DESKTOP_VERSION 169#ifndef DESKTOP_VERSION
170 showMaximized(); 170 showMaximized();
171#endif 171#endif
172 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 172 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
173 setDefaultPreferences(); 173 setDefaultPreferences();
174 mCalendar = new CalendarLocal(); 174 mCalendar = new CalendarLocal();
175 mView = new CalendarView( mCalendar, this,"mCalendar " ); 175 mView = new CalendarView( mCalendar, this,"mCalendar " );
176 mView->hide(); 176 mView->hide();
177 //mView->resize(splash->size() ); 177 //mView->resize(splash->size() );
178 initActions(); 178 initActions();
179 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 179 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
180 mSyncManager->setBlockSave(false); 180 mSyncManager->setBlockSave(false);
181 mView->setSyncManager(mSyncManager); 181 mView->setSyncManager(mSyncManager);
182#ifndef DESKTOP_VERSION 182#ifndef DESKTOP_VERSION
183 iconToolBar->show(); 183 iconToolBar->show();
184 qApp->processEvents(); 184 qApp->processEvents();
185#endif 185#endif
186 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 186 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
187 int vh = height() ; 187 int vh = height() ;
188 int vw = width(); 188 int vw = width();
189 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 189 //qDebug("Toolbar hei %d ",iconToolBar->height() );
190 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 190 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
191 vh -= iconToolBar->height(); 191 vh -= iconToolBar->height();
192 } else { 192 } else {
193 vw -= iconToolBar->height(); 193 vw -= iconToolBar->height();
194 } 194 }
195 //mView->setMaximumSize( splash->size() ); 195 //mView->setMaximumSize( splash->size() );
196 //mView->resize( splash->size() ); 196 //mView->resize( splash->size() );
197 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 197 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
198 mView->readSettings(); 198 mView->readSettings();
199 bool newFile = false; 199 bool newFile = false;
200 if( !QFile::exists( defaultFileName() ) ) { 200 if( !QFile::exists( defaultFileName() ) ) {
201 QFileInfo finfo ( defaultFileName() ); 201 QFileInfo finfo ( defaultFileName() );
202 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 202 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
203 qDebug("oldfile %s ", oldFile.latin1()); 203 qDebug("oldfile %s ", oldFile.latin1());
204 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; 204 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n";
205 finfo.setFile( oldFile ); 205 finfo.setFile( oldFile );
206 if (finfo.exists() ) { 206 if (finfo.exists() ) {
207 KMessageBox::information( this, message); 207 KMessageBox::information( this, message);
208 mView->openCalendar( oldFile ); 208 mView->openCalendar( oldFile );
209 qApp->processEvents(); 209 qApp->processEvents();
210 } else { 210 } else {
211 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 211 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
212 finfo.setFile( oldFile ); 212 finfo.setFile( oldFile );
213 if (finfo.exists() ) { 213 if (finfo.exists() ) {
214 KMessageBox::information( this, message); 214 KMessageBox::information( this, message);
215 mView->openCalendar( oldFile ); 215 mView->openCalendar( oldFile );
216 qApp->processEvents(); 216 qApp->processEvents();
217 } 217 }
218 } 218 }
219 mView->saveCalendar( defaultFileName() ); 219 mView->saveCalendar( defaultFileName() );
220 newFile = true; 220 newFile = true;
221 } 221 }
222 222
223 QTime neededSaveTime = QDateTime::currentDateTime().time(); 223 QTime neededSaveTime = QDateTime::currentDateTime().time();
224 mView->openCalendar( defaultFileName() ); 224 mView->openCalendar( defaultFileName() );
225 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 225 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
226 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 226 qDebug("KO: Calendar loading time: %d ms",msNeeded );
227 227
228 if ( KOPrefs::instance()->mLanguageChanged ) { 228 if ( KOPrefs::instance()->mLanguageChanged ) {
229 KOPrefs::instance()->setCategoryDefaults(); 229 KOPrefs::instance()->setCategoryDefaults();
230 int count = mView->addCategories(); 230 int count = mView->addCategories();
231 KOPrefs::instance()->mLanguageChanged = false; 231 KOPrefs::instance()->mLanguageChanged = false;
232 } 232 }
233 processIncidenceSelection( 0 ); 233 processIncidenceSelection( 0 );
234 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 234 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
235 SLOT( processIncidenceSelection( Incidence * ) ) ); 235 SLOT( processIncidenceSelection( Incidence * ) ) );
236 connect( mView, SIGNAL( modifiedChanged( bool ) ), 236 connect( mView, SIGNAL( modifiedChanged( bool ) ),
237 SLOT( slotModifiedChanged( bool ) ) ); 237 SLOT( slotModifiedChanged( bool ) ) );
238 238
239 239
240 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 240 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
241 mView->setModified( false ); 241 mView->setModified( false );
242 mBlockAtStartup = false; 242 mBlockAtStartup = false;
243 mView->setModified( false ); 243 mView->setModified( false );
244 setCentralWidget( mView ); 244 setCentralWidget( mView );
245 globalFlagBlockStartup = 0; 245 globalFlagBlockStartup = 0;
246 mView->show(); 246 mView->show();
247 delete splash; 247 delete splash;
248 if ( newFile ) 248 if ( newFile )
249 mView->updateConfig(); 249 mView->updateConfig();
250 // qApp->processEvents(); 250 // qApp->processEvents();
251 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 251 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
252 //fillSyncMenu(); 252 //fillSyncMenu();
253 253
254 254
255 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 255 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
256 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 256 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
257 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 257 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
258 mSyncManager->setDefaultFileName( defaultFileName()); 258 mSyncManager->setDefaultFileName( defaultFileName());
259 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 259 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
260 mSyncManager->fillSyncMenu(); 260 mSyncManager->fillSyncMenu();
261 261
262 262
263 263
264 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 264 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
265 if ( showWarning ) { 265 if ( showWarning ) {
266 KMessageBox::information( this, 266 KMessageBox::information( this,
267 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 267 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
268 qApp->processEvents(); 268 qApp->processEvents();
269 mView->dialogManager()->showSyncOptions(); 269 mView->dialogManager()->showSyncOptions();
270 } 270 }
271 271
272 //US listen for result adressed from Ka/Pi 272 //US listen for result adressed from Ka/Pi
273#ifndef DESKTOP_VERSION 273#ifndef DESKTOP_VERSION
274 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 274 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
275#endif 275#endif
276} 276}
277MainWindow::~MainWindow() 277MainWindow::~MainWindow()
278{ 278{
279 //qDebug("MainWindow::~MainWindow() "); 279 //qDebug("MainWindow::~MainWindow() ");
280 //save toolbar location 280 //save toolbar location
281 delete mCalendar; 281 delete mCalendar;
282 delete mSyncManager; 282 delete mSyncManager;
283 283
284 284
285} 285}
286void MainWindow::showMaximized () 286void MainWindow::showMaximized ()
287{ 287{
288#ifndef DESKTOP_VERSION 288#ifndef DESKTOP_VERSION
289 if ( ! globalFlagBlockStartup ) 289 if ( ! globalFlagBlockStartup )
290 if ( mClosed ) 290 if ( mClosed )
291 mView->goToday(); 291 mView->goToday();
292#endif 292#endif
293 QWidget::showMaximized () ; 293 QWidget::showMaximized () ;
294 mClosed = false; 294 mClosed = false;
295} 295}
296void MainWindow::closeEvent( QCloseEvent* ce ) 296void MainWindow::closeEvent( QCloseEvent* ce )
297{ 297{
298 298
299 299
300 300
301 if ( ! KOPrefs::instance()->mAskForQuit ) { 301 if ( ! KOPrefs::instance()->mAskForQuit ) {
302 saveOnClose(); 302 saveOnClose();
303 mClosed = true; 303 mClosed = true;
304 ce->accept(); 304 ce->accept();
305 return; 305 return;
306 306
307 } 307 }
308 308
309 switch( QMessageBox::information( this, "KO/Pi", 309 switch( QMessageBox::information( this, "KO/Pi",
310 i18n("Do you really want\nto close KO/Pi?"), 310 i18n("Do you really want\nto close KO/Pi?"),
311 i18n("Close"), i18n("No"), 311 i18n("Close"), i18n("No"),
312 0, 0 ) ) { 312 0, 0 ) ) {
313 case 0: 313 case 0:
314 saveOnClose(); 314 saveOnClose();
315 mClosed = true; 315 mClosed = true;
316 ce->accept(); 316 ce->accept();
317 break; 317 break;
318 case 1: 318 case 1:
319 ce->ignore(); 319 ce->ignore();
320 break; 320 break;
321 case 2: 321 case 2:
322 322
323 default: 323 default:
324 break; 324 break;
325 } 325 }
326 326
327 327
328} 328}
329 329
330void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 330void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
331{ 331{
332 QDataStream stream( data, IO_ReadOnly ); 332 QDataStream stream( data, IO_ReadOnly );
333 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 333 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
334 //QString datamess; 334 //QString datamess;
335 //qDebug("message "); 335 //qDebug("message ");
336 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 336 qDebug("KO: QCOP message received: %s ", cmsg.data() );
337 337
338 if ( cmsg == "setDocument(QString)" ) { 338 if ( cmsg == "setDocument(QString)" ) {
339 QDataStream stream( data, IO_ReadOnly ); 339 QDataStream stream( data, IO_ReadOnly );
340 QString fileName; 340 QString fileName;
341 stream >> fileName; 341 stream >> fileName;
342 qDebug("filename %s ", fileName.latin1()); 342 qDebug("filename %s ", fileName.latin1());
343 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 343 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
344 mSyncManager->slotSyncMenu( 1002 ); 344 mSyncManager->slotSyncMenu( 1002 );
345 return; 345 return;
346 } 346 }
347 347
348 if ( cmsg == "-writeFile" ) { 348 if ( cmsg == "-writeFile" ) {
349 // I made from the "-writeFile" an "-writeAlarm" 349 // I made from the "-writeFile" an "-writeAlarm"
350 mView->viewManager()->showWhatsNextView(); 350 mView->viewManager()->showWhatsNextView();
351 mCalendar->checkAlarmForIncidence( 0, true); 351 mCalendar->checkAlarmForIncidence( 0, true);
352 showMaximized(); 352 showMaximized();
353 raise(); 353 raise();
354 return; 354 return;
355 355
356 } 356 }
357 if ( cmsg == "-writeFileSilent" ) { 357 if ( cmsg == "-writeFileSilent" ) {
358 // I made from the "-writeFile" an "-writeAlarm" 358 // I made from the "-writeFile" an "-writeAlarm"
359 // mView->viewManager()->showWhatsNextView(); 359 // mView->viewManager()->showWhatsNextView();
360 mCalendar->checkAlarmForIncidence( 0, true); 360 mCalendar->checkAlarmForIncidence( 0, true);
361 //showMaximized(); 361 //showMaximized();
362 //raise(); 362 //raise();
363 hide(); 363 hide();
364 return; 364 return;
365 } 365 }
366 if ( cmsg == "-newCountdown" ) { 366 if ( cmsg == "-newCountdown" ) {
367 qDebug("newCountdown "); 367 qDebug("newCountdown ");
368 368
369 } 369 }
370 QString msg ; 370 QString msg ;
371 QString allmsg = cmsg; 371 QString allmsg = cmsg;
372 while ( allmsg.length() > 0 ) { 372 while ( allmsg.length() > 0 ) {
373 int nextC = allmsg.find( "-", 1 ); 373 int nextC = allmsg.find( "-", 1 );
374 if ( nextC == -1 ) { 374 if ( nextC == -1 ) {
375 msg = allmsg; 375 msg = allmsg;
376 allmsg = ""; 376 allmsg = "";
377 } else{ 377 } else{
378 msg = allmsg.left( nextC ); 378 msg = allmsg.left( nextC );
379 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 379 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
380 } 380 }
381 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 381 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
382 if ( msg == "-newEvent" ) { 382 if ( msg == "-newEvent" ) {
383 mView->newEvent(); 383 mView->newEvent();
384 } 384 }
385 if ( msg == "-newTodo" ) { 385 if ( msg == "-newTodo" ) {
386 mView->newTodo(); 386 mView->newTodo();
387 387
388 } 388 }
389 if ( msg == "-showWN" ) { 389 if ( msg == "-showWN" ) {
390 mView->viewManager()->showWhatsNextView(); 390 mView->viewManager()->showWhatsNextView();
391 } 391 }
392 if ( msg == "-showTodo" ) { 392 if ( msg == "-showTodo" ) {
393 mView->viewManager()->showTodoView(); 393 mView->viewManager()->showTodoView();
394 } 394 }
395 if ( msg == "-showList" ) { 395 if ( msg == "-showList" ) {
396 mView->viewManager()->showListView(); 396 mView->viewManager()->showListView();
397 } 397 }
398 else if ( msg == "-showDay" ) { 398 else if ( msg == "-showDay" ) {
399 mView->viewManager()->showDayView(); 399 mView->viewManager()->showDayView();
400 } 400 }
401 else if ( msg == "-showWWeek" ) { 401 else if ( msg == "-showWWeek" ) {
402 mView->viewManager()->showWorkWeekView(); 402 mView->viewManager()->showWorkWeekView();
403 } 403 }
404 else if ( msg == "-ringSync" ) { 404 else if ( msg == "-ringSync" ) {
405 mSyncManager->multiSync( false ); 405 mSyncManager->multiSync( false );
406 } 406 }
407 else if ( msg == "-showWeek" ) { 407 else if ( msg == "-showWeek" ) {
408 mView->viewManager()->showWeekView(); 408 mView->viewManager()->showWeekView();
409 } 409 }
410 else if ( msg == "-showTodo" ) { 410 else if ( msg == "-showTodo" ) {
411 mView->viewManager()->showTodoView(); 411 mView->viewManager()->showTodoView();
412 } 412 }
413 else if ( msg == "-showJournal" ) { 413 else if ( msg == "-showJournal" ) {
414 mView->dateNavigator()->selectDates( 1 ); 414 mView->dateNavigator()->selectDates( 1 );
415 mView->dateNavigator()->selectToday(); 415 mView->dateNavigator()->selectToday();
416 mView->viewManager()->showJournalView(); 416 mView->viewManager()->showJournalView();
417 } 417 }
418 else if ( msg == "-showKO" ) { 418 else if ( msg == "-showKO" ) {
419 mView->viewManager()->showNextXView(); 419 mView->viewManager()->showNextXView();
420 } 420 }
421 else if ( msg == "-showWNext" || msg == "nextView()" ) { 421 else if ( msg == "-showWNext" || msg == "nextView()" ) {
422 mView->viewManager()->showWhatsNextView(); 422 mView->viewManager()->showWhatsNextView();
423 } 423 }
424 else if ( msg == "-showNextXView" ) { 424 else if ( msg == "-showNextXView" ) {
425 mView->viewManager()->showNextXView(); 425 mView->viewManager()->showNextXView();
426 } 426 }
427 427
428 428
429 } 429 }
430 430
431 showMaximized(); 431 showMaximized();
432 raise(); 432 raise();
433} 433}
434 434
435QPixmap MainWindow::loadPixmap( QString name ) 435QPixmap MainWindow::loadPixmap( QString name )
436{ 436{
437 return SmallIcon( name ); 437 return SmallIcon( name );
438 438
439} 439}
440void MainWindow::initActions() 440void MainWindow::initActions()
441{ 441{
442 //KOPrefs::instance()->mShowFullMenu 442 //KOPrefs::instance()->mShowFullMenu
443 iconToolBar->clear(); 443 iconToolBar->clear();
444 KOPrefs *p = KOPrefs::instance(); 444 KOPrefs *p = KOPrefs::instance();
445 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 445 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
446 446
447 QPopupMenu *viewMenu = new QPopupMenu( this ); 447 QPopupMenu *viewMenu = new QPopupMenu( this );
448 QPopupMenu *actionMenu = new QPopupMenu( this ); 448 QPopupMenu *actionMenu = new QPopupMenu( this );
449 QPopupMenu *importMenu = new QPopupMenu( this ); 449 QPopupMenu *importMenu = new QPopupMenu( this );
450 selectFilterMenu = new QPopupMenu( this ); 450 selectFilterMenu = new QPopupMenu( this );
451 selectFilterMenu->setCheckable( true ); 451 selectFilterMenu->setCheckable( true );
452 syncMenu = new QPopupMenu( this ); 452 syncMenu = new QPopupMenu( this );
453 configureAgendaMenu = new QPopupMenu( this ); 453 configureAgendaMenu = new QPopupMenu( this );
454 configureToolBarMenu = new QPopupMenu( this ); 454 configureToolBarMenu = new QPopupMenu( this );
455 QPopupMenu *helpMenu = new QPopupMenu( this ); 455 QPopupMenu *helpMenu = new QPopupMenu( this );
456 if ( KOPrefs::instance()->mShowFullMenu ) { 456 if ( KOPrefs::instance()->mShowFullMenu ) {
457 QMenuBar *menuBar1; 457 QMenuBar *menuBar1;
458 menuBar1 = menuBar(); 458 menuBar1 = menuBar();
459 menuBar1->insertItem( i18n("File"), importMenu ); 459 menuBar1->insertItem( i18n("File"), importMenu );
460 menuBar1->insertItem( i18n("View"), viewMenu ); 460 menuBar1->insertItem( i18n("View"), viewMenu );
461 menuBar1->insertItem( i18n("Actions"), actionMenu ); 461 menuBar1->insertItem( i18n("Actions"), actionMenu );
462 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 462 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
463 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 463 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
464 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 464 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
465 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 465 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
466 menuBar1->insertItem( i18n("Help"), helpMenu ); 466 menuBar1->insertItem( i18n("Help"), helpMenu );
467 } else { 467 } else {
468 QPEMenuBar *menuBar1; 468 QPEMenuBar *menuBar1;
469 menuBar1 = new QPEMenuBar( iconToolBar ); 469 menuBar1 = new QPEMenuBar( iconToolBar );
470 QPopupMenu *menuBar = new QPopupMenu( this ); 470 QPopupMenu *menuBar = new QPopupMenu( this );
471 menuBar1->insertItem( i18n("ME"), menuBar); 471 menuBar1->insertItem( i18n("ME"), menuBar);
472 menuBar->insertItem( i18n("File"), importMenu ); 472 menuBar->insertItem( i18n("File"), importMenu );
473 menuBar->insertItem( i18n("View"), viewMenu ); 473 menuBar->insertItem( i18n("View"), viewMenu );
474 menuBar->insertItem( i18n("Actions"), actionMenu ); 474 menuBar->insertItem( i18n("Actions"), actionMenu );
475 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 475 menuBar->insertItem( i18n("Synchronize"), syncMenu );
476 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 476 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
477 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 477 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
478 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 478 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
479 menuBar->insertItem( i18n("Help"), helpMenu ); 479 menuBar->insertItem( i18n("Help"), helpMenu );
480 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 480 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
481 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 481 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
482 } 482 }
483 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 483 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
484 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) ); 484 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) );
485 485
486 // ****************** 486 // ******************
487 QAction *action; 487 QAction *action;
488 QIconSet icon; 488 QIconSet icon;
489 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 489 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
490 configureToolBarMenu->setCheckable( true ); 490 configureToolBarMenu->setCheckable( true );
491 491
492 QString pathString = ""; 492 QString pathString = "";
493 if ( !p->mToolBarMiniIcons ) { 493 if ( !p->mToolBarMiniIcons ) {
494 if ( QApplication::desktop()->width() < 480 ) 494 if ( QApplication::desktop()->width() < 480 )
495 pathString += "icons16/"; 495 pathString += "icons16/";
496 } else 496 } else
497 pathString += "iconsmini/"; 497 pathString += "iconsmini/";
498 configureAgendaMenu->setCheckable( true ); 498 configureAgendaMenu->setCheckable( true );
499 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 ); 499 configureAgendaMenu->insertItem(i18n("Toggle Allday"), 1 );
500 configureAgendaMenu->insertSeparator(); 500 configureAgendaMenu->insertSeparator();
501 configureAgendaMenu->insertItem(i18n("Tiny"), 4 ); 501 configureAgendaMenu->insertItem(i18n("Tiny"), 4 );
502 configureAgendaMenu->insertItem(i18n("Small"), 6 ); 502 configureAgendaMenu->insertItem(i18n("Small"), 6 );
503 configureAgendaMenu->insertItem(i18n("Medium"), 8 ); 503 configureAgendaMenu->insertItem(i18n("Medium"), 8 );
504 configureAgendaMenu->insertItem(i18n("Normal"), 10 ); 504 configureAgendaMenu->insertItem(i18n("Normal"), 10 );
505 configureAgendaMenu->insertItem(i18n("Large"), 12 ); 505 configureAgendaMenu->insertItem(i18n("Large"), 12 );
506 configureAgendaMenu->insertItem(i18n("Big"), 14 ); 506 configureAgendaMenu->insertItem(i18n("Big"), 14 );
507 configureAgendaMenu->insertItem(i18n("Bigger"), 16 ); 507 configureAgendaMenu->insertItem(i18n("Bigger"), 16 );
508 configureAgendaMenu->insertItem(i18n("Biggest"), 18 ); 508 configureAgendaMenu->insertItem(i18n("Biggest"), 18 );
509 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 509 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
510 510
511 icon = loadPixmap( pathString + "configure" ); 511 icon = loadPixmap( pathString + "configure" );
512 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 512 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
513 action->addTo( actionMenu ); 513 action->addTo( actionMenu );
514 connect( action, SIGNAL( activated() ), 514 connect( action, SIGNAL( activated() ),
515 mView, SLOT( edit_options() ) ); 515 mView, SLOT( edit_options() ) );
516 actionMenu->insertSeparator(); 516 actionMenu->insertSeparator();
517 icon = loadPixmap( pathString + "newevent" ); 517 icon = loadPixmap( pathString + "newevent" );
518 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 518 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
519 configureToolBarMenu->insertSeparator(); 519 configureToolBarMenu->insertSeparator();
520 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 520 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
521 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 521 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
522 ne_action->addTo( actionMenu ); 522 ne_action->addTo( actionMenu );
523 connect( ne_action, SIGNAL( activated() ), 523 connect( ne_action, SIGNAL( activated() ),
524 mView, SLOT( newEvent() ) ); 524 mView, SLOT( newEvent() ) );
525 icon = loadPixmap( pathString + "newtodo" ); 525 icon = loadPixmap( pathString + "newtodo" );
526 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 526 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
527 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 527 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
528 nt_action->addTo( actionMenu ); 528 nt_action->addTo( actionMenu );
529 connect( nt_action, SIGNAL( activated() ), 529 connect( nt_action, SIGNAL( activated() ),
530 mView, SLOT( newTodo() ) ); 530 mView, SLOT( newTodo() ) );
531 icon = loadPixmap( pathString + "navi" ); 531 icon = loadPixmap( pathString + "navi" );
532 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 532 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
533 action->addTo( viewMenu ); 533 action->addTo( viewMenu );
534 connect( action, SIGNAL( activated() ), 534 connect( action, SIGNAL( activated() ),
535 mView, SLOT( toggleDateNavigatorWidget() ) ); 535 mView, SLOT( toggleDateNavigatorWidget() ) );
536 icon = loadPixmap( pathString + "filter" ); 536 icon = loadPixmap( pathString + "filter" );
537 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this ); 537 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this );
538 action->addTo( viewMenu ); 538 action->addTo( viewMenu );
539 connect( action, SIGNAL( activated() ), 539 connect( action, SIGNAL( activated() ),
540 mView, SLOT( toggleFilter() ) ); 540 mView, SLOT( toggleFilter() ) );
541 541
542 542
543 viewMenu->insertSeparator(); 543 viewMenu->insertSeparator();
544 icon = loadPixmap( pathString + "picker" ); 544 icon = loadPixmap( pathString + "picker" );
545 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this ); 545 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
546 action->addTo( viewMenu ); 546 action->addTo( viewMenu );
547 connect( action, SIGNAL( activated() ), 547 connect( action, SIGNAL( activated() ),
548 mView, SLOT( showDatePicker() ) ); 548 mView, SLOT( showDatePicker() ) );
549 action->addTo( iconToolBar ); 549 action->addTo( iconToolBar );
550 viewMenu->insertSeparator(); 550 viewMenu->insertSeparator();
551 icon = loadPixmap( pathString + "list" ); 551 icon = loadPixmap( pathString + "list" );
552 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 552 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
553 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 553 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
554 showlist_action->addTo( viewMenu ); 554 showlist_action->addTo( viewMenu );
555 connect( showlist_action, SIGNAL( activated() ), 555 connect( showlist_action, SIGNAL( activated() ),
556 mView->viewManager(), SLOT( showListView() ) ); 556 mView->viewManager(), SLOT( showListView() ) );
557 557
558 558
559 icon = loadPixmap( pathString + "day" ); 559 icon = loadPixmap( pathString + "day" );
560 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 560 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
561 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); 561 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this );
562 day1_action->addTo( viewMenu ); 562 day1_action->addTo( viewMenu );
563 // action->addTo( toolBar ); 563 // action->addTo( toolBar );
564 connect( day1_action, SIGNAL( activated() ), 564 connect( day1_action, SIGNAL( activated() ),
565 mView->viewManager(), SLOT( showDayView() ) ); 565 mView->viewManager(), SLOT( showDayView() ) );
566 566
567 icon = loadPixmap( pathString + "workweek" ); 567 icon = loadPixmap( pathString + "workweek" );
568 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); 568 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 );
569 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); 569 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this );
570 day5_action->addTo( viewMenu ); 570 day5_action->addTo( viewMenu );
571 connect( day5_action, SIGNAL( activated() ), 571 connect( day5_action, SIGNAL( activated() ),
572 mView->viewManager(), SLOT( showWorkWeekView() ) ); 572 mView->viewManager(), SLOT( showWorkWeekView() ) );
573 573
574 icon = loadPixmap( pathString + "week" ); 574 icon = loadPixmap( pathString + "week" );
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 );
1623 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); 1610 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 );
1624 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); 1611 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 );
1625 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); 1612 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 );
1626 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); 1613 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 );
1627 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); 1614 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 );
1628 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); 1615 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 );
1629 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); 1616 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 );
1630 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); 1617 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 );
1631 // initActions(); 1618 // initActions();
1632} 1619}
1633 1620
1634void MainWindow::setCaptionToDates() 1621void MainWindow::setCaptionToDates()
1635{ 1622{
1636 QString selDates; 1623 QString selDates;
1637 selDates = KGlobal::locale()->formatDate(mView->startDate(), true); 1624 selDates = KGlobal::locale()->formatDate(mView->startDate(), true);
1638 if (mView->startDate() < mView->endDate() ) 1625 if (mView->startDate() < mView->endDate() )
1639 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); 1626 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true);
1640 setCaption( i18n("Dates: ") + selDates ); 1627 setCaption( i18n("Dates: ") + selDates );
1641 1628
1642} 1629}
1643// parameter item == 0: reinit 1630// parameter item == 0: reinit
1644void MainWindow::configureAgenda( int item ) 1631void MainWindow::configureAgenda( int item )
1645{ 1632{
1646 1633
1647 KOPrefs *p = KOPrefs::instance(); 1634 KOPrefs *p = KOPrefs::instance();
1648 1635
1649 int i; 1636 int i;
1650 if ( item == 1 ) { 1637 if ( item == 1 ) {
1651 mView->toggleAllDaySize(); 1638 mView->toggleAllDaySize();
1652 return; 1639 return;
1653 } 1640 }
1654 // do not allow 4 for widgets higher than 480 1641 // do not allow 4 for widgets higher than 480
1655 // if ( QApplication::desktop()->height() > 480 ) { 1642 // if ( QApplication::desktop()->height() > 480 ) {
1656// if ( item == 4 ) 1643// if ( item == 4 )
1657// item = 6; 1644// item = 6;
1658// } 1645// }
1659 for ( i = 4; i <= 18; i= i+2 ) 1646 for ( i = 4; i <= 18; i= i+2 )
1660 configureAgendaMenu->setItemChecked( i, false ); 1647 configureAgendaMenu->setItemChecked( i, false );
1661 configureAgendaMenu->setItemChecked( item, true ); 1648 configureAgendaMenu->setItemChecked( item, true );
1662 if ( p->mHourSize == item ) 1649 if ( p->mHourSize == item )
1663 return; 1650 return;
1664 p->mHourSize=item; 1651 p->mHourSize=item;
1665 mView->viewManager()->agendaView()->updateConfig(); 1652 mView->viewManager()->agendaView()->updateConfig();
1666} 1653}
1667 1654
1668void MainWindow::saveCalendar() 1655void MainWindow::saveCalendar()
1669{ 1656{
1670 QString fn = KOPrefs::instance()->mLastSaveFile; 1657 QString fn = KOPrefs::instance()->mLastSaveFile;
1671 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); 1658 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this );
1672 1659
1673 if ( fn == "" ) 1660 if ( fn == "" )
1674 return; 1661 return;
1675 QFileInfo info; 1662 QFileInfo info;
1676 info.setFile( fn ); 1663 info.setFile( fn );
1677 QString mes; 1664 QString mes;
1678 bool createbup = true; 1665 bool createbup = true;
1679 if ( info. exists() ) { 1666 if ( info. exists() ) {
1680 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; 1667 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ;
1681 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1668 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1682 i18n("Overwrite!"), i18n("Cancel"), 0, 1669 i18n("Overwrite!"), i18n("Cancel"), 0,
1683 0, 1 ); 1670 0, 1 );
1684 if ( result != 0 ) { 1671 if ( result != 0 ) {
1685 createbup = false; 1672 createbup = false;
1686 } 1673 }
1687 } 1674 }
1688 if ( createbup ) { 1675 if ( createbup ) {
1689 mView->saveCalendar( fn ); 1676 mView->saveCalendar( fn );
1690 mes = i18n("KO/Pi:Saved %1").arg(fn); 1677 mes = i18n("KO/Pi:Saved %1").arg(fn);
1691 KOPrefs::instance()->mLastSaveFile = fn; 1678 KOPrefs::instance()->mLastSaveFile = fn;
1692 setCaption(mes); 1679 setCaption(mes);
1693 } 1680 }
1694} 1681}
1695void MainWindow::loadCalendar() 1682void MainWindow::loadCalendar()
1696{ 1683{
1697 1684
1698 QString fn = KOPrefs::instance()->mLastLoadFile; 1685 QString fn = KOPrefs::instance()->mLastLoadFile;
1699 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); 1686 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this );
1700 1687
1701 if ( fn == "" ) 1688 if ( fn == "" )
1702 return; 1689 return;
1703 QFileInfo info; 1690 QFileInfo info;
1704 info.setFile( fn ); 1691 info.setFile( fn );
1705 QString mess; 1692 QString mess;
1706 bool loadbup = true; 1693 bool loadbup = true;
1707 if ( info. exists() ) { 1694 if ( info. exists() ) {
1708 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1695 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1709 int result = QMessageBox::warning( this, "KO/Pi: Warning!", 1696 int result = QMessageBox::warning( this, "KO/Pi: Warning!",
1710 mess, 1697 mess,
1711 i18n("Load!"), i18n("Cancel"), 0, 1698 i18n("Load!"), i18n("Cancel"), 0,
1712 0, 1 ); 1699 0, 1 );
1713 if ( result != 0 ) { 1700 if ( result != 0 ) {
1714 loadbup = false; 1701 loadbup = false;
1715 } 1702 }
1716 } else { 1703 } else {
1717 QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1704 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1718 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, 1705 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0,
1719 0, 1 ); 1706 0, 1 );
1720 1707
1721 return; 1708 return;
1722 } 1709 }
1723 if ( loadbup ) { 1710 if ( loadbup ) {
1724 mView->openCalendar( fn ); 1711 mView->openCalendar( fn );
1725 KOPrefs::instance()->mLastLoadFile = fn; 1712 KOPrefs::instance()->mLastLoadFile = fn;
1726 mess = i18n("KO/Pi:Loaded %1").arg(fn) ; 1713 mess = i18n("KO/Pi:Loaded %1").arg(fn) ;
1727 setCaption(mess); 1714 setCaption(mess);
1728 } 1715 }
1729 1716
1730} 1717}
1731void MainWindow::quickImportIcal() 1718void MainWindow::quickImportIcal()
1732{ 1719{
1733 importFile( KOPrefs::instance()->mLastImportFile, false ); 1720 importFile( KOPrefs::instance()->mLastImportFile, false );
1734} 1721}
1735void MainWindow::importFile( QString fn, bool quick ) 1722void MainWindow::importFile( QString fn, bool quick )
1736{ 1723{
1737 QFileInfo info; 1724 QFileInfo info;
1738 info.setFile( fn ); 1725 info.setFile( fn );
1739 QString mess; 1726 QString mess;
1740 bool loadbup = true; 1727 bool loadbup = true;
1741 if ( !info. exists() ) { 1728 if ( !info. exists() ) {
1742 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); 1729 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30));
1743 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1730 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1744 mess ); 1731 mess );
1745 return; 1732 return;
1746 } 1733 }
1747 int result = 0; 1734 int result = 0;
1748 if ( !quick ) { 1735 if ( !quick ) {
1749 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1736 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1750 result = QMessageBox::warning( this, "KO/Pi: Warning!", 1737 result = QMessageBox::warning( this, "KO/Pi: Warning!",
1751 mess, 1738 mess,
1752 "Import", "Cancel", 0, 1739 "Import", "Cancel", 0,
1753 0, 1 ); 1740 0, 1 );
1754 } 1741 }
1755 if ( result == 0 ) { 1742 if ( result == 0 ) {
1756 if ( mView->openCalendar( fn, true )) { 1743 if ( mView->openCalendar( fn, true )) {
1757 KOPrefs::instance()->mLastImportFile = fn; 1744 KOPrefs::instance()->mLastImportFile = fn;
1758 setCaption(i18n("Imported file successfully")); 1745 setCaption(i18n("Imported file successfully"));
1759 } else { 1746 } else {
1760 setCaption(i18n("Error importing file")); 1747 setCaption(i18n("Error importing file"));
1761 } 1748 }
1762 } 1749 }
1763} 1750}
1764 1751
1765void MainWindow::importIcal() 1752void MainWindow::importIcal()
1766{ 1753{
1767 1754
1768 QString fn =KOPrefs::instance()->mLastImportFile; 1755 QString fn =KOPrefs::instance()->mLastImportFile;
1769 1756
1770 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); 1757 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this );
1771 if ( fn == "" ) 1758 if ( fn == "" )
1772 return; 1759 return;
1773 importFile( fn, true ); 1760 importFile( fn, true );
1774 1761
1775} 1762}
1776 1763
1777void MainWindow::exportVCalendar() 1764void MainWindow::exportVCalendar()
1778{ 1765{
1779 QString fn = KOPrefs::instance()->mLastVcalFile; 1766 QString fn = KOPrefs::instance()->mLastVcalFile;
1780 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 1767 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
1781 if ( fn == "" ) 1768 if ( fn == "" )
1782 return; 1769 return;
1783 QFileInfo info; 1770 QFileInfo info;
1784 info.setFile( fn ); 1771 info.setFile( fn );
1785 QString mes; 1772 QString mes;
1786 bool createbup = true; 1773 bool createbup = true;
1787 if ( info. exists() ) { 1774 if ( info. exists() ) {
1788 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1775 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1789 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1776 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1790 i18n("Overwrite!"), i18n("Cancel"), 0, 1777 i18n("Overwrite!"), i18n("Cancel"), 0,
1791 0, 1 ); 1778 0, 1 );
1792 if ( result != 0 ) { 1779 if ( result != 0 ) {
1793 createbup = false; 1780 createbup = false;
1794 } 1781 }
1795 } 1782 }
1796 if ( createbup ) { 1783 if ( createbup ) {
1797 if ( mView->exportVCalendar( fn ) ) { 1784 if ( mView->exportVCalendar( fn ) ) {
1798 KOPrefs::instance()->mLastVcalFile = fn; 1785 KOPrefs::instance()->mLastVcalFile = fn;
1799 if ( fn.length() > 20 ) 1786 if ( fn.length() > 20 )
1800 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1787 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1801 else 1788 else
1802 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1789 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1803 setCaption(mes); 1790 setCaption(mes);
1804 } 1791 }
1805 } 1792 }
1806 1793
1807} 1794}
1808 1795
1809void MainWindow::syncFileRequest() 1796void MainWindow::syncFileRequest()
1810{ 1797{
1811 save(); 1798 save();
1812} 1799}
1813void MainWindow::getFile( bool success ) 1800void MainWindow::getFile( bool success )
1814{ 1801{
1815 if ( ! success ) { 1802 if ( ! success ) {
1816 setCaption( i18n("Error receiving file. Nothing changed!") ); 1803 setCaption( i18n("Error receiving file. Nothing changed!") );
1817 return; 1804 return;
1818 } 1805 }
1819 mView->openCalendar( defaultFileName() ); 1806 mView->openCalendar( defaultFileName() );
1820 setCaption( i18n("Pi-Sync successful!") ); 1807 setCaption( i18n("Pi-Sync successful!") );
1821} 1808}
1822 1809
1823void MainWindow::printSel( ) 1810void MainWindow::printSel( )
1824{ 1811{
1825 mView->viewManager()->agendaView()->agenda()->printSelection(); 1812 mView->viewManager()->agendaView()->agenda()->printSelection();
1826} 1813}
1827 1814
1828void MainWindow::printCal() 1815void MainWindow::printCal()
1829{ 1816{
1830 mView->print();//mCp->showDialog(); 1817 mView->print();//mCp->showDialog();
1831} 1818}
1832 1819