summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt6
-rw-r--r--korganizer/kotodoview.cpp6
2 files changed, 10 insertions, 2 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index d6b2dc7..79de197 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,98 +1,104 @@
Info about the changes in new versions of KDE-Pim/Pi
+********** VERSION 2.1.14 ************
+
+Added some buttons to the KO/Pi Quick-todo line to make it possible to quickly access some todo view layout settings like display all flat/open/close and hide/show running/done.
+Added a button to add a subtodo quickly.
+
+
********** VERSION 2.1.13 ************
Fixed a problem in KA/Pi search.
Fixed some minor problems in KO/Pi.
Added calendar selection possibility to the todo view popup and to the event/todo/journal editor.
Fixed memory usage problems in KA/Pi:
When loading data KA/Pi did load the file data twice.
Example:
A 600k file did consume 1200k memory during loading process.
This is fixed, it does now consume only 600k during loading process.
When saving data KA/Pi did consume a lot of memory for the data parsing during the save process.
This is fixed.
Example:
Before saving a 600k file KA/Pi did consume 21.7 Meg of Ram.
When saving KA/Pi did consume 28.6 Meg of Ram. That causes a crash on the Zaurus because there was no memeory left in the system.
Now KA/Pi is consuming on saving the same data 22.0 Meg of Ram during the save process.
Note: The memory usage of KA/Pi after the data is loaded/saved has not changed.
The saving of data may be a bit slower now.
Fixed memory usage problems in KO/Pi:
When KO/Pi did save the data to file, it did not release the used buffers after saving.
The used buffer was released after saving the next time, but there was new buffer space allocated again on that save operation.
This is fixed.
Example:
When saving a 400k file KO/Pi do now use 400k less memory now.
Optimized memory usage in KO/Pi Agenda view:
KO/Pi is storing some paint information in extra buffers for faster repainting of the agenda view.
These buffers were not made smaller (i.e. downsized) because of performance reasons.
The handling of these buffers are now much smarter:
Two (of six) buffers are removed completely.
The remaing four buffers are now downsized after not using the agenda view for 45 seconds.
Such that the memory usage of KO/Pi is smaller now in general ( because 2 buffers are removed) and is much smaller when not using the agenda view. That is very important when using fastload for KO/Pi.
Worst case example ( for a maximum size agenda content):
When resizing the agenda content to a large scale, KO/Pi did use 17Meg of mem ( and did not use less memory until it was stopped). Now KO/Pi is using on the same operation only 14.3 Meg of mem and after 45 seconds not using the agenda view it uses only 9.4 Meg of mem.
When switching to an unused Agenda view now KO/Pi is upizing the buffers again. This takes less than a second. Such that switching to Agenda view (after not using it for more than 45 seconds) is now a bit slower.
Summary:
Many memory wasting problems of KA/Pi and KO/Pi fixed such that it is better to use on the Zaurus.
********** VERSION 2.1.12 ************
KO/Pi:
Many small usability fixes, e.g. rearranged the popup menus such that they are better to use on the Zaurus.
Fixed a problem with the month view when file was saved but KO/Pi was not the active window.
Fixed some problems in the resource config dialog (e.g. added a warning if you set all calendars to read-only).
Fixed some other small problems.
********** VERSION 2.1.11 ************
KO/Pi:
Because we can have many calendars now in KO/Pi we can have more than one journal entry per day.
Added features to handle (and add ) more than one journal entry per day.
Added option for a journal title.
Added info about the calendar, the item belongs to, to the event/todo/journal viewer.
Fixed a problem of the alarm of completed recurring todos.
Added to the event/todo editor to set quickly the category of an item.
Fixed some problems when calling KO/Pi or KA/Pi from the alarm applet.
Added KA/Pi multi sync to the multi sync called from the alarm applet.
********** VERSION 2.1.10 ************
KO/Pi:
Importing Birthdays will now create another file resource "Birthdays" and import the birthday data from KA/Pi into that file.
When a multidayevent is selected in monthview all occurences of this event in the monthview are now hightlighted.
Fixed a bug in searching for a small timerange, i.e. one day.
KA/Pi:
Fixed two problems in csv export.
Fixed problems when calling the contact selection dialog from KO/Pi or OM/Pi.
********** VERSION 2.1.9 ************
KO/Pi:
Fixed some problems of the new search options in the search dialog.
Fixed some problems in the new resource config options.
Changed the recurrence edit of events and todos such that the recurrence edit page now is notified about a change of the start date on the first page.
Fixed a problem creating new events in the agenda view if at the day/time is already an agenda item shown:
Now you can click on the bottom/top of an allday agenda item or on the left/right side of an agenda item to get the "new todo/new event" popup.
Fixed a problem in recurrence range in syncing with DTM.
KA/Pi:
Made it posiible to show in the contact overview the details of all data available for that contact( e.g. office, spouse, children, nickname ...)
PwM/Pi:
Added "sec" to the timeout config settings to make it clear the timeout values are seconds.
********** VERSION 2.1.8 ************
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index c23a8ee..06d40b1 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -1403,194 +1403,196 @@ void KOTodoView::itemStateChanged( QListViewItem *item )
{
if (!item) return;
KOTodoViewItem *todoItem = (KOTodoViewItem *)item;
// kdDebug() << "KOTodoView::itemStateChanged(): " << todoItem->todo()->summary() << endl;
if( mDocPrefs ) mDocPrefs->writeEntry( todoItem->todo()->uid(), todoItem->isOpen() );
}
void KOTodoView::saveLayout(KConfig *config, const QString &group) const
{
mTodoListView->saveLayout(config,group);
}
void KOTodoView::restoreLayout(KConfig *config, const QString &group)
{
mTodoListView->restoreLayout(config,group);
}
void KOTodoView::processSelectionChange()
{
// kdDebug() << "KOTodoView::processSelectionChange()" << endl;
KOTodoViewItem *item =
static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() );
if ( !item ) {
emit incidenceSelected( 0 );
mNewSubBut->setEnabled( false );
} else {
emit incidenceSelected( item->todo() );
mNewSubBut->setEnabled( true );
}
}
void KOTodoView::modified(bool b)
{
emit isModified(b);
}
void KOTodoView::setTodoModified( Todo* todo )
{
todoModified( todo, KOGlobals::UNKNOWN_MODIFIED );
}
void KOTodoView::clearSelection()
{
mTodoListView->selectAll( false );
}
void KOTodoView::setAllOpen()
{
if ( isFlatDisplay ) {
isFlatDisplay = false;
mPopupMenu->setItemChecked( 8,false );
updateView();
} else {
storeCurrentItem();
}
setOpen(mTodoListView->firstChild(), true);
resetCurrentItem();
}
void KOTodoView::setAllClose()
{
if ( isFlatDisplay ) {
isFlatDisplay = false;
mPopupMenu->setItemChecked( 8,false );
updateView();
} else {
storeCurrentItem();
}
setOpen(mTodoListView->firstChild(), false);
resetCurrentItem();
}
void KOTodoView::setOpen( QListViewItem* item, bool setOpenI)
{
while ( item ) {
setOpen( item->firstChild(), setOpenI );
item->setOpen( setOpenI );
item = item->nextSibling();
}
}
void KOTodoView::displayAllFlat()
{
storeCurrentItem();
pendingSubtodo = 0;
if ( mBlockUpdate ) {
return;
}
mPopupMenu->setItemChecked( 8,true );
isFlatDisplay = true;
QPtrList<Todo> todoList = calendar()->todos();
mTodoMap.clear();
mTodoListView->clear();
Todo *todo;
for(todo = todoList.first(); todo; todo = todoList.next()) {
- KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this);
- mTodoMap.insert(todo,todoItem);
+ if ( checkTodo( todo ) ) {
+ KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this);
+ mTodoMap.insert(todo,todoItem);
+ }
}
resetCurrentItem();
}
void KOTodoView::setAllFlat()
{
if ( isFlatDisplay ) {
isFlatDisplay = false;
mPopupMenu->setItemChecked( 8,false );
updateView();
return;
}
displayAllFlat();
}
void KOTodoView::purgeCompleted()
{
emit purgeCompletedSignal();
}
void KOTodoView::toggleQuickTodo()
{
if ( mQuickBar->isVisible() ) {
mQuickBar->hide();
KOPrefs::instance()->mEnableQuickTodo = false;
}
else {
mQuickBar->show();
KOPrefs::instance()->mEnableQuickTodo = true;
}
mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo);
mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo );
}
void KOTodoView::toggleRunning()
{
KOPrefs::instance()->mHideNonStartedTodos = !KOPrefs::instance()->mHideNonStartedTodos;
mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos);
mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos );
updateView();
if ( KOPrefs::instance()->mHideNonStartedTodos )
topLevelWidget()->setCaption(i18n("Hide not Running"));
else
topLevelWidget()->setCaption(i18n("Show not Running"));
}
void KOTodoView::toggleCompleted()
{
KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo;
mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo );
mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo );
updateView();
if ( KOPrefs::instance()->mShowCompletedTodo )
topLevelWidget()->setCaption(i18n("Show Completed"));
else
topLevelWidget()->setCaption(i18n("Hide Completed"));
}
void KOTodoView::addQuickTodo()
{
addQuickTodoPar( 0 );
}
void KOTodoView::addQuickTodoPar( Todo * parentTodo)
{
Todo *todo = new Todo();
todo->setSummary(mQuickAdd->text());
todo->setOrganizer(KOPrefs::instance()->email());
if ( parentTodo ) {
todo->setRelatedTo(parentTodo);
todo->setCategories (parentTodo->categoriesStr ());
todo->setSecrecy (parentTodo->secrecy ());
if ( parentTodo->priority() < 3 )
todo->setPriority( parentTodo->priority() );
todo->setCalID( parentTodo->calID() );
} else {
CalFilter * cf = mCalendar->filter();
if ( cf ) {
if ( cf->isEnabled()&& cf->showCategories()) {
todo->setCategories(cf->categoryList());
}
if ( cf->isEnabled() )
todo->setSecrecy( cf->getSecrecy());
}
}
mCalendar->addTodo(todo);
mQuickAdd->setText("");
todoModified (todo, KOGlobals::EVENTADDED );
updateView();
}
void KOTodoView::keyPressEvent ( QKeyEvent * e )
{
// e->ignore();
//return;
//qDebug("KOTodoView::keyPressEvent ");