addresseelineedit.h
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 #ifndef ADDRESSEELINEEDIT_H
00027 #define ADDRESSEELINEEDIT_H
00028
00029 #include <qobject.h>
00030 #include <qptrlist.h>
00031 #include <qtimer.h>
00032 #include <qvaluelist.h>
00033
00034 #include <kabc/addressee.h>
00035
00036 #include "clicklineedit.h"
00037 #include "kcompletion.h"
00038 #include <dcopobject.h>
00039
00040 class KConfig;
00041
00042 namespace KPIM {
00043 class LdapSearch;
00044 class LdapResult;
00045 typedef QValueList<LdapResult> LdapResultList;
00046 typedef QMap<QString, int> CompletionItemsMap;
00047 }
00048
00049 namespace KPIM {
00050
00051 class AddresseeLineEdit : public ClickLineEdit, public DCOPObject
00052 {
00053 K_DCOP
00054 Q_OBJECT
00055
00056 public:
00057 AddresseeLineEdit( QWidget* parent, bool useCompletion = true,
00058 const char *name = 0L);
00059 virtual ~AddresseeLineEdit();
00060
00061 virtual void setFont( const QFont& );
00062
00063 static KConfig *config();
00064
00065 public slots:
00066 void cursorAtEnd();
00067 void enableCompletion( bool enable );
00068
00069 protected slots:
00070 virtual void loadContacts();
00071 protected:
00072 void addContact( const KABC::Addressee&, int weight );
00073 virtual void keyPressEvent( QKeyEvent* );
00082 virtual void insert( const QString &text );
00084 virtual void paste();
00086 virtual void mouseReleaseEvent( QMouseEvent *e );
00088 virtual void dropEvent( QDropEvent *e );
00089 void doCompletion( bool ctrlT );
00090 virtual QPopupMenu *createPopupMenu();
00091
00092 k_dcop:
00093
00094 void slotIMAPCompletionOrderChanged();
00095
00096 private slots:
00097 void slotCompletion();
00098 void slotPopupCompletion( const QString& );
00099 void slotStartLDAPLookup();
00100 void slotLDAPSearchData( const KPIM::LdapResultList& );
00101 void slotEditCompletionOrder();
00102 void slotUserCancelled( const QString& );
00103
00104 private:
00105 void init();
00106 void startLoadingLDAPEntries();
00107 void stopLDAPLookup();
00108
00109 void setCompletedItems( const QStringList& items, bool autoSuggest );
00110 void addCompletionItem( const QString& string, int weight );
00111 QString completionSearchText( QString& );
00112
00113 QString m_previousAddresses;
00114 QString m_searchString;
00115 bool m_useCompletion;
00116 bool m_completionInitialized;
00117 bool m_smartPaste;
00118 bool m_addressBookConnected;
00119
00120
00121
00122 static bool s_addressesDirty;
00123 static KCompletion *s_completion;
00124 static CompletionItemsMap* s_completionItemMap;
00125 static QTimer *s_LDAPTimer;
00126 static KPIM::LdapSearch *s_LDAPSearch;
00127 static QString *s_LDAPText;
00128 static AddresseeLineEdit *s_LDAPLineEdit;
00129 static KConfig *s_config;
00130
00131 class AddresseeLineEditPrivate;
00132 AddresseeLineEditPrivate *d;
00133 };
00134
00135 }
00136
00137 #endif
This file is part of the documentation for libkdepim Library Version 3.3.2.