kmail
identitylistview.cppGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifdef HAVE_CONFIG_H
00033 #include <config.h>
00034 #endif
00035
00036 #include "identitylistview.h"
00037
00038 #include "identitydrag.h"
00039 #include <libkpimidentities/identitymanager.h>
00040 #include "kmkernel.h"
00041
00042 #include <klocale.h>
00043 #include <kiconloader.h>
00044
00045 #include <cassert>
00046
00047 namespace KMail {
00048
00049
00050
00051
00052
00053
00054
00055 IdentityListViewItem::IdentityListViewItem( IdentityListView * parent, const KPIM::Identity & ident )
00056 : KListViewItem( parent ), mUOID( ident.uoid() ) {
00057 init( ident );
00058 }
00059
00060 IdentityListViewItem::IdentityListViewItem( IdentityListView * parent, QListViewItem * after, const KPIM::Identity & ident )
00061 : KListViewItem( parent, after ), mUOID( ident.uoid() ) {
00062 init( ident );
00063 }
00064
00065 KPIM::Identity & IdentityListViewItem::identity() const {
00066 KPIM::IdentityManager * im = kmkernel->identityManager();
00067 assert( im );
00068 return im->modifyIdentityForUoid( uoid() );
00069 }
00070
00071 void IdentityListViewItem::setIdentity( const KPIM::Identity & ident ) {
00072 mUOID = ident.uoid();
00073 init( ident );
00074 }
00075
00076 void IdentityListViewItem::redisplay() {
00077 init( identity() );
00078 }
00079
00080 void IdentityListViewItem::init( const KPIM::Identity & ident ) {
00081 if ( ident.isDefault() )
00082
00083 setText( 0, i18n("%1: identity name. Used in the config "
00084 "dialog, section Identity, to indicate the "
00085 "default identity", "%1 (Default)")
00086 .arg( ident.identityName() ) );
00087 else
00088 setText( 0, ident.identityName() );
00089 setText( 1, ident.fullEmailAddr() );
00090 }
00091
00092
00093
00094
00095
00096
00097
00098 IdentityListView::IdentityListView( QWidget * parent, const char * name )
00099 : KListView( parent, name )
00100 {
00101 setFullWidth( true );
00102 setDragEnabled( true );
00103 setAcceptDrops( true );
00104 setDropVisualizer( true );
00105 addColumn( i18n("Identity Name") );
00106 addColumn( i18n("Email Address") );
00107 setRootIsDecorated( false );
00108 setRenameable( 0 );
00109 setItemsRenameable( true );
00110
00111 setItemsMovable( false );
00112 setAllColumnsShowFocus( true );
00113 setSorting( -1 );
00114 setSelectionModeExt( Single );
00115 }
00116
00117 void IdentityListView::rename( QListViewItem * i, int col ) {
00118 if ( col == 0 && isRenameable( col ) ) {
00119 IdentityListViewItem * item = dynamic_cast<IdentityListViewItem*>( i );
00120 if ( item ) {
00121 KPIM::Identity & ident = item->identity();
00122 if ( ident.isDefault() )
00123 item->setText( 0, ident.identityName() );
00124 }
00125 }
00126 KListView::rename( i, col );
00127 }
00128
00129 bool IdentityListView::acceptDrag( QDropEvent * e ) const {
00130
00131 return e->source() != viewport() && IdentityDrag::canDecode( e );
00132 }
00133
00134 QDragObject * IdentityListView::dragObject() {
00135 IdentityListViewItem * item = dynamic_cast<IdentityListViewItem*>( currentItem() );
00136 if ( !item ) return 0;
00137
00138 IdentityDrag * drag = new IdentityDrag( item->identity(), viewport() );
00139 drag->setPixmap( SmallIcon("identity") );
00140 return drag;
00141 }
00142
00143 }
00144
00145
00146 #include "identitylistview.moc"
|