summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-10-31 11:08:09 (UTC)
committer zautrix <zautrix>2005-10-31 11:08:09 (UTC)
commitf1b53f2c08c2ce384f663ae6f0a818104db8c53e (patch) (unidiff)
tree312764b7399d464483042e44b79577c8c7872c85
parentf8bb077d4016222ebd7a1cf3080010d5e5c65649 (diff)
downloadkdepimpi-f1b53f2c08c2ce384f663ae6f0a818104db8c53e.zip
kdepimpi-f1b53f2c08c2ce384f663ae6f0a818104db8c53e.tar.gz
kdepimpi-f1b53f2c08c2ce384f663ae6f0a818104db8c53e.tar.bz2
fixx
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kotodoview.cpp47
-rw-r--r--korganizer/kotodoview.h1
2 files changed, 31 insertions, 17 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index d79a9b9..ba94057 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -1312,101 +1312,106 @@ void KOTodoView::fillCal ()
1312 mCalPopupMenu->setItemChecked (index, kkf->mCalNumber == mActiveItem->todo()->calID()); 1312 mCalPopupMenu->setItemChecked (index, kkf->mCalNumber == mActiveItem->todo()->calID());
1313 kkf = KOPrefs::instance()->mCalendars.next(); 1313 kkf = KOPrefs::instance()->mCalendars.next();
1314 } 1314 }
1315} 1315}
1316void KOTodoView::changedCal (int index ) 1316void KOTodoView::changedCal (int index )
1317{ 1317{
1318 if (!mActiveItem) return; 1318 if (!mActiveItem) return;
1319 mActiveItem->todo()->setCalID( index ); 1319 mActiveItem->todo()->setCalID( index );
1320 mActiveItem->construct(); 1320 mActiveItem->construct();
1321} 1321}
1322void KOTodoView::changedCategories(int index) 1322void KOTodoView::changedCategories(int index)
1323{ 1323{
1324 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) { 1324 if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) {
1325 QStringList categories = mActiveItem->todo()->categories (); 1325 QStringList categories = mActiveItem->todo()->categories ();
1326 QString colcat = categories.first(); 1326 QString colcat = categories.first();
1327 if (categories.find (mCategory[index]) != categories.end ()) 1327 if (categories.find (mCategory[index]) != categories.end ())
1328 categories.remove (mCategory[index]); 1328 categories.remove (mCategory[index]);
1329 else 1329 else
1330 categories.insert (categories.end(), mCategory[index]); 1330 categories.insert (categories.end(), mCategory[index]);
1331 categories.sort (); 1331 categories.sort ();
1332 if ( !colcat.isEmpty() ) { 1332 if ( !colcat.isEmpty() ) {
1333 if ( categories.find ( colcat ) != categories.end () ) { 1333 if ( categories.find ( colcat ) != categories.end () ) {
1334 categories.remove( colcat ); 1334 categories.remove( colcat );
1335 categories.prepend( colcat ); 1335 categories.prepend( colcat );
1336 } 1336 }
1337 } 1337 }
1338 mActiveItem->todo()->setCategories (categories); 1338 mActiveItem->todo()->setCategories (categories);
1339 mActiveItem->construct(); 1339 mActiveItem->construct();
1340 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); 1340 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 );
1341 todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED); 1341 todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED);
1342 } 1342 }
1343} 1343}
1344void KOTodoView::toggleRunningItemQuick()
1345{
1346 if ( !mActiveItem ) return;
1347 Todo * t = mActiveItem->todo();
1348 if ( t->isRunning() ) {
1349 if ( t->runTime() < 15) {
1350 t->stopRunning();
1351 mActiveItem->construct();
1352 topLevelWidget()->setCaption(i18n("Todo stopped - no data saved because runtime was < 15 sec!"));
1353 return;
1354 }
1355 else
1356 toggleRunningItem();
1357 return;
1358 } else {
1359 t->setRunning( true );
1360 mActiveItem->construct();
1361 topLevelWidget()->setCaption(i18n("Todo started! Double click again to stop!"));
1362 }
1363}
1344void KOTodoView::itemDoubleClicked(QListViewItem *item) 1364void KOTodoView::itemDoubleClicked(QListViewItem *item)
1345{ 1365{
1346 if ( pendingSubtodo != 0 ) { 1366 if ( pendingSubtodo != 0 ) {
1347 topLevelWidget()->setCaption(i18n("Reparenting aborted!")); 1367 topLevelWidget()->setCaption(i18n("Reparenting aborted!"));
1348 } 1368 }
1349 pendingSubtodo = 0; 1369 pendingSubtodo = 0;
1350 //int row = mTodoListView->header()->sectionAt ( mTodoListView->header()->mapFromGlobal( QCursor::pos()).x() ); 1370 //int row = mTodoListView->header()->sectionAt ( mTodoListView->header()->mapFromGlobal( QCursor::pos()).x() );
1351 int row = mTodoListView->header()->sectionAt ( mTodoListView->viewportToContents(mTodoListView->viewport()->mapFromGlobal( QCursor::pos())) .x() ); 1371 int row = mTodoListView->header()->sectionAt ( mTodoListView->viewportToContents(mTodoListView->viewport()->mapFromGlobal( QCursor::pos())) .x() );
1352 //qDebug("ROW %d ", row); 1372 //qDebug("ROW %d ", row);
1353 if (!item) { 1373 if (!item) {
1354 newTodo(); 1374 newTodo();
1355 return; 1375 return;
1356 } else { 1376 } else {
1357 if ( row == 1 ) { 1377 if ( row == 1 ) {
1358 mActiveItem = (KOTodoViewItem *) item; 1378 mActiveItem = (KOTodoViewItem *) item;
1359 newSubTodo(); 1379 newSubTodo();
1360 return; 1380 return;
1361 } 1381 }
1362 if ( row == 5 || row == 6 || row == 2) { 1382 if ( row == 5 || row == 6 || row == 2) {
1363 mActiveItem = (KOTodoViewItem *) item; 1383 mActiveItem = (KOTodoViewItem *) item;
1364 Todo * t = mActiveItem->todo(); 1384 toggleRunningItemQuick();
1365 if ( t->isRunning() ) { 1385 return;
1366 if ( t->runTime() < 15) {
1367 t->stopRunning();
1368 mActiveItem->construct();
1369 topLevelWidget()->setCaption(i18n("Todo stopped - no data saved because runtime was < 15 sec!"));
1370 return;
1371 }
1372 else
1373 toggleRunningItem();
1374 return;
1375 } else {
1376 t->setRunning( true );
1377 mActiveItem->construct();
1378 topLevelWidget()->setCaption(i18n("Todo started! Double click again to stop!"));
1379 return;
1380 }
1381 } 1386 }
1382 } 1387 }
1383 if ( KOPrefs::instance()->mEditOnDoubleClick ) 1388 if ( KOPrefs::instance()->mEditOnDoubleClick )
1384 editItem( item ); 1389 editItem( item );
1385 else 1390 else
1386 showItem( item , QPoint(), 0 ); 1391 showItem( item , QPoint(), 0 );
1387} 1392}
1388void KOTodoView::toggleRunningItem() 1393void KOTodoView::toggleRunningItem()
1389{ 1394{
1390 // qDebug("KOTodoView::toggleRunning() "); 1395 // qDebug("KOTodoView::toggleRunning() ");
1391 if ( ! mActiveItem ) 1396 if ( ! mActiveItem )
1392 return; 1397 return;
1393 Todo * t = mActiveItem->todo(); 1398 Todo * t = mActiveItem->todo();
1394 if ( t->isRunning() ) { 1399 if ( t->isRunning() ) {
1395 KOStopTodoPrefs tp ( t, this ); 1400 KOStopTodoPrefs tp ( t, this );
1396 if (QApplication::desktop()->width() <= 800 ){ 1401 if (QApplication::desktop()->width() <= 800 ){
1397 int wid = tp.width(); 1402 int wid = tp.width();
1398 int hei = tp.height(); 1403 int hei = tp.height();
1399 int xx = (QApplication::desktop()->width()-wid)/2; 1404 int xx = (QApplication::desktop()->width()-wid)/2;
1400 int yy = (QApplication::desktop()->height()-hei)/2; 1405 int yy = (QApplication::desktop()->height()-hei)/2;
1401 tp.setGeometry( xx,yy,wid,hei ); 1406 tp.setGeometry( xx,yy,wid,hei );
1402 } 1407 }
1403 tp.exec(); 1408 tp.exec();
1404 updateTodo ( t, KOGlobals::EVENTEDITED ); 1409 updateTodo ( t, KOGlobals::EVENTEDITED );
1405 } else { 1410 } else {
1406 KOStartTodoPrefs tp ( t->summary(), this ); 1411 KOStartTodoPrefs tp ( t->summary(), this );
1407 if (QApplication::desktop()->width() <= 800 ){ 1412 if (QApplication::desktop()->width() <= 800 ){
1408 int wid = tp.width(); 1413 int wid = tp.width();
1409 int hei = tp.height(); 1414 int hei = tp.height();
1410 int xx = (QApplication::desktop()->width()-wid)/2; 1415 int xx = (QApplication::desktop()->width()-wid)/2;
1411 int yy = (QApplication::desktop()->height()-hei)/2; 1416 int yy = (QApplication::desktop()->height()-hei)/2;
1412 tp.setGeometry( xx,yy,wid,hei ); 1417 tp.setGeometry( xx,yy,wid,hei );
@@ -1679,64 +1684,72 @@ void KOTodoView::keyPressEvent ( QKeyEvent * e )
1679 break; 1684 break;
1680 } 1685 }
1681 toggleQuickTodo(); 1686 toggleQuickTodo();
1682 break; 1687 break;
1683 case Qt::Key_U: 1688 case Qt::Key_U:
1684 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) { 1689 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) {
1685 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 1690 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1686 unparentTodo(); 1691 unparentTodo();
1687 e->accept(); 1692 e->accept();
1688 } else 1693 } else
1689 e->ignore(); 1694 e->ignore();
1690 break; 1695 break;
1691 case Qt::Key_S: 1696 case Qt::Key_S:
1692 if ( e->state() == Qt::ControlButton ) { 1697 if ( e->state() == Qt::ControlButton ) {
1693 e->ignore(); 1698 e->ignore();
1694 break; 1699 break;
1695 } 1700 }
1696 if ( e->state() == Qt::ShiftButton ) { 1701 if ( e->state() == Qt::ShiftButton ) {
1697 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 1702 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1698 reparentTodo(); 1703 reparentTodo();
1699 e->accept(); 1704 e->accept();
1700 } else 1705 } else
1701 e->ignore(); 1706 e->ignore();
1702 break; 1707 break;
1703 case Qt::Key_P: 1708 case Qt::Key_P:
1704 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) { 1709 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) {
1705 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 1710 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1706 if ( pendingSubtodo ) 1711 if ( pendingSubtodo )
1707 itemClicked(mActiveItem); 1712 itemClicked(mActiveItem);
1708 e->accept(); 1713 e->accept();
1709 } else 1714 } else
1710 e->ignore(); 1715 e->ignore();
1716 break;
1717 case Qt::Key_R:
1718 if (!( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) ) {
1719 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1720 toggleRunningItemQuick();
1721 e->accept();
1722 } else
1723 e->ignore();
1711 break; 1724 break;
1712 case Qt::Key_Escape: 1725 case Qt::Key_Escape:
1713 if ( pendingSubtodo ) { 1726 if ( pendingSubtodo ) {
1714 itemClicked(0); 1727 itemClicked(0);
1715 e->accept(); 1728 e->accept();
1716 } else 1729 } else
1717 e->ignore(); 1730 e->ignore();
1718 break; 1731 break;
1719 default: 1732 default:
1720 e->ignore(); 1733 e->ignore();
1721 } 1734 }
1722 1735
1723 if ( true ) { 1736 if ( true ) {
1724 if ( e->key() == Qt::Key_I ) { 1737 if ( e->key() == Qt::Key_I ) {
1725 KOTodoViewItem*cn = (KOTodoViewItem*)mTodoListView->currentItem(); 1738 KOTodoViewItem*cn = (KOTodoViewItem*)mTodoListView->currentItem();
1726 if ( cn ) { 1739 if ( cn ) {
1727 mActiveItem = cn; 1740 mActiveItem = cn;
1728 KOTodoViewItem* ci = (KOTodoViewItem*)( cn ); 1741 KOTodoViewItem* ci = (KOTodoViewItem*)( cn );
1729 if ( ci ){ 1742 if ( ci ){
1730 showTodo(); 1743 showTodo();
1731 cn = (KOTodoViewItem*)cn->itemBelow(); 1744 cn = (KOTodoViewItem*)cn->itemBelow();
1732 if ( cn ) { 1745 if ( cn ) {
1733 mTodoListView->setCurrentItem ( cn ); 1746 mTodoListView->setCurrentItem ( cn );
1734 mTodoListView->ensureItemVisible ( cn ); 1747 mTodoListView->ensureItemVisible ( cn );
1735 } 1748 }
1736 1749
1737 } 1750 }
1738 } 1751 }
1739 e->accept(); 1752 e->accept();
1740 } 1753 }
1741 } 1754 }
1742} 1755}
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h
index 161ecb0..0cbc087 100644
--- a/korganizer/kotodoview.h
+++ b/korganizer/kotodoview.h
@@ -219,64 +219,65 @@ class KOTodoView : public KOrg::BaseView
219 void toggleQuickTodo(); 219 void toggleQuickTodo();
220 void updateTodo( Todo *, int ); 220 void updateTodo( Todo *, int );
221 221
222 void itemClicked(QListViewItem *); 222 void itemClicked(QListViewItem *);
223 void itemStateChanged(QListViewItem *); 223 void itemStateChanged(QListViewItem *);
224 void modified(bool); 224 void modified(bool);
225 void itemDoubleClicked(QListViewItem *item); 225 void itemDoubleClicked(QListViewItem *item);
226 void resetFocusToList(); 226 void resetFocusToList();
227 void fillCategories (); 227 void fillCategories ();
228 void fillCal (); 228 void fillCal ();
229 void changedCal (int); 229 void changedCal (int);
230 230
231 signals: 231 signals:
232 void newTodoSignal(); 232 void newTodoSignal();
233 void newSubTodoSignal(Todo *); 233 void newSubTodoSignal(Todo *);
234 void unparentTodoSignal(Todo *); 234 void unparentTodoSignal(Todo *);
235 void reparentTodoSignal( Todo *,Todo * ); 235 void reparentTodoSignal( Todo *,Todo * );
236 void showTodoSignal(Todo *); 236 void showTodoSignal(Todo *);
237 237
238 void editTodoSignal(Todo *); 238 void editTodoSignal(Todo *);
239 void deleteTodoSignal(Todo *); 239 void deleteTodoSignal(Todo *);
240 void todoModifiedSignal (Todo *, int); 240 void todoModifiedSignal (Todo *, int);
241 241
242 void isModified(bool); 242 void isModified(bool);
243 void cloneTodoSignal( Incidence * ); 243 void cloneTodoSignal( Incidence * );
244 void cancelTodoSignal( Incidence * ); 244 void cancelTodoSignal( Incidence * );
245 void moveTodoSignal( Incidence * ); 245 void moveTodoSignal( Incidence * );
246 void beamTodoSignal( Incidence * ); 246 void beamTodoSignal( Incidence * );
247 void purgeCompletedSignal(); 247 void purgeCompletedSignal();
248 248
249 protected slots: 249 protected slots:
250 void toggleRunningItem(); 250 void toggleRunningItem();
251 void toggleRunningItemQuick();
251 void paintNeeded(); 252 void paintNeeded();
252 void processSelectionChange(); 253 void processSelectionChange();
253 void addQuickTodo(); 254 void addQuickTodo();
254 void setTodoModified( Todo* ); 255 void setTodoModified( Todo* );
255 void todoModified(Todo *, int ); 256 void todoModified(Todo *, int );
256 257
257 private: 258 private:
258 bool mIsActiveWindow; 259 bool mIsActiveWindow;
259 void addQuickTodoPar( Todo * parentTodo); 260 void addQuickTodoPar( Todo * parentTodo);
260 /* 261 /*
261 * the TodoEditor approach is rather unscaling in the long 262 * the TodoEditor approach is rather unscaling in the long
262 * run. 263 * run.
263 * Korganizer keeps it in memory and we need to update 264 * Korganizer keeps it in memory and we need to update
264 * 1. make KOTodoViewItem a QObject again? 265 * 1. make KOTodoViewItem a QObject again?
265 * 2. add a public method for setting one todo modified? 266 * 2. add a public method for setting one todo modified?
266 * 3. add a private method for setting a todo modified + friend here? 267 * 3. add a private method for setting a todo modified + friend here?
267 * -- zecke 2002-07-08 268 * -- zecke 2002-07-08
268 */ 269 */
269 KOTodoViewWhatsThis* mKOTodoViewWhatsThis; 270 KOTodoViewWhatsThis* mKOTodoViewWhatsThis;
270 friend class KOTodoListView; 271 friend class KOTodoListView;
271 void paintEvent(QPaintEvent * pevent); 272 void paintEvent(QPaintEvent * pevent);
272 bool mPendingUpdateBeforeRepaint; 273 bool mPendingUpdateBeforeRepaint;
273 friend class KOTodoViewItem; 274 friend class KOTodoViewItem;
274 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo); 275 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo);
275 void restoreItemState( QListViewItem * ); 276 void restoreItemState( QListViewItem * );
276 277
277 bool checkTodo( Todo * ); 278 bool checkTodo( Todo * );
278 bool isFlatDisplay; 279 bool isFlatDisplay;
279 void setOpen( QListViewItem*, bool setOpen); 280 void setOpen( QListViewItem*, bool setOpen);
280 KOTodoListView *mTodoListView; 281 KOTodoListView *mTodoListView;
281 QPopupMenu *mItemPopupMenu; 282 QPopupMenu *mItemPopupMenu;
282 QPopupMenu *mPopupMenu; 283 QPopupMenu *mPopupMenu;