summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-12-04 13:59:01 (UTC)
committer zautrix <zautrix>2004-12-04 13:59:01 (UTC)
commita3b1470f3da722d044505f78bef9de51b2107802 (patch) (unidiff)
tree52965f580d00f865231661ff3d51af5c881e77cc
parent7828f46413766ee5db72dc9bd457eac0868f0646 (diff)
downloadkdepimpi-a3b1470f3da722d044505f78bef9de51b2107802.zip
kdepimpi-a3b1470f3da722d044505f78bef9de51b2107802.tar.gz
kdepimpi-a3b1470f3da722d044505f78bef9de51b2107802.tar.bz2
monthview changes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt6
-rw-r--r--korganizer/calendarview.cpp5
-rw-r--r--korganizer/datenavigator.cpp6
-rw-r--r--korganizer/datenavigator.h1
-rw-r--r--korganizer/interfaces/korganizer/baseview.h1
-rw-r--r--korganizer/komonthview.h1
6 files changed, 19 insertions, 1 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index eb7cf13..4fff7e1 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,279 +1,285 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 1.9.14 ************ 3********** VERSION 1.9.14 ************
4 4
5Fixed some problems with the dialog sizes when switching 5Fixed some problems with the dialog sizes when switching
6portrait/landscape mode on 640x480 PDA display. 6portrait/landscape mode on 640x480 PDA display.
7 7
8Fixed some other small bugs. 8Fixed some other small bugs.
9 9
10Fixed an ugly bug in KOpieMail: 10Fixed an ugly bug in KOpieMail:
11KOpieMail was not able to write files (mails) to MSDOS file system, 11KOpieMail was not able to write files (mails) to MSDOS file system,
12like on an usual preformatted SD card. That should work now. 12like on an usual preformatted SD card. That should work now.
13To save your mail data on the Sd card do the following: 13To save your mail data on the Sd card do the following:
14Create a dir on the SD card: 14Create a dir on the SD card:
15mkdir /mnt/card/localmail 15mkdir /mnt/card/localmail
16Go to your home dir: 16Go to your home dir:
17cd 17cd
18Go to kopiemail data storage dir: 18Go to kopiemail data storage dir:
19cd kdepim/apps/kopiemail 19cd kdepim/apps/kopiemail
20Create a symlink to the SD card: 20Create a symlink to the SD card:
21ls -s /mnt/card/localmail 21ls -s /mnt/card/localmail
22Now KOpieMail will store all mails on the SD card. 22Now KOpieMail will store all mails on the SD card.
23 23
24KO/Pi Monthview:
25Now "Go to Today" selects the current month from day 1-end,
26not the current date + some days.
27I.e. "Go to Today" shows now always
28the current month with first day of month in the first row.
29
24 30
25********** VERSION 1.9.13 ************ 31********** VERSION 1.9.13 ************
26 32
27Fixed nasty PwM/Pi file reading bug, when 33Fixed nasty PwM/Pi file reading bug, when
28the used hash algo of file is different then the global 34the used hash algo of file is different then the global
29hash algo. 35hash algo.
30 36
31Added KA/Pi support for opie mailit mailapplication. 37Added KA/Pi support for opie mailit mailapplication.
32 38
33Fixed some bugs in OM/Pi. 39Fixed some bugs in OM/Pi.
34Now character conversion tables are available for the Zaurus 40Now character conversion tables are available for the Zaurus
35to make OM/Pi working properly. 41to make OM/Pi working properly.
36To get the character conversion in OM/Pi working, please download 42To get the character conversion in OM/Pi working, please download
37at the sourceforge project site the package 43at the sourceforge project site the package
38sr-character-conversion_SharpROM_arm.ipk.zip 44sr-character-conversion_SharpROM_arm.ipk.zip
39(or oz-character-conversion_OZ-gcc3xx_arm.ipk.zip for OZ roms) 45(or oz-character-conversion_OZ-gcc3xx_arm.ipk.zip for OZ roms)
40from the section "general files for KDE/Pim" 46from the section "general files for KDE/Pim"
41Instructions how to install this package are in a ReadMe in this file. 47Instructions how to install this package are in a ReadMe in this file.
42 48
43 49
44Fixed the orientation change problem in KA/Pi when switching 50Fixed the orientation change problem in KA/Pi when switching
45portrait/landscape mode. 51portrait/landscape mode.
46 52
47French translation available for KA/Pi and OM/Pi. 53French translation available for KA/Pi and OM/Pi.
48 54
49Fixed some problems with categories in KO/Pi in DTM sync. 55Fixed some problems with categories in KO/Pi in DTM sync.
50 56
51Added selection dialog for export to phone in KA/Pi. 57Added selection dialog for export to phone in KA/Pi.
52 58
53If in KO/Pi is an attendee selected to add to a meeting and this 59If in KO/Pi is an attendee selected to add to a meeting and this
54attendee is already in the list of attendees, this person is not added 60attendee is already in the list of attendees, this person is not added
55again. 61again.
56 62
57Some menu cleanup in KA/Pi. 63Some menu cleanup in KA/Pi.
58 64
59********** VERSION 1.9.12 ************ 65********** VERSION 1.9.12 ************
60 66
61Fix for the bug in KO/Pi What's Next view of version 1.9.11. 67Fix for the bug in KO/Pi What's Next view of version 1.9.11.
62 68
63Bugfix: Licence file is now shown again. 69Bugfix: Licence file is now shown again.
64 70
65OM/Pi now supports Unicode (utf8 charset). 71OM/Pi now supports Unicode (utf8 charset).
66Fixed some bugs in OM/Pi. 72Fixed some bugs in OM/Pi.
67 73
68KA/Pi has more German translation. 74KA/Pi has more German translation.
69 75
70 76
71********** VERSION 1.9.11 ************ 77********** VERSION 1.9.11 ************
72 78
73Fixed several problems in PWM/Pi, like 79Fixed several problems in PWM/Pi, like
74asking the user, if unsaved changed are pending 80asking the user, if unsaved changed are pending
75when closing the app. 81when closing the app.
76And PwM/Pi handles now different texts for the 82And PwM/Pi handles now different texts for the
77fields Description, Username, Password, configurable per category. 83fields Description, Username, Password, configurable per category.
78 84
79Fixed a crash in KO/Pi , when importing/loading vcs files 85Fixed a crash in KO/Pi , when importing/loading vcs files
80which have an entry with an attendee with state: 86which have an entry with an attendee with state:
81NEEDS ACTION 87NEEDS ACTION
82 88
83Fixed some problems in the German translation of OM/Pi, 89Fixed some problems in the German translation of OM/Pi,
84which makes some dialogs not fitting on the screen 90which makes some dialogs not fitting on the screen
85of the Z 5500. 91of the Z 5500.
86 92
87Fixed Qtopia crash, when disabling/deinstalling 93Fixed Qtopia crash, when disabling/deinstalling
88KO/Pi alarm applet. 94KO/Pi alarm applet.
89 95
90Implemented direct KDE<->KA/Pi sync for KA/Pi running 96Implemented direct KDE<->KA/Pi sync for KA/Pi running
91on Linux desktop. 97on Linux desktop.
92 98
93Added feature "remove sync info" to sync menu. 99Added feature "remove sync info" to sync menu.
94 100
95Tweaked the KO/Pi What's next view a bit, added 101Tweaked the KO/Pi What's next view a bit, added
96setting to hide events that are done. 102setting to hide events that are done.
97 103
98Disabled "beam receive enabled" on startup to 104Disabled "beam receive enabled" on startup to
99avoid problems if Fastload is enabled. 105avoid problems if Fastload is enabled.
100Please set "beam receive enabled", 106Please set "beam receive enabled",
101if you want to receive data via IR. 107if you want to receive data via IR.
102 108
103Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running 109Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running
104on Linux desktop. 110on Linux desktop.
105 111
106Made in KA/Pi scrolling possible, if details view is selected. 112Made in KA/Pi scrolling possible, if details view is selected.
107(The keyboard focus is set automatically to the search line) 113(The keyboard focus is set automatically to the search line)
108 114
109Fixed a bug in DMT sync, that a new entry in DTM was added 115Fixed a bug in DMT sync, that a new entry in DTM was added
110on every sync to Kx/Pi. 116on every sync to Kx/Pi.
111 117
112Fixed missing writing of KA/Pi categories to DMT entries when syncing. 118Fixed missing writing of KA/Pi categories to DMT entries when syncing.
113 119
114Fixed a bug in DMT sync with todos created in KO/Pi containing 120Fixed a bug in DMT sync with todos created in KO/Pi containing
115non-latin1 characters. 121non-latin1 characters.
116 122
117Rearranged package contents of Sharp-ipks and made all 123Rearranged package contents of Sharp-ipks and made all
118packages installable on SD again. 124packages installable on SD again.
119 125
120Fixed the writing of addressbook data in DTM sync. 126Fixed the writing of addressbook data in DTM sync.
121Empty fields in KA/Pi were not removed. 127Empty fields in KA/Pi were not removed.
122 128
123Added better category handling in KA/Pi: 129Added better category handling in KA/Pi:
124Added item 130Added item
125Edit Categories and 131Edit Categories and
126Manage new categories 132Manage new categories
127to the settings menu. 133to the settings menu.
128Possible to configure a view to display categories. 134Possible to configure a view to display categories.
129 135
130Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu. 136Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu.
131 137
132Fixed displaying of "free" days and time in KO Monthview and Agendaview. 138Fixed displaying of "free" days and time in KO Monthview and Agendaview.
133 139
134... and many other bugfixes. 140... and many other bugfixes.
135 141
136********** VERSION 1.9.10 ************ 142********** VERSION 1.9.10 ************
137 143
138Many internal small bugfixes. 144Many internal small bugfixes.
139And fix of the "big" bug in KO/Pi, 145And fix of the "big" bug in KO/Pi,
140that after Syncing the appointments had an offset by several hours. 146that after Syncing the appointments had an offset by several hours.
141That was a problem with the internal timezone setting, 147That was a problem with the internal timezone setting,
142introduced by the changed timezone configuration settings. 148introduced by the changed timezone configuration settings.
143 149
144German translation for OM/Pi is now available. 150German translation for OM/Pi is now available.
145 151
146 152
147********** VERSION 1.9.9 ************ 153********** VERSION 1.9.9 ************
148 154
149KDE-Pim/Pi has a new Member! 155KDE-Pim/Pi has a new Member!
150It is called PWM/Pi (Passwordmanager/platform-independent) 156It is called PWM/Pi (Passwordmanager/platform-independent)
151and it is available for the Zaurus. 157and it is available for the Zaurus.
152It is planned, that it will be available later for Windows. 158It is planned, that it will be available later for Windows.
153(And for Linux, of course). 159(And for Linux, of course).
154It is a port of the Passwordmanager of KDE. 160It is a port of the Passwordmanager of KDE.
155It will need the MicroKDElibs to run. 161It will need the MicroKDElibs to run.
156 162
157Made loading of addressbooks in KA/Pi up to 7 times faster! 163Made loading of addressbooks in KA/Pi up to 7 times faster!
158The bigger your addressbook file, the more starting speed 164The bigger your addressbook file, the more starting speed
159will you gain. (relatively) 165will you gain. (relatively)
160 166
161The Qtopia addressbook connector is now platform independend 167The Qtopia addressbook connector is now platform independend
162as well and should work on any platform for importing/exporting 168as well and should work on any platform for importing/exporting
163Qtopia and Opie XML files. 169Qtopia and Opie XML files.
164 170
165Added a +30min feature to the timezone settings to make 171Added a +30min feature to the timezone settings to make
166KDE-Pim/Pi useable in Australia and other parts on the 172KDE-Pim/Pi useable in Australia and other parts on the
167world with strange timezones ;-) 173world with strange timezones ;-)
168 174
169German "Umlaute" should now be sorted correctly on the Z in KA/Pi. 175German "Umlaute" should now be sorted correctly on the Z in KA/Pi.
170 176
171It is now possible to disable the 177It is now possible to disable the
172"receive data via infrared" feature, such that syncing with 178"receive data via infrared" feature, such that syncing with
173Outlook is now possible again with Kx/Pi runing. 179Outlook is now possible again with Kx/Pi runing.
174Please disable it, before syncing Sharp DTM with Outlook. 180Please disable it, before syncing Sharp DTM with Outlook.
175For your convenience, the "receive data via infrared" feature 181For your convenience, the "receive data via infrared" feature
176is disabled automatically, if you sync Kx/Pi with DTM. 182is disabled automatically, if you sync Kx/Pi with DTM.
177You have to enable it again manually after syncing. 183You have to enable it again manually after syncing.
178Enabling this feature makes it impossible to start the 184Enabling this feature makes it impossible to start the
179Sharp DTM apps. If this feature is enabled, you will only get the 185Sharp DTM apps. If this feature is enabled, you will only get the
180alarm notification from KO/Pi and not from the Sharp calendar. 186alarm notification from KO/Pi and not from the Sharp calendar.
181This is very useful if you sync KO/Pi with Sharp DTM, 187This is very useful if you sync KO/Pi with Sharp DTM,
182because after syncing you usually would get notified about 188because after syncing you usually would get notified about
183an alarm by KO/Pi and the Sharp Calendar. 189an alarm by KO/Pi and the Sharp Calendar.
184 190
185Together with the Linux desktop version of KO/Pi 191Together with the Linux desktop version of KO/Pi
186it is now possible to sync KO/Pi on the Zaurus 192it is now possible to sync KO/Pi on the Zaurus
187with the complete KDE-desktop (3.3 or later) 193with the complete KDE-desktop (3.3 or later)
188calendar data easily. 194calendar data easily.
189That makes it possible to sync the Z with one 195That makes it possible to sync the Z with one
190click of a mouse with the KDE-Desktop. 196click of a mouse with the KDE-Desktop.
191This feature it available for all Zaurus platforms KO/Pi 197This feature it available for all Zaurus platforms KO/Pi
192is running on. 198is running on.
193The only thing needed is a running KO/Pi on Linux and 199The only thing needed is a running KO/Pi on Linux and
194a compiled version of the small 200a compiled version of the small
195KDE-Pim/Pi<->KDE-Desktop access command line program, 201KDE-Pim/Pi<->KDE-Desktop access command line program,
196which is in the KDE-Pim/Pi sources available. 202which is in the KDE-Pim/Pi sources available.
197 203
198The "KDE-desktop" syncing feature for KA/Pi will follow 204The "KDE-desktop" syncing feature for KA/Pi will follow
199in the next releases. 205in the next releases.
200 206
201Fixed the vcard export bug, which had the version 1.9.8. 207Fixed the vcard export bug, which had the version 1.9.8.
202 208
203Added missing GERMAN translation to KO/Pi. 209Added missing GERMAN translation to KO/Pi.
204Hi PsionX, could you add the missing french translation?Thx! 210Hi PsionX, could you add the missing french translation?Thx!
205 211
206Translation files for KA/Pi are available as well. 212Translation files for KA/Pi are available as well.
207GERMAN translation will be available in the next release. 213GERMAN translation will be available in the next release.
208PsionX ( yres, you again ;-) ), could you start translating 214PsionX ( yres, you again ;-) ), could you start translating
209KA/Pi? Thx! 215KA/Pi? Thx!
210 216
211You can download the version 1.9.9 at 217You can download the version 1.9.9 at
212 218
213http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=112604 219http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=112604
214 220
215Note: 221Note:
216To run the mail program OM/Pi you need libopenssl. 222To run the mail program OM/Pi you need libopenssl.
217A link to a download loaction is available at 223A link to a download loaction is available at
218ZSI at www.killefiz.de 224ZSI at www.killefiz.de
219 225
220 226
221********** VERSION 1.9.8 ************ 227********** VERSION 1.9.8 ************
222 228
223Fixed character decoding in OM/Pi. 229Fixed character decoding in OM/Pi.
224(e.g. German "Umlaute" were not displayed properly.) 230(e.g. German "Umlaute" were not displayed properly.)
225 231
226Made is possible to reparent todos in KO/Pi. 232Made is possible to reparent todos in KO/Pi.
227Use contextmenu or keys (look at Help-Keys + Colors) for that. 233Use contextmenu or keys (look at Help-Keys + Colors) for that.
228 234
229Added the missing Sync-Howto and WhatsNew to the packages. 235Added the missing Sync-Howto and WhatsNew to the packages.
230 236
231KO/Pi on Linux desktop can now sync with KDE desktop. 237KO/Pi on Linux desktop can now sync with KDE desktop.
232That means: When using KO/Pi on Linux desktop for syncing with 238That means: When using KO/Pi on Linux desktop for syncing with
233KDE desktop and the Zaurus, the Zaurus can be synced now 239KDE desktop and the Zaurus, the Zaurus can be synced now
234with all KDE-Calendar resources, not only with one local file. 240with all KDE-Calendar resources, not only with one local file.
235(That makes it possible to sync the Zaurus with the 241(That makes it possible to sync the Zaurus with the
236calendar data on a Kolab server) 242calendar data on a Kolab server)
237 243
238KA/Pi syncing with KDE desktop will be available in the next version. 244KA/Pi syncing with KDE desktop will be available in the next version.
239 245
240 246
241********** VERSION 1.9.7 ************ 247********** VERSION 1.9.7 ************
242 248
243KO/Pi - KA/Pi on Windows: 249KO/Pi - KA/Pi on Windows:
244Now a directory can be defined by the user, where the 250Now a directory can be defined by the user, where the
245application/config data should be saved. 251application/config data should be saved.
246 Define your desired path in the evironment variable 252 Define your desired path in the evironment variable
247 MICROKDEHOME 253 MICROKDEHOME
248 before starting KO/Pi or KA/Pi. 254 before starting KO/Pi or KA/Pi.
249 255
250An easy Kx/Pi to Kx/Pi syncing is now possible 256An easy Kx/Pi to Kx/Pi syncing is now possible
251(it is called Pi-Sync) via network. 257(it is called Pi-Sync) via network.
252Please look at the Sync Howto. 258Please look at the Sync Howto.
253 259
254Exporting of calendar data and contacts to mobile phones is now possible. 260Exporting of calendar data and contacts to mobile phones is now possible.
255The SyncHowto is updated with information howto 261The SyncHowto is updated with information howto
256access/sync mobile phones. 262access/sync mobile phones.
257Please look at the Sync Howto. 263Please look at the Sync Howto.
258 264
259Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly. 265Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly.
260Please disable Fastload for the original contact/calendar applications 266Please disable Fastload for the original contact/calendar applications
261and close them. 267and close them.
262KO/Pi and KA/Pi must be running in order to receive the data. 268KO/Pi and KA/Pi must be running in order to receive the data.
263(KO/Pi and KA/Pi are always running if Fastload for them is enabled!) 269(KO/Pi and KA/Pi are always running if Fastload for them is enabled!)
264 270
265In the KA/Pi details view are now the preferred tel. numbers displayed on top 271In the KA/Pi details view are now the preferred tel. numbers displayed on top
266of the other data ( emails/tel.numbers/addresses) 272of the other data ( emails/tel.numbers/addresses)
267 273
268Fixed some syncing problems in KA/Pi. 274Fixed some syncing problems in KA/Pi.
269 275
270Added font settings for the KA/Pi details view. 276Added font settings for the KA/Pi details view.
271Added fields "children's name" and "gender" to KA/Pi. 277Added fields "children's name" and "gender" to KA/Pi.
272 278
273Made searching in KA/Pi better: 279Made searching in KA/Pi better:
274Now the first item in a view is selected after a search automatically and 280Now the first item in a view is selected after a search automatically and
275the views can be scrolled up/down when the search input field has the keyboard focus. 281the views can be scrolled up/down when the search input field has the keyboard focus.
276 282
277And, of course, fixed a bunch of reported bugs in KO/Pi and KA/Pi. 283And, of course, fixed a bunch of reported bugs in KO/Pi and KA/Pi.
278 284
279 285
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 3908dbb..47cd488 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1738,513 +1738,516 @@ void CalendarView::closeCalendar()
1738 1738
1739void CalendarView::archiveCalendar() 1739void CalendarView::archiveCalendar()
1740{ 1740{
1741 mDialogManager->showArchiveDialog(); 1741 mDialogManager->showArchiveDialog();
1742} 1742}
1743 1743
1744 1744
1745void CalendarView::readSettings() 1745void CalendarView::readSettings()
1746{ 1746{
1747 1747
1748 1748
1749 // mViewManager->showAgendaView(); 1749 // mViewManager->showAgendaView();
1750 QString str; 1750 QString str;
1751 //qDebug("CalendarView::readSettings() "); 1751 //qDebug("CalendarView::readSettings() ");
1752 // read settings from the KConfig, supplying reasonable 1752 // read settings from the KConfig, supplying reasonable
1753 // defaults where none are to be found 1753 // defaults where none are to be found
1754 KConfig *config = KOGlobals::config(); 1754 KConfig *config = KOGlobals::config();
1755#ifndef KORG_NOSPLITTER 1755#ifndef KORG_NOSPLITTER
1756 config->setGroup("KOrganizer Geometry"); 1756 config->setGroup("KOrganizer Geometry");
1757 1757
1758 QValueList<int> sizes = config->readIntListEntry("Separator1"); 1758 QValueList<int> sizes = config->readIntListEntry("Separator1");
1759 if (sizes.count() != 2) { 1759 if (sizes.count() != 2) {
1760 sizes << mDateNavigator->minimumSizeHint().width(); 1760 sizes << mDateNavigator->minimumSizeHint().width();
1761 sizes << 300; 1761 sizes << 300;
1762 } 1762 }
1763 mPanner->setSizes(sizes); 1763 mPanner->setSizes(sizes);
1764 1764
1765 sizes = config->readIntListEntry("Separator2"); 1765 sizes = config->readIntListEntry("Separator2");
1766 if ( ( mResourceView && sizes.count() == 4 ) || 1766 if ( ( mResourceView && sizes.count() == 4 ) ||
1767 ( !mResourceView && sizes.count() == 3 ) ) { 1767 ( !mResourceView && sizes.count() == 3 ) ) {
1768 mLeftSplitter->setSizes(sizes); 1768 mLeftSplitter->setSizes(sizes);
1769 } 1769 }
1770#endif 1770#endif
1771 globalFlagBlockAgenda = 1; 1771 globalFlagBlockAgenda = 1;
1772 mViewManager->showAgendaView(); 1772 mViewManager->showAgendaView();
1773 //mViewManager->readSettings( config ); 1773 //mViewManager->readSettings( config );
1774 mTodoList->restoreLayout(config,QString("Todo Layout")); 1774 mTodoList->restoreLayout(config,QString("Todo Layout"));
1775 readFilterSettings(config); 1775 readFilterSettings(config);
1776 config->setGroup( "Views" ); 1776 config->setGroup( "Views" );
1777 int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); 1777 int dateCount = config->readNumEntry( "ShownDatesCount", 7 );
1778 if ( dateCount == 5 ) mNavigator->selectWorkWeek(); 1778 if ( dateCount == 5 ) mNavigator->selectWorkWeek();
1779 else if ( dateCount == 7 ) mNavigator->selectWeek(); 1779 else if ( dateCount == 7 ) mNavigator->selectWeek();
1780 else mNavigator->selectDates( dateCount ); 1780 else mNavigator->selectDates( dateCount );
1781 // mViewManager->readSettings( config ); 1781 // mViewManager->readSettings( config );
1782 updateConfig(); 1782 updateConfig();
1783 globalFlagBlockAgenda = 2; 1783 globalFlagBlockAgenda = 2;
1784 mViewManager->readSettings( config ); 1784 mViewManager->readSettings( config );
1785#ifdef DESKTOP_VERSION 1785#ifdef DESKTOP_VERSION
1786 config->setGroup("WidgetLayout"); 1786 config->setGroup("WidgetLayout");
1787 QStringList list; 1787 QStringList list;
1788 list = config->readListEntry("MainLayout"); 1788 list = config->readListEntry("MainLayout");
1789 int x,y,w,h; 1789 int x,y,w,h;
1790 if ( ! list.isEmpty() ) { 1790 if ( ! list.isEmpty() ) {
1791 x = list[0].toInt(); 1791 x = list[0].toInt();
1792 y = list[1].toInt(); 1792 y = list[1].toInt();
1793 w = list[2].toInt(); 1793 w = list[2].toInt();
1794 h = list[3].toInt(); 1794 h = list[3].toInt();
1795 topLevelWidget()->setGeometry(x,y,w,h); 1795 topLevelWidget()->setGeometry(x,y,w,h);
1796 1796
1797 } else { 1797 } else {
1798 topLevelWidget()->setGeometry( 40 ,40 , 640, 440); 1798 topLevelWidget()->setGeometry( 40 ,40 , 640, 440);
1799 } 1799 }
1800 list = config->readListEntry("EditEventLayout"); 1800 list = config->readListEntry("EditEventLayout");
1801 if ( ! list.isEmpty() ) { 1801 if ( ! list.isEmpty() ) {
1802 x = list[0].toInt(); 1802 x = list[0].toInt();
1803 y = list[1].toInt(); 1803 y = list[1].toInt();
1804 w = list[2].toInt(); 1804 w = list[2].toInt();
1805 h = list[3].toInt(); 1805 h = list[3].toInt();
1806 mEventEditor->setGeometry(x,y,w,h); 1806 mEventEditor->setGeometry(x,y,w,h);
1807 1807
1808 } 1808 }
1809 list = config->readListEntry("EditTodoLayout"); 1809 list = config->readListEntry("EditTodoLayout");
1810 if ( ! list.isEmpty() ) { 1810 if ( ! list.isEmpty() ) {
1811 x = list[0].toInt(); 1811 x = list[0].toInt();
1812 y = list[1].toInt(); 1812 y = list[1].toInt();
1813 w = list[2].toInt(); 1813 w = list[2].toInt();
1814 h = list[3].toInt(); 1814 h = list[3].toInt();
1815 mTodoEditor->setGeometry(x,y,w,h); 1815 mTodoEditor->setGeometry(x,y,w,h);
1816 1816
1817 } 1817 }
1818 list = config->readListEntry("ViewerLayout"); 1818 list = config->readListEntry("ViewerLayout");
1819 if ( ! list.isEmpty() ) { 1819 if ( ! list.isEmpty() ) {
1820 x = list[0].toInt(); 1820 x = list[0].toInt();
1821 y = list[1].toInt(); 1821 y = list[1].toInt();
1822 w = list[2].toInt(); 1822 w = list[2].toInt();
1823 h = list[3].toInt(); 1823 h = list[3].toInt();
1824 getEventViewerDialog()->setGeometry(x,y,w,h); 1824 getEventViewerDialog()->setGeometry(x,y,w,h);
1825 } 1825 }
1826#endif 1826#endif
1827 1827
1828} 1828}
1829 1829
1830 1830
1831void CalendarView::writeSettings() 1831void CalendarView::writeSettings()
1832{ 1832{
1833 // kdDebug() << "CalendarView::writeSettings" << endl; 1833 // kdDebug() << "CalendarView::writeSettings" << endl;
1834 1834
1835 KConfig *config = KOGlobals::config(); 1835 KConfig *config = KOGlobals::config();
1836 1836
1837#ifndef KORG_NOSPLITTER 1837#ifndef KORG_NOSPLITTER
1838 config->setGroup("KOrganizer Geometry"); 1838 config->setGroup("KOrganizer Geometry");
1839 1839
1840 QValueList<int> list = mPanner->sizes(); 1840 QValueList<int> list = mPanner->sizes();
1841 config->writeEntry("Separator1",list); 1841 config->writeEntry("Separator1",list);
1842 1842
1843 list = mLeftSplitter->sizes(); 1843 list = mLeftSplitter->sizes();
1844 config->writeEntry("Separator2",list); 1844 config->writeEntry("Separator2",list);
1845#endif 1845#endif
1846 1846
1847 mViewManager->writeSettings( config ); 1847 mViewManager->writeSettings( config );
1848 mTodoList->saveLayout(config,QString("Todo Layout")); 1848 mTodoList->saveLayout(config,QString("Todo Layout"));
1849 mDialogManager->writeSettings( config ); 1849 mDialogManager->writeSettings( config );
1850 //KOPrefs::instance()->usrWriteConfig(); 1850 //KOPrefs::instance()->usrWriteConfig();
1851 KOPrefs::instance()->writeConfig(); 1851 KOPrefs::instance()->writeConfig();
1852 1852
1853 writeFilterSettings(config); 1853 writeFilterSettings(config);
1854 1854
1855 config->setGroup( "Views" ); 1855 config->setGroup( "Views" );
1856 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() ); 1856 config->writeEntry( "ShownDatesCount", mNavigator->selectedDates().count() );
1857 1857
1858#ifdef DESKTOP_VERSION 1858#ifdef DESKTOP_VERSION
1859 config->setGroup("WidgetLayout"); 1859 config->setGroup("WidgetLayout");
1860 QStringList list ;//= config->readListEntry("MainLayout"); 1860 QStringList list ;//= config->readListEntry("MainLayout");
1861 int x,y,w,h; 1861 int x,y,w,h;
1862 QWidget* wid; 1862 QWidget* wid;
1863 wid = topLevelWidget(); 1863 wid = topLevelWidget();
1864 x = wid->geometry().x(); 1864 x = wid->geometry().x();
1865 y = wid->geometry().y(); 1865 y = wid->geometry().y();
1866 w = wid->width(); 1866 w = wid->width();
1867 h = wid->height(); 1867 h = wid->height();
1868 list.clear(); 1868 list.clear();
1869 list << QString::number( x ); 1869 list << QString::number( x );
1870 list << QString::number( y ); 1870 list << QString::number( y );
1871 list << QString::number( w ); 1871 list << QString::number( w );
1872 list << QString::number( h ); 1872 list << QString::number( h );
1873 config->writeEntry("MainLayout",list ); 1873 config->writeEntry("MainLayout",list );
1874 1874
1875 wid = mEventEditor; 1875 wid = mEventEditor;
1876 x = wid->geometry().x(); 1876 x = wid->geometry().x();
1877 y = wid->geometry().y(); 1877 y = wid->geometry().y();
1878 w = wid->width(); 1878 w = wid->width();
1879 h = wid->height(); 1879 h = wid->height();
1880 list.clear(); 1880 list.clear();
1881 list << QString::number( x ); 1881 list << QString::number( x );
1882 list << QString::number( y ); 1882 list << QString::number( y );
1883 list << QString::number( w ); 1883 list << QString::number( w );
1884 list << QString::number( h ); 1884 list << QString::number( h );
1885 config->writeEntry("EditEventLayout",list ); 1885 config->writeEntry("EditEventLayout",list );
1886 1886
1887 wid = mTodoEditor; 1887 wid = mTodoEditor;
1888 x = wid->geometry().x(); 1888 x = wid->geometry().x();
1889 y = wid->geometry().y(); 1889 y = wid->geometry().y();
1890 w = wid->width(); 1890 w = wid->width();
1891 h = wid->height(); 1891 h = wid->height();
1892 list.clear(); 1892 list.clear();
1893 list << QString::number( x ); 1893 list << QString::number( x );
1894 list << QString::number( y ); 1894 list << QString::number( y );
1895 list << QString::number( w ); 1895 list << QString::number( w );
1896 list << QString::number( h ); 1896 list << QString::number( h );
1897 config->writeEntry("EditTodoLayout",list ); 1897 config->writeEntry("EditTodoLayout",list );
1898 wid = getEventViewerDialog(); 1898 wid = getEventViewerDialog();
1899 x = wid->geometry().x(); 1899 x = wid->geometry().x();
1900 y = wid->geometry().y(); 1900 y = wid->geometry().y();
1901 w = wid->width(); 1901 w = wid->width();
1902 h = wid->height(); 1902 h = wid->height();
1903 list.clear(); 1903 list.clear();
1904 list << QString::number( x ); 1904 list << QString::number( x );
1905 list << QString::number( y ); 1905 list << QString::number( y );
1906 list << QString::number( w ); 1906 list << QString::number( w );
1907 list << QString::number( h ); 1907 list << QString::number( h );
1908 config->writeEntry("ViewerLayout",list ); 1908 config->writeEntry("ViewerLayout",list );
1909 wid = mDialogManager->getSearchDialog(); 1909 wid = mDialogManager->getSearchDialog();
1910 if ( wid ) { 1910 if ( wid ) {
1911 x = wid->geometry().x(); 1911 x = wid->geometry().x();
1912 y = wid->geometry().y(); 1912 y = wid->geometry().y();
1913 w = wid->width(); 1913 w = wid->width();
1914 h = wid->height(); 1914 h = wid->height();
1915 list.clear(); 1915 list.clear();
1916 list << QString::number( x ); 1916 list << QString::number( x );
1917 list << QString::number( y ); 1917 list << QString::number( y );
1918 list << QString::number( w ); 1918 list << QString::number( w );
1919 list << QString::number( h ); 1919 list << QString::number( h );
1920 config->writeEntry("SearchLayout",list ); 1920 config->writeEntry("SearchLayout",list );
1921 } 1921 }
1922#endif 1922#endif
1923 1923
1924 1924
1925 config->sync(); 1925 config->sync();
1926} 1926}
1927 1927
1928void CalendarView::readFilterSettings(KConfig *config) 1928void CalendarView::readFilterSettings(KConfig *config)
1929{ 1929{
1930 // kdDebug() << "CalendarView::readFilterSettings()" << endl; 1930 // kdDebug() << "CalendarView::readFilterSettings()" << endl;
1931 1931
1932 mFilters.clear(); 1932 mFilters.clear();
1933 1933
1934 config->setGroup("General"); 1934 config->setGroup("General");
1935 QStringList filterList = config->readListEntry("CalendarFilters"); 1935 QStringList filterList = config->readListEntry("CalendarFilters");
1936 1936
1937 QStringList::ConstIterator it = filterList.begin(); 1937 QStringList::ConstIterator it = filterList.begin();
1938 QStringList::ConstIterator end = filterList.end(); 1938 QStringList::ConstIterator end = filterList.end();
1939 while(it != end) { 1939 while(it != end) {
1940 // kdDebug() << " filter: " << (*it) << endl; 1940 // kdDebug() << " filter: " << (*it) << endl;
1941 1941
1942 CalFilter *filter; 1942 CalFilter *filter;
1943 filter = new CalFilter(*it); 1943 filter = new CalFilter(*it);
1944 config->setGroup("Filter_" + (*it)); 1944 config->setGroup("Filter_" + (*it));
1945 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) ); 1945 //qDebug("readFilterSettings %d ",config->readNumEntry("Criteria",0) );
1946 filter->setCriteria(config->readNumEntry("Criteria",0)); 1946 filter->setCriteria(config->readNumEntry("Criteria",0));
1947 filter->setCategoryList(config->readListEntry("CategoryList")); 1947 filter->setCategoryList(config->readListEntry("CategoryList"));
1948 mFilters.append(filter); 1948 mFilters.append(filter);
1949 1949
1950 ++it; 1950 ++it;
1951 } 1951 }
1952 1952
1953 if (mFilters.count() == 0) { 1953 if (mFilters.count() == 0) {
1954 CalFilter *filter = new CalFilter(i18n("Default")); 1954 CalFilter *filter = new CalFilter(i18n("Default"));
1955 mFilters.append(filter); 1955 mFilters.append(filter);
1956 } 1956 }
1957 mFilterView->updateFilters(); 1957 mFilterView->updateFilters();
1958 config->setGroup("FilterView"); 1958 config->setGroup("FilterView");
1959 1959
1960 mFilterView->blockSignals(true); 1960 mFilterView->blockSignals(true);
1961 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled")); 1961 mFilterView->setFiltersEnabled(config->readBoolEntry("FilterEnabled"));
1962 mFilterView->setSelectedFilter(config->readEntry("Current Filter")); 1962 mFilterView->setSelectedFilter(config->readEntry("Current Filter"));
1963 mFilterView->blockSignals(false); 1963 mFilterView->blockSignals(false);
1964 // We do it manually to avoid it being done twice by the above calls 1964 // We do it manually to avoid it being done twice by the above calls
1965 updateFilter(); 1965 updateFilter();
1966} 1966}
1967 1967
1968void CalendarView::writeFilterSettings(KConfig *config) 1968void CalendarView::writeFilterSettings(KConfig *config)
1969{ 1969{
1970 // kdDebug() << "CalendarView::writeFilterSettings()" << endl; 1970 // kdDebug() << "CalendarView::writeFilterSettings()" << endl;
1971 1971
1972 QStringList filterList; 1972 QStringList filterList;
1973 1973
1974 CalFilter *filter = mFilters.first(); 1974 CalFilter *filter = mFilters.first();
1975 while(filter) { 1975 while(filter) {
1976 // kdDebug() << " fn: " << filter->name() << endl; 1976 // kdDebug() << " fn: " << filter->name() << endl;
1977 filterList << filter->name(); 1977 filterList << filter->name();
1978 config->setGroup("Filter_" + filter->name()); 1978 config->setGroup("Filter_" + filter->name());
1979 config->writeEntry("Criteria",filter->criteria()); 1979 config->writeEntry("Criteria",filter->criteria());
1980 config->writeEntry("CategoryList",filter->categoryList()); 1980 config->writeEntry("CategoryList",filter->categoryList());
1981 filter = mFilters.next(); 1981 filter = mFilters.next();
1982 } 1982 }
1983 config->setGroup("General"); 1983 config->setGroup("General");
1984 config->writeEntry("CalendarFilters",filterList); 1984 config->writeEntry("CalendarFilters",filterList);
1985 1985
1986 config->setGroup("FilterView"); 1986 config->setGroup("FilterView");
1987 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled()); 1987 config->writeEntry("FilterEnabled",mFilterView->filtersEnabled());
1988 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name()); 1988 config->writeEntry("Current Filter",mFilterView->selectedFilter()->name());
1989} 1989}
1990 1990
1991 1991
1992void CalendarView::goToday() 1992void CalendarView::goToday()
1993{ 1993{
1994 mNavigator->selectToday(); 1994 if ( mViewManager->currentView()->isMonthView() )
1995 mNavigator->selectTodayMonth();
1996 else
1997 mNavigator->selectToday();
1995} 1998}
1996 1999
1997void CalendarView::goNext() 2000void CalendarView::goNext()
1998{ 2001{
1999 mNavigator->selectNext(); 2002 mNavigator->selectNext();
2000} 2003}
2001 2004
2002void CalendarView::goPrevious() 2005void CalendarView::goPrevious()
2003{ 2006{
2004 mNavigator->selectPrevious(); 2007 mNavigator->selectPrevious();
2005} 2008}
2006void CalendarView::goNextMonth() 2009void CalendarView::goNextMonth()
2007{ 2010{
2008 mNavigator->selectNextMonth(); 2011 mNavigator->selectNextMonth();
2009} 2012}
2010 2013
2011void CalendarView::goPreviousMonth() 2014void CalendarView::goPreviousMonth()
2012{ 2015{
2013 mNavigator->selectPreviousMonth(); 2016 mNavigator->selectPreviousMonth();
2014} 2017}
2015void CalendarView::writeLocale() 2018void CalendarView::writeLocale()
2016{ 2019{
2017 //KPimGlobalPrefs::instance()->setGlobalConfig(); 2020 //KPimGlobalPrefs::instance()->setGlobalConfig();
2018#if 0 2021#if 0
2019 KGlobal::locale()->setHore24Format( !KOPrefs::instance()->mPreferredTime ); 2022 KGlobal::locale()->setHore24Format( !KOPrefs::instance()->mPreferredTime );
2020 KGlobal::locale()->setWeekStartMonday( !KOPrefs::instance()->mWeekStartsOnSunday ); 2023 KGlobal::locale()->setWeekStartMonday( !KOPrefs::instance()->mWeekStartsOnSunday );
2021 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)KOPrefs::instance()->mPreferredDate ); 2024 KGlobal::locale()->setIntDateFormat( (KLocale::IntDateFormat)KOPrefs::instance()->mPreferredDate );
2022 KGlobal::locale()->setLanguage( KOPrefs::instance()->mPreferredLanguage ); 2025 KGlobal::locale()->setLanguage( KOPrefs::instance()->mPreferredLanguage );
2023 QString dummy = KOPrefs::instance()->mUserDateFormatLong; 2026 QString dummy = KOPrefs::instance()->mUserDateFormatLong;
2024 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") )); 2027 KGlobal::locale()->setDateFormat(dummy.replace( QRegExp("K"), QString(",") ));
2025 dummy = KOPrefs::instance()->mUserDateFormatShort; 2028 dummy = KOPrefs::instance()->mUserDateFormatShort;
2026 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") )); 2029 KGlobal::locale()->setDateFormatShort(dummy.replace( QRegExp("K"), QString(",") ));
2027 KGlobal::locale()->setDaylightSaving( KOPrefs::instance()->mUseDaylightsaving, 2030 KGlobal::locale()->setDaylightSaving( KOPrefs::instance()->mUseDaylightsaving,
2028 KOPrefs::instance()->mDaylightsavingStart, 2031 KOPrefs::instance()->mDaylightsavingStart,
2029 KOPrefs::instance()->mDaylightsavingEnd ); 2032 KOPrefs::instance()->mDaylightsavingEnd );
2030 KGlobal::locale()->setTimezone( KPimGlobalPrefs::instance()->mTimeZoneId ); 2033 KGlobal::locale()->setTimezone( KPimGlobalPrefs::instance()->mTimeZoneId );
2031#endif 2034#endif
2032} 2035}
2033void CalendarView::updateConfig() 2036void CalendarView::updateConfig()
2034{ 2037{
2035 writeLocale(); 2038 writeLocale();
2036 if ( KOPrefs::instance()->mUseAppColors ) 2039 if ( KOPrefs::instance()->mUseAppColors )
2037 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 2040 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
2038 emit configChanged(); 2041 emit configChanged();
2039 mTodoList->updateConfig(); 2042 mTodoList->updateConfig();
2040 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont); 2043 // mDateNavigator->setFont ( KOPrefs::instance()->mDateNavigatorFont);
2041 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2044 mCalendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2042 // To make the "fill window" configurations work 2045 // To make the "fill window" configurations work
2043 //mViewManager->raiseCurrentView(); 2046 //mViewManager->raiseCurrentView();
2044} 2047}
2045 2048
2046 2049
2047void CalendarView::eventChanged(Event *event) 2050void CalendarView::eventChanged(Event *event)
2048{ 2051{
2049 changeEventDisplay(event,KOGlobals::EVENTEDITED); 2052 changeEventDisplay(event,KOGlobals::EVENTEDITED);
2050 //updateUnmanagedViews(); 2053 //updateUnmanagedViews();
2051} 2054}
2052 2055
2053void CalendarView::eventAdded(Event *event) 2056void CalendarView::eventAdded(Event *event)
2054{ 2057{
2055 changeEventDisplay(event,KOGlobals::EVENTADDED); 2058 changeEventDisplay(event,KOGlobals::EVENTADDED);
2056} 2059}
2057 2060
2058void CalendarView::eventToBeDeleted(Event *) 2061void CalendarView::eventToBeDeleted(Event *)
2059{ 2062{
2060 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl; 2063 kdDebug() << "CalendarView::eventToBeDeleted(): to be implemented" << endl;
2061} 2064}
2062 2065
2063void CalendarView::eventDeleted() 2066void CalendarView::eventDeleted()
2064{ 2067{
2065 changeEventDisplay(0,KOGlobals::EVENTDELETED); 2068 changeEventDisplay(0,KOGlobals::EVENTDELETED);
2066} 2069}
2067void CalendarView::changeTodoDisplay(Todo *which, int action) 2070void CalendarView::changeTodoDisplay(Todo *which, int action)
2068{ 2071{
2069 changeIncidenceDisplay((Incidence *)which, action); 2072 changeIncidenceDisplay((Incidence *)which, action);
2070 mDateNavigator->updateView(); //LR 2073 mDateNavigator->updateView(); //LR
2071 //mDialogManager->updateSearchDialog(); 2074 //mDialogManager->updateSearchDialog();
2072 2075
2073 if (which) { 2076 if (which) {
2074 mViewManager->updateWNview(); 2077 mViewManager->updateWNview();
2075 //mTodoList->updateView(); 2078 //mTodoList->updateView();
2076 } 2079 }
2077 2080
2078} 2081}
2079 2082
2080void CalendarView::changeIncidenceDisplay(Incidence *which, int action) 2083void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
2081{ 2084{
2082 updateUnmanagedViews(); 2085 updateUnmanagedViews();
2083 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); 2086 //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action );
2084 if ( action == KOGlobals::EVENTDELETED ) { //delete 2087 if ( action == KOGlobals::EVENTDELETED ) { //delete
2085 mCalendar->checkAlarmForIncidence( 0, true ); 2088 mCalendar->checkAlarmForIncidence( 0, true );
2086 if ( mEventViewerDialog ) 2089 if ( mEventViewerDialog )
2087 mEventViewerDialog->hide(); 2090 mEventViewerDialog->hide();
2088 } 2091 }
2089 else 2092 else
2090 mCalendar->checkAlarmForIncidence( which , false ); 2093 mCalendar->checkAlarmForIncidence( which , false );
2091} 2094}
2092 2095
2093// most of the changeEventDisplays() right now just call the view's 2096// most of the changeEventDisplays() right now just call the view's
2094// total update mode, but they SHOULD be recoded to be more refresh-efficient. 2097// total update mode, but they SHOULD be recoded to be more refresh-efficient.
2095void CalendarView::changeEventDisplay(Event *which, int action) 2098void CalendarView::changeEventDisplay(Event *which, int action)
2096{ 2099{
2097 // kdDebug() << "CalendarView::changeEventDisplay" << endl; 2100 // kdDebug() << "CalendarView::changeEventDisplay" << endl;
2098 changeIncidenceDisplay((Incidence *)which, action); 2101 changeIncidenceDisplay((Incidence *)which, action);
2099 mDateNavigator->updateView(); 2102 mDateNavigator->updateView();
2100 //mDialogManager->updateSearchDialog(); 2103 //mDialogManager->updateSearchDialog();
2101 2104
2102 if (which) { 2105 if (which) {
2103 // If there is an event view visible update the display 2106 // If there is an event view visible update the display
2104 mViewManager->currentView()->changeEventDisplay(which,action); 2107 mViewManager->currentView()->changeEventDisplay(which,action);
2105 // TODO: check, if update needed 2108 // TODO: check, if update needed
2106 // if (which->getTodoStatus()) { 2109 // if (which->getTodoStatus()) {
2107 mTodoList->updateView(); 2110 mTodoList->updateView();
2108 // } 2111 // }
2109 } else { 2112 } else {
2110 mViewManager->currentView()->updateView(); 2113 mViewManager->currentView()->updateView();
2111 } 2114 }
2112} 2115}
2113 2116
2114 2117
2115void CalendarView::updateTodoViews() 2118void CalendarView::updateTodoViews()
2116{ 2119{
2117 2120
2118 mTodoList->updateView(); 2121 mTodoList->updateView();
2119 mViewManager->currentView()->updateView(); 2122 mViewManager->currentView()->updateView();
2120 2123
2121} 2124}
2122 2125
2123 2126
2124void CalendarView::updateView(const QDate &start, const QDate &end) 2127void CalendarView::updateView(const QDate &start, const QDate &end)
2125{ 2128{
2126 mTodoList->updateView(); 2129 mTodoList->updateView();
2127 mViewManager->updateView(start, end); 2130 mViewManager->updateView(start, end);
2128 //mDateNavigator->updateView(); 2131 //mDateNavigator->updateView();
2129} 2132}
2130 2133
2131void CalendarView::updateView() 2134void CalendarView::updateView()
2132{ 2135{
2133 DateList tmpList = mNavigator->selectedDates(); 2136 DateList tmpList = mNavigator->selectedDates();
2134 2137
2135 // We assume that the navigator only selects consecutive days. 2138 // We assume that the navigator only selects consecutive days.
2136 updateView( tmpList.first(), tmpList.last() ); 2139 updateView( tmpList.first(), tmpList.last() );
2137} 2140}
2138 2141
2139void CalendarView::updateUnmanagedViews() 2142void CalendarView::updateUnmanagedViews()
2140{ 2143{
2141 mDateNavigator->updateDayMatrix(); 2144 mDateNavigator->updateDayMatrix();
2142} 2145}
2143 2146
2144int CalendarView::msgItemDelete() 2147int CalendarView::msgItemDelete()
2145{ 2148{
2146 return KMessageBox::warningContinueCancel(this, 2149 return KMessageBox::warningContinueCancel(this,
2147 i18n("This item will be\npermanently deleted."), 2150 i18n("This item will be\npermanently deleted."),
2148 i18n("KO/Pi Confirmation"),i18n("Delete")); 2151 i18n("KO/Pi Confirmation"),i18n("Delete"));
2149} 2152}
2150 2153
2151 2154
2152void CalendarView::edit_cut() 2155void CalendarView::edit_cut()
2153{ 2156{
2154 Event *anEvent=0; 2157 Event *anEvent=0;
2155 2158
2156 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2159 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2157 2160
2158 if (mViewManager->currentView()->isEventView()) { 2161 if (mViewManager->currentView()->isEventView()) {
2159 if ( incidence && incidence->type() == "Event" ) { 2162 if ( incidence && incidence->type() == "Event" ) {
2160 anEvent = static_cast<Event *>(incidence); 2163 anEvent = static_cast<Event *>(incidence);
2161 } 2164 }
2162 } 2165 }
2163 2166
2164 if (!anEvent) { 2167 if (!anEvent) {
2165 KNotifyClient::beep(); 2168 KNotifyClient::beep();
2166 return; 2169 return;
2167 } 2170 }
2168 DndFactory factory( mCalendar ); 2171 DndFactory factory( mCalendar );
2169 factory.cutEvent(anEvent); 2172 factory.cutEvent(anEvent);
2170 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2173 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2171} 2174}
2172 2175
2173void CalendarView::edit_copy() 2176void CalendarView::edit_copy()
2174{ 2177{
2175 Event *anEvent=0; 2178 Event *anEvent=0;
2176 2179
2177 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2180 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2178 2181
2179 if (mViewManager->currentView()->isEventView()) { 2182 if (mViewManager->currentView()->isEventView()) {
2180 if ( incidence && incidence->type() == "Event" ) { 2183 if ( incidence && incidence->type() == "Event" ) {
2181 anEvent = static_cast<Event *>(incidence); 2184 anEvent = static_cast<Event *>(incidence);
2182 } 2185 }
2183 } 2186 }
2184 2187
2185 if (!anEvent) { 2188 if (!anEvent) {
2186 KNotifyClient::beep(); 2189 KNotifyClient::beep();
2187 return; 2190 return;
2188 } 2191 }
2189 DndFactory factory( mCalendar ); 2192 DndFactory factory( mCalendar );
2190 factory.copyEvent(anEvent); 2193 factory.copyEvent(anEvent);
2191} 2194}
2192 2195
2193void CalendarView::edit_paste() 2196void CalendarView::edit_paste()
2194{ 2197{
2195 QDate date = mNavigator->selectedDates().first(); 2198 QDate date = mNavigator->selectedDates().first();
2196 2199
2197 DndFactory factory( mCalendar ); 2200 DndFactory factory( mCalendar );
2198 Event *pastedEvent = factory.pasteEvent( date ); 2201 Event *pastedEvent = factory.pasteEvent( date );
2199 2202
2200 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); 2203 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED );
2201} 2204}
2202 2205
2203void CalendarView::edit_options() 2206void CalendarView::edit_options()
2204{ 2207{
2205 mDialogManager->showOptionsDialog(); 2208 mDialogManager->showOptionsDialog();
2206 //writeSettings(); 2209 //writeSettings();
2207} 2210}
2208 2211
2209void CalendarView::slotSelectPickerDate( QDate d) 2212void CalendarView::slotSelectPickerDate( QDate d)
2210{ 2213{
2211 mDateFrame->hide(); 2214 mDateFrame->hide();
2212 if ( mDatePickerMode == 1 ) { 2215 if ( mDatePickerMode == 1 ) {
2213 mNavigator->slotDaySelect( d ); 2216 mNavigator->slotDaySelect( d );
2214 } else if ( mDatePickerMode == 2 ) { 2217 } else if ( mDatePickerMode == 2 ) {
2215 if ( mMoveIncidence->type() == "Todo" ) { 2218 if ( mMoveIncidence->type() == "Todo" ) {
2216 Todo * to = (Todo *) mMoveIncidence; 2219 Todo * to = (Todo *) mMoveIncidence;
2217 QTime tim; 2220 QTime tim;
2218 if ( to->hasDueDate() ) 2221 if ( to->hasDueDate() )
2219 tim = to->dtDue().time(); 2222 tim = to->dtDue().time();
2220 else { 2223 else {
2221 tim = QTime ( 0,0,0 ); 2224 tim = QTime ( 0,0,0 );
2222 to->setFloats( true ); 2225 to->setFloats( true );
2223 to->setHasDueDate( true ); 2226 to->setHasDueDate( true );
2224 } 2227 }
2225 QDateTime dt ( d,tim ); 2228 QDateTime dt ( d,tim );
2226 to->setDtDue( dt ); 2229 to->setDtDue( dt );
2227 todoChanged( to ); 2230 todoChanged( to );
2228 } else { 2231 } else {
2229 QTime tim = mMoveIncidence->dtStart().time(); 2232 QTime tim = mMoveIncidence->dtStart().time();
2230 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); 2233 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd());
2231 QDateTime dt ( d,tim ); 2234 QDateTime dt ( d,tim );
2232 mMoveIncidence->setDtStart( dt ); 2235 mMoveIncidence->setDtStart( dt );
2233 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); 2236 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) );
2234 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); 2237 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED);
2235 } 2238 }
2236 2239
2237 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); 2240 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 );
2238 } 2241 }
2239} 2242}
2240 2243
2241void CalendarView::removeCategories() 2244void CalendarView::removeCategories()
2242{ 2245{
2243 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2246 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2244 QStringList catList = KOPrefs::instance()->mCustomCategories; 2247 QStringList catList = KOPrefs::instance()->mCustomCategories;
2245 QStringList catIncList; 2248 QStringList catIncList;
2246 QStringList newCatList; 2249 QStringList newCatList;
2247 Incidence* inc = incList.first(); 2250 Incidence* inc = incList.first();
2248 int i; 2251 int i;
2249 int count = 0; 2252 int count = 0;
2250 while ( inc ) { 2253 while ( inc ) {
diff --git a/korganizer/datenavigator.cpp b/korganizer/datenavigator.cpp
index e26e20b..3156b2b 100644
--- a/korganizer/datenavigator.cpp
+++ b/korganizer/datenavigator.cpp
@@ -1,287 +1,293 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include "datenavigator.h" 24#include "datenavigator.h"
25 25
26#include "koglobals.h" 26#include "koglobals.h"
27 27
28#include <kcalendarsystem.h> 28#include <kcalendarsystem.h>
29 29
30#include <kdebug.h> 30#include <kdebug.h>
31#include <kglobal.h> 31#include <kglobal.h>
32#include <klocale.h> 32#include <klocale.h>
33 33
34using namespace KCal; 34using namespace KCal;
35 35
36DateNavigator::DateNavigator( QObject *parent, const char *name , KOViewManager * v) 36DateNavigator::DateNavigator( QObject *parent, const char *name , KOViewManager * v)
37 : QObject( parent, name ) 37 : QObject( parent, name )
38{ 38{
39 mViewManager = v; 39 mViewManager = v;
40 mSelectedDates.append( QDate::currentDate() ); 40 mSelectedDates.append( QDate::currentDate() );
41} 41}
42 42
43DateNavigator::~DateNavigator() 43DateNavigator::~DateNavigator()
44{ 44{
45} 45}
46 46
47void DateNavigator::slotMonthSelect( int m ) 47void DateNavigator::slotMonthSelect( int m )
48{ 48{
49 QDate firstSelected = mSelectedDates.first(); 49 QDate firstSelected = mSelectedDates.first();
50 int weekDay = firstSelected.dayOfWeek(); 50 int weekDay = firstSelected.dayOfWeek();
51 int diff = m - firstSelected.month() ; 51 int diff = m - firstSelected.month() ;
52 firstSelected = KOGlobals::self()->calendarSystem()->addMonths( firstSelected, diff ); 52 firstSelected = KOGlobals::self()->calendarSystem()->addMonths( firstSelected, diff );
53 53
54 if ( mSelectedDates.first().day() == 1 && mSelectedDates.count() > 27 ) 54 if ( mSelectedDates.first().day() == 1 && mSelectedDates.count() > 27 )
55 selectMonthByDate( firstSelected ); 55 selectMonthByDate( firstSelected );
56 else 56 else
57 selectWeekByDay( weekDay, firstSelected ); 57 selectWeekByDay( weekDay, firstSelected );
58 58
59} 59}
60 60
61void DateNavigator::slotDaySelect( QDate d ) 61void DateNavigator::slotDaySelect( QDate d )
62{ 62{
63 QDate firstSelected = mSelectedDates.first(); 63 QDate firstSelected = mSelectedDates.first();
64 int weekDay = firstSelected.dayOfWeek(); 64 int weekDay = firstSelected.dayOfWeek();
65 //int diff = firstSelected.daysTo( d ) ; 65 //int diff = firstSelected.daysTo( d ) ;
66 firstSelected = firstSelected.addDays( firstSelected .daysTo( d ) ); 66 firstSelected = firstSelected.addDays( firstSelected .daysTo( d ) );
67 67
68 selectWeekByDay( weekDay, firstSelected ); 68 selectWeekByDay( weekDay, firstSelected );
69 69
70} 70}
71 71
72void DateNavigator::selectMonthByDate( const QDate & firstSelected ) 72void DateNavigator::selectMonthByDate( const QDate & firstSelected )
73{ 73{
74 74
75 int monthDay = firstSelected.day(); 75 int monthDay = firstSelected.day();
76 QDate date = firstSelected.addDays( 1-monthDay ); 76 QDate date = firstSelected.addDays( 1-monthDay );
77 selectDates( date , date.daysInMonth ()); 77 selectDates( date , date.daysInMonth ());
78 78
79} 79}
80void DateNavigator::selectMonth() 80void DateNavigator::selectMonth()
81{ 81{
82 82
83 QDate date =mSelectedDates.first(); 83 QDate date =mSelectedDates.first();
84 selectMonthByDate( date ); 84 selectMonthByDate( date );
85} 85}
86 86
87DateList DateNavigator::selectedDates() 87DateList DateNavigator::selectedDates()
88{ 88{
89 return mSelectedDates; 89 return mSelectedDates;
90} 90}
91 91
92int DateNavigator::datesCount() const 92int DateNavigator::datesCount() const
93{ 93{
94 return mSelectedDates.count(); 94 return mSelectedDates.count();
95} 95}
96 96
97void DateNavigator::selectDates( const DateList& dateList ) 97void DateNavigator::selectDates( const DateList& dateList )
98{ 98{
99 if (dateList.count() > 0) { 99 if (dateList.count() > 0) {
100 mSelectedDates = dateList; 100 mSelectedDates = dateList;
101 emitSelected(); 101 emitSelected();
102 } 102 }
103} 103}
104 104
105void DateNavigator::selectDate( const QDate &date ) 105void DateNavigator::selectDate( const QDate &date )
106{ 106{
107 QDate d = date; 107 QDate d = date;
108 108
109 if ( !d.isValid() ) { 109 if ( !d.isValid() ) {
110 d = QDate::currentDate(); 110 d = QDate::currentDate();
111 } 111 }
112 112
113 mSelectedDates.clear(); 113 mSelectedDates.clear();
114 mSelectedDates.append( d ); 114 mSelectedDates.append( d );
115 115
116 emitSelected(); 116 emitSelected();
117} 117}
118 118
119void DateNavigator::selectDates( int count ) 119void DateNavigator::selectDates( int count )
120{ 120{
121 121
122 QDate d = mSelectedDates.first(); 122 QDate d = mSelectedDates.first();
123 selectDates( d, count ); 123 selectDates( d, count );
124} 124}
125 125
126void DateNavigator::selectDates( const QDate &d, int count ) 126void DateNavigator::selectDates( const QDate &d, int count )
127{ 127{
128 DateList dates; 128 DateList dates;
129 129
130 int i; 130 int i;
131 for( i = 0; i < count; ++i ) { 131 for( i = 0; i < count; ++i ) {
132 dates.append( d.addDays( i ) ); 132 dates.append( d.addDays( i ) );
133 } 133 }
134 134
135 mSelectedDates = dates; 135 mSelectedDates = dates;
136 136
137 emitSelected(); 137 emitSelected();
138} 138}
139 139
140void DateNavigator::selectWeekByDay( int weekDay, const QDate &d ) 140void DateNavigator::selectWeekByDay( int weekDay, const QDate &d )
141{ 141{
142 // qDebug("selectWeekByDay( %d %s ", weekDay, d.toString().latin1()); 142 // qDebug("selectWeekByDay( %d %s ", weekDay, d.toString().latin1());
143 int dateCount = mSelectedDates.count(); 143 int dateCount = mSelectedDates.count();
144 bool weekStart = ( weekDay == KGlobal::locale()->weekStartDay() ); 144 bool weekStart = ( weekDay == KGlobal::locale()->weekStartDay() );
145 if ( weekDay == 1 && dateCount == 5 ) selectWorkWeek( d ); 145 if ( weekDay == 1 && dateCount == 5 ) selectWorkWeek( d );
146 else if ( weekStart && dateCount == 7 ) selectWeek( d ); 146 else if ( weekStart && dateCount == 7 ) selectWeek( d );
147 else selectDates( d, dateCount ); 147 else selectDates( d, dateCount );
148} 148}
149 149
150void DateNavigator::selectWeek() 150void DateNavigator::selectWeek()
151{ 151{
152 QDate d = mSelectedDates.first(); 152 QDate d = mSelectedDates.first();
153 selectWeek( d ); 153 selectWeek( d );
154} 154}
155void DateNavigator::selectWeek( int num ) 155void DateNavigator::selectWeek( int num )
156{ 156{
157 int year = mSelectedDates.first().year(); 157 int year = mSelectedDates.first().year();
158 if ( mSelectedDates.first().dayOfYear() > 300 && num < 10 ) 158 if ( mSelectedDates.first().dayOfYear() > 300 && num < 10 )
159 ++year; 159 ++year;
160 if ( mSelectedDates.first().dayOfYear() < 70 && num > 40 ) 160 if ( mSelectedDates.first().dayOfYear() < 70 && num > 40 )
161 --year; 161 --year;
162 QDate d = QDate ( year, 1,1); 162 QDate d = QDate ( year, 1,1);
163 while ( d.dayOfWeek() != 4 ) 163 while ( d.dayOfWeek() != 4 )
164 d = d.addDays( 1 ); 164 d = d.addDays( 1 );
165 selectWeek( d.addDays ( (num-1) *7 ) ); 165 selectWeek( d.addDays ( (num-1) *7 ) );
166} 166}
167void DateNavigator::selectWeek( const QDate &d ) 167void DateNavigator::selectWeek( const QDate &d )
168{ 168{
169 int dayOfWeek = KOGlobals::self()->calendarSystem()->dayOfWeek( d ); 169 int dayOfWeek = KOGlobals::self()->calendarSystem()->dayOfWeek( d );
170 170
171 int weekStart = KGlobal::locale()->weekStartDay(); 171 int weekStart = KGlobal::locale()->weekStartDay();
172 QDate firstDate = d.addDays( weekStart - dayOfWeek ); 172 QDate firstDate = d.addDays( weekStart - dayOfWeek );
173 173
174 if ( weekStart != 1 && dayOfWeek < weekStart ) { 174 if ( weekStart != 1 && dayOfWeek < weekStart ) {
175 firstDate = firstDate.addDays(-7 ); 175 firstDate = firstDate.addDays(-7 );
176 } 176 }
177 177
178 178
179 selectDates( firstDate, 7 ); 179 selectDates( firstDate, 7 );
180} 180}
181 181
182void DateNavigator::selectWorkWeek() 182void DateNavigator::selectWorkWeek()
183{ 183{
184 QDate d = mSelectedDates.first(); 184 QDate d = mSelectedDates.first();
185 selectWorkWeek( d ); 185 selectWorkWeek( d );
186} 186}
187 187
188void DateNavigator::selectWorkWeek( const QDate &d ) 188void DateNavigator::selectWorkWeek( const QDate &d )
189{ 189{
190 int dayOfWeek = KOGlobals::self()->calendarSystem()->dayOfWeek( d ); 190 int dayOfWeek = KOGlobals::self()->calendarSystem()->dayOfWeek( d );
191 191
192 QDate firstDate = d.addDays( 1 - dayOfWeek ); 192 QDate firstDate = d.addDays( 1 - dayOfWeek );
193 193
194 int weekStart = KGlobal::locale()->weekStartDay(); 194 int weekStart = KGlobal::locale()->weekStartDay();
195 if ( weekStart != 1 && dayOfWeek >= weekStart ) { 195 if ( weekStart != 1 && dayOfWeek >= weekStart ) {
196 firstDate = firstDate.addDays( 7 ); 196 firstDate = firstDate.addDays( 7 );
197 } 197 }
198 198
199 selectDates( firstDate, 5 ); 199 selectDates( firstDate, 5 );
200} 200}
201 201
202void DateNavigator::selectTodayMonth()
203{
204 QDate date = QDate::currentDate().addDays( 1-QDate::currentDate().day() );
205 selectDates( date , date.daysInMonth ());
206
207}
202void DateNavigator::selectToday() 208void DateNavigator::selectToday()
203{ 209{
204 QDate d = QDate::currentDate(); 210 QDate d = QDate::currentDate();
205 211
206 int dateCount = mSelectedDates.count(); 212 int dateCount = mSelectedDates.count();
207 213
208 if ( dateCount == 5 ) selectWorkWeek( d ); 214 if ( dateCount == 5 ) selectWorkWeek( d );
209 else if ( dateCount == 7 ) selectWeek( d ); 215 else if ( dateCount == 7 ) selectWeek( d );
210 else selectDates( d, dateCount ); 216 else selectDates( d, dateCount );
211} 217}
212 218
213void DateNavigator::selectPreviousYear() 219void DateNavigator::selectPreviousYear()
214{ 220{
215 QDate firstSelected = mSelectedDates.first(); 221 QDate firstSelected = mSelectedDates.first();
216 int weekDay = firstSelected.dayOfWeek(); 222 int weekDay = firstSelected.dayOfWeek();
217 firstSelected = KOGlobals::self()->calendarSystem()->addYears( firstSelected, -1 ); 223 firstSelected = KOGlobals::self()->calendarSystem()->addYears( firstSelected, -1 );
218 224
219 selectWeekByDay( weekDay, firstSelected ); 225 selectWeekByDay( weekDay, firstSelected );
220} 226}
221 227
222void DateNavigator::selectPreviousMonth() 228void DateNavigator::selectPreviousMonth()
223{ 229{
224 QDate firstSelected = mSelectedDates.first(); 230 QDate firstSelected = mSelectedDates.first();
225 int weekDay = firstSelected.dayOfWeek(); 231 int weekDay = firstSelected.dayOfWeek();
226 firstSelected = KOGlobals::self()->calendarSystem()->addMonths( firstSelected, -1 ); 232 firstSelected = KOGlobals::self()->calendarSystem()->addMonths( firstSelected, -1 );
227 233
228 234
229 if ( mSelectedDates.first().day() == 1 && mSelectedDates.count() > 27 ) 235 if ( mSelectedDates.first().day() == 1 && mSelectedDates.count() > 27 )
230 selectMonthByDate( firstSelected ); 236 selectMonthByDate( firstSelected );
231 else 237 else
232 selectWeekByDay( weekDay, firstSelected ); 238 selectWeekByDay( weekDay, firstSelected );
233} 239}
234 240
235void DateNavigator::selectNextMonth() 241void DateNavigator::selectNextMonth()
236{ 242{
237 QDate firstSelected = mSelectedDates.first(); 243 QDate firstSelected = mSelectedDates.first();
238 int weekDay = firstSelected.dayOfWeek(); 244 int weekDay = firstSelected.dayOfWeek();
239 245
240 firstSelected = KOGlobals::self()->calendarSystem()->addMonths( firstSelected, 1 ); 246 firstSelected = KOGlobals::self()->calendarSystem()->addMonths( firstSelected, 1 );
241 247
242 if ( mSelectedDates.first().day() == 1 && mSelectedDates.count() > 27 ) 248 if ( mSelectedDates.first().day() == 1 && mSelectedDates.count() > 27 )
243 selectMonthByDate( firstSelected ); 249 selectMonthByDate( firstSelected );
244 else 250 else
245 selectWeekByDay( weekDay, firstSelected ); 251 selectWeekByDay( weekDay, firstSelected );
246 252
247} 253}
248 254
249void DateNavigator::selectNextYear() 255void DateNavigator::selectNextYear()
250{ 256{
251 QDate firstSelected = mSelectedDates.first(); 257 QDate firstSelected = mSelectedDates.first();
252 int weekDay = firstSelected.dayOfWeek(); 258 int weekDay = firstSelected.dayOfWeek();
253 firstSelected = KOGlobals::self()->calendarSystem()->addYears( firstSelected, 1 ); 259 firstSelected = KOGlobals::self()->calendarSystem()->addYears( firstSelected, 1 );
254 260
255 selectWeekByDay( weekDay, firstSelected ); 261 selectWeekByDay( weekDay, firstSelected );
256} 262}
257 263
258void DateNavigator::selectPrevious() 264void DateNavigator::selectPrevious()
259{ 265{
260 int offset = -7; 266 int offset = -7;
261 if ( datesCount() == 1 ) { 267 if ( datesCount() == 1 ) {
262 offset = -1; 268 offset = -1;
263 } 269 }
264 if ( mViewManager ) 270 if ( mViewManager )
265 if ( mViewManager->showsNextDays() ) 271 if ( mViewManager->showsNextDays() )
266 offset = -datesCount(); 272 offset = -datesCount();
267 selectDates( mSelectedDates.first().addDays( offset ), datesCount() ); 273 selectDates( mSelectedDates.first().addDays( offset ), datesCount() );
268} 274}
269 275
270void DateNavigator::selectNext() 276void DateNavigator::selectNext()
271{ 277{
272 int offset = 7; 278 int offset = 7;
273 if ( datesCount() == 1 ) { 279 if ( datesCount() == 1 ) {
274 offset = 1; 280 offset = 1;
275 } 281 }
276 if ( mViewManager ) 282 if ( mViewManager )
277 if ( mViewManager->showsNextDays() ) 283 if ( mViewManager->showsNextDays() )
278 offset = datesCount(); 284 offset = datesCount();
279 selectDates( mSelectedDates.first().addDays( offset ), datesCount() ); 285 selectDates( mSelectedDates.first().addDays( offset ), datesCount() );
280} 286}
281 287
282void DateNavigator::emitSelected() 288void DateNavigator::emitSelected()
283{ 289{
284 emit datesSelected( mSelectedDates ); 290 emit datesSelected( mSelectedDates );
285} 291}
286 292
287//#include "datenavigator.moc" 293//#include "datenavigator.moc"
diff --git a/korganizer/datenavigator.h b/korganizer/datenavigator.h
index 747e3d3..4a19e17 100644
--- a/korganizer/datenavigator.h
+++ b/korganizer/datenavigator.h
@@ -1,89 +1,90 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#ifndef DATENAVIGATOR_H 23#ifndef DATENAVIGATOR_H
24#define DATENAVIGATOR_H 24#define DATENAVIGATOR_H
25 25
26#include <libkcal/incidencebase.h> 26#include <libkcal/incidencebase.h>
27 27
28#include <qobject.h> 28#include <qobject.h>
29#include "koviewmanager.h" 29#include "koviewmanager.h"
30 30
31/** 31/**
32 This class controls date navigation. All requests to move the views to another 32 This class controls date navigation. All requests to move the views to another
33 date are sent to the DateNavigator. The DateNavigator processes the new 33 date are sent to the DateNavigator. The DateNavigator processes the new
34 selection of dates and emits the required signals for the views. 34 selection of dates and emits the required signals for the views.
35*/ 35*/
36class DateNavigator : public QObject 36class DateNavigator : public QObject
37{ 37{
38 Q_OBJECT 38 Q_OBJECT
39 public: 39 public:
40 DateNavigator( QObject *parent = 0, const char *name = 0 , KOViewManager * v = 0); 40 DateNavigator( QObject *parent = 0, const char *name = 0 , KOViewManager * v = 0);
41 ~DateNavigator(); 41 ~DateNavigator();
42 42
43 KCal::DateList selectedDates(); 43 KCal::DateList selectedDates();
44 44
45 int datesCount() const; 45 int datesCount() const;
46 46
47 public slots: 47 public slots:
48 void selectDates( const KCal::DateList & ); 48 void selectDates( const KCal::DateList & );
49 void selectDate( const QDate & ); 49 void selectDate( const QDate & );
50 50
51 void selectDates( int count ); 51 void selectDates( int count );
52 void selectDates( const QDate &, int count ); 52 void selectDates( const QDate &, int count );
53 53
54 void selectWeek(); 54 void selectWeek();
55 void selectWeek( int weeknum ); 55 void selectWeek( int weeknum );
56 void selectWeek( const QDate & ); 56 void selectWeek( const QDate & );
57 57
58 void selectWorkWeek(); 58 void selectWorkWeek();
59 void selectWorkWeek( const QDate & ); 59 void selectWorkWeek( const QDate & );
60 60
61 void selectWeekByDay( int weekDay, const QDate & ); 61 void selectWeekByDay( int weekDay, const QDate & );
62 62
63 void selectToday(); 63 void selectToday();
64 void selectTodayMonth();
64 65
65 void selectPreviousYear(); 66 void selectPreviousYear();
66 void selectPreviousMonth(); 67 void selectPreviousMonth();
67 void selectNextMonth(); 68 void selectNextMonth();
68 void selectNextYear(); 69 void selectNextYear();
69 70
70 void selectMonth(); 71 void selectMonth();
71 void selectMonthByDate( const QDate & ); 72 void selectMonthByDate( const QDate & );
72 73
73 void selectPrevious(); 74 void selectPrevious();
74 void selectNext(); 75 void selectNext();
75 void slotMonthSelect( int ); 76 void slotMonthSelect( int );
76 void slotDaySelect( QDate d ); 77 void slotDaySelect( QDate d );
77 78
78 signals: 79 signals:
79 void datesSelected( const KCal::DateList & ); 80 void datesSelected( const KCal::DateList & );
80 81
81 protected: 82 protected:
82 void emitSelected(); 83 void emitSelected();
83 84
84 private: 85 private:
85 KOViewManager * mViewManager; 86 KOViewManager * mViewManager;
86 KCal::DateList mSelectedDates; 87 KCal::DateList mSelectedDates;
87}; 88};
88 89
89#endif 90#endif
diff --git a/korganizer/interfaces/korganizer/baseview.h b/korganizer/interfaces/korganizer/baseview.h
index 09f8ba3..2ac9de1 100644
--- a/korganizer/interfaces/korganizer/baseview.h
+++ b/korganizer/interfaces/korganizer/baseview.h
@@ -1,192 +1,193 @@
1/* 1/*
2 This file is part of the KOrganizer interfaces. 2 This file is part of the KOrganizer interfaces.
3 Copyright (c) 1999 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 1999 Cornelius Schumacher <schumacher@kde.org>
4 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 4 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21#ifndef KORG_BASEVIEW_H 21#ifndef KORG_BASEVIEW_H
22#define KORG_BASEVIEW_H 22#define KORG_BASEVIEW_H
23// $Id$ 23// $Id$
24// KOBaseView is the abstract base class of all calendar views. 24// KOBaseView is the abstract base class of all calendar views.
25 25
26#include <qwidget.h> 26#include <qwidget.h>
27#include <qptrlist.h> 27#include <qptrlist.h>
28#include <qvaluelist.h> 28#include <qvaluelist.h>
29 29
30#include <klocale.h> 30#include <klocale.h>
31#include <kdebug.h> 31#include <kdebug.h>
32#include <kmessagebox.h> 32#include <kmessagebox.h>
33 33
34#include <libkcal/event.h> 34#include <libkcal/event.h>
35#include <libkcal/calendar.h> 35#include <libkcal/calendar.h>
36 36
37using namespace KCal; 37using namespace KCal;
38 38
39class CalPrinter; 39class CalPrinter;
40 40
41namespace KOrg { 41namespace KOrg {
42 42
43class CalPrinterBase 43class CalPrinterBase
44{ 44{
45 public: 45 public:
46 enum PrintType { Day, Week, Month, Todolist }; 46 enum PrintType { Day, Week, Month, Todolist };
47}; 47};
48 48
49 49
50/** 50/**
51 This class provides an interface for all views being displayed within the main 51 This class provides an interface for all views being displayed within the main
52 calendar view. It has functions to update the view, to specify date range and 52 calendar view. It has functions to update the view, to specify date range and
53 other display parameter and to return selected objects. An important class, 53 other display parameter and to return selected objects. An important class,
54 which inherits KOBaseView is KOEventView, which provides the interface for all 54 which inherits KOBaseView is KOEventView, which provides the interface for all
55 views of event data like the agenda or the month view. 55 views of event data like the agenda or the month view.
56 56
57 @short Base class for calendar views 57 @short Base class for calendar views
58 @author Preston Brown, Cornelius Schumacher 58 @author Preston Brown, Cornelius Schumacher
59 @see KOTodoView, KOEventView, KOListView, KOAgendaView, KOMonthView 59 @see KOTodoView, KOEventView, KOListView, KOAgendaView, KOMonthView
60*/ 60*/
61class BaseView : public QWidget 61class BaseView : public QWidget
62{ 62{
63 Q_OBJECT 63 Q_OBJECT
64 public: 64 public:
65 /** 65 /**
66 Constructs a view. 66 Constructs a view.
67 67
68 @param cal Pointer to the calendar object from which events 68 @param cal Pointer to the calendar object from which events
69 will be retrieved for display. 69 will be retrieved for display.
70 @param parent parent widget. 70 @param parent parent widget.
71 @param name name of this widget. 71 @param name name of this widget.
72 */ 72 */
73 BaseView(Calendar *cal, QWidget *parent = 0, const char *name = 0) : 73 BaseView(Calendar *cal, QWidget *parent = 0, const char *name = 0) :
74 QWidget(parent, name), mCalendar(cal) {} 74 QWidget(parent, name), mCalendar(cal) {}
75 75
76 /** 76 /**
77 Destructor. Views will do view-specific cleanups here. 77 Destructor. Views will do view-specific cleanups here.
78 */ 78 */
79 virtual ~BaseView() {} 79 virtual ~BaseView() {}
80 80
81 /** 81 /**
82 Return calendar object of this view. 82 Return calendar object of this view.
83 */ 83 */
84 Calendar *calendar() { return mCalendar; } 84 Calendar *calendar() { return mCalendar; }
85 85
86 /** 86 /**
87 @return a list of selected events. Most views can probably only 87 @return a list of selected events. Most views can probably only
88 select a single event at a time, but some may be able to select 88 select a single event at a time, but some may be able to select
89 more than one. 89 more than one.
90 */ 90 */
91 virtual QPtrList<Incidence> selectedIncidences() = 0; 91 virtual QPtrList<Incidence> selectedIncidences() = 0;
92 92
93 /** 93 /**
94 @return a list of the dates of selected events. Most views can probably only 94 @return a list of the dates of selected events. Most views can probably only
95 select a single event at a time, but some may be able to select 95 select a single event at a time, but some may be able to select
96 more than one. 96 more than one.
97 */ 97 */
98 virtual DateList selectedDates() = 0; 98 virtual DateList selectedDates() = 0;
99 99
100 /** 100 /**
101 Generate a print preview of this event view. 101 Generate a print preview of this event view.
102 102
103 @param calPrinter Calendar printer object used for printing 103 @param calPrinter Calendar printer object used for printing
104 @param fd from date 104 @param fd from date
105 @param td to date 105 @param td to date
106 */ 106 */
107/* 107/*
108 The date parameters should be determined by the view itself and not given as 108 The date parameters should be determined by the view itself and not given as
109 parameters. At the moment I just move the code from the topwidget to the 109 parameters. At the moment I just move the code from the topwidget to the
110 individual views. 110 individual views.
111*/ 111*/
112 virtual void printPreview(CalPrinter *, 112 virtual void printPreview(CalPrinter *,
113 const QDate &, const QDate &) 113 const QDate &, const QDate &)
114 { 114 {
115 KMessageBox::sorry(this, i18n("Unfortunately, we don't handle printing for\n" 115 KMessageBox::sorry(this, i18n("Unfortunately, we don't handle printing for\n"
116 "that view yet.\n")); 116 "that view yet.\n"));
117 } 117 }
118 118
119 /** 119 /**
120 Print this view. 120 Print this view.
121 121
122 @param calPrinter Calendar printer object used for printing 122 @param calPrinter Calendar printer object used for printing
123 */ 123 */
124 virtual void print(CalPrinter *) 124 virtual void print(CalPrinter *)
125 { 125 {
126 KMessageBox::sorry(this, i18n("Unfortunately, we don't handle printing for\n" 126 KMessageBox::sorry(this, i18n("Unfortunately, we don't handle printing for\n"
127 "that view yet.\n")); 127 "that view yet.\n"));
128 } 128 }
129 129
130 /** 130 /**
131 Return number of currently shown dates. A return value of 0 means no idea. 131 Return number of currently shown dates. A return value of 0 means no idea.
132 */ 132 */
133 virtual int currentDateCount() = 0; 133 virtual int currentDateCount() = 0;
134 134
135 /** Return if this view is a view for displaying events. */ 135 /** Return if this view is a view for displaying events. */
136 virtual bool isEventView() { return false; } 136 virtual bool isEventView() { return false; }
137 virtual bool isMonthView() { return false; }
137 138
138 public slots: 139 public slots:
139 /** 140 /**
140 Show incidences for the given date range. The date range actually shown may be 141 Show incidences for the given date range. The date range actually shown may be
141 different from the requested range, depending on the particular requirements 142 different from the requested range, depending on the particular requirements
142 of the view. 143 of the view.
143 144
144 @param start Start of date range. 145 @param start Start of date range.
145 @param end End of date range. 146 @param end End of date range.
146 */ 147 */
147 virtual void showDates( const QDate &start, const QDate &end ) = 0; 148 virtual void showDates( const QDate &start, const QDate &end ) = 0;
148 149
149 /** 150 /**
150 Show given events. Depending on the actual view it might not be possible to 151 Show given events. Depending on the actual view it might not be possible to
151 show all given events. 152 show all given events.
152 153
153 @param eventList a list of events to show. 154 @param eventList a list of events to show.
154 */ 155 */
155 virtual void showEvents(QPtrList<Event> eventList) = 0; 156 virtual void showEvents(QPtrList<Event> eventList) = 0;
156 157
157 /** 158 /**
158 Updates the current display to reflect changes that may have happened 159 Updates the current display to reflect changes that may have happened
159 in the calendar since the last display refresh. 160 in the calendar since the last display refresh.
160 */ 161 */
161 virtual void updateView() = 0; 162 virtual void updateView() = 0;
162 163
163 /** 164 /**
164 Write all unsaved data back to calendar store. 165 Write all unsaved data back to calendar store.
165 */ 166 */
166 virtual void flushView() {} 167 virtual void flushView() {}
167 168
168 /** 169 /**
169 Updates the current display to reflect the changes to one particular event. 170 Updates the current display to reflect the changes to one particular event.
170 */ 171 */
171 virtual void changeEventDisplay(Event *, int) = 0; 172 virtual void changeEventDisplay(Event *, int) = 0;
172 173
173 /** 174 /**
174 Re-reads the KOrganizer configuration and picks up relevant 175 Re-reads the KOrganizer configuration and picks up relevant
175 changes which are applicable to the view. 176 changes which are applicable to the view.
176 */ 177 */
177 virtual void updateConfig() {} 178 virtual void updateConfig() {}
178 179
179 /** 180 /**
180 Clear selection. The incidenceSelected signal is not emitted. 181 Clear selection. The incidenceSelected signal is not emitted.
181 */ 182 */
182 virtual void clearSelection() {} 183 virtual void clearSelection() {}
183 184
184 signals: 185 signals:
185 void incidenceSelected( Incidence * ); 186 void incidenceSelected( Incidence * );
186 187
187 protected: 188 protected:
188 Calendar *mCalendar; 189 Calendar *mCalendar;
189}; 190};
190 191
191} 192}
192#endif 193#endif
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index d976246..e94952f 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -1,252 +1,253 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#ifndef _KOMONTHVIEW_H 20#ifndef _KOMONTHVIEW_H
21#define _KOMONTHVIEW_H 21#define _KOMONTHVIEW_H
22 22
23#include <qlabel.h> 23#include <qlabel.h>
24#include <qframe.h> 24#include <qframe.h>
25#include <qdatetime.h> 25#include <qdatetime.h>
26#include <qlistbox.h> 26#include <qlistbox.h>
27#include <qpoint.h> 27#include <qpoint.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qintdict.h> 29#include <qintdict.h>
30#include <qpushbutton.h> 30#include <qpushbutton.h>
31#include <qvaluelist.h> 31#include <qvaluelist.h>
32#include <qptrvector.h> 32#include <qptrvector.h>
33 33
34#include <libkcal/calendar.h> 34#include <libkcal/calendar.h>
35#include <libkcal/event.h> 35#include <libkcal/event.h>
36 36
37#include "koeventview.h" 37#include "koeventview.h"
38 38
39class KOWeekButton : public QPushButton 39class KOWeekButton : public QPushButton
40{ 40{
41 Q_OBJECT 41 Q_OBJECT
42 public: 42 public:
43 KOWeekButton( QWidget *parent=0, const char *name=0 ) : 43 KOWeekButton( QWidget *parent=0, const char *name=0 ) :
44 QPushButton( parent, name) 44 QPushButton( parent, name)
45 { 45 {
46 connect( this, SIGNAL( clicked() ), 46 connect( this, SIGNAL( clicked() ),
47 SLOT( bottonClicked() )); 47 SLOT( bottonClicked() ));
48 mNumber = -1; 48 mNumber = -1;
49 } 49 }
50 void setWeekNum ( int num ) {mNumber = num; setText( QString::number ( num ));} 50 void setWeekNum ( int num ) {mNumber = num; setText( QString::number ( num ));}
51 signals: 51 signals:
52 void selectWeekNum ( int ); 52 void selectWeekNum ( int );
53private: 53private:
54 int mNumber; 54 int mNumber;
55private slots : 55private slots :
56 void bottonClicked() { if ( mNumber > 0 ) emit selectWeekNum ( mNumber ); } 56 void bottonClicked() { if ( mNumber > 0 ) emit selectWeekNum ( mNumber ); }
57}; 57};
58 58
59class KNoScrollListBox: public QListBox 59class KNoScrollListBox: public QListBox
60{ 60{
61 Q_OBJECT 61 Q_OBJECT
62 public: 62 public:
63 KNoScrollListBox(QWidget *parent=0, const char *name=0); 63 KNoScrollListBox(QWidget *parent=0, const char *name=0);
64 ~KNoScrollListBox() {} 64 ~KNoScrollListBox() {}
65 QString getWhatsThisText(QPoint p) ; 65 QString getWhatsThisText(QPoint p) ;
66 66
67 signals: 67 signals:
68 void shiftDown(); 68 void shiftDown();
69 void shiftUp(); 69 void shiftUp();
70 void rightClick(); 70 void rightClick();
71 71
72 protected slots: 72 protected slots:
73 void keyPressEvent(QKeyEvent *); 73 void keyPressEvent(QKeyEvent *);
74 void keyReleaseEvent(QKeyEvent *); 74 void keyReleaseEvent(QKeyEvent *);
75 void mousePressEvent(QMouseEvent *); 75 void mousePressEvent(QMouseEvent *);
76}; 76};
77 77
78 78
79class MonthViewItem: public QListBoxItem 79class MonthViewItem: public QListBoxItem
80{ 80{
81 public: 81 public:
82 MonthViewItem( Incidence *, QDate qd, const QString & title ); 82 MonthViewItem( Incidence *, QDate qd, const QString & title );
83 83
84 void setRecur(bool on) { mRecur = on; } 84 void setRecur(bool on) { mRecur = on; }
85 void setAlarm(bool on) { mAlarm = on; } 85 void setAlarm(bool on) { mAlarm = on; }
86 void setReply(bool on) { mReply = on; } 86 void setReply(bool on) { mReply = on; }
87 void setMoreInfo(bool on) { mInfo = on; } 87 void setMoreInfo(bool on) { mInfo = on; }
88 88
89 89
90 void setPalette(const QPalette &p) { mPalette = p; } 90 void setPalette(const QPalette &p) { mPalette = p; }
91 QPalette palette() const { return mPalette; } 91 QPalette palette() const { return mPalette; }
92 92
93 Incidence *incidence() const { return mIncidence; } 93 Incidence *incidence() const { return mIncidence; }
94 QDate incidenceDate() { return mDate; } 94 QDate incidenceDate() { return mDate; }
95 95
96 protected: 96 protected:
97 virtual void paint(QPainter *); 97 virtual void paint(QPainter *);
98 virtual int height(const QListBox *) const; 98 virtual int height(const QListBox *) const;
99 virtual int width(const QListBox *) const; 99 virtual int width(const QListBox *) const;
100 100
101 private: 101 private:
102 bool mRecur; 102 bool mRecur;
103 bool mAlarm; 103 bool mAlarm;
104 bool mReply; 104 bool mReply;
105 bool mInfo; 105 bool mInfo;
106 106
107 QPalette mPalette; 107 QPalette mPalette;
108 QDate mDate; 108 QDate mDate;
109 109
110 Incidence *mIncidence; 110 Incidence *mIncidence;
111}; 111};
112 112
113 113
114class KOMonthView; 114class KOMonthView;
115 115
116class MonthViewCell : public QWidget 116class MonthViewCell : public QWidget
117{ 117{
118 Q_OBJECT 118 Q_OBJECT
119 public: 119 public:
120 MonthViewCell( KOMonthView * ); 120 MonthViewCell( KOMonthView * );
121 121
122 void setDate( const QDate & ); 122 void setDate( const QDate & );
123 QDate date() const; 123 QDate date() const;
124 124
125 void setPrimary( bool ); 125 void setPrimary( bool );
126 bool isPrimary() const; 126 bool isPrimary() const;
127 127
128 void setHoliday( bool ); 128 void setHoliday( bool );
129 void setHoliday( const QString & ); 129 void setHoliday( const QString & );
130 130
131 void updateCell(); 131 void updateCell();
132 132
133 void updateConfig(); 133 void updateConfig();
134 134
135 void enableScrollBars( bool ); 135 void enableScrollBars( bool );
136 136
137 Incidence *selectedIncidence(); 137 Incidence *selectedIncidence();
138 QDate selectedIncidenceDate(); 138 QDate selectedIncidenceDate();
139 139
140 void deselect(); 140 void deselect();
141 void select(); 141 void select();
142 142
143 signals: 143 signals:
144 void defaultAction( Incidence * ); 144 void defaultAction( Incidence * );
145 void newEventSignal( QDateTime ); 145 void newEventSignal( QDateTime );
146 146
147 protected: 147 protected:
148 void resizeEvent( QResizeEvent * ); 148 void resizeEvent( QResizeEvent * );
149 149
150 protected slots: 150 protected slots:
151 void defaultAction( QListBoxItem * ); 151 void defaultAction( QListBoxItem * );
152 void contextMenu( QListBoxItem * ); 152 void contextMenu( QListBoxItem * );
153 void selection( QListBoxItem * ); 153 void selection( QListBoxItem * );
154 void cellClicked( QListBoxItem * ); 154 void cellClicked( QListBoxItem * );
155 void newEvent(); 155 void newEvent();
156 156
157 private: 157 private:
158 KOMonthView *mMonthView; 158 KOMonthView *mMonthView;
159 159
160 QDate mDate; 160 QDate mDate;
161 bool mPrimary; 161 bool mPrimary;
162 bool mHoliday; 162 bool mHoliday;
163 QString mHolidayString; 163 QString mHolidayString;
164 164
165 //QLabel *mLabel; 165 //QLabel *mLabel;
166 QPushButton *mLabel; 166 QPushButton *mLabel;
167 QListBox *mItemList; 167 QListBox *mItemList;
168 168
169 QSize mLabelSize; 169 QSize mLabelSize;
170 QSize mLabelBigSize; 170 QSize mLabelBigSize;
171 QPalette mHolidayPalette; 171 QPalette mHolidayPalette;
172 QPalette mStandardPalette; 172 QPalette mStandardPalette;
173 QPalette mPrimaryPalette; 173 QPalette mPrimaryPalette;
174 QPalette mNonPrimaryPalette; 174 QPalette mNonPrimaryPalette;
175 void setMyPalette(); 175 void setMyPalette();
176 QPalette getPalette (); 176 QPalette getPalette ();
177 void keyPressEvent ( QKeyEvent * ) ; 177 void keyPressEvent ( QKeyEvent * ) ;
178 178
179}; 179};
180 180
181 181
182class KOMonthView: public KOEventView 182class KOMonthView: public KOEventView
183{ 183{
184 Q_OBJECT 184 Q_OBJECT
185 public: 185 public:
186 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); 186 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 );
187 ~KOMonthView(); 187 ~KOMonthView();
188 188
189 /** Returns maximum number of days supported by the komonthview */ 189 /** Returns maximum number of days supported by the komonthview */
190 virtual int maxDatesHint(); 190 virtual int maxDatesHint();
191 191
192 /** Returns number of currently shown dates. */ 192 /** Returns number of currently shown dates. */
193 virtual int currentDateCount(); 193 virtual int currentDateCount();
194 194
195 /** returns the currently selected events */ 195 /** returns the currently selected events */
196 virtual QPtrList<Incidence> selectedIncidences(); 196 virtual QPtrList<Incidence> selectedIncidences();
197 197
198 /** returns dates of the currently selected events */ 198 /** returns dates of the currently selected events */
199 virtual DateList selectedDates(); 199 virtual DateList selectedDates();
200 200
201 virtual void printPreview(CalPrinter *calPrinter, 201 virtual void printPreview(CalPrinter *calPrinter,
202 const QDate &, const QDate &); 202 const QDate &, const QDate &);
203 bool isMonthView() { return true; }
203 204
204 MonthViewCell * selectedCell(); 205 MonthViewCell * selectedCell();
205 public slots: 206 public slots:
206 virtual void updateView(); 207 virtual void updateView();
207 virtual void updateConfig(); 208 virtual void updateConfig();
208 virtual void showDates(const QDate &start, const QDate &end); 209 virtual void showDates(const QDate &start, const QDate &end);
209 virtual void showEvents(QPtrList<Event> eventList); 210 virtual void showEvents(QPtrList<Event> eventList);
210 211
211 void changeEventDisplay(Event *, int); 212 void changeEventDisplay(Event *, int);
212 213
213 void clearSelection(); 214 void clearSelection();
214 215
215 void showContextMenu( Incidence * ); 216 void showContextMenu( Incidence * );
216 217
217 void setSelectedCell( MonthViewCell * ); 218 void setSelectedCell( MonthViewCell * );
218 219
219 protected slots: 220 protected slots:
220 void processSelectionChange(); 221 void processSelectionChange();
221 signals: 222 signals:
222 void selectWeekNum ( int ); 223 void selectWeekNum ( int );
223 protected: 224 protected:
224 void resizeEvent(QResizeEvent *); 225 void resizeEvent(QResizeEvent *);
225 void viewChanged(); 226 void viewChanged();
226 void updateDayLabels(); 227 void updateDayLabels();
227 228
228 private: 229 private:
229 int mDaysPerWeek; 230 int mDaysPerWeek;
230 int mNumWeeks; 231 int mNumWeeks;
231 int mNumCells; 232 int mNumCells;
232 bool mWeekStartsMonday; 233 bool mWeekStartsMonday;
233 bool mShowSatSunComp; 234 bool mShowSatSunComp;
234 void computeLayout(); 235 void computeLayout();
235 236
236 QPtrVector<MonthViewCell> mCells; 237 QPtrVector<MonthViewCell> mCells;
237 QPtrVector<QLabel> mDayLabels; 238 QPtrVector<QLabel> mDayLabels;
238 QPtrVector<KOWeekButton> mWeekLabels; 239 QPtrVector<KOWeekButton> mWeekLabels;
239 240
240 bool mShortDayLabels; 241 bool mShortDayLabels;
241 int mWidthLongDayLabel; 242 int mWidthLongDayLabel;
242 243
243 QDate mStartDate; 244 QDate mStartDate;
244 245
245 MonthViewCell *mSelectedCell; 246 MonthViewCell *mSelectedCell;
246 247
247 KOEventPopupMenu *mContextMenu; 248 KOEventPopupMenu *mContextMenu;
248 void keyPressEvent ( QKeyEvent * ) ; 249 void keyPressEvent ( QKeyEvent * ) ;
249 250
250}; 251};
251 252
252#endif 253#endif