summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--desktop/rpm/kdepim_rpm2
-rw-r--r--korganizer/journalentry.cpp1
-rw-r--r--korganizer/koeditorgeneraltodo.cpp1
-rw-r--r--korganizer/komonthview.cpp1
-rw-r--r--version2
5 files changed, 5 insertions, 2 deletions
diff --git a/desktop/rpm/kdepim_rpm b/desktop/rpm/kdepim_rpm
index b1bbed2..04c6aa1 100644
--- a/desktop/rpm/kdepim_rpm
+++ b/desktop/rpm/kdepim_rpm
@@ -1,84 +1,84 @@
1Summary: A collection of PIM programs 1Summary: A collection of PIM programs
2Name: KDE-Pim-Pi 2Name: KDE-Pim-Pi
3Version: 2.0.3 3Version: 2.0.4
4Release: SuSE_9.2 4Release: SuSE_9.2
5Copyright:GPL 5Copyright:GPL
6Group: Productivity/Pim 6Group: Productivity/Pim
7Source:http://sourceforge.net/projects/kdepimpi/ 7Source:http://sourceforge.net/projects/kdepimpi/
8URL:http://sourceforge.net/projects/kdepimpi/ 8URL:http://sourceforge.net/projects/kdepimpi/
9Packager: zautrix 9Packager: zautrix
10 10
11%description 11%description
12This package contains the platform-independent PIM programs from 12This package contains the platform-independent PIM programs from
13www.pi-sync.net, compiled for SuSE 9.2: 13www.pi-sync.net, compiled for SuSE 9.2:
14KTimeTacker/Pi 14KTimeTacker/Pi
15KPhone/Pi 15KPhone/Pi
16KAddressbook/Pi 16KAddressbook/Pi
17KOrganizer/Pi 17KOrganizer/Pi
18PasswordManager/Pi 18PasswordManager/Pi
19KOPieMail/Pi 19KOPieMail/Pi
20 20
21These applications do not need anything from the KDE-desktop 21These applications do not need anything from the KDE-desktop
22at all to run on Linux. However, there is a dependency from 22at all to run on Linux. However, there is a dependency from
23two KDE libs, because a small command line program is included 23two KDE libs, because a small command line program is included
24to make it possible to sync with the KDE-desktop applications. 24to make it possible to sync with the KDE-desktop applications.
25 25
26These applications are independent from the KDE-desktop 26These applications are independent from the KDE-desktop
27environment. That means, nothing of your existing 27environment. That means, nothing of your existing
28KDE-desktop setup will be changed, or any data 28KDE-desktop setup will be changed, or any data
29(calendar-addressbook) used by the KDE-desktop 29(calendar-addressbook) used by the KDE-desktop
30applications will be changed or accessed. 30applications will be changed or accessed.
31These applications stores their data and config in 31These applications stores their data and config in
32$HOME/kdepim/ 32$HOME/kdepim/
33However, because the same file format is used, 33However, because the same file format is used,
34an easy exchange of data with the KDE-desktop 34an easy exchange of data with the KDE-desktop
35is possible. 35is possible.
36A small command line program is included 36A small command line program is included
37to make it possible to sync with the KDE-desktop applications. 37to make it possible to sync with the KDE-desktop applications.
38You do not need to call this program from the commandline, 38You do not need to call this program from the commandline,
39it is called from the KDE-Pim/Pi apps when you choose there: 39it is called from the KDE-Pim/Pi apps when you choose there:
40Sync with KDE_Desktop. 40Sync with KDE_Desktop.
41If something is going wrong, please start the 41If something is going wrong, please start the
42KDE-Pim/Pi program itself from the console to get detailed output. 42KDE-Pim/Pi program itself from the console to get detailed output.
43 43
44After installation, you should have a 44After installation, you should have a
45PIM-pi 45PIM-pi
46folder in your KDE start menu, where you can 46folder in your KDE start menu, where you can
47start the applications from. 47start the applications from.
48 48
49These programs makes it possible to sync your Zaurus easily 49These programs makes it possible to sync your Zaurus easily
50(with the KDE-Pim/Pi programs running on the Zaurus) 50(with the KDE-Pim/Pi programs running on the Zaurus)
51with the KDE-desktop calendar/addressbook data. 51with the KDE-desktop calendar/addressbook data.
52If you want to use that, you have to update your 52If you want to use that, you have to update your
53KDE-desktop to version 3.3.0 or higher. 53KDE-desktop to version 3.3.0 or higher.
54SuSE 9.2 contains KDE 3.3.0 such that no update is needed. 54SuSE 9.2 contains KDE 3.3.0 such that no update is needed.
55Actually - after the (non difficult) configuration is set up - 55Actually - after the (non difficult) configuration is set up -
56with two mouseklicks on the Zaurus, 56with two mouseklicks on the Zaurus,
57the Zaurus syncs with the corresponding KDE-Pim/Pi 57the Zaurus syncs with the corresponding KDE-Pim/Pi
58program on the Linux Desktop which syncs automatically 58program on the Linux Desktop which syncs automatically
59with the KDE-desktop data. 59with the KDE-desktop data.
60 60
61If you want to use the KDE-desktop calendar/addressbook applications, 61If you want to use the KDE-desktop calendar/addressbook applications,
62just install these apps in this package and use them as a syncing tool for the 62just install these apps in this package and use them as a syncing tool for the
63Zaurus <-> KDE-desktop sync. 63Zaurus <-> KDE-desktop sync.
64The sync requires a network connection from your Zaurus to 64The sync requires a network connection from your Zaurus to
65the PC. A detailed Sync HowTo is available in the 65the PC. A detailed Sync HowTo is available in the
66Help menu of the applications. 66Help menu of the applications.
67 67
68These applications makes it also possible, that you can sync 68These applications makes it also possible, that you can sync
69(or just export the data to) your mobile phone with your 69(or just export the data to) your mobile phone with your
70data of the KDE-desktop calendar/addressbook applications. 70data of the KDE-desktop calendar/addressbook applications.
71This is tested and working for Nokia mobile phones, 71This is tested and working for Nokia mobile phones,
72it may work with others as well. 72it may work with others as well.
73(More info about that: -> Sync HowTo) 73(More info about that: -> Sync HowTo)
74 74
75NOTE: 75NOTE:
76When using SuSE 9.1 you have to update your KDE to 3.3.x 76When using SuSE 9.1 you have to update your KDE to 3.3.x
77and you have to make an online update in SuSE 9.1 to make it 77and you have to make an online update in SuSE 9.1 to make it
78possible to get the infrared connection working, such that 78possible to get the infrared connection working, such that
79you can sync your (Nokia) mobile phone via infrared. 79you can sync your (Nokia) mobile phone via infrared.
80 80
81%files 81%files
82/opt/kde3/share/applnk/PIM-pi/ 82/opt/kde3/share/applnk/PIM-pi/
83/opt/kdepimpi/ 83/opt/kdepimpi/
84/usr/lib/libmicro* 84/usr/lib/libmicro*
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp
index dca42e0..c19a5ca 100644
--- a/korganizer/journalentry.cpp
+++ b/korganizer/journalentry.cpp
@@ -1,227 +1,228 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 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 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// 24//
25// Journal Entry 25// Journal Entry
26 26
27#include <qlabel.h> 27#include <qlabel.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qvbox.h> 29#include <qvbox.h>
30#include <qfile.h> 30#include <qfile.h>
31#include <qdir.h> 31#include <qdir.h>
32#include <qtextstream.h> 32#include <qtextstream.h>
33#include <qtextcodec.h> 33#include <qtextcodec.h>
34#include <qpixmap.h> 34#include <qpixmap.h>
35#include <qpushbutton.h> 35#include <qpushbutton.h>
36#include <qapplication.h>
36 37
37#include <kdebug.h> 38#include <kdebug.h>
38#include <kglobal.h> 39#include <kglobal.h>
39#include <klocale.h> 40#include <klocale.h>
40#include <ktextedit.h> 41#include <ktextedit.h>
41#include <kfiledialog.h> 42#include <kfiledialog.h>
42#include <kmessagebox.h> 43#include <kmessagebox.h>
43#include "koprefs.h" 44#include "koprefs.h"
44 45
45#include <libkcal/journal.h> 46#include <libkcal/journal.h>
46#include <libkcal/calendarresources.h> 47#include <libkcal/calendarresources.h>
47#include <libkcal/resourcecalendar.h> 48#include <libkcal/resourcecalendar.h>
48#include <kresources/resourceselectdialog.h> 49#include <kresources/resourceselectdialog.h>
49 50
50#include "journalentry.h" 51#include "journalentry.h"
51//#include "journalentry.moc" 52//#include "journalentry.moc"
52#ifndef DESKTOP_VERSION 53#ifndef DESKTOP_VERSION
53#include <qpe/qpeapplication.h> 54#include <qpe/qpeapplication.h>
54#endif 55#endif
55JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : 56JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) :
56 QFrame(parent) 57 QFrame(parent)
57{ 58{
58 mCalendar = calendar; 59 mCalendar = calendar;
59 mJournal = 0; 60 mJournal = 0;
60 mDirty = false; 61 mDirty = false;
61 62
62 QHBox * vb = new QHBox ( this ); 63 QHBox * vb = new QHBox ( this );
63 QPushButton * loadTemplate = new QPushButton( vb ); 64 QPushButton * loadTemplate = new QPushButton( vb );
64 QPushButton * saveTemplate = new QPushButton( vb ); 65 QPushButton * saveTemplate = new QPushButton( vb );
65 QIconSet icon; 66 QIconSet icon;
66 if ( QApplication::desktop()->width() < 321 ) 67 if ( QApplication::desktop()->width() < 321 )
67 icon = SmallIcon("fileexport16"); 68 icon = SmallIcon("fileexport16");
68 else 69 else
69 icon = SmallIcon("fileexport"); 70 icon = SmallIcon("fileexport");
70 saveTemplate->setIconSet (icon ) ; 71 saveTemplate->setIconSet (icon ) ;
71 int size = saveTemplate->sizeHint().height(); 72 int size = saveTemplate->sizeHint().height();
72 saveTemplate->setFixedSize( size, size ); 73 saveTemplate->setFixedSize( size, size );
73 if ( QApplication::desktop()->width() < 321 ) 74 if ( QApplication::desktop()->width() < 321 )
74 icon = SmallIcon("fileimport16"); 75 icon = SmallIcon("fileimport16");
75 else 76 else
76 icon = SmallIcon("fileimport"); 77 icon = SmallIcon("fileimport");
77 loadTemplate->setIconSet (icon ) ; 78 loadTemplate->setIconSet (icon ) ;
78 loadTemplate->setFixedSize( size, size ); 79 loadTemplate->setFixedSize( size, size );
79 80
80 mTitleLabel = new QLabel(i18n("Title"),vb); 81 mTitleLabel = new QLabel(i18n("Title"),vb);
81 mTitleLabel->setMargin(2); 82 mTitleLabel->setMargin(2);
82 mTitleLabel->setAlignment(AlignCenter); 83 mTitleLabel->setAlignment(AlignCenter);
83 84
84 mEditor = new KTextEdit(this); 85 mEditor = new KTextEdit(this);
85 connect(mEditor,SIGNAL(textChanged()),SLOT(setDirty())); 86 connect(mEditor,SIGNAL(textChanged()),SLOT(setDirty()));
86#ifndef DESKTOP_VERSION 87#ifndef DESKTOP_VERSION
87 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold ); 88 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold );
88#endif 89#endif
89 mEditor->setWordWrap( KTextEdit::WidgetWidth ); 90 mEditor->setWordWrap( KTextEdit::WidgetWidth );
90 QBoxLayout *topLayout = new QVBoxLayout(this); 91 QBoxLayout *topLayout = new QVBoxLayout(this);
91 topLayout->addWidget(vb); 92 topLayout->addWidget(vb);
92 topLayout->addWidget(mEditor); 93 topLayout->addWidget(mEditor);
93 mEditor->installEventFilter(this); 94 mEditor->installEventFilter(this);
94 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) ); 95 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) );
95 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) ); 96 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) );
96} 97}
97 98
98JournalEntry::~JournalEntry() 99JournalEntry::~JournalEntry()
99{ 100{
100} 101}
101 102
102void JournalEntry::slotSaveTemplate() 103void JournalEntry::slotSaveTemplate()
103{ 104{
104 QString fileName =locateLocal( "templates", "journals" ); 105 QString fileName =locateLocal( "templates", "journals" );
105 QDir t_dir; 106 QDir t_dir;
106 if ( !t_dir.exists(fileName) ) 107 if ( !t_dir.exists(fileName) )
107 t_dir.mkdir ( fileName ); 108 t_dir.mkdir ( fileName );
108 fileName += "/journal"; 109 fileName += "/journal";
109 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this ); 110 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this );
110 if ( fileName.length() == 0 ) 111 if ( fileName.length() == 0 )
111 return; 112 return;
112 113
113 QFile fileIn( fileName ); 114 QFile fileIn( fileName );
114 if (!fileIn.open( IO_WriteOnly ) ) { 115 if (!fileIn.open( IO_WriteOnly ) ) {
115 KMessageBox::error( this, i18n("Error saving template file\n '%1'.") 116 KMessageBox::error( this, i18n("Error saving template file\n '%1'.")
116 .arg( fileName ) ); 117 .arg( fileName ) );
117 return; 118 return;
118 } 119 }
119 // QString text; 120 // QString text;
120 QTextStream tsIn( &fileIn ); 121 QTextStream tsIn( &fileIn );
121 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 122 tsIn.setCodec( QTextCodec::codecForName("utf8") );
122 tsIn << mEditor->text(); 123 tsIn << mEditor->text();
123 fileIn.close(); 124 fileIn.close();
124} 125}
125void JournalEntry::slotLoadTemplate() 126void JournalEntry::slotLoadTemplate()
126{ 127{
127 QString fileName =locateLocal( "templates", "journals" ); 128 QString fileName =locateLocal( "templates", "journals" );
128 QDir t_dir; 129 QDir t_dir;
129 if ( !t_dir.exists(fileName) ) 130 if ( !t_dir.exists(fileName) )
130 t_dir.mkdir ( fileName ); 131 t_dir.mkdir ( fileName );
131 fileName += "/journal"; 132 fileName += "/journal";
132 fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this ); 133 fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this );
133 if ( fileName.length() == 0 ) 134 if ( fileName.length() == 0 )
134 return; 135 return;
135 QFile fileIn( fileName ); 136 QFile fileIn( fileName );
136 if (!fileIn.open( IO_ReadOnly ) ) { 137 if (!fileIn.open( IO_ReadOnly ) ) {
137 KMessageBox::error( this, i18n("Error loading template file\n '%1'.") 138 KMessageBox::error( this, i18n("Error loading template file\n '%1'.")
138 .arg( fileName ) ); 139 .arg( fileName ) );
139 return; 140 return;
140 } 141 }
141 QTextStream tsIn( &fileIn ); 142 QTextStream tsIn( &fileIn );
142 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 143 tsIn.setCodec( QTextCodec::codecForName("utf8") );
143 QString text = tsIn.read(); 144 QString text = tsIn.read();
144 fileIn.close(); 145 fileIn.close();
145 int line, col; 146 int line, col;
146 mEditor->getCursorPosition (& line, & col ); 147 mEditor->getCursorPosition (& line, & col );
147 mEditor-> insertAt ( text, line, col, true ); 148 mEditor-> insertAt ( text, line, col, true );
148 //mEditor->setIgnoreMark( true ); 149 //mEditor->setIgnoreMark( true );
149 setDirty(); 150 setDirty();
150} 151}
151void JournalEntry::setDate(const QDate &date) 152void JournalEntry::setDate(const QDate &date)
152{ 153{
153 writeJournal(); 154 writeJournal();
154 155
155 mTitleLabel->setText(KGlobal::locale()->formatDate(date)); 156 mTitleLabel->setText(KGlobal::locale()->formatDate(date));
156 157
157 158
158 mDate = date; 159 mDate = date;
159} 160}
160 161
161void JournalEntry::setJournal(Journal *journal) 162void JournalEntry::setJournal(Journal *journal)
162{ 163{
163 writeJournal(); 164 writeJournal();
164 165
165 mJournal = journal; 166 mJournal = journal;
166 167
167 mEditor->setText(mJournal->description()); 168 mEditor->setText(mJournal->description());
168 169
169 mDirty = false; 170 mDirty = false;
170} 171}
171 172
172Journal *JournalEntry::journal() const 173Journal *JournalEntry::journal() const
173{ 174{
174 return mJournal; 175 return mJournal;
175} 176}
176 177
177void JournalEntry::setDirty() 178void JournalEntry::setDirty()
178{ 179{
179 mDirty = true; 180 mDirty = true;
180 181
181// kdDebug() << "JournalEntry::setDirty()" << endl; 182// kdDebug() << "JournalEntry::setDirty()" << endl;
182} 183}
183 184
184void JournalEntry::clear() 185void JournalEntry::clear()
185{ 186{
186 mJournal = 0; 187 mJournal = 0;
187 mEditor->setText(""); 188 mEditor->setText("");
188} 189}
189 190
190bool JournalEntry::eventFilter( QObject *o, QEvent *e ) 191bool JournalEntry::eventFilter( QObject *o, QEvent *e )
191{ 192{
192// kdDebug() << "JournalEntry::event received " << e->type() << endl; 193// kdDebug() << "JournalEntry::event received " << e->type() << endl;
193 194
194 if ( e->type() == QEvent::FocusOut ) { 195 if ( e->type() == QEvent::FocusOut ) {
195 writeJournal(); 196 writeJournal();
196 } 197 }
197 if ( e->type() == QEvent::KeyPress ) { 198 if ( e->type() == QEvent::KeyPress ) {
198 QKeyEvent * k = (QKeyEvent *) e; 199 QKeyEvent * k = (QKeyEvent *) e;
199 if ( k->state() == Qt::ControlButton ) { 200 if ( k->state() == Qt::ControlButton ) {
200 k->ignore(); 201 k->ignore();
201 //return true; 202 //return true;
202 } 203 }
203 } 204 }
204 205
205 return QFrame::eventFilter( o, e ); // standard event processing 206 return QFrame::eventFilter( o, e ); // standard event processing
206} 207}
207 208
208void JournalEntry::writeJournal() 209void JournalEntry::writeJournal()
209{ 210{
210// kdDebug() << "JournalEntry::writeJournal()" << endl; 211// kdDebug() << "JournalEntry::writeJournal()" << endl;
211 if (!mDirty) return; 212 if (!mDirty) return;
212 213
213 if (mEditor->text().isEmpty()) { 214 if (mEditor->text().isEmpty()) {
214 if ( mJournal ) { 215 if ( mJournal ) {
215 mDirty = false; 216 mDirty = false;
216 bool conf = KOPrefs::instance()->mConfirm; 217 bool conf = KOPrefs::instance()->mConfirm;
217 KOPrefs::instance()->mConfirm = false; 218 KOPrefs::instance()->mConfirm = false;
218 emit deleteJournal(mJournal); 219 emit deleteJournal(mJournal);
219 KOPrefs::instance()->mConfirm = conf; 220 KOPrefs::instance()->mConfirm = conf;
220 mJournal = 0; 221 mJournal = 0;
221 } 222 }
222 return; 223 return;
223 } 224 }
224 225
225// kdDebug() << "JournalEntry::writeJournal()..." << endl; 226// kdDebug() << "JournalEntry::writeJournal()..." << endl;
226 227
227 if (!mJournal) { 228 if (!mJournal) {
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp
index ce0d7a9..cd78f54 100644
--- a/korganizer/koeditorgeneraltodo.cpp
+++ b/korganizer/koeditorgeneraltodo.cpp
@@ -1,223 +1,224 @@
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 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 <qtooltip.h> 24#include <qtooltip.h>
25#include <qfiledialog.h> 25#include <qfiledialog.h>
26#include <qlayout.h> 26#include <qlayout.h>
27#include <qvbox.h> 27#include <qvbox.h>
28#include <qbuttongroup.h> 28#include <qbuttongroup.h>
29#include <qvgroupbox.h> 29#include <qvgroupbox.h>
30#include <qwidgetstack.h> 30#include <qwidgetstack.h>
31#include <qdatetime.h> 31#include <qdatetime.h>
32#include <qapplication.h>
32 33
33#include <kglobal.h> 34#include <kglobal.h>
34#include <klocale.h> 35#include <klocale.h>
35#include <kiconloader.h> 36#include <kiconloader.h>
36#include <kmessagebox.h> 37#include <kmessagebox.h>
37#include <kdebug.h> 38#include <kdebug.h>
38#include <krestrictedline.h> 39#include <krestrictedline.h>
39#include <kstandarddirs.h> 40#include <kstandarddirs.h>
40#include <kfiledialog.h> 41#include <kfiledialog.h>
41 42
42#include <libkcal/todo.h> 43#include <libkcal/todo.h>
43 44
44#include <libkdepim/kdateedit.h> 45#include <libkdepim/kdateedit.h>
45 46
46#include "koprefs.h" 47#include "koprefs.h"
47#include "ktimeedit.h" 48#include "ktimeedit.h"
48 49
49#include "koeditorgeneraltodo.h" 50#include "koeditorgeneraltodo.h"
50#include "kolocationbox.h" 51#include "kolocationbox.h"
51 52
52KOEditorGeneralTodo::KOEditorGeneralTodo(QObject* parent, 53KOEditorGeneralTodo::KOEditorGeneralTodo(QObject* parent,
53 const char* name) 54 const char* name)
54 : KOEditorGeneral( parent, name) 55 : KOEditorGeneral( parent, name)
55{ 56{
56} 57}
57 58
58KOEditorGeneralTodo::~KOEditorGeneralTodo() 59KOEditorGeneralTodo::~KOEditorGeneralTodo()
59{ 60{
60} 61}
61 62
62void KOEditorGeneralTodo::finishSetup() 63void KOEditorGeneralTodo::finishSetup()
63{ 64{
64 65
65// QWidget::setTabOrder(mSummaryEdit, mLocationEdit); 66// QWidget::setTabOrder(mSummaryEdit, mLocationEdit);
66// QWidget::setTabOrder(mLocationEdit, mDueCheck); 67// QWidget::setTabOrder(mLocationEdit, mDueCheck);
67// QWidget::setTabOrder(mDueCheck, mDueDateEdit); 68// QWidget::setTabOrder(mDueCheck, mDueDateEdit);
68// QWidget::setTabOrder(mDueDateEdit, mDueTimeEdit); 69// QWidget::setTabOrder(mDueDateEdit, mDueTimeEdit);
69// QWidget::setTabOrder(mDueTimeEdit, mStartCheck); 70// QWidget::setTabOrder(mDueTimeEdit, mStartCheck);
70// QWidget::setTabOrder(mStartCheck, mStartDateEdit); 71// QWidget::setTabOrder(mStartCheck, mStartDateEdit);
71// QWidget::setTabOrder(mStartDateEdit, mStartTimeEdit); 72// QWidget::setTabOrder(mStartDateEdit, mStartTimeEdit);
72// QWidget::setTabOrder(mStartTimeEdit, mTimeButton); 73// QWidget::setTabOrder(mStartTimeEdit, mTimeButton);
73// QWidget::setTabOrder(mTimeButton, mCompletedCombo); 74// QWidget::setTabOrder(mTimeButton, mCompletedCombo);
74// QWidget::setTabOrder(mCompletedCombo, mPriorityCombo); 75// QWidget::setTabOrder(mCompletedCombo, mPriorityCombo);
75// QWidget::setTabOrder(mPriorityCombo, mAlarmButton); 76// QWidget::setTabOrder(mPriorityCombo, mAlarmButton);
76// QWidget::setTabOrder(mAlarmButton, mCategoriesButton); 77// QWidget::setTabOrder(mAlarmButton, mCategoriesButton);
77// QWidget::setTabOrder(mCategoriesButton, mSecrecyCombo); 78// QWidget::setTabOrder(mCategoriesButton, mSecrecyCombo);
78// QWidget::setTabOrder(mSecrecyCombo, mDescriptionEdit); 79// QWidget::setTabOrder(mSecrecyCombo, mDescriptionEdit);
79 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 80 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
80 mSummaryEdit->setFocus(); 81 mSummaryEdit->setFocus();
81} 82}
82 83
83void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout) 84void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout)
84{ 85{
85 QBoxLayout *timeLayout = new QVBoxLayout(topLayout); 86 QBoxLayout *timeLayout = new QVBoxLayout(topLayout);
86 87
87 QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal, 88 QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal,
88 i18n("Date && Time"),parent); 89 i18n("Date && Time"),parent);
89 timeLayout->addWidget(timeGroupBox); 90 timeLayout->addWidget(timeGroupBox);
90 timeGroupBox->layout()->setSpacing( 0 ); 91 timeGroupBox->layout()->setSpacing( 0 );
91 timeGroupBox->layout()->setMargin( 5 ); 92 timeGroupBox->layout()->setMargin( 5 );
92 QFrame *timeBoxFrame = new QFrame(timeGroupBox); 93 QFrame *timeBoxFrame = new QFrame(timeGroupBox);
93 94
94 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3); 95 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3);
95 layoutTimeBox->setSpacing(topLayout->spacing()); 96 layoutTimeBox->setSpacing(topLayout->spacing());
96 layoutTimeBox->setColStretch( 1, 1 ); 97 layoutTimeBox->setColStretch( 1, 1 );
97 98
98 mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame); 99 mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame);
99 layoutTimeBox->addWidget(mDueCheck,0,0); 100 layoutTimeBox->addWidget(mDueCheck,0,0);
100 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool))); 101 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool)));
101 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm())); 102 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm()));
102 103
103 104
104 mDueDateEdit = new KDateEdit(timeBoxFrame); 105 mDueDateEdit = new KDateEdit(timeBoxFrame);
105 layoutTimeBox->addWidget(mDueDateEdit,0,1); 106 layoutTimeBox->addWidget(mDueDateEdit,0,1);
106 107
107 mDueTimeEdit = new KOTimeEdit(timeBoxFrame); 108 mDueTimeEdit = new KOTimeEdit(timeBoxFrame);
108 layoutTimeBox->addWidget(mDueTimeEdit,0,2); 109 layoutTimeBox->addWidget(mDueTimeEdit,0,2);
109 110
110 111
111 mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame); 112 mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame);
112 layoutTimeBox->addWidget(mStartCheck,1,0); 113 layoutTimeBox->addWidget(mStartCheck,1,0);
113 connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool))); 114 connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool)));
114 115
115 mStartDateEdit = new KDateEdit(timeBoxFrame); 116 mStartDateEdit = new KDateEdit(timeBoxFrame);
116 layoutTimeBox->addWidget(mStartDateEdit,1,1); 117 layoutTimeBox->addWidget(mStartDateEdit,1,1);
117 118
118 mStartTimeEdit = new KOTimeEdit(timeBoxFrame); 119 mStartTimeEdit = new KOTimeEdit(timeBoxFrame);
119 layoutTimeBox->addWidget(mStartTimeEdit,1,2); 120 layoutTimeBox->addWidget(mStartTimeEdit,1,2);
120 121
121 122
122 mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame); 123 mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame);
123 layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1); 124 layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1);
124 125
125 connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool))); 126 connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool)));
126 127
127 // some more layouting 128 // some more layouting
128 //layoutTimeBox->setColStretch(3,1); 129 //layoutTimeBox->setColStretch(3,1);
129} 130}
130 131
131 132
132void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) 133void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout)
133{ 134{
134 mCompletedCombo = new QComboBox(parent); 135 mCompletedCombo = new QComboBox(parent);
135 // xgettext:no-c-format 136 // xgettext:no-c-format
136 mCompletedCombo->insertItem(i18n(" 0 %")); 137 mCompletedCombo->insertItem(i18n(" 0 %"));
137 // xgettext:no-c-format 138 // xgettext:no-c-format
138 mCompletedCombo->insertItem(i18n(" 20 %")); 139 mCompletedCombo->insertItem(i18n(" 20 %"));
139 // xgettext:no-c-format 140 // xgettext:no-c-format
140 mCompletedCombo->insertItem(i18n(" 40 %")); 141 mCompletedCombo->insertItem(i18n(" 40 %"));
141 // xgettext:no-c-format 142 // xgettext:no-c-format
142 mCompletedCombo->insertItem(i18n(" 60 %")); 143 mCompletedCombo->insertItem(i18n(" 60 %"));
143 // xgettext:no-c-format 144 // xgettext:no-c-format
144 mCompletedCombo->insertItem(i18n(" 80 %")); 145 mCompletedCombo->insertItem(i18n(" 80 %"));
145 // xgettext:no-c-format 146 // xgettext:no-c-format
146 mCompletedCombo->insertItem(i18n("100 %")); 147 mCompletedCombo->insertItem(i18n("100 %"));
147 connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); 148 connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int)));
148 topLayout->addWidget(mCompletedCombo); 149 topLayout->addWidget(mCompletedCombo);
149 150
150 mCompletedLabel = new QLabel(i18n("completed"),parent); 151 mCompletedLabel = new QLabel(i18n("completed"),parent);
151 topLayout->addWidget(mCompletedLabel); 152 topLayout->addWidget(mCompletedLabel);
152 153
153 mCompleteDateEdit = new KDateEdit(parent); 154 mCompleteDateEdit = new KDateEdit(parent);
154 topLayout->addWidget(mCompleteDateEdit ); 155 topLayout->addWidget(mCompleteDateEdit );
155 156
156 mCompleteTimeEdit = new KOTimeEdit(parent); 157 mCompleteTimeEdit = new KOTimeEdit(parent);
157 topLayout->addWidget( mCompleteTimeEdit); 158 topLayout->addWidget( mCompleteTimeEdit);
158 159
159 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) ); 160 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) );
160 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) ); 161 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) );
161 162
162 if ( QApplication::desktop()->width() < 320 ) { 163 if ( QApplication::desktop()->width() < 320 ) {
163 mCompleteDateEdit->setMaximumWidth( 85 ); 164 mCompleteDateEdit->setMaximumWidth( 85 );
164 topLayout->setSpacing( 0 ); 165 topLayout->setSpacing( 0 );
165 } 166 }
166} 167}
167 168
168void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) 169void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout)
169{ 170{
170 171
171 QHBox* h = new QHBox ( parent ); 172 QHBox* h = new QHBox ( parent );
172 topLayout->addWidget( h ); 173 topLayout->addWidget( h );
173 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h); 174 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h);
174 // topLayout->addWidget(priorityLabel); 175 // topLayout->addWidget(priorityLabel);
175 mPriorityCombo = new QComboBox( h ); 176 mPriorityCombo = new QComboBox( h );
176 mPriorityCombo->insertItem(i18n("1 (high)")); 177 mPriorityCombo->insertItem(i18n("1 (high)"));
177 mPriorityCombo->insertItem(i18n("2")); 178 mPriorityCombo->insertItem(i18n("2"));
178 mPriorityCombo->insertItem(i18n("3")); 179 mPriorityCombo->insertItem(i18n("3"));
179 mPriorityCombo->insertItem(i18n("4")); 180 mPriorityCombo->insertItem(i18n("4"));
180 mPriorityCombo->insertItem(i18n("5 (low)")); 181 mPriorityCombo->insertItem(i18n("5 (low)"));
181 //topLayout->addWidget(mPriorityCombo); 182 //topLayout->addWidget(mPriorityCombo);
182} 183}
183 184
184void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout) 185void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout)
185{ 186{
186 QBoxLayout *statusLayout = new QHBoxLayout(topLayout); 187 QBoxLayout *statusLayout = new QHBoxLayout(topLayout);
187 188
188 initCompletion( parent, statusLayout ); 189 initCompletion( parent, statusLayout );
189 190
190 statusLayout->addStretch( 1 ); 191 statusLayout->addStretch( 1 );
191 192
192 initPriority( parent, statusLayout ); 193 initPriority( parent, statusLayout );
193} 194}
194 195
195void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay) 196void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay)
196{ 197{
197 198
198 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 199 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
199 mLocationEdit->load(KOLocationBox::LOCATION); 200 mLocationEdit->load(KOLocationBox::LOCATION);
200 KOEditorGeneral::setDefaults(allDay); 201 KOEditorGeneral::setDefaults(allDay);
201 202
202 mTimeButton->setChecked( !allDay ); 203 mTimeButton->setChecked( !allDay );
203 if(mTimeButton->isChecked()) { 204 if(mTimeButton->isChecked()) {
204 mTimeButton->setEnabled(true); 205 mTimeButton->setEnabled(true);
205 } 206 }
206 else { 207 else {
207 mTimeButton->setEnabled(false); 208 mTimeButton->setEnabled(false);
208 } 209 }
209 210
210 enableTimeEdits( !allDay ); 211 enableTimeEdits( !allDay );
211 if ( due.isValid() ) { 212 if ( due.isValid() ) {
212 mDueCheck->setChecked(true); 213 mDueCheck->setChecked(true);
213 enableDueEdit(true); 214 enableDueEdit(true);
214 } else { 215 } else {
215 mDueCheck->setChecked(false); 216 mDueCheck->setChecked(false);
216 enableDueEdit(false); 217 enableDueEdit(false);
217 due = QDateTime::currentDateTime().addDays(7); 218 due = QDateTime::currentDateTime().addDays(7);
218 } 219 }
219 220
220 alarmDisable(true); 221 alarmDisable(true);
221 222
222 mStartCheck->setChecked(false); 223 mStartCheck->setChecked(false);
223 enableStartEdit(false); 224 enableStartEdit(false);
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index cb519b2..65accdc 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -1,216 +1,217 @@
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#include <qpopupmenu.h> 20#include <qpopupmenu.h>
21#include <qfont.h> 21#include <qfont.h>
22#include <qfontmetrics.h> 22#include <qfontmetrics.h>
23#include <qkeycode.h> 23#include <qkeycode.h>
24#include <qhbox.h> 24#include <qhbox.h>
25#include <qtimer.h>
25#include <qvbox.h> 26#include <qvbox.h>
26#include <qwidgetstack.h> 27#include <qwidgetstack.h>
27#include <qpushbutton.h> 28#include <qpushbutton.h>
28#include <qtooltip.h> 29#include <qtooltip.h>
29#include <qpainter.h> 30#include <qpainter.h>
30#include <qwhatsthis.h> 31#include <qwhatsthis.h>
31#ifndef DESKTOP_VERSION 32#ifndef DESKTOP_VERSION
32#include <qpe/qpeapplication.h> 33#include <qpe/qpeapplication.h>
33#else 34#else
34#include <qapplication.h> 35#include <qapplication.h>
35#endif 36#endif
36 37
37#include <kdebug.h> 38#include <kdebug.h>
38#include <klocale.h> 39#include <klocale.h>
39#include <kglobal.h> 40#include <kglobal.h>
40#include <kconfig.h> 41#include <kconfig.h>
41#include <kiconloader.h> 42#include <kiconloader.h>
42 43
43#include <kcalendarsystem.h> 44#include <kcalendarsystem.h>
44 45
45#ifndef KORG_NOPRINTER 46#ifndef KORG_NOPRINTER
46#include "calprinter.h" 47#include "calprinter.h"
47#endif 48#endif
48#include "koprefs.h" 49#include "koprefs.h"
49#ifndef KORG_NOPLUGINS 50#ifndef KORG_NOPLUGINS
50#include "kocore.h" 51#include "kocore.h"
51#endif 52#endif
52#include "koglobals.h" 53#include "koglobals.h"
53#include <libkcal/kincidenceformatter.h> 54#include <libkcal/kincidenceformatter.h>
54 55
55#include "komonthview.h" 56#include "komonthview.h"
56 57
57#define PIXMAP_SIZE 5 58#define PIXMAP_SIZE 5
58#ifdef DESKTOP_VERSION 59#ifdef DESKTOP_VERSION
59QToolTipGroup *MonthViewCell::mToolTipGroup = 0; 60QToolTipGroup *MonthViewCell::mToolTipGroup = 0;
60#endif 61#endif
61class KNOWhatsThis :public QWhatsThis 62class KNOWhatsThis :public QWhatsThis
62{ 63{
63public: 64public:
64 KNOWhatsThis( KNoScrollListBox* sbox ) : QWhatsThis( sbox ), _wid( sbox) { }; 65 KNOWhatsThis( KNoScrollListBox* sbox ) : QWhatsThis( sbox ), _wid( sbox) { };
65 //~KNOWhatsThis( ) {qDebug("~KNOWhatsThis( ) "); }; 66 //~KNOWhatsThis( ) {qDebug("~KNOWhatsThis( ) "); };
66 67
67protected: 68protected:
68 virtual QString text( const QPoint& p) 69 virtual QString text( const QPoint& p)
69 { 70 {
70 return _wid->getWhatsThisText(p) ; 71 return _wid->getWhatsThisText(p) ;
71 }; 72 };
72private: 73private:
73 KNoScrollListBox* _wid; 74 KNoScrollListBox* _wid;
74 75
75}; 76};
76 77
77 78
78KNoScrollListBox::KNoScrollListBox(QWidget *parent,const char *name) 79KNoScrollListBox::KNoScrollListBox(QWidget *parent,const char *name)
79 : QListBox(parent, name, WRepaintNoErase) 80 : QListBox(parent, name, WRepaintNoErase)
80{ 81{
81#ifndef DESKTOP_VERSION 82#ifndef DESKTOP_VERSION
82 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 83 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
83#endif 84#endif
84 mWT = new KNOWhatsThis(this); 85 mWT = new KNOWhatsThis(this);
85} 86}
86KNoScrollListBox::~KNoScrollListBox() 87KNoScrollListBox::~KNoScrollListBox()
87{ 88{
88 89
89} 90}
90QString KNoScrollListBox::getWhatsThisText(QPoint p) 91QString KNoScrollListBox::getWhatsThisText(QPoint p)
91{ 92{
92 QListBoxItem* item = itemAt ( p ); 93 QListBoxItem* item = itemAt ( p );
93 if ( ! item ) { 94 if ( ! item ) {
94 return i18n("Click in the cell\nto add an event!"); 95 return i18n("Click in the cell\nto add an event!");
95 } 96 }
96 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence()); 97 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence());
97} 98}
98void KNoScrollListBox::keyPressEvent(QKeyEvent *e) 99void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
99{ 100{
100 101
101 switch(e->key()) { 102 switch(e->key()) {
102 case Key_Right: 103 case Key_Right:
103 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 104 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
104 { 105 {
105 e->ignore(); 106 e->ignore();
106 return; 107 return;
107 } 108 }
108 scrollBy(10,0); 109 scrollBy(10,0);
109 break; 110 break;
110 case Key_Left: 111 case Key_Left:
111 if (e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 112 if (e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
112 { 113 {
113 e->ignore(); 114 e->ignore();
114 return; 115 return;
115 } 116 }
116 scrollBy(-10,0); 117 scrollBy(-10,0);
117 break; 118 break;
118 case Key_Up: 119 case Key_Up:
119 if( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) { 120 if( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
120 e->ignore(); 121 e->ignore();
121 break; 122 break;
122 } 123 }
123 setCurrentItem((currentItem()+count()-1)%count()); 124 setCurrentItem((currentItem()+count()-1)%count());
124 if(!itemVisible(currentItem())) { 125 if(!itemVisible(currentItem())) {
125 if((unsigned int) currentItem() == (count()-1)) { 126 if((unsigned int) currentItem() == (count()-1)) {
126 setTopItem(currentItem()-numItemsVisible()+1); 127 setTopItem(currentItem()-numItemsVisible()+1);
127 } else { 128 } else {
128 setTopItem(topItem()-1); 129 setTopItem(topItem()-1);
129 } 130 }
130 } 131 }
131 break; 132 break;
132 case Key_Down: 133 case Key_Down:
133 if(e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) { 134 if(e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
134 e->ignore(); 135 e->ignore();
135 break; 136 break;
136 } 137 }
137 setCurrentItem((currentItem()+1)%count()); 138 setCurrentItem((currentItem()+1)%count());
138 if(!itemVisible(currentItem())) { 139 if(!itemVisible(currentItem())) {
139 if(currentItem() == 0) { 140 if(currentItem() == 0) {
140 setTopItem(0); 141 setTopItem(0);
141 } else { 142 } else {
142 setTopItem(topItem()+1); 143 setTopItem(topItem()+1);
143 } 144 }
144 } 145 }
145 break; 146 break;
146 case Key_I: 147 case Key_I:
147 QTimer::singleShot( 11, this, SLOT ( oneDown() ) ); 148 QTimer::singleShot( 11, this, SLOT ( oneDown() ) );
148 e->ignore(); 149 e->ignore();
149 break; 150 break;
150 case Key_Shift: 151 case Key_Shift:
151 emit shiftDown(); 152 emit shiftDown();
152 break; 153 break;
153 default: 154 default:
154 e->ignore(); 155 e->ignore();
155 break; 156 break;
156 } 157 }
157} 158}
158 159
159void KNoScrollListBox::oneDown() 160void KNoScrollListBox::oneDown()
160{ 161{
161 setCurrentItem((currentItem()+1)%count()); 162 setCurrentItem((currentItem()+1)%count());
162 if(!itemVisible(currentItem())) { 163 if(!itemVisible(currentItem())) {
163 if(currentItem() == 0) { 164 if(currentItem() == 0) {
164 setTopItem(0); 165 setTopItem(0);
165 } else { 166 } else {
166 setTopItem(topItem()+1); 167 setTopItem(topItem()+1);
167 } 168 }
168 } 169 }
169} 170}
170void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e) 171void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e)
171{ 172{
172 switch(e->key()) { 173 switch(e->key()) {
173 case Key_Shift: 174 case Key_Shift:
174 emit shiftUp(); 175 emit shiftUp();
175 break; 176 break;
176 default: 177 default:
177 break; 178 break;
178 } 179 }
179} 180}
180 181
181void KNoScrollListBox::mousePressEvent(QMouseEvent *e) 182void KNoScrollListBox::mousePressEvent(QMouseEvent *e)
182{ 183{
183 QListBox::mousePressEvent(e); 184 QListBox::mousePressEvent(e);
184 185
185 if(e->button() == RightButton) { 186 if(e->button() == RightButton) {
186 emit rightClick(); 187 emit rightClick();
187 } 188 }
188} 189}
189 190
190MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s) 191MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s)
191 : QListBoxItem() 192 : QListBoxItem()
192{ 193{
193 setText( s ); 194 setText( s );
194 195
195 mIncidence = incidence; 196 mIncidence = incidence;
196 mDate = qd; 197 mDate = qd;
197 // QWhatsThis::add(this,KIncidenceFormatter::instance()->getFormattedText( mIncidence )); 198 // QWhatsThis::add(this,KIncidenceFormatter::instance()->getFormattedText( mIncidence ));
198 mRecur = false; 199 mRecur = false;
199 mAlarm = false; 200 mAlarm = false;
200 mReply = false; 201 mReply = false;
201 mInfo = false; 202 mInfo = false;
202} 203}
203 204
204void MonthViewItem::paint(QPainter *p) 205void MonthViewItem::paint(QPainter *p)
205{ 206{
206#if QT_VERSION >= 0x030000 207#if QT_VERSION >= 0x030000
207 bool sel = isSelected(); 208 bool sel = isSelected();
208#else 209#else
209 bool sel = selected(); 210 bool sel = selected();
210#endif 211#endif
211 212
212 213
213 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) 214 if (KOPrefs::instance()->mMonthViewUsesCategoryColor)
214 { 215 {
215 p->setBackgroundColor( palette().color( QPalette::Normal, \ 216 p->setBackgroundColor( palette().color( QPalette::Normal, \
216 sel ? QColorGroup::Highlight : QColorGroup::Background ) ); 217 sel ? QColorGroup::Highlight : QColorGroup::Background ) );
diff --git a/version b/version
index 376ebb3..0584395 100644
--- a/version
+++ b/version
@@ -1 +1 @@
version = "2.0.3"; version = "2.0.4";