summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt4
-rw-r--r--korganizer/kotodoview.cpp46
-rw-r--r--korganizer/kotodoview.h2
3 files changed, 34 insertions, 18 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index f4b3ddb..201f863 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -4,4 +4,6 @@ Info about the changes in new versions of KDE-Pim/Pi
-Fixed a crash in journal view and a crash in setting a todo to stopped when KO/Pi saved the file when "stop todo" dialog was shown.
+Fixed a crash in journal view.
+Fixed a crash at setting a todo to stopped if KO/Pi saved the file while "stop todo" dialog was shown.
Fixed a minor problem with the marcus bains line (whatever that is).
+Fixed a crash when setting a todo to complete from the show dialog which was called from the What's Next View.
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 00c2d97..27d755e 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -504,3 +504,4 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
KOrg::BaseView(calendar,parent,name)
-{
+{
+ mActiveItem = 0;
mCategoryPopupMenu = 0;
@@ -809,4 +810,14 @@ void KOTodoView::paintEvent(QPaintEvent * pevent)
+void KOTodoView::clearList( bool saveCurrentItem ) // default true
+{
+ if ( mTodoListView->childCount() ) {
+ if ( saveCurrentItem )
+ storeCurrentItem();
+ mTodoListView->clear();
+ mTodoMap.clear();
+ }
+}
void KOTodoView::updateView()
{
+ mActiveItem = 0;
pendingSubtodo = 0;
@@ -816,4 +827,5 @@ void KOTodoView::updateView()
if ( !isVisible() ) {
- mPendingUpdateBeforeRepaint = true;
- return;
+ clearList ();
+ mPendingUpdateBeforeRepaint = true;
+ return;
}
@@ -824,3 +836,2 @@ void KOTodoView::updateView()
}
- storeCurrentItem();
//qDebug("update ");
@@ -829,4 +840,4 @@ void KOTodoView::updateView()
-
- mTodoListView->clear();
+ clearList ();
+
if ( mName == "todolistsmall" ) {
@@ -866,3 +877,2 @@ void KOTodoView::updateView()
// recursively for proper hierarchical display of Todos.
- mTodoMap.clear();
Todo *todo;
@@ -976,3 +986,4 @@ void KOTodoView::resetCurrentItem()
processSelectionChange();
- QTimer::singleShot( 100, this, SLOT ( resetFocusToList() ));
+ if ( mName != "todolistsmall" )
+ QTimer::singleShot( 100, this, SLOT ( resetFocusToList() ));
}
@@ -1102,3 +1113,4 @@ void KOTodoView::editItem(QListViewItem *item )
{
- emit editTodoSignal(((KOTodoViewItem *)item)->todo());
+ if ( item )
+ emit editTodoSignal(((KOTodoViewItem *)item)->todo());
}
@@ -1107,3 +1119,4 @@ void KOTodoView::showItem(QListViewItem *item,const QPoint &,int)
{
- emit showTodoSignal(((KOTodoViewItem *)item)->todo());
+ if ( item )
+ emit showTodoSignal(((KOTodoViewItem *)item)->todo());
}
@@ -1359,3 +1372,3 @@ void KOTodoView::toggleRunningItem()
tp.exec();
- updateTodo ( t, 0 );
+ updateTodo ( t, KOGlobals::EVENTEDITED );
} else {
@@ -1376,3 +1389,3 @@ void KOTodoView::toggleRunningItem()
t->setRunning( true );
- updateTodo ( t, 0 );
+ updateTodo ( t, KOGlobals::EVENTEDITED );
}
@@ -1507,3 +1520,4 @@ void KOTodoView::displayAllFlat()
{
- storeCurrentItem();
+
+ mActiveItem = 0;
pendingSubtodo = 0;
@@ -1512,2 +1526,3 @@ void KOTodoView::displayAllFlat()
}
+ clearList ();
mPopupMenu->setItemChecked( 8,true );
@@ -1515,4 +1530,2 @@ void KOTodoView::displayAllFlat()
QPtrList<Todo> todoList = calendar()->todos();
- mTodoMap.clear();
- mTodoListView->clear();
Todo *todo;
@@ -1698,5 +1711,6 @@ void KOTodoView::keyPressEvent ( QKeyEvent * e )
}
+
void KOTodoView::updateTodo( Todo * t, int type )
{
- if ( mBlockUpdate)
+ if ( mBlockUpdate )
return;
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h
index a8e90e2..9180015 100644
--- a/korganizer/kotodoview.h
+++ b/korganizer/kotodoview.h
@@ -176,3 +176,3 @@ class KOTodoView : public KOrg::BaseView
QString getWhatsThisText(QPoint p);
- void clearList() {mTodoListView->clear(); }
+ void clearList( bool saveCurrentItem = true );