-rw-r--r-- | korganizer/journalentry.cpp | 4 | ||||
-rw-r--r-- | korganizer/koagenda.cpp | 6 | ||||
-rw-r--r-- | korganizer/koagenda.h | 2 | ||||
-rw-r--r-- | korganizer/kotodoview.cpp | 4 |
4 files changed, 11 insertions, 5 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp index 5fc3f2f..7f6f221 100644 --- a/korganizer/journalentry.cpp +++ b/korganizer/journalentry.cpp | |||
@@ -157,193 +157,195 @@ void JournalEntry::resizeEvent(QResizeEvent* e ) | |||
157 | } | 157 | } |
158 | else { | 158 | else { |
159 | mTitle->setMaximumWidth( (maxwid/4)*3); | 159 | mTitle->setMaximumWidth( (maxwid/4)*3); |
160 | mCalendarBox->setMaximumWidth( maxwid/2 ); | 160 | mCalendarBox->setMaximumWidth( maxwid/2 ); |
161 | } | 161 | } |
162 | //mCalendarBox->setMaximumWidth( maxwid/2 -20 ); | 162 | //mCalendarBox->setMaximumWidth( maxwid/2 -20 ); |
163 | } | 163 | } |
164 | //setMaximumWidth( QApplication::desktop()->width() ); | 164 | //setMaximumWidth( QApplication::desktop()->width() ); |
165 | //qDebug("MAXXX %d ", QApplication::desktop()->width()); | 165 | //qDebug("MAXXX %d ", QApplication::desktop()->width()); |
166 | #endif | 166 | #endif |
167 | QFrame::resizeEvent( e ); | 167 | QFrame::resizeEvent( e ); |
168 | } | 168 | } |
169 | QSize JournalEntry::sizeHint() const | 169 | QSize JournalEntry::sizeHint() const |
170 | { | 170 | { |
171 | return QSize ( 240, heiHint ); | 171 | return QSize ( 240, heiHint ); |
172 | } | 172 | } |
173 | void JournalEntry::slotSaveTemplate() | 173 | void JournalEntry::slotSaveTemplate() |
174 | { | 174 | { |
175 | QString fileName =locateLocal( "templates", "journals" ); | 175 | QString fileName =locateLocal( "templates", "journals" ); |
176 | QDir t_dir; | 176 | QDir t_dir; |
177 | if ( !t_dir.exists(fileName) ) | 177 | if ( !t_dir.exists(fileName) ) |
178 | t_dir.mkdir ( fileName ); | 178 | t_dir.mkdir ( fileName ); |
179 | fileName += "/journal"; | 179 | fileName += "/journal"; |
180 | fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this ); | 180 | fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this ); |
181 | if ( fileName.length() == 0 ) | 181 | if ( fileName.length() == 0 ) |
182 | return; | 182 | return; |
183 | 183 | ||
184 | QFile fileIn( fileName ); | 184 | QFile fileIn( fileName ); |
185 | if (!fileIn.open( IO_WriteOnly ) ) { | 185 | if (!fileIn.open( IO_WriteOnly ) ) { |
186 | KMessageBox::error( this, i18n("Error saving template file\n '%1'.") | 186 | KMessageBox::error( this, i18n("Error saving template file\n '%1'.") |
187 | .arg( fileName ) ); | 187 | .arg( fileName ) ); |
188 | return; | 188 | return; |
189 | } | 189 | } |
190 | // QString text; | 190 | // QString text; |
191 | QTextStream tsIn( &fileIn ); | 191 | QTextStream tsIn( &fileIn ); |
192 | tsIn.setCodec( QTextCodec::codecForName("utf8") ); | 192 | tsIn.setCodec( QTextCodec::codecForName("utf8") ); |
193 | tsIn << mEditor->text(); | 193 | tsIn << mEditor->text(); |
194 | fileIn.close(); | 194 | fileIn.close(); |
195 | } | 195 | } |
196 | void JournalEntry::slotLoadTemplate() | 196 | void JournalEntry::slotLoadTemplate() |
197 | { | 197 | { |
198 | QString fileName =locateLocal( "templates", "journals" ); | 198 | QString fileName =locateLocal( "templates", "journals" ); |
199 | QDir t_dir; | 199 | QDir t_dir; |
200 | if ( !t_dir.exists(fileName) ) | 200 | if ( !t_dir.exists(fileName) ) |
201 | t_dir.mkdir ( fileName ); | 201 | t_dir.mkdir ( fileName ); |
202 | fileName += "/journal"; | 202 | fileName += "/journal"; |
203 | fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this ); | 203 | fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this ); |
204 | if ( fileName.length() == 0 ) | 204 | if ( fileName.length() == 0 ) |
205 | return; | 205 | return; |
206 | QFile fileIn( fileName ); | 206 | QFile fileIn( fileName ); |
207 | if (!fileIn.open( IO_ReadOnly ) ) { | 207 | if (!fileIn.open( IO_ReadOnly ) ) { |
208 | KMessageBox::error( this, i18n("Error loading template file\n '%1'.") | 208 | KMessageBox::error( this, i18n("Error loading template file\n '%1'.") |
209 | .arg( fileName ) ); | 209 | .arg( fileName ) ); |
210 | return; | 210 | return; |
211 | } | 211 | } |
212 | QTextStream tsIn( &fileIn ); | 212 | QTextStream tsIn( &fileIn ); |
213 | tsIn.setCodec( QTextCodec::codecForName("utf8") ); | 213 | tsIn.setCodec( QTextCodec::codecForName("utf8") ); |
214 | QString text = tsIn.read(); | 214 | QString text = tsIn.read(); |
215 | fileIn.close(); | 215 | fileIn.close(); |
216 | int line, col; | 216 | int line, col; |
217 | mEditor->getCursorPosition (& line, & col ); | 217 | mEditor->getCursorPosition (& line, & col ); |
218 | mEditor-> insertAt ( text, line, col, true ); | 218 | mEditor-> insertAt ( text, line, col, true ); |
219 | //mEditor->setIgnoreMark( true ); | 219 | //mEditor->setIgnoreMark( true ); |
220 | } | 220 | } |
221 | void JournalEntry::setDate(const QDate &date) | 221 | void JournalEntry::setDate(const QDate &date) |
222 | { | 222 | { |
223 | showOnlyMode = false; | 223 | showOnlyMode = false; |
224 | writeJournal(); | 224 | writeJournal(); |
225 | mDate = date; | 225 | mDate = date; |
226 | fillCalendar( mCalendar->defaultCalendar() ); | 226 | fillCalendar( mCalendar->defaultCalendar() ); |
227 | } | 227 | } |
228 | void JournalEntry::fillCalendar( int setToID ) | 228 | void JournalEntry::fillCalendar( int setToID ) |
229 | { | 229 | { |
230 | mCalendarBox->clear(); | 230 | mCalendarBox->clear(); |
231 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); | 231 | KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); |
232 | int std = 0; | 232 | int std = 0; |
233 | int count = 0; | 233 | int count = 0; |
234 | while ( kkf ) { | 234 | while ( kkf ) { |
235 | if ( (!kkf->mErrorOnLoad &&! kkf->isReadOnly) || setToID == kkf->mCalNumber ) { | 235 | if ( (!kkf->mErrorOnLoad &&! kkf->isReadOnly) || setToID == kkf->mCalNumber ) { |
236 | if ( setToID ) { | 236 | if ( setToID ) { |
237 | if ( kkf->mCalNumber == setToID ) | 237 | if ( kkf->mCalNumber == setToID ) |
238 | std = count; | 238 | std = count; |
239 | } else { | 239 | } else { |
240 | if ( kkf->isStandard ) { | 240 | if ( kkf->isStandard ) { |
241 | std = count; | 241 | std = count; |
242 | } | 242 | } |
243 | } | 243 | } |
244 | ++count; | 244 | ++count; |
245 | mCalendarBox->insertItem( kkf->mName ); | 245 | mCalendarBox->insertItem( kkf->mName ); |
246 | } | 246 | } |
247 | kkf = KOPrefs::instance()->mCalendars.next(); | 247 | kkf = KOPrefs::instance()->mCalendars.next(); |
248 | } | 248 | } |
249 | mCalendarBox->setCurrentItem( std ); | 249 | mCalendarBox->setCurrentItem( std ); |
250 | } | 250 | } |
251 | 251 | ||
252 | void JournalEntry::toggleShowJournal() | 252 | void JournalEntry::toggleShowJournal() |
253 | { | 253 | { |
254 | if ( mEditor->text().isEmpty() && mTitle->currentText ().isEmpty() ) | ||
255 | return; | ||
254 | if (!mEditor->text().isEmpty() || !mTitle->currentText ().isEmpty()) | 256 | if (!mEditor->text().isEmpty() || !mTitle->currentText ().isEmpty()) |
255 | flushEntry(); | 257 | flushEntry(); |
256 | if ( showOnlyMode ) | 258 | if ( showOnlyMode ) |
257 | emit showJournalOnly( 0 ); | 259 | emit showJournalOnly( 0 ); |
258 | else { | 260 | else { |
259 | // we have to protect mJournal from deleting if mJournal has empty text | 261 | // we have to protect mJournal from deleting if mJournal has empty text |
260 | visibleMode = false; // set to true via :setShowOnly() | 262 | visibleMode = false; // set to true via :setShowOnly() |
261 | emit showJournalOnly( mJournal ); | 263 | emit showJournalOnly( mJournal ); |
262 | //QTimer::singleShot( 0, this, SLOT( setVisibleOn() ) ); | 264 | //QTimer::singleShot( 0, this, SLOT( setVisibleOn() ) ); |
263 | } | 265 | } |
264 | } | 266 | } |
265 | void JournalEntry::setVisibleOn() | 267 | void JournalEntry::setVisibleOn() |
266 | { | 268 | { |
267 | visibleMode = true; | 269 | visibleMode = true; |
268 | } | 270 | } |
269 | void JournalEntry::setShowOnly() | 271 | void JournalEntry::setShowOnly() |
270 | { | 272 | { |
271 | showOnlyMode = true; | 273 | showOnlyMode = true; |
272 | if ( mTitle->currentText().isEmpty() ) | 274 | if ( mTitle->currentText().isEmpty() ) |
273 | mTitle->setFocus(); | 275 | mTitle->setFocus(); |
274 | else | 276 | else |
275 | mEditor->setFocus(); | 277 | mEditor->setFocus(); |
276 | } | 278 | } |
277 | void JournalEntry::setJournal(Journal *journal, bool saveJournal ) | 279 | void JournalEntry::setJournal(Journal *journal, bool saveJournal ) |
278 | { | 280 | { |
279 | if ( saveJournal ) | 281 | if ( saveJournal ) |
280 | writeJournal(); | 282 | writeJournal(); |
281 | mTitle->load( KOLocationBox::SUMMARYJOURNAL ); | 283 | mTitle->load( KOLocationBox::SUMMARYJOURNAL ); |
282 | 284 | ||
283 | mJournal = journal; | 285 | mJournal = journal; |
284 | if ( journal->isReadOnly() ) | 286 | if ( journal->isReadOnly() ) |
285 | mTitle->lineEdit ()->setText(mJournal->summary()+" ("+i18n("readonly")+")"); | 287 | mTitle->lineEdit ()->setText(mJournal->summary()+" ("+i18n("readonly")+")"); |
286 | else | 288 | else |
287 | mTitle->lineEdit ()->setText(mJournal->summary()); | 289 | mTitle->lineEdit ()->setText(mJournal->summary()); |
288 | mEditor->setText(mJournal->description()); | 290 | mEditor->setText(mJournal->description()); |
289 | mTitle->setEnabled (!journal->isReadOnly() ); | 291 | mTitle->setEnabled (!journal->isReadOnly() ); |
290 | mEditor->setReadOnly ( journal->isReadOnly() ); | 292 | mEditor->setReadOnly ( journal->isReadOnly() ); |
291 | mCalendarBox->setEnabled (!journal->isReadOnly() ); | 293 | mCalendarBox->setEnabled (!journal->isReadOnly() ); |
292 | fillCalendar( mJournal->calID() ); | 294 | fillCalendar( mJournal->calID() ); |
293 | } | 295 | } |
294 | 296 | ||
295 | Journal *JournalEntry::journal() const | 297 | Journal *JournalEntry::journal() const |
296 | { | 298 | { |
297 | return mJournal; | 299 | return mJournal; |
298 | } | 300 | } |
299 | 301 | ||
300 | 302 | ||
301 | void JournalEntry::clear() | 303 | void JournalEntry::clear() |
302 | { | 304 | { |
303 | mJournal = 0; | 305 | mJournal = 0; |
304 | mEditor->setText(""); | 306 | mEditor->setText(""); |
305 | mTitle->load( KOLocationBox::SUMMARYJOURNAL ); | 307 | mTitle->load( KOLocationBox::SUMMARYJOURNAL ); |
306 | mTitle->lineEdit ()->setText(""); | 308 | mTitle->lineEdit ()->setText(""); |
307 | } | 309 | } |
308 | 310 | ||
309 | bool JournalEntry::eventFilter( QObject *o, QEvent *e ) | 311 | bool JournalEntry::eventFilter( QObject *o, QEvent *e ) |
310 | { | 312 | { |
311 | // kdDebug() << "JournalEntry::event received " << e->type() << endl; | 313 | // kdDebug() << "JournalEntry::event received " << e->type() << endl; |
312 | 314 | ||
313 | if ( e->type() == QEvent::FocusOut ) { | 315 | if ( e->type() == QEvent::FocusOut ) { |
314 | writeJournal(); | 316 | writeJournal(); |
315 | } | 317 | } |
316 | if ( e->type() == QEvent::KeyPress ) { | 318 | if ( e->type() == QEvent::KeyPress ) { |
317 | QKeyEvent * k = (QKeyEvent *) e; | 319 | QKeyEvent * k = (QKeyEvent *) e; |
318 | if ( k->state() == Qt::ControlButton ) { | 320 | if ( k->state() == Qt::ControlButton ) { |
319 | k->ignore(); | 321 | k->ignore(); |
320 | //return true; | 322 | //return true; |
321 | } | 323 | } |
322 | } | 324 | } |
323 | 325 | ||
324 | return QFrame::eventFilter( o, e ); // standard event processing | 326 | return QFrame::eventFilter( o, e ); // standard event processing |
325 | } | 327 | } |
326 | 328 | ||
327 | void JournalEntry::writeJournal() | 329 | void JournalEntry::writeJournal() |
328 | { | 330 | { |
329 | if ( !visibleMode ) return; | 331 | if ( !visibleMode ) return; |
330 | if ( !mTitle->isEnabled() ) return; | 332 | if ( !mTitle->isEnabled() ) return; |
331 | if (mEditor->text().isEmpty() && mTitle->currentText().isEmpty()) { | 333 | if (mEditor->text().isEmpty() && mTitle->currentText().isEmpty()) { |
332 | if ( mJournal ) { | 334 | if ( mJournal ) { |
333 | Journal* j = mJournal; | 335 | Journal* j = mJournal; |
334 | mJournal = 0; | 336 | mJournal = 0; |
335 | bool conf = KOPrefs::instance()->mConfirm; | 337 | bool conf = KOPrefs::instance()->mConfirm; |
336 | KOPrefs::instance()->mConfirm = false; | 338 | KOPrefs::instance()->mConfirm = false; |
337 | emit deleteJournal(j); | 339 | emit deleteJournal(j); |
338 | KOPrefs::instance()->mConfirm = conf; | 340 | KOPrefs::instance()->mConfirm = conf; |
339 | } | 341 | } |
340 | return; | 342 | return; |
341 | } | 343 | } |
342 | 344 | ||
343 | // kdDebug() << "JournalEntry::writeJournal()..." << endl; | 345 | // kdDebug() << "JournalEntry::writeJournal()..." << endl; |
344 | 346 | ||
345 | if (!mJournal) { | 347 | if (!mJournal) { |
346 | mJournal = new Journal; | 348 | mJournal = new Journal; |
347 | mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); | 349 | mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); |
348 | mCalendar->addJournal(mJournal); | 350 | mCalendar->addJournal(mJournal); |
349 | } | 351 | } |
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index c738f7e..7e9fa71 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp | |||
@@ -1,186 +1,189 @@ | |||
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 | Marcus Bains line. | 5 | Marcus Bains line. |
6 | Copyright (c) 2001 Ali Rahimi | 6 | Copyright (c) 2001 Ali Rahimi |
7 | 7 | ||
8 | This program is free software; you can redistribute it and/or modify | 8 | This program is free software; you can redistribute it and/or modify |
9 | it under the terms of the GNU General Public License as published by | 9 | it under the terms of the GNU General Public License as published by |
10 | the Free Software Foundation; either version 2 of the License, or | 10 | the Free Software Foundation; either version 2 of the License, or |
11 | (at your option) any later version. | 11 | (at your option) any later version. |
12 | 12 | ||
13 | This program is distributed in the hope that it will be useful, | 13 | This program is distributed in the hope that it will be useful, |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | GNU General Public License for more details. | 16 | GNU General Public License for more details. |
17 | 17 | ||
18 | You should have received a copy of the GNU General Public License | 18 | You should have received a copy of the GNU General Public License |
19 | along with this program; if not, write to the Free Software | 19 | along with this program; if not, write to the Free Software |
20 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 20 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21 | 21 | ||
22 | As a special exception, permission is given to link this program | 22 | As a special exception, permission is given to link this program |
23 | with any edition of Qt, and distribute the resulting executable, | 23 | with any edition of Qt, and distribute the resulting executable, |
24 | without including the source code for Qt in the source distribution. | 24 | without including the source code for Qt in the source distribution. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #ifndef _WIN32_ | 27 | #ifndef _WIN32_ |
28 | #define protected public | 28 | #define protected public |
29 | #include <qwidget.h> | 29 | #include <qwidget.h> |
30 | #undef protected | 30 | #undef protected |
31 | #endif | 31 | #endif |
32 | #include <qintdict.h> | 32 | #include <qintdict.h> |
33 | #include <qdatetime.h> | 33 | #include <qdatetime.h> |
34 | #include <qapplication.h> | 34 | #include <qapplication.h> |
35 | #include <qpopupmenu.h> | 35 | #include <qpopupmenu.h> |
36 | #include <qcursor.h> | 36 | #include <qcursor.h> |
37 | #include <qpainter.h> | 37 | #include <qpainter.h> |
38 | 38 | ||
39 | #include <kdebug.h> | 39 | #include <kdebug.h> |
40 | #include <klocale.h> | 40 | #include <klocale.h> |
41 | #include <kiconloader.h> | 41 | #include <kiconloader.h> |
42 | #include <kglobal.h> | 42 | #include <kglobal.h> |
43 | 43 | ||
44 | #include "koagendaitem.h" | 44 | #include "koagendaitem.h" |
45 | #include "koprefs.h" | 45 | #include "koprefs.h" |
46 | #include "koglobals.h" | 46 | #include "koglobals.h" |
47 | 47 | ||
48 | #include "koagenda.h" | 48 | #include "koagenda.h" |
49 | 49 | ||
50 | #include <libkcal/event.h> | 50 | #include <libkcal/event.h> |
51 | #include <libkcal/todo.h> | 51 | #include <libkcal/todo.h> |
52 | 52 | ||
53 | #ifndef DESKTOP_VERSION | 53 | #ifndef DESKTOP_VERSION |
54 | #include <qpe/qpeapplication.h> | 54 | #include <qpe/qpeapplication.h> |
55 | #endif | 55 | #endif |
56 | 56 | ||
57 | //extern bool globalFlagBlockPainting; | 57 | //extern bool globalFlagBlockPainting; |
58 | extern int globalFlagBlockAgenda; | 58 | extern int globalFlagBlockAgenda; |
59 | extern int globalFlagBlockAgendaItemPaint; | 59 | extern int globalFlagBlockAgendaItemPaint; |
60 | extern int globalFlagBlockAgendaItemUpdate; | 60 | extern int globalFlagBlockAgendaItemUpdate; |
61 | extern int globalFlagBlockStartup; | 61 | extern int globalFlagBlockStartup; |
62 | 62 | ||
63 | 63 | ||
64 | //////////////////////////////////////////////////////////////////////////// | 64 | //////////////////////////////////////////////////////////////////////////// |
65 | MarcusBains::MarcusBains(KOAgenda *_agenda,const char *name) | 65 | MarcusBains::MarcusBains(KOAgenda *_agenda,const char *name) |
66 | : QFrame(_agenda->viewport(),name), agenda(_agenda) | 66 | : QFrame(_agenda->viewport(),name), agenda(_agenda) |
67 | { | 67 | { |
68 | setLineWidth(0); | 68 | setLineWidth(0); |
69 | setMargin(0); | 69 | setMargin(0); |
70 | setBackgroundColor(Qt::red); | 70 | setBackgroundColor(Qt::red); |
71 | minutes = new QTimer(this); | 71 | minutes = new QTimer(this); |
72 | connect(minutes, SIGNAL(timeout()), this, SLOT(updateLoc())); | 72 | connect(minutes, SIGNAL(timeout()), this, SLOT(updateLoc())); |
73 | minutes->start(0, true); | 73 | minutes->start(0, true); |
74 | mTimeBox = new QLabel(this); | 74 | mTimeBox = new QLabel(this); |
75 | mTimeBox->setAlignment(Qt::AlignRight | Qt::AlignBottom); | 75 | mTimeBox->setAlignment(Qt::AlignRight | Qt::AlignBottom); |
76 | QPalette pal = mTimeBox->palette(); | 76 | QPalette pal = mTimeBox->palette(); |
77 | pal.setColor(QColorGroup::Foreground, Qt::red); | 77 | pal.setColor(QColorGroup::Foreground, Qt::red); |
78 | mTimeBox->setPalette(pal); | 78 | mTimeBox->setPalette(pal); |
79 | //mTimeBox->setAutoMask(true); | 79 | //mTimeBox->setAutoMask(true); |
80 | 80 | ||
81 | agenda->addChild(mTimeBox); | 81 | agenda->addChild(mTimeBox); |
82 | 82 | ||
83 | oldToday = -1; | 83 | oldToday = -1; |
84 | } | 84 | } |
85 | 85 | ||
86 | MarcusBains::~MarcusBains() | 86 | MarcusBains::~MarcusBains() |
87 | { | 87 | { |
88 | //delete minutes; | 88 | //delete minutes; |
89 | } | 89 | } |
90 | 90 | void MarcusBains::hideMe() | |
91 | { | ||
92 | hide(); mTimeBox->hide(); | ||
93 | } | ||
91 | int MarcusBains::todayColumn() | 94 | int MarcusBains::todayColumn() |
92 | { | 95 | { |
93 | QDate currentDate = QDate::currentDate(); | 96 | QDate currentDate = QDate::currentDate(); |
94 | 97 | ||
95 | DateList dateList = agenda->dateList(); | 98 | DateList dateList = agenda->dateList(); |
96 | DateList::ConstIterator it; | 99 | DateList::ConstIterator it; |
97 | int col = 0; | 100 | int col = 0; |
98 | for(it = dateList.begin(); it != dateList.end(); ++it) { | 101 | for(it = dateList.begin(); it != dateList.end(); ++it) { |
99 | if((*it) == currentDate) | 102 | if((*it) == currentDate) |
100 | return KOGlobals::self()->reverseLayout() ? | 103 | return KOGlobals::self()->reverseLayout() ? |
101 | agenda->columns() - 1 - col : col; | 104 | agenda->columns() - 1 - col : col; |
102 | ++col; | 105 | ++col; |
103 | } | 106 | } |
104 | 107 | ||
105 | return -1; | 108 | return -1; |
106 | } | 109 | } |
107 | void MarcusBains::updateLoc() | 110 | void MarcusBains::updateLoc() |
108 | { | 111 | { |
109 | updateLocation(); | 112 | updateLocation(); |
110 | } | 113 | } |
111 | void MarcusBains::updateLocation(bool recalculate) | 114 | void MarcusBains::updateLocation(bool recalculate) |
112 | { | 115 | { |
113 | 116 | ||
114 | QTime tim = QTime::currentTime(); | 117 | QTime tim = QTime::currentTime(); |
115 | //qDebug(" MarcusBains::updateLocation %s ", tim.toString().latin1()); | 118 | //qDebug(" MarcusBains::updateLocation %s ", tim.toString().latin1()); |
116 | if((tim.hour() == 0) && (oldTime.hour()==23)) | 119 | if((tim.hour() == 0) && (oldTime.hour()==23)) |
117 | recalculate = true; | 120 | recalculate = true; |
118 | 121 | ||
119 | int mins = tim.hour()*60 + tim.minute(); | 122 | int mins = tim.hour()*60 + tim.minute(); |
120 | int minutesPerCell = 24 * 60 / agenda->rows(); | 123 | int minutesPerCell = 24 * 60 / agenda->rows(); |
121 | int y = mins*agenda->gridSpacingY()/minutesPerCell; | 124 | int y = mins*agenda->gridSpacingY()/minutesPerCell; |
122 | int today = recalculate ? todayColumn() : oldToday; | 125 | int today = recalculate ? todayColumn() : oldToday; |
123 | int x = agenda->gridSpacingX()*today; | 126 | int x = agenda->gridSpacingX()*today; |
124 | bool disabled = !(KOPrefs::instance()->mMarcusBainsEnabled); | 127 | bool disabled = !(KOPrefs::instance()->mMarcusBainsEnabled); |
125 | 128 | ||
126 | oldTime = tim; | 129 | oldTime = tim; |
127 | oldToday = today; | 130 | oldToday = today; |
128 | 131 | ||
129 | if(disabled || (today<0)) { | 132 | if(disabled || (today<0)) { |
130 | hide(); mTimeBox->hide(); | 133 | hide(); mTimeBox->hide(); |
131 | return; | 134 | return; |
132 | } else { | 135 | } else { |
133 | show(); mTimeBox->show(); | 136 | show(); mTimeBox->show(); |
134 | } | 137 | } |
135 | 138 | ||
136 | if(recalculate) | 139 | if(recalculate) |
137 | setFixedSize(agenda->gridSpacingX(),1); | 140 | setFixedSize(agenda->gridSpacingX(),1); |
138 | agenda->moveChild(this, x, y); | 141 | agenda->moveChild(this, x, y); |
139 | raise(); | 142 | raise(); |
140 | 143 | ||
141 | if(recalculate) | 144 | if(recalculate) |
142 | //mTimeBox->setFont(QFont("helvetica",10)); | 145 | //mTimeBox->setFont(QFont("helvetica",10)); |
143 | mTimeBox->setFont(KOPrefs::instance()->mMarcusBainsFont); | 146 | mTimeBox->setFont(KOPrefs::instance()->mMarcusBainsFont); |
144 | 147 | ||
145 | mTimeBox->setText(KGlobal::locale()->formatTime(tim, KOPrefs::instance()->mMarcusBainsShowSeconds)); | 148 | mTimeBox->setText(KGlobal::locale()->formatTime(tim, KOPrefs::instance()->mMarcusBainsShowSeconds)); |
146 | mTimeBox->adjustSize(); | 149 | mTimeBox->adjustSize(); |
147 | // the -2 below is there because there is a bug in this program | 150 | // the -2 below is there because there is a bug in this program |
148 | // somewhere, where the last column of this widget is a few pixels | 151 | // somewhere, where the last column of this widget is a few pixels |
149 | // narrower than the other columns. | 152 | // narrower than the other columns. |
150 | int offs = (today==agenda->columns()-1) ? -4 : 0; | 153 | int offs = (today==agenda->columns()-1) ? -4 : 0; |
151 | agenda->moveChild(mTimeBox, | 154 | agenda->moveChild(mTimeBox, |
152 | x+agenda->gridSpacingX()-mTimeBox->width()+offs-1, | 155 | x+agenda->gridSpacingX()-mTimeBox->width()+offs-1, |
153 | y-mTimeBox->height()); | 156 | y-mTimeBox->height()); |
154 | mTimeBox->raise(); | 157 | mTimeBox->raise(); |
155 | //mTimeBox->setAutoMask(true); | 158 | //mTimeBox->setAutoMask(true); |
156 | int secs = QTime::currentTime().second(); | 159 | int secs = QTime::currentTime().second(); |
157 | minutes->start( (60 - secs +1)*1000 ,true); | 160 | minutes->start( (60 - secs +1)*1000 ,true); |
158 | } | 161 | } |
159 | 162 | ||
160 | 163 | ||
161 | //////////////////////////////////////////////////////////////////////////// | 164 | //////////////////////////////////////////////////////////////////////////// |
162 | 165 | ||
163 | 166 | ||
164 | /* | 167 | /* |
165 | Create an agenda widget with rows rows and columns columns. | 168 | Create an agenda widget with rows rows and columns columns. |
166 | */ | 169 | */ |
167 | KOAgenda::KOAgenda(int columns,int rows,int rowSize,QWidget *parent, | 170 | KOAgenda::KOAgenda(int columns,int rows,int rowSize,QWidget *parent, |
168 | const char *name,WFlags f) : | 171 | const char *name,WFlags f) : |
169 | QScrollView(parent,name,f) | 172 | QScrollView(parent,name,f) |
170 | { | 173 | { |
171 | 174 | ||
172 | mAllAgendaPopup = 0; | 175 | mAllAgendaPopup = 0; |
173 | mColumns = columns; | 176 | mColumns = columns; |
174 | mRows = rows; | 177 | mRows = rows; |
175 | mGridSpacingY = rowSize; | 178 | mGridSpacingY = rowSize; |
176 | mAllDayMode = false; | 179 | mAllDayMode = false; |
177 | #ifndef DESKTOP_VERSION | 180 | #ifndef DESKTOP_VERSION |
178 | //QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); | 181 | //QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); |
179 | #endif | 182 | #endif |
180 | mHolidayMask = 0; | 183 | mHolidayMask = 0; |
181 | init(); | 184 | init(); |
182 | connect ( this, SIGNAL (contentsMoving ( int , int ) ), this, SLOT ( slotContentMove(int,int)) ); | 185 | connect ( this, SIGNAL (contentsMoving ( int , int ) ), this, SLOT ( slotContentMove(int,int)) ); |
183 | } | 186 | } |
184 | 187 | ||
185 | /* | 188 | /* |
186 | Create an agenda widget with columns columns and one row. This is used for | 189 | Create an agenda widget with columns columns and one row. This is used for |
@@ -279,192 +282,193 @@ void KOAgenda::init() | |||
279 | 282 | ||
280 | mClickedItem = 0; | 283 | mClickedItem = 0; |
281 | 284 | ||
282 | mActionItem = 0; | 285 | mActionItem = 0; |
283 | mActionType = NOP; | 286 | mActionType = NOP; |
284 | mItemMoved = false; | 287 | mItemMoved = false; |
285 | 288 | ||
286 | mSelectedItem = 0; | 289 | mSelectedItem = 0; |
287 | 290 | ||
288 | // mItems.setAutoDelete(true); | 291 | // mItems.setAutoDelete(true); |
289 | 292 | ||
290 | resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); | 293 | resizeContents( mGridSpacingX * mColumns + 1 , mGridSpacingY * mRows + 1 ); |
291 | 294 | ||
292 | viewport()->update(); | 295 | viewport()->update(); |
293 | 296 | ||
294 | setMinimumSize(30, 1); | 297 | setMinimumSize(30, 1); |
295 | // setMaximumHeight(mGridSpacingY * mRows + 5); | 298 | // setMaximumHeight(mGridSpacingY * mRows + 5); |
296 | 299 | ||
297 | // Disable horizontal scrollbar. This is a hack. The geometry should be | 300 | // Disable horizontal scrollbar. This is a hack. The geometry should be |
298 | // controlled in a way that the contents horizontally always fits. Then it is | 301 | // controlled in a way that the contents horizontally always fits. Then it is |
299 | // not necessary to turn off the scrollbar. | 302 | // not necessary to turn off the scrollbar. |
300 | setHScrollBarMode(AlwaysOff); | 303 | setHScrollBarMode(AlwaysOff); |
301 | if ( ! mAllDayMode ) | 304 | if ( ! mAllDayMode ) |
302 | setVScrollBarMode(AlwaysOn); | 305 | setVScrollBarMode(AlwaysOn); |
303 | else | 306 | else |
304 | setVScrollBarMode(AlwaysOff); | 307 | setVScrollBarMode(AlwaysOff); |
305 | 308 | ||
306 | setStartHour(KOPrefs::instance()->mDayBegins); | 309 | setStartHour(KOPrefs::instance()->mDayBegins); |
307 | 310 | ||
308 | calculateWorkingHours(); | 311 | calculateWorkingHours(); |
309 | 312 | ||
310 | connect(verticalScrollBar(),SIGNAL(valueChanged(int)), | 313 | connect(verticalScrollBar(),SIGNAL(valueChanged(int)), |
311 | SLOT(checkScrollBoundaries(int))); | 314 | SLOT(checkScrollBoundaries(int))); |
312 | 315 | ||
313 | // Create the Marcus Bains line. | 316 | // Create the Marcus Bains line. |
314 | if(mAllDayMode) | 317 | if(mAllDayMode) |
315 | mMarcusBains = 0; | 318 | mMarcusBains = 0; |
316 | else { | 319 | else { |
317 | mMarcusBains = new MarcusBains(this); | 320 | mMarcusBains = new MarcusBains(this); |
318 | addChild(mMarcusBains); | 321 | addChild(mMarcusBains); |
319 | } | 322 | } |
320 | mPopupKind = 0; | 323 | mPopupKind = 0; |
321 | mPopupItem = 0; | 324 | mPopupItem = 0; |
322 | mInvalidPixmap = false; | 325 | mInvalidPixmap = false; |
323 | 326 | ||
324 | } | 327 | } |
325 | 328 | ||
326 | void KOAgenda::shrinkPixmap() | 329 | void KOAgenda::shrinkPixmap() |
327 | { | 330 | { |
328 | mPaintPixmap.resize( 20,20); | 331 | mPaintPixmap.resize( 20,20); |
329 | mInvalidPixmap = true; | 332 | mInvalidPixmap = true; |
330 | } | 333 | } |
331 | void KOAgenda::slotContentMove(int,int) | 334 | void KOAgenda::slotContentMove(int,int) |
332 | { | 335 | { |
333 | emit sendPing(); | 336 | emit sendPing(); |
334 | if ( mActionType == NOP ) | 337 | if ( mActionType == NOP ) |
335 | slotClearSelection(); | 338 | slotClearSelection(); |
336 | if ( mSelectedItem && !mActionItem ) { | 339 | if ( mSelectedItem && !mActionItem ) { |
337 | deselectItem(); | 340 | deselectItem(); |
338 | emit incidenceSelected( 0 ); | 341 | emit incidenceSelected( 0 ); |
339 | } | 342 | } |
340 | } | 343 | } |
341 | void KOAgenda::clear() | 344 | void KOAgenda::clear() |
342 | { | 345 | { |
343 | KOAgendaItem *item; | 346 | KOAgendaItem *item; |
344 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { | 347 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { |
345 | mUnusedItems.append( item ); | 348 | mUnusedItems.append( item ); |
346 | //item->hide(); | 349 | //item->hide(); |
347 | } | 350 | } |
348 | mItems.clear(); | 351 | mItems.clear(); |
349 | mSelectedItem = 0; | 352 | mSelectedItem = 0; |
350 | clearSelection(); | 353 | clearSelection(); |
351 | } | 354 | } |
352 | 355 | ||
353 | void KOAgenda::clearSelection() | 356 | void KOAgenda::clearSelection() |
354 | { | 357 | { |
355 | mSelectionCellX = 0; | 358 | mSelectionCellX = 0; |
356 | mSelectionYTop = 0; | 359 | mSelectionYTop = 0; |
357 | mSelectionHeight = 0; | 360 | mSelectionHeight = 0; |
358 | } | 361 | } |
359 | 362 | ||
360 | void KOAgenda::marcus_bains() | 363 | void KOAgenda::marcus_bains() |
361 | { | 364 | { |
362 | if(mMarcusBains) mMarcusBains->updateLocation(true); | 365 | if(mMarcusBains) mMarcusBains->updateLocation(true); |
363 | } | 366 | } |
364 | 367 | ||
365 | 368 | ||
366 | void KOAgenda::changeColumns(int columns) | 369 | void KOAgenda::changeColumns(int columns) |
367 | { | 370 | { |
368 | if (columns == 0) { | 371 | if (columns == 0) { |
369 | qDebug("KOAgenda::changeColumns() called with argument 0 "); | 372 | qDebug("KOAgenda::changeColumns() called with argument 0 "); |
370 | return; | 373 | return; |
371 | } | 374 | } |
372 | clear(); | 375 | clear(); |
373 | mColumns = columns; | 376 | mColumns = columns; |
374 | computeSizes(); | 377 | computeSizes(); |
378 | if(mMarcusBains) mMarcusBains->hideMe(); | ||
375 | } | 379 | } |
376 | 380 | ||
377 | /* | 381 | /* |
378 | This is the eventFilter function, which gets all events from the KOAgendaItems | 382 | This is the eventFilter function, which gets all events from the KOAgendaItems |
379 | contained in the agenda. It has to handle moving and resizing for all items. | 383 | contained in the agenda. It has to handle moving and resizing for all items. |
380 | */ | 384 | */ |
381 | bool KOAgenda::eventFilter ( QObject *object, QEvent *event ) | 385 | bool KOAgenda::eventFilter ( QObject *object, QEvent *event ) |
382 | { | 386 | { |
383 | // kdDebug() << "KOAgenda::eventFilter" << endl; | 387 | // kdDebug() << "KOAgenda::eventFilter" << endl; |
384 | switch(event->type()) { | 388 | switch(event->type()) { |
385 | case QEvent::MouseButtonPress: | 389 | case QEvent::MouseButtonPress: |
386 | case QEvent::MouseButtonDblClick: | 390 | case QEvent::MouseButtonDblClick: |
387 | case QEvent::MouseButtonRelease: | 391 | case QEvent::MouseButtonRelease: |
388 | case QEvent::MouseMove: | 392 | case QEvent::MouseMove: |
389 | return eventFilter_mouse(object, static_cast<QMouseEvent *>(event)); | 393 | return eventFilter_mouse(object, static_cast<QMouseEvent *>(event)); |
390 | 394 | ||
391 | case (QEvent::Leave): | 395 | case (QEvent::Leave): |
392 | if (!mActionItem) | 396 | if (!mActionItem) |
393 | setCursor(arrowCursor); | 397 | setCursor(arrowCursor); |
394 | return true; | 398 | return true; |
395 | 399 | ||
396 | default: | 400 | default: |
397 | return QScrollView::eventFilter(object,event); | 401 | return QScrollView::eventFilter(object,event); |
398 | } | 402 | } |
399 | } | 403 | } |
400 | void KOAgenda::popupMenu() | 404 | void KOAgenda::popupMenu() |
401 | { | 405 | { |
402 | mPopupTimer->stop(); | 406 | mPopupTimer->stop(); |
403 | if ( mPopupKind == 1 || mPopupKind == 3 ) { | 407 | if ( mPopupKind == 1 || mPopupKind == 3 ) { |
404 | if (mActionItem ) { | 408 | if (mActionItem ) { |
405 | endItemAction(); | 409 | endItemAction(); |
406 | } | 410 | } |
407 | mLeftMouseDown = false; // no more leftMouse computation | 411 | mLeftMouseDown = false; // no more leftMouse computation |
408 | if (mPopupItem) { | 412 | if (mPopupItem) { |
409 | //mClickedItem = mPopupItem; | 413 | //mClickedItem = mPopupItem; |
410 | selectItem(mPopupItem); | 414 | selectItem(mPopupItem); |
411 | if ( mAllAgendaPopup && KOPrefs::instance()->mBlockPopupMenu && mPopupKind == 1 ) | 415 | if ( mAllAgendaPopup && KOPrefs::instance()->mBlockPopupMenu && mPopupKind == 1 ) |
412 | mAllAgendaPopup->installEventFilter( this ); | 416 | mAllAgendaPopup->installEventFilter( this ); |
413 | emit showIncidencePopupSignal(mPopupItem->incidence()); | 417 | emit showIncidencePopupSignal(mPopupItem->incidence()); |
414 | 418 | ||
415 | } | 419 | } |
416 | } else if ( mPopupKind == 2 || mPopupKind == 4 ) { | 420 | } else if ( mPopupKind == 2 || mPopupKind == 4 ) { |
417 | if ( mLeftMouseDown ) { // we have a simulated right click - clear left mouse action | 421 | if ( mLeftMouseDown ) { // we have a simulated right click - clear left mouse action |
418 | endSelectAction( false ); // do not emit new event signal | 422 | endSelectAction( false ); // do not emit new event signal |
419 | mLeftMouseDown = false; // no more leftMouse computation | 423 | mLeftMouseDown = false; // no more leftMouse computation |
420 | } | 424 | } |
421 | if ( KOPrefs::instance()->mBlockPopupMenu && mPopupKind == 2 ) | 425 | if ( KOPrefs::instance()->mBlockPopupMenu && mPopupKind == 2 ) |
422 | mNewItemPopup->installEventFilter( this ); | 426 | mNewItemPopup->installEventFilter( this ); |
423 | mNewItemPopup->popup( mPopupPos); | 427 | mNewItemPopup->popup( mPopupPos); |
424 | 428 | ||
425 | } | 429 | } |
426 | mLeftMouseDown = false; | 430 | mLeftMouseDown = false; |
427 | mPopupItem = 0; | 431 | mPopupItem = 0; |
428 | mPopupKind = 0; | 432 | mPopupKind = 0; |
429 | } | 433 | } |
430 | void KOAgenda::categoryChanged(Incidence * inc) | 434 | void KOAgenda::categoryChanged(Incidence * inc) |
431 | { | 435 | { |
432 | KOAgendaItem *item; | 436 | KOAgendaItem *item; |
433 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { | 437 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { |
434 | if ( item->incidence() == inc ) { | 438 | if ( item->incidence() == inc ) { |
435 | item->initColor (); | 439 | item->initColor (); |
436 | item->updateItem(); | 440 | item->updateItem(); |
437 | } | 441 | } |
438 | } | 442 | } |
439 | } | 443 | } |
440 | bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me) | 444 | bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me) |
441 | { | 445 | { |
442 | 446 | ||
443 | if ( mInvalidPixmap ) { | 447 | if ( mInvalidPixmap ) { |
444 | mInvalidPixmap = false; | 448 | mInvalidPixmap = false; |
445 | qDebug("KO: Upsizing Pixmaps "); | 449 | qDebug("KO: Upsizing Pixmaps "); |
446 | computeSizes(); | 450 | computeSizes(); |
447 | emit updateViewSignal(); | 451 | emit updateViewSignal(); |
448 | return true; | 452 | return true; |
449 | } | 453 | } |
450 | emit sendPing(); | 454 | emit sendPing(); |
451 | static int startX = 0; | 455 | static int startX = 0; |
452 | static int startY = 0; | 456 | static int startY = 0; |
453 | int blockmoveDist = ( QApplication::desktop()->width() < 480 ? 7 : 9 ); | 457 | int blockmoveDist = ( QApplication::desktop()->width() < 480 ? 7 : 9 ); |
454 | static bool blockMoving = true; | 458 | static bool blockMoving = true; |
455 | 459 | ||
456 | //qDebug("KOAgenda::eventFilter_mous "); | 460 | //qDebug("KOAgenda::eventFilter_mous "); |
457 | if ( object == mNewItemPopup ) { | 461 | if ( object == mNewItemPopup ) { |
458 | //qDebug("mNewItemPopup "); | 462 | //qDebug("mNewItemPopup "); |
459 | if ( me->type() == QEvent::MouseButtonRelease ) { | 463 | if ( me->type() == QEvent::MouseButtonRelease ) { |
460 | mNewItemPopup->removeEventFilter( this ); | 464 | mNewItemPopup->removeEventFilter( this ); |
461 | int dX = me->globalPos().x() - mPopupPos.x();; | 465 | int dX = me->globalPos().x() - mPopupPos.x();; |
462 | if ( dX < 0 ) | 466 | if ( dX < 0 ) |
463 | dX = -dX; | 467 | dX = -dX; |
464 | int dY = me->globalPos().y() - mPopupPos.y(); | 468 | int dY = me->globalPos().y() - mPopupPos.y(); |
465 | if ( dY < 0 ) | 469 | if ( dY < 0 ) |
466 | dY = -dY; | 470 | dY = -dY; |
467 | if ( dX > blockmoveDist || dY > blockmoveDist ) { | 471 | if ( dX > blockmoveDist || dY > blockmoveDist ) { |
468 | mNewItemPopup->hide(); | 472 | mNewItemPopup->hide(); |
469 | } | 473 | } |
470 | } | 474 | } |
diff --git a/korganizer/koagenda.h b/korganizer/koagenda.h index 86cf2f4..59e7472 100644 --- a/korganizer/koagenda.h +++ b/korganizer/koagenda.h | |||
@@ -1,147 +1,147 @@ | |||
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 | #ifndef KOAGENDA_H | 23 | #ifndef KOAGENDA_H |
24 | #define KOAGENDA_H | 24 | #define KOAGENDA_H |
25 | 25 | ||
26 | #include <qscrollview.h> | 26 | #include <qscrollview.h> |
27 | #include <qtimer.h> | 27 | #include <qtimer.h> |
28 | #include <qmemarray.h> | 28 | #include <qmemarray.h> |
29 | #include <qpainter.h> | 29 | #include <qpainter.h> |
30 | #include <qpixmap.h> | 30 | #include <qpixmap.h> |
31 | #include <qguardedptr.h> | 31 | #include <qguardedptr.h> |
32 | 32 | ||
33 | #include "koagendaitem.h" | 33 | #include "koagendaitem.h" |
34 | #include "koeventview.h" | 34 | #include "koeventview.h" |
35 | 35 | ||
36 | class QPopupMenu; | 36 | class QPopupMenu; |
37 | class QTime; | 37 | class QTime; |
38 | class KConfig; | 38 | class KConfig; |
39 | class QFrame; | 39 | class QFrame; |
40 | class KOAgenda; | 40 | class KOAgenda; |
41 | class KCal::Event; | 41 | class KCal::Event; |
42 | class KCal::Todo; | 42 | class KCal::Todo; |
43 | 43 | ||
44 | using namespace KCal; | 44 | using namespace KCal; |
45 | 45 | ||
46 | class MarcusBains : public QFrame { | 46 | class MarcusBains : public QFrame { |
47 | Q_OBJECT | 47 | Q_OBJECT |
48 | public: | 48 | public: |
49 | MarcusBains(KOAgenda *agenda=0,const char *name=0); | 49 | MarcusBains(KOAgenda *agenda=0,const char *name=0); |
50 | virtual ~MarcusBains(); | 50 | virtual ~MarcusBains(); |
51 | 51 | void hideMe(); | |
52 | public slots: | 52 | public slots: |
53 | void updateLocation(bool recalculate=false); | 53 | void updateLocation(bool recalculate=false); |
54 | void updateLoc(); | 54 | void updateLoc(); |
55 | 55 | ||
56 | private: | 56 | private: |
57 | int todayColumn(); | 57 | int todayColumn(); |
58 | QTimer *minutes; | 58 | QTimer *minutes; |
59 | QLabel *mTimeBox; | 59 | QLabel *mTimeBox; |
60 | KOAgenda *agenda; | 60 | KOAgenda *agenda; |
61 | QTime oldTime; | 61 | QTime oldTime; |
62 | int oldToday; | 62 | int oldToday; |
63 | }; | 63 | }; |
64 | 64 | ||
65 | 65 | ||
66 | class KOAgenda : public QScrollView | 66 | class KOAgenda : public QScrollView |
67 | { | 67 | { |
68 | Q_OBJECT | 68 | Q_OBJECT |
69 | public: | 69 | public: |
70 | enum MouseActionType { NOP, MOVE, SELECT, | 70 | enum MouseActionType { NOP, MOVE, SELECT, |
71 | RESIZETOP, RESIZEBOTTOM, RESIZELEFT, RESIZERIGHT }; | 71 | RESIZETOP, RESIZEBOTTOM, RESIZELEFT, RESIZERIGHT }; |
72 | 72 | ||
73 | KOAgenda ( int columns, int rows, int columnSize, QWidget * parent=0, | 73 | KOAgenda ( int columns, int rows, int columnSize, QWidget * parent=0, |
74 | const char * name=0, WFlags f=0 ); | 74 | const char * name=0, WFlags f=0 ); |
75 | KOAgenda ( int columns, QWidget * parent=0, | 75 | KOAgenda ( int columns, QWidget * parent=0, |
76 | const char * name=0, WFlags f=0 ); | 76 | const char * name=0, WFlags f=0 ); |
77 | virtual ~KOAgenda(); | 77 | virtual ~KOAgenda(); |
78 | bool mInvalidPixmap; | 78 | bool mInvalidPixmap; |
79 | 79 | ||
80 | Incidence *selectedIncidence() const; | 80 | Incidence *selectedIncidence() const; |
81 | QDate selectedIncidenceDate() const; | 81 | QDate selectedIncidenceDate() const; |
82 | 82 | ||
83 | virtual bool eventFilter ( QObject *, QEvent * ); | 83 | virtual bool eventFilter ( QObject *, QEvent * ); |
84 | 84 | ||
85 | void contentsToGrid (int x, int y, int& gx, int& gy); | 85 | void contentsToGrid (int x, int y, int& gx, int& gy); |
86 | void gridToContents (int gx, int gy, int& x, int& y); | 86 | void gridToContents (int gx, int gy, int& x, int& y); |
87 | 87 | ||
88 | int timeToY (const QTime &time); | 88 | int timeToY (const QTime &time); |
89 | QTime gyToTime (int y); | 89 | QTime gyToTime (int y); |
90 | 90 | ||
91 | void setStartHour(int startHour); | 91 | void setStartHour(int startHour); |
92 | 92 | ||
93 | KOAgendaItem *insertItem (Incidence *event,QDate qd,int X,int YTop,int YBottom); | 93 | KOAgendaItem *insertItem (Incidence *event,QDate qd,int X,int YTop,int YBottom); |
94 | KOAgendaItem *insertAllDayItem (Incidence *event,QDate qd,int XBegin,int XEnd); | 94 | KOAgendaItem *insertAllDayItem (Incidence *event,QDate qd,int XBegin,int XEnd); |
95 | void insertMultiItem (Event *event,QDate qd,int XBegin,int XEnd, | 95 | void insertMultiItem (Event *event,QDate qd,int XBegin,int XEnd, |
96 | int YTop,int YBottom); | 96 | int YTop,int YBottom); |
97 | 97 | ||
98 | void changeColumns(int columns); | 98 | void changeColumns(int columns); |
99 | 99 | ||
100 | int columns() { return mColumns; } | 100 | int columns() { return mColumns; } |
101 | int rows() { return mRows; } | 101 | int rows() { return mRows; } |
102 | 102 | ||
103 | int gridSpacingX() const { return mGridSpacingX; } | 103 | int gridSpacingX() const { return mGridSpacingX; } |
104 | int gridSpacingY() const { return mGridSpacingY; } | 104 | int gridSpacingY() const { return mGridSpacingY; } |
105 | 105 | ||
106 | // virtual QSizePolicy sizePolicy() const; | 106 | // virtual QSizePolicy sizePolicy() const; |
107 | 107 | ||
108 | void clear(); | 108 | void clear(); |
109 | 109 | ||
110 | void clearSelection(); | 110 | void clearSelection(); |
111 | void hideUnused(); | 111 | void hideUnused(); |
112 | 112 | ||
113 | /** Calculates the minimum width */ | 113 | /** Calculates the minimum width */ |
114 | virtual int minimumWidth() const; | 114 | virtual int minimumWidth() const; |
115 | /** Update configuration from preference settings */ | 115 | /** Update configuration from preference settings */ |
116 | void updateConfig(); | 116 | void updateConfig(); |
117 | 117 | ||
118 | void checkScrollBoundaries(); | 118 | void checkScrollBoundaries(); |
119 | 119 | ||
120 | void setHolidayMask(QMemArray<bool> *); | 120 | void setHolidayMask(QMemArray<bool> *); |
121 | void setDateList(const DateList &selectedDates); | 121 | void setDateList(const DateList &selectedDates); |
122 | DateList dateList() const; | 122 | DateList dateList() const; |
123 | void drawContentsToPainter( QPainter* paint = 0, bool backgroundOnly = false); | 123 | void drawContentsToPainter( QPainter* paint = 0, bool backgroundOnly = false); |
124 | void finishUpdate(); | 124 | void finishUpdate(); |
125 | void printSelection(); | 125 | void printSelection(); |
126 | void storePosition(); | 126 | void storePosition(); |
127 | void restorePosition(); | 127 | void restorePosition(); |
128 | void setPopup( KOEventPopupMenu * p ) { mAllAgendaPopup = p; } | 128 | void setPopup( KOEventPopupMenu * p ) { mAllAgendaPopup = p; } |
129 | void shrinkPixmap(); | 129 | void shrinkPixmap(); |
130 | QTime getEndTime(); | 130 | QTime getEndTime(); |
131 | 131 | ||
132 | public slots: | 132 | public slots: |
133 | void slotContentMove(int,int); | 133 | void slotContentMove(int,int); |
134 | void categoryChanged(Incidence * inc); | 134 | void categoryChanged(Incidence * inc); |
135 | void slotClearSelection(); | 135 | void slotClearSelection(); |
136 | void popupMenu(); | 136 | void popupMenu(); |
137 | void newItem( int ); | 137 | void newItem( int ); |
138 | void moveChild( QWidget *, int, int ); | 138 | void moveChild( QWidget *, int, int ); |
139 | void scrollUp(); | 139 | void scrollUp(); |
140 | void scrollDown(); | 140 | void scrollDown(); |
141 | void updateTodo( Todo * t, int , bool ); | 141 | void updateTodo( Todo * t, int , bool ); |
142 | void popupAlarm(); | 142 | void popupAlarm(); |
143 | 143 | ||
144 | void checkScrollBoundaries(int); | 144 | void checkScrollBoundaries(int); |
145 | 145 | ||
146 | /** Deselect selected items. This function does not emit any signals. */ | 146 | /** Deselect selected items. This function does not emit any signals. */ |
147 | void deselectItem(); | 147 | void deselectItem(); |
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index f46a103..82c0f4c 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -1264,210 +1264,210 @@ void KOTodoView::fillCal () | |||
1264 | while ( kkf ) { | 1264 | while ( kkf ) { |
1265 | int index = mCalPopupMenu->insertItem( kkf->mName, kkf->mCalNumber); | 1265 | int index = mCalPopupMenu->insertItem( kkf->mName, kkf->mCalNumber); |
1266 | if ( kkf->mErrorOnLoad || kkf->isReadOnly || readO ) | 1266 | if ( kkf->mErrorOnLoad || kkf->isReadOnly || readO ) |
1267 | mCalPopupMenu->setItemEnabled( index, false ); | 1267 | mCalPopupMenu->setItemEnabled( index, false ); |
1268 | mCalPopupMenu->setItemChecked (index, kkf->mCalNumber == mActiveItem->todo()->calID()); | 1268 | mCalPopupMenu->setItemChecked (index, kkf->mCalNumber == mActiveItem->todo()->calID()); |
1269 | kkf = KOPrefs::instance()->mCalendars.next(); | 1269 | kkf = KOPrefs::instance()->mCalendars.next(); |
1270 | } | 1270 | } |
1271 | } | 1271 | } |
1272 | void KOTodoView::changedCal (int index ) | 1272 | void KOTodoView::changedCal (int index ) |
1273 | { | 1273 | { |
1274 | if (!mActiveItem) return; | 1274 | if (!mActiveItem) return; |
1275 | mActiveItem->todo()->setCalID( index ); | 1275 | mActiveItem->todo()->setCalID( index ); |
1276 | mActiveItem->construct(); | 1276 | mActiveItem->construct(); |
1277 | } | 1277 | } |
1278 | void KOTodoView::changedCategories(int index) | 1278 | void KOTodoView::changedCategories(int index) |
1279 | { | 1279 | { |
1280 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { | 1280 | if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { |
1281 | QStringList categories = mActiveItem->todo()->categories (); | 1281 | QStringList categories = mActiveItem->todo()->categories (); |
1282 | QString colcat = categories.first(); | 1282 | QString colcat = categories.first(); |
1283 | if (categories.find (mCategory[index]) != categories.end ()) | 1283 | if (categories.find (mCategory[index]) != categories.end ()) |
1284 | categories.remove (mCategory[index]); | 1284 | categories.remove (mCategory[index]); |
1285 | else | 1285 | else |
1286 | categories.insert (categories.end(), mCategory[index]); | 1286 | categories.insert (categories.end(), mCategory[index]); |
1287 | categories.sort (); | 1287 | categories.sort (); |
1288 | if ( !colcat.isEmpty() ) { | 1288 | if ( !colcat.isEmpty() ) { |
1289 | if ( categories.find ( colcat ) != categories.end () ) { | 1289 | if ( categories.find ( colcat ) != categories.end () ) { |
1290 | categories.remove( colcat ); | 1290 | categories.remove( colcat ); |
1291 | categories.prepend( colcat ); | 1291 | categories.prepend( colcat ); |
1292 | } | 1292 | } |
1293 | } | 1293 | } |
1294 | mActiveItem->todo()->setCategories (categories); | 1294 | mActiveItem->todo()->setCategories (categories); |
1295 | mActiveItem->construct(); | 1295 | mActiveItem->construct(); |
1296 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); | 1296 | mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); |
1297 | todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED); | 1297 | todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED); |
1298 | } | 1298 | } |
1299 | } | 1299 | } |
1300 | void KOTodoView::itemDoubleClicked(QListViewItem *item) | 1300 | void KOTodoView::itemDoubleClicked(QListViewItem *item) |
1301 | { | 1301 | { |
1302 | if ( pendingSubtodo != 0 ) { | 1302 | if ( pendingSubtodo != 0 ) { |
1303 | topLevelWidget()->setCaption(i18n("Reparenting aborted!")); | 1303 | topLevelWidget()->setCaption(i18n("Reparenting aborted!")); |
1304 | } | 1304 | } |
1305 | pendingSubtodo = 0; | 1305 | pendingSubtodo = 0; |
1306 | //int row = mTodoListView->header()->sectionAt ( mTodoListView->header()->mapFromGlobal( QCursor::pos()).x() ); | 1306 | //int row = mTodoListView->header()->sectionAt ( mTodoListView->header()->mapFromGlobal( QCursor::pos()).x() ); |
1307 | int row = mTodoListView->header()->sectionAt ( mTodoListView->viewportToContents(mTodoListView->viewport()->mapFromGlobal( QCursor::pos())) .x() ); | 1307 | int row = mTodoListView->header()->sectionAt ( mTodoListView->viewportToContents(mTodoListView->viewport()->mapFromGlobal( QCursor::pos())) .x() ); |
1308 | //qDebug("ROW %d ", row); | 1308 | //qDebug("ROW %d ", row); |
1309 | if (!item) { | 1309 | if (!item) { |
1310 | newTodo(); | 1310 | newTodo(); |
1311 | return; | 1311 | return; |
1312 | } else { | 1312 | } else { |
1313 | if ( row == 1 ) { | 1313 | if ( row == 1 ) { |
1314 | mActiveItem = (KOTodoViewItem *) item; | 1314 | mActiveItem = (KOTodoViewItem *) item; |
1315 | newSubTodo(); | 1315 | newSubTodo(); |
1316 | return; | 1316 | return; |
1317 | } | 1317 | } |
1318 | if ( row == 5 || row == 6 || row == 2) { | 1318 | if ( row == 5 || row == 6 || row == 2) { |
1319 | mActiveItem = (KOTodoViewItem *) item; | 1319 | mActiveItem = (KOTodoViewItem *) item; |
1320 | Todo * t = mActiveItem->todo(); | 1320 | Todo * t = mActiveItem->todo(); |
1321 | if ( t->isRunning() ) { | 1321 | if ( t->isRunning() ) { |
1322 | if ( t->runTime() < 15) { | 1322 | if ( t->runTime() < 15) { |
1323 | t->stopRunning(); | 1323 | t->stopRunning(); |
1324 | mActiveItem->construct(); | 1324 | mActiveItem->construct(); |
1325 | topLevelWidget()->setCaption(i18n("Todo stopped - no data saved because runtime was < 15 sec!")); | 1325 | topLevelWidget()->setCaption(i18n("Todo stopped - no data saved because runtime was < 15 sec!")); |
1326 | return; | 1326 | return; |
1327 | } | 1327 | } |
1328 | else | 1328 | else |
1329 | toggleRunningItem(); | 1329 | toggleRunningItem(); |
1330 | return; | 1330 | return; |
1331 | } else { | 1331 | } else { |
1332 | t->setRunning( true ); | 1332 | t->setRunning( true ); |
1333 | mActiveItem->construct(); | 1333 | mActiveItem->construct(); |
1334 | topLevelWidget()->setCaption(i18n("Todo started! Double click again to stop!")); | 1334 | topLevelWidget()->setCaption(i18n("Todo started! Double click again to stop!")); |
1335 | return; | 1335 | return; |
1336 | } | 1336 | } |
1337 | } | 1337 | } |
1338 | } | 1338 | } |
1339 | if ( KOPrefs::instance()->mEditOnDoubleClick ) | 1339 | if ( KOPrefs::instance()->mEditOnDoubleClick ) |
1340 | editItem( item ); | 1340 | editItem( item ); |
1341 | else | 1341 | else |
1342 | showItem( item , QPoint(), 0 ); | 1342 | showItem( item , QPoint(), 0 ); |
1343 | } | 1343 | } |
1344 | void KOTodoView::toggleRunningItem() | 1344 | void KOTodoView::toggleRunningItem() |
1345 | { | 1345 | { |
1346 | // qDebug("KOTodoView::toggleRunning() "); | 1346 | // qDebug("KOTodoView::toggleRunning() "); |
1347 | if ( ! mActiveItem ) | 1347 | if ( ! mActiveItem ) |
1348 | return; | 1348 | return; |
1349 | Todo * t = mActiveItem->todo(); | 1349 | Todo * t = mActiveItem->todo(); |
1350 | if ( t->isRunning() ) { | 1350 | if ( t->isRunning() ) { |
1351 | KOStopTodoPrefs tp ( t, this ); | 1351 | KOStopTodoPrefs tp ( t, this ); |
1352 | if (QApplication::desktop()->width() <= 800 ){ | 1352 | if (QApplication::desktop()->width() <= 800 ){ |
1353 | int wid = tp.width(); | 1353 | int wid = tp.width(); |
1354 | int hei = tp.height(); | 1354 | int hei = tp.height(); |
1355 | int xx = (QApplication::desktop()->width()-wid)/2; | 1355 | int xx = (QApplication::desktop()->width()-wid)/2; |
1356 | int yy = (QApplication::desktop()->height()-hei)/2; | 1356 | int yy = (QApplication::desktop()->height()-hei)/2; |
1357 | tp.setGeometry( xx,yy,wid,hei ); | 1357 | tp.setGeometry( xx,yy,wid,hei ); |
1358 | } | 1358 | } |
1359 | tp.exec(); | 1359 | tp.exec(); |
1360 | mActiveItem->construct(); | 1360 | updateTodo ( t, 0 ); |
1361 | } else { | 1361 | } else { |
1362 | KOStartTodoPrefs tp ( t->summary(), this ); | 1362 | KOStartTodoPrefs tp ( t->summary(), this ); |
1363 | if (QApplication::desktop()->width() <= 800 ){ | 1363 | if (QApplication::desktop()->width() <= 800 ){ |
1364 | int wid = tp.width(); | 1364 | int wid = tp.width(); |
1365 | int hei = tp.height(); | 1365 | int hei = tp.height(); |
1366 | int xx = (QApplication::desktop()->width()-wid)/2; | 1366 | int xx = (QApplication::desktop()->width()-wid)/2; |
1367 | int yy = (QApplication::desktop()->height()-hei)/2; | 1367 | int yy = (QApplication::desktop()->height()-hei)/2; |
1368 | tp.setGeometry( xx,yy,wid,hei ); | 1368 | tp.setGeometry( xx,yy,wid,hei ); |
1369 | } | 1369 | } |
1370 | if ( !tp.exec() ) return; | 1370 | if ( !tp.exec() ) return; |
1371 | if ( tp.stopAll() ) { | 1371 | if ( tp.stopAll() ) { |
1372 | mCalendar->stopAllTodos(); | 1372 | mCalendar->stopAllTodos(); |
1373 | t->setRunning( true ); | 1373 | t->setRunning( true ); |
1374 | updateView(); | 1374 | updateView(); |
1375 | } else { | 1375 | } else { |
1376 | t->setRunning( true ); | 1376 | t->setRunning( true ); |
1377 | mActiveItem->construct(); | 1377 | updateTodo ( t, 0 ); |
1378 | } | 1378 | } |
1379 | } | 1379 | } |
1380 | } | 1380 | } |
1381 | 1381 | ||
1382 | void KOTodoView::itemClicked(QListViewItem *item) | 1382 | void KOTodoView::itemClicked(QListViewItem *item) |
1383 | { | 1383 | { |
1384 | //qDebug("KOTodoView::itemClicked %d", item); | 1384 | //qDebug("KOTodoView::itemClicked %d", item); |
1385 | if (!item) { | 1385 | if (!item) { |
1386 | if ( pendingSubtodo != 0 ) { | 1386 | if ( pendingSubtodo != 0 ) { |
1387 | topLevelWidget()->setCaption(i18n("Reparenting aborted!")); | 1387 | topLevelWidget()->setCaption(i18n("Reparenting aborted!")); |
1388 | } | 1388 | } |
1389 | pendingSubtodo = 0; | 1389 | pendingSubtodo = 0; |
1390 | return; | 1390 | return; |
1391 | } | 1391 | } |
1392 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; | 1392 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; |
1393 | if ( pendingSubtodo != 0 ) { | 1393 | if ( pendingSubtodo != 0 ) { |
1394 | bool allowReparent = true; | 1394 | bool allowReparent = true; |
1395 | QListViewItem *par = item; | 1395 | QListViewItem *par = item; |
1396 | while ( par ) { | 1396 | while ( par ) { |
1397 | if ( par == pendingSubtodo ) { | 1397 | if ( par == pendingSubtodo ) { |
1398 | allowReparent = false; | 1398 | allowReparent = false; |
1399 | break; | 1399 | break; |
1400 | } | 1400 | } |
1401 | par = par->parent(); | 1401 | par = par->parent(); |
1402 | } | 1402 | } |
1403 | if ( !allowReparent ) { | 1403 | if ( !allowReparent ) { |
1404 | topLevelWidget()->setCaption(i18n("Recursive reparenting not possible!")); | 1404 | topLevelWidget()->setCaption(i18n("Recursive reparenting not possible!")); |
1405 | pendingSubtodo = 0; | 1405 | pendingSubtodo = 0; |
1406 | } else { | 1406 | } else { |
1407 | Todo* newParent = todoItem->todo(); | 1407 | Todo* newParent = todoItem->todo(); |
1408 | Todo* newSub = pendingSubtodo->todo(); | 1408 | Todo* newSub = pendingSubtodo->todo(); |
1409 | pendingSubtodo = 0; | 1409 | pendingSubtodo = 0; |
1410 | emit reparentTodoSignal( newParent,newSub ); | 1410 | emit reparentTodoSignal( newParent,newSub ); |
1411 | return; | 1411 | return; |
1412 | } | 1412 | } |
1413 | } | 1413 | } |
1414 | 1414 | ||
1415 | } | 1415 | } |
1416 | 1416 | ||
1417 | void KOTodoView::setDocumentId( const QString &id ) | 1417 | void KOTodoView::setDocumentId( const QString &id ) |
1418 | { | 1418 | { |
1419 | 1419 | ||
1420 | mDocPrefs->setDoc( id ); | 1420 | mDocPrefs->setDoc( id ); |
1421 | } | 1421 | } |
1422 | 1422 | ||
1423 | void KOTodoView::itemStateChanged( QListViewItem *item ) | 1423 | void KOTodoView::itemStateChanged( QListViewItem *item ) |
1424 | { | 1424 | { |
1425 | if (!item) return; | 1425 | if (!item) return; |
1426 | 1426 | ||
1427 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; | 1427 | KOTodoViewItem *todoItem = (KOTodoViewItem *)item; |
1428 | 1428 | ||
1429 | // kdDebug() << "KOTodoView::itemStateChanged(): " << todoItem->todo()->summary() << endl; | 1429 | // kdDebug() << "KOTodoView::itemStateChanged(): " << todoItem->todo()->summary() << endl; |
1430 | 1430 | ||
1431 | if( mDocPrefs ) mDocPrefs->writeEntry( todoItem->todo()->uid(), todoItem->isOpen() ); | 1431 | if( mDocPrefs ) mDocPrefs->writeEntry( todoItem->todo()->uid(), todoItem->isOpen() ); |
1432 | } | 1432 | } |
1433 | 1433 | ||
1434 | void KOTodoView::saveLayout(KConfig *config, const QString &group) const | 1434 | void KOTodoView::saveLayout(KConfig *config, const QString &group) const |
1435 | { | 1435 | { |
1436 | mTodoListView->saveLayout(config,group); | 1436 | mTodoListView->saveLayout(config,group); |
1437 | } | 1437 | } |
1438 | 1438 | ||
1439 | void KOTodoView::restoreLayout(KConfig *config, const QString &group) | 1439 | void KOTodoView::restoreLayout(KConfig *config, const QString &group) |
1440 | { | 1440 | { |
1441 | mTodoListView->restoreLayout(config,group); | 1441 | mTodoListView->restoreLayout(config,group); |
1442 | } | 1442 | } |
1443 | 1443 | ||
1444 | void KOTodoView::processSelectionChange() | 1444 | void KOTodoView::processSelectionChange() |
1445 | { | 1445 | { |
1446 | // kdDebug() << "KOTodoView::processSelectionChange()" << endl; | 1446 | // kdDebug() << "KOTodoView::processSelectionChange()" << endl; |
1447 | 1447 | ||
1448 | KOTodoViewItem *item = | 1448 | KOTodoViewItem *item = |
1449 | static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() ); | 1449 | static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() ); |
1450 | 1450 | ||
1451 | if ( !item ) { | 1451 | if ( !item ) { |
1452 | emit incidenceSelected( 0 ); | 1452 | emit incidenceSelected( 0 ); |
1453 | mNewSubBut->setEnabled( false ); | 1453 | mNewSubBut->setEnabled( false ); |
1454 | } else { | 1454 | } else { |
1455 | emit incidenceSelected( item->todo() ); | 1455 | emit incidenceSelected( item->todo() ); |
1456 | mNewSubBut->setEnabled( true ); | 1456 | mNewSubBut->setEnabled( true ); |
1457 | } | 1457 | } |
1458 | } | 1458 | } |
1459 | 1459 | ||
1460 | void KOTodoView::modified(bool b) | 1460 | void KOTodoView::modified(bool b) |
1461 | { | 1461 | { |
1462 | emit isModified(b); | 1462 | emit isModified(b); |
1463 | } | 1463 | } |
1464 | void KOTodoView::setTodoModified( Todo* todo ) | 1464 | void KOTodoView::setTodoModified( Todo* todo ) |
1465 | { | 1465 | { |
1466 | todoModified( todo, KOGlobals::UNKNOWN_MODIFIED ); | 1466 | todoModified( todo, KOGlobals::UNKNOWN_MODIFIED ); |
1467 | } | 1467 | } |
1468 | void KOTodoView::clearSelection() | 1468 | void KOTodoView::clearSelection() |
1469 | { | 1469 | { |
1470 | mTodoListView->selectAll( false ); | 1470 | mTodoListView->selectAll( false ); |
1471 | } | 1471 | } |
1472 | void KOTodoView::setAllOpen() | 1472 | void KOTodoView::setAllOpen() |
1473 | { | 1473 | { |