From fe1df93cf946c9ba5a3690b7467f8c73a5d7019d Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Tue, 25 Jan 2005 13:10:51 +0000 Subject: [PATCH] fix regression introduced by last commit: keep the RecipientType information in the dialog up to date Ellen: Now you can use it :) CCMAIL:ellen@relevantive.de svn path=/trunk/kdepim/; revision=382288 --- recipientseditor.cpp | 29 +++++++++++++++++++++-------- recipientseditor.h | 7 ++++++- recipientspicker.cpp | 14 ++++++++++++-- recipientspicker.h | 1 + 4 files changed, 40 insertions(+), 11 deletions(-) diff --git a/recipientseditor.cpp b/recipientseditor.cpp index 390eb380b..16b02c548 100644 --- a/recipientseditor.cpp +++ b/recipientseditor.cpp @@ -560,6 +560,11 @@ SideWidget::~SideWidget() { } +RecipientsPicker* SideWidget::picker() const +{ + return mRecipientPicker; +} + void SideWidget::setFocus() { mSelectButton->setFocus(); @@ -617,23 +622,28 @@ RecipientsEditor::RecipientsEditor( QWidget *parent ) connect( mRecipientsView, SIGNAL( focusUp() ), SIGNAL( focusUp() ) ); connect( mRecipientsView, SIGNAL( focusDown() ), SIGNAL( focusDown() ) ); - SideWidget *side = new SideWidget( mRecipientsView, this ); - topLayout->addWidget( side ); - connect( side, SIGNAL( pickedRecipient( const Recipient & ) ), + mSideWidget = new SideWidget( mRecipientsView, this ); + topLayout->addWidget( mSideWidget ); + connect( mSideWidget, SIGNAL( pickedRecipient( const Recipient & ) ), SLOT( slotPickedRecipient( const Recipient & ) ) ); - connect( side, SIGNAL( createDistributionList() ), + connect( mSideWidget, SIGNAL( createDistributionList() ), SLOT( createDistributionList() ) ); connect( mRecipientsView, SIGNAL( totalChanged( int, int ) ), - side, SLOT( setTotal( int, int ) ) ); + mSideWidget, SLOT( setTotal( int, int ) ) ); connect( mRecipientsView, SIGNAL( focusRight() ), - side, SLOT( setFocus() ) ); + mSideWidget, SLOT( setFocus() ) ); } RecipientsEditor::~RecipientsEditor() { } +RecipientsPicker* RecipientsEditor::picker() const +{ + return mSideWidget->picker(); +} + void RecipientsEditor::slotPickedRecipient( const Recipient &rec ) { RecipientLine *line = mRecipientsView->activeLine(); @@ -643,9 +653,12 @@ void RecipientsEditor::slotPickedRecipient( const Recipient &rec ) if ( r.type() == Recipient::Undefined ) { r.setType( line->recipientType() ); } - + line->setRecipient( r ); - + + if ( picker() ) + picker()->updateRecipient( r ); + mRecipientsView->addLine()->activate(); } diff --git a/recipientseditor.h b/recipientseditor.h index f7426e4e0..37bd1d01f 100644 --- a/recipientseditor.h +++ b/recipientseditor.h @@ -38,6 +38,7 @@ class KWindowPositioner; class QComboBox; class QLabel; class QPushButton; +class SideWidget; class Recipient { @@ -160,7 +161,7 @@ class RecipientsView : public QScrollView RecipientLine *activeLine(); RecipientLine *emptyLine(); - + Recipient::List recipients() const; void activateLine( RecipientLine * ); @@ -218,6 +219,8 @@ class SideWidget : public QWidget SideWidget( RecipientsView *view, QWidget *parent ); ~SideWidget(); + RecipientsPicker* picker() const; + public slots: void setTotal( int recipients, int lines ); void setFocus(); @@ -251,6 +254,7 @@ class RecipientsEditor : public QWidget void clear(); Recipient::List recipients() const; + RecipientsPicker* picker() const; void setRecipientString( const QString &, Recipient::Type ); QString recipientString( Recipient::Type ); @@ -272,6 +276,7 @@ class RecipientsEditor : public QWidget private: RecipientsView *mRecipientsView; + SideWidget* mSideWidget; }; #endif diff --git a/recipientspicker.cpp b/recipientspicker.cpp index 0be9fd1d3..d32e1ca6a 100644 --- a/recipientspicker.cpp +++ b/recipientspicker.cpp @@ -356,6 +356,18 @@ void RecipientsPicker::insertCollection( RecipientsCollection *coll ) mCollectionMap.insert( index, coll ); } +void RecipientsPicker::updateRecipient( const Recipient &recipient ) +{ + RecipientItem::List allRecipients = mAllRecipients->items(); + RecipientItem::List::ConstIterator itAll; + for( itAll = allRecipients.begin(); itAll != allRecipients.end(); ++itAll ) { + if ( (*itAll)->recipient() == recipient.email() ) { + (*itAll)->setRecipientType( recipient.typeLabel() ); + } + } + updateList(); +} + void RecipientsPicker::setRecipients( const Recipient::List &recipients ) { RecipientItem::List allRecipients = mAllRecipients->items(); @@ -415,7 +427,6 @@ void RecipientsPicker::slotPicked( QListViewItem *viewItem ) RecipientItem *i = item->recipientItem(); emit pickedRecipient( Recipient( i->recipient(), Recipient::Undefined ) ); } - mRecipientList->clearSelection(); } void RecipientsPicker::pick( Recipient::Type type ) @@ -433,7 +444,6 @@ void RecipientsPicker::pick( Recipient::Type type ) } } } - mRecipientList->clearSelection(); } void RecipientsPicker::keyPressEvent( QKeyEvent *ev ) diff --git a/recipientspicker.h b/recipientspicker.h index 6f6f9440d..f697fea9a 100644 --- a/recipientspicker.h +++ b/recipientspicker.h @@ -119,6 +119,7 @@ class RecipientsPicker : public QWidget ~RecipientsPicker(); void setRecipients( const Recipient::List & ); + void updateRecipient( const Recipient & ); signals: void pickedRecipient( const Recipient & );