summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt2
-rw-r--r--bin/kdepim/pwmanager/pwmanagerFAQ.txt15
-rw-r--r--kmicromail/libmailwrapper/genericwrapper.cpp7
-rw-r--r--korganizer/koagenda.cpp5
-rw-r--r--korganizer/koagenda.h2
-rw-r--r--korganizer/koagendaview.cpp15
-rw-r--r--korganizer/koagendaview.h1
-rw-r--r--korganizer/komonthview.cpp7
-rw-r--r--korganizer/kotodoview.cpp103
-rw-r--r--korganizer/kotodoview.h5
-rw-r--r--korganizer/koviewmanager.cpp4
11 files changed, 125 insertions, 41 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index f8f8b96..fbab7dd 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1194,13 +1194,13 @@
{ "Allday:","Ganztägig:" },
{ "compl.todos","erled.Todos" },
{ "Day view","Tagesansicht" },
{ "Next days","Nächste Tage" },
{ "Next week","Nächste Woche" },
{ "Next two weeks","Nächste zwei Wochen" },
-{ "Next month","Nächster Monat" },
+{ "This month","Dieser Monat" },
{ "Journal view","Journal" },
{ "Display all opened","Zeige alle geöffnet" },
{ "Display all closed","Zeige alle geschlossen" },
{ "Display all flat","Zeige alle flach" },
{ "<p><i>Completed on %1</i></p>","<p><i>Erledigt am %1</i></p>" },
{ "Default todo done color:","Standard Todo erledigt Farbe" },
diff --git a/bin/kdepim/pwmanager/pwmanagerFAQ.txt b/bin/kdepim/pwmanager/pwmanagerFAQ.txt
index 15cfd80..b196a77 100644
--- a/bin/kdepim/pwmanager/pwmanagerFAQ.txt
+++ b/bin/kdepim/pwmanager/pwmanagerFAQ.txt
@@ -1,10 +1,12 @@
Q:
What is PWM/Pi?
Q:
For which platform is PWM/Pi available?
+Q:
+How can I create categories in PWM/Pi?
Q:
Can I exchange the password files from PWM/Pi and PwManager?
Q:
Does Export/Import keep sync information in place?
Q:
Can PWM/Pi sync categories?
@@ -23,19 +25,24 @@ Michael Buesch and the PwManager Team (http://passwordmanager.sourceforge.net)
*************************************************************************
Q:
For which platform is PWM/Pi available?
A:
PWM/Pi is the platform-independend version of PWManager and it
includes a replacement for the KDE libraries called microkde.
-It can be compiled to any platform, where Qt is available.
-The source code compiles without modifications on Windows,
-Linux Desktop and Sharp Zaurus PDA. Precompiled versions are available
-on www.pi-sync.info for Windows and Sharp Zaurus PDA.
+Precompiled versions are available
+on www.pi-sync.info for Linux and Sharp Zaurus PDA.
Latest versions and the source code cvs can be found at:
http://sourceforge.net/projects/kdepimpi/
*************************************************************************
+Q:
+How can I create categories in PWM/Pi?
+A:
+In PWM/Pi you cannot create categories.
+You can set (or change) a category for a specific password entry.
+PwM/Pi reads all categories from all password entries and creates a category list from that.
+*************************************************************************
Q:
Can I exchange the password files from PWM/Pi and PwManager
A:
The password files of PWM/Pi can not be exchanged with all versions up
to 1.0.1 of PwManager.
However, Michael will integrate our changes into a PwManager release
diff --git a/kmicromail/libmailwrapper/genericwrapper.cpp b/kmicromail/libmailwrapper/genericwrapper.cpp
index 1ed9f34..0b6adf7 100644
--- a/kmicromail/libmailwrapper/genericwrapper.cpp
+++ b/kmicromail/libmailwrapper/genericwrapper.cpp
@@ -357,17 +357,17 @@ QString Genericwrapper::parseGroup( mailimf_group *group )
QString Genericwrapper::parseMailbox( mailimf_mailbox *box )
{
QString result( "" );
if ( box->mb_display_name == NULL ) {
- result.append( box->mb_addr_spec );
+ result.append( convert_String(box->mb_addr_spec) );
} else {
result.append( convert_String(box->mb_display_name) );
result.append( " <" );
- result.append( box->mb_addr_spec );
+ result.append( convert_String( box->mb_addr_spec) );
result.append( ">" );
}
return result;
}
@@ -487,14 +487,15 @@ void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &
mail->setMsgsize(msg->msg_size);
mail->setFlags(mFlags);
mail->setMbox(mailbox);
mail->setNumber(msg->msg_index);
if (single_fields.fld_subject)
mail->setSubject( convert_String(single_fields.fld_subject->sbj_value));
- if (single_fields.fld_from)
+ if (single_fields.fld_from) {
mail->setFrom(parseMailboxList(single_fields.fld_from->frm_mb_list));
+ }
if (!mbox_as_to) {
if (single_fields.fld_to)
mail->setTo( parseAddressList( single_fields.fld_to->to_addr_list ) );
} else {
mail->setTo(mailbox);
}
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index 1a24887..9720f43 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -237,13 +237,13 @@ void KOAgenda::init()
mNewItemPopup->insertItem ( SmallIcon( pathString +"newtodo" ), i18n("New Todo..."),2 );
mNewItemPopup->insertSeparator ( );
mNewItemPopup->insertItem ( SmallIcon( pathString +"day" ), i18n("Day view"),3 );
mNewItemPopup->insertItem ( SmallIcon( pathString +"xdays" ), i18n("Next days"),8 );
mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next week"),4 );
mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next two weeks"),5 );
- mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("Next month"),6 );
+ mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("This month"),6 );
mNewItemPopup->insertItem ( SmallIcon( pathString +"journal" ), i18n("Journal view"),7 );
#ifndef _WIN32_
int wflags = viewport()-> getWFlags() |WRepaintNoErase;//WResizeNoErase
viewport()->setWFlags ( wflags);
#endif
mGridSpacingX = 80;
@@ -751,14 +751,13 @@ void KOAgenda::newItem( int item )
newEventSignal(mStartCellX ,mStartCellY );
} else
if ( item == 2 ) { //new event
newTodoSignal(mStartCellX ,mStartCellY );
} else
{
- QDate day = mSelectedDates[mStartCellX];
- emit showDateView( item, day );
+ emit showDateView( item, mStartCellX );
// 3Day view
// 4Week view
// 5Month view
// 6Journal view
}
}
diff --git a/korganizer/koagenda.h b/korganizer/koagenda.h
index 3d33ae5..35c08b6 100644
--- a/korganizer/koagenda.h
+++ b/korganizer/koagenda.h
@@ -142,13 +142,13 @@ class KOAgenda : public QScrollView
deselected. This function emits the itemSelected(bool) signal to inform
about selection/deseelction of events. */
void selectItem(KOAgendaItem *);
void finishResize();
signals:
- void showDateView( int, QDate );
+ void showDateView( int, int);
void newEventSignal();
void newEventSignal(int gx,int gy);
void newTodoSignal(int gx,int gy);
void newEventSignal(int gxStart, int gyStart, int gxEnd, int gyEnd);
void newTimeSpanSignal(int gxStart, int gyStart, int gxEnd, int gyEnd);
void newStartSelectSignal();
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index b9909d6..2996acb 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -485,14 +485,14 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
// Scrolling
connect(mAgenda->verticalScrollBar(),SIGNAL(valueChanged(int)),
mTimeLabels, SLOT(positionChanged()));
connect(mTimeLabels->verticalScrollBar(),SIGNAL(valueChanged(int)),
SLOT(setContentsPos(int)));
- connect(mAgenda,SIGNAL(showDateView( int, QDate )),SIGNAL(showDateView( int, QDate )));
- connect(mAllDayAgenda,SIGNAL(showDateView( int, QDate )),SIGNAL(showDateView( int, QDate )));
+ connect(mAgenda,SIGNAL(showDateView( int, int)),SLOT(slotShowDateView( int, int )));
+ connect(mAllDayAgenda,SIGNAL(showDateView( int, int )), SLOT(slotShowDateView( int, int ) ));
// Create/Show/Edit/Delete Event
connect(mAgenda,SIGNAL(newEventSignal(int,int)),
SLOT(newEvent(int,int)));
connect(mAgenda,SIGNAL(newTodoSignal(int,int)),
SLOT(newTodo(int,int)));
@@ -1307,12 +1307,23 @@ void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd,
// void KOAgendaView::updateMovedTodo()
// {
// // updateConfig();
// // emit updateTodoViews();
// }
+void KOAgendaView::slotShowDateView( int mode , int d )
+{
+ if ( d >= mSelectedDates.count() ) {
+ qDebug("KOAgendaView::slotShowDateView datecounterror %d d ", d, mSelectedDates.count() );
+
+ } else {
+ QDate day = mSelectedDates[d];
+ emit showDateView(mode , day );
+ }
+
+}
void KOAgendaView::newEvent(int gx, int gy)
{
if (!mSelectedDates.count()) return;
QDate day = mSelectedDates[gx];
diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h
index 57b4e46..6dc81c6 100644
--- a/korganizer/koagendaview.h
+++ b/korganizer/koagendaview.h
@@ -203,12 +203,13 @@ class KOAgendaView : public KOEventView {
void setContentsPos(int y);
void scrollOneHourUp();
void scrollOneHourDown();
void addToCalSlot(Incidence *, Incidence *);
+ void slotShowDateView( int, int );
signals:
void showDateView( int, QDate );
void newTodoSignal( QDateTime ,bool );
void toggleExpand();
void selectWeekNum( int );
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index b9ce4f4..ab9a4b6 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -934,13 +934,17 @@ void MonthViewCell::resizeEvent ( QResizeEvent * e )
if ( e )
KNoScrollListBox::resizeEvent ( e );
}
void MonthViewCell::defaultAction( QListBoxItem *item )
{
- if ( !item ) return;
+ if ( !item ) {
+ QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
+ emit newEventSignal( dt );
+ return;
+ }
MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
Incidence *incidence = eventItem->incidence();
if ( incidence ) mMonthView->defaultAction( incidence );
}
void MonthViewCell::showDay()
@@ -1368,12 +1372,13 @@ void KOMonthView::showEvents(QPtrList<Event>)
}
void KOMonthView::changeEventDisplay(Event *, int)
{
// this should be re-written to be much more efficient, but this
// quick-and-dirty-hack gets the job done for right now.
+ qDebug("KOMonthView::changeEventDisplay ");
updateView();
}
void KOMonthView::updateView()
{
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index e008625..ccc4b01 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -261,15 +261,30 @@ void KOTodoListView::contentsMouseMoveEvent(QMouseEvent* e)
qDebug("DnD: Internal copy: Copy pending");
}
}
}
#endif
}
+void KOTodoListView::keyReleaseEvent ( QKeyEvent *e )
+{
+ if ( !e->isAutoRepeat() ) {
+ mFlagKeyPressed = false;
+ }
+}
+
+
void KOTodoListView::keyPressEvent ( QKeyEvent * e )
{
-
+ qApp->processEvents();
+ if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
+ e->ignore();
+ // qDebug(" ignore %d",e->isAutoRepeat() );
+ return;
+ }
+ if (! e->isAutoRepeat() )
+ mFlagKeyPressed = true;
QListViewItem* cn;
if ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) {
cn = currentItem();
if ( cn ) {
KOTodoViewItem* ci = (KOTodoViewItem*)( cn );
if ( ci ){
@@ -286,13 +301,12 @@ void KOTodoListView::keyPressEvent ( QKeyEvent * e )
}
}
return;
}
- // qDebug("KOTodoListView::keyPressEvent ");
if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton || mName != "todolistsmall" ) {
switch ( e->key() ) {
case Qt::Key_Down:
case Qt::Key_Up:
QListView::keyPressEvent ( e );
break;
@@ -595,24 +609,23 @@ void KOTodoView::updateView()
return;
}
if ( !isVisible() ) {
mPendingUpdateBeforeRepaint = true;
return;
}
+ storeCurrentItem();
//qDebug("KOTodoView::updateView() %x", this);
if ( isFlatDisplay ) {
displayAllFlat();
+ resetCurrentItem();
return;
}
//qDebug("update ");
// kdDebug() << "KOTodoView::updateView()" << endl;
QFont fo = KOPrefs::instance()->mTodoViewFont;
- Incidence* oldInc = 0;
- mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
- if (mActiveItem)
- oldInc = mActiveItem->todo();
+
mTodoListView->clear();
if ( mName == "todolistsmall" ) {
if ( KOPrefs::instance()->mTodoViewUsesSmallFont ) {
int ps = fo.pointSize() -2;
if ( ps > 12 )
@@ -688,33 +701,72 @@ void KOTodoView::updateView()
}
//qDebug("for end ");
// Restore opened/closed state
mTodoListView->blockSignals( true );
if( mDocPrefs ) restoreItemState( mTodoListView->firstChild() );
mTodoListView->blockSignals( false );
- mTodoListView->setFocus();
- if ( mTodoListView->firstChild () ) {
- if ( oldInc ) {
- KOTodoViewItem* item = (KOTodoViewItem*)mTodoListView->firstChild ();
- while ( item ) {
- if ( item->todo() == oldInc ) {
- mTodoListView->setCurrentItem( item );
- mTodoListView->ensureItemVisible( item );
- break;
- }
- item = (KOTodoViewItem*)item->itemBelow();
- }
- if ( ! item )
- mTodoListView->setCurrentItem( mTodoListView->firstChild () );
- } else {
- mTodoListView->setCurrentItem( mTodoListView->firstChild () );
- }
- }
+ resetCurrentItem();
processSelectionChange();
}
+void KOTodoView::storeCurrentItem()
+{
+ mCurItem = 0;
+ mCurItemRootParent = 0;
+ mCurItemAbove = 0;
+ mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
+ if (mActiveItem) {
+ mCurItem = mActiveItem->todo();
+ KOTodoViewItem* activeItemAbove = (KOTodoViewItem*)mActiveItem->itemAbove ();
+ if ( activeItemAbove )
+ mCurItemAbove = activeItemAbove->todo();
+ while ( mActiveItem->parent() != 0 )
+ mActiveItem = (KOTodoViewItem*)mActiveItem->parent();
+ mCurItemRootParent = mActiveItem->todo();
+ }
+ mActiveItem = 0;
+}
+
+void KOTodoView::resetCurrentItem()
+{
+ mTodoListView->setFocus();
+ KOTodoViewItem* foundItem = 0;
+ KOTodoViewItem* foundItemRoot = 0;
+ KOTodoViewItem* foundItemAbove = 0;
+ if ( mTodoListView->firstChild () ) {
+ if ( mCurItem ) {
+ KOTodoViewItem* item = (KOTodoViewItem*)mTodoListView->firstChild ();
+ while ( item ) {
+ if ( item->todo() == mCurItem ) {
+ foundItem = item;
+ break;
+ } else if ( item->todo() == mCurItemAbove ) {
+ foundItemAbove = item;
+
+ } else if ( item->todo() == mCurItemRootParent ) {
+ foundItemRoot = item;
+ }
+ item = (KOTodoViewItem*)item->itemBelow();
+ }
+ if ( ! foundItem ) {
+ if ( foundItemAbove )
+ foundItem = foundItemAbove;
+ else
+ foundItem = foundItemRoot;
+ }
+ }
+ if ( foundItem ) {
+ mTodoListView->setCurrentItem( foundItem );
+ mTodoListView->ensureItemVisible( foundItem );
+ } else {
+ mTodoListView->setCurrentItem( mTodoListView->firstChild () );
+ }
+ }
+ mTodoListView->setFocus();
+}
+//Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove;
bool KOTodoView::checkTodo( Todo * todo )
{
if ( !KOPrefs::instance()->mShowCompletedTodo && todo->isCompleted() )
return false;
if ( !todo->isCompleted() ) {
@@ -1236,14 +1288,15 @@ void KOTodoView::addQuickTodo()
}
mCalendar->addTodo(todo);
mQuickAdd->setText("");
todoModified (todo, KOGlobals::EVENTADDED );
updateView();
}
+
void KOTodoView::keyPressEvent ( QKeyEvent * e )
-{
+{
// e->ignore();
//return;
//qDebug("KOTodoView::keyPressEvent ");
switch ( e->key() ) {
case Qt::Key_Down:
case Qt::Key_Up:
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h
index eab0754..e553d0e 100644
--- a/korganizer/kotodoview.h
+++ b/korganizer/kotodoview.h
@@ -83,13 +83,15 @@ class KOTodoListView : public KListView
bool internalDrop;
QString mName;
Calendar *mCalendar;
QPoint mPressPos;
bool mMousePressed;
QListViewItem *mOldCurrent;
+ bool mFlagKeyPressed;
void keyPressEvent ( QKeyEvent * ) ;
+ void keyReleaseEvent ( QKeyEvent * ) ;
};
/**
This is the line-edit on top of the todoview for fast addition of new todos
*/
@@ -249,9 +251,12 @@ class KOTodoView : public KOrg::BaseView
QString mCurrentDoc;
KOQuickTodo *mQuickAdd;
bool mBlockUpdate;
void keyPressEvent ( QKeyEvent * ) ;
KOTodoViewItem * pendingSubtodo;
DateNavigator* mNavigator;
+ void storeCurrentItem();
+ void resetCurrentItem();
+ Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove;
};
#endif
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index f97aa98..c442d0b 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -135,13 +135,13 @@ void KOViewManager::showDateView( int view, QDate date)
mCurrentAgendaView = 7 ;
mMainView->dateNavigator()->selectDates( date, 7 );
} else if (view == 5 ) {
mCurrentAgendaView = 14 ;
mMainView->dateNavigator()->selectDates( date, 14);
} else if (view == 6 ) {
- //mMainView->dateNavigator()->selectDates( date, 7 );
+ resetDateSilent( date,1);
showMonthView();
} else if (view == 7 ) {
mMainView->dateNavigator()->selectDate( date );
showJournalView();
} else if (view == 8 ) {
globalFlagBlockAgenda = 1;
@@ -386,12 +386,14 @@ void KOViewManager::updateView(const QDate &start, const QDate &end)
void KOViewManager::updateWNview()
{
if ( mCurrentView == mWhatsNextView && mWhatsNextView )
mWhatsNextView->updateView();
+ if ( mCurrentView == mMonthView && mMonthView )
+ mMonthView->updateView();
}
void KOViewManager::showWhatsNextView()
{
if (!mWhatsNextView) {
mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(),