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 <qpair.h>
00033 #include <qvaluelist.h>
00034
00035 #include <kabc/addressee.h>
00036
00037 #include "clicklineedit.h"
00038 #include "kmailcompletion.h"
00039 #include <dcopobject.h>
00040
00041 class KConfig;
00042
00043 namespace KPIM {
00044 class LdapSearch;
00045 class LdapResult;
00046 typedef QValueList<LdapResult> LdapResultList;
00047 typedef QMap< QString, QPair<int,int> > CompletionItemsMap;
00048 }
00049
00050 namespace KPIM {
00051
00052 class AddresseeLineEdit : public ClickLineEdit, public DCOPObject
00053 {
00054 K_DCOP
00055 Q_OBJECT
00056
00057 public:
00058 AddresseeLineEdit( QWidget* parent, bool useCompletion = true,
00059 const char *name = 0L);
00060 virtual ~AddresseeLineEdit();
00061
00062 virtual void setFont( const QFont& );
00063 void allowSemiColonAsSeparator( bool );
00064
00065 public slots:
00066 void cursorAtEnd();
00067 void enableCompletion( bool enable );
00069 virtual void setText( const QString& txt );
00070
00071 protected slots:
00072 virtual void loadContacts();
00073 protected:
00074 void addContact( const KABC::Addressee&, int weight, int source = -1 );
00075 virtual void keyPressEvent( QKeyEvent* );
00084 virtual void insert( const QString &text );
00086 virtual void paste();
00088 virtual void mouseReleaseEvent( QMouseEvent *e );
00090 virtual void dropEvent( QDropEvent *e );
00091 void doCompletion( bool ctrlT );
00092 virtual QPopupMenu *createPopupMenu();
00093
00099 int addCompletionSource( const QString& );
00100
00102 static KCompletion::CompOrder completionOrder();
00103
00104 k_dcop:
00105
00106 void slotIMAPCompletionOrderChanged();
00107
00108 private slots:
00109 void slotCompletion();
00110 void slotReturnPressed();
00111 void slotPopupCompletion( const QString& );
00112 void slotStartLDAPLookup();
00113 void slotLDAPSearchData( const KPIM::LdapResultList& );
00114 void slotEditCompletionOrder();
00115 void slotUserCancelled( const QString& );
00116
00117 private:
00118 virtual bool eventFilter(QObject *o, QEvent *e);
00119 void init();
00120 void startLoadingLDAPEntries();
00121 void stopLDAPLookup();
00122
00123 void setCompletedItems( const QStringList& items, bool autoSuggest );
00124 void addCompletionItem( const QString& string, int weight, int source, const QStringList * keyWords=0 );
00125 QString completionSearchText( QString& );
00126 const QStringList getAdjustedCompletionItems( bool fullSearch );
00127 void updateSearchString();
00128
00129 QString m_previousAddresses;
00130 QString m_searchString;
00131 bool m_useCompletion;
00132 bool m_completionInitialized;
00133 bool m_smartPaste;
00134 bool m_addressBookConnected;
00135 bool m_lastSearchMode;
00136 bool m_searchExtended;
00137 bool m_useSemiColonAsSeparator;
00138
00139
00140
00141 static bool s_addressesDirty;
00142 static KMailCompletion *s_completion;
00143 static CompletionItemsMap* s_completionItemMap;
00144 static QTimer *s_LDAPTimer;
00145 static KPIM::LdapSearch *s_LDAPSearch;
00146 static QString *s_LDAPText;
00147 static AddresseeLineEdit *s_LDAPLineEdit;
00148 static QStringList *s_completionSources;
00149
00150 class AddresseeLineEditPrivate;
00151 AddresseeLineEditPrivate *d;
00152
00153
00154
00155 enum MenuID
00156 {
00157 Default = 42,
00158 NoCompletion,
00159 AutoCompletion,
00160 ShellCompletion,
00161 PopupCompletion,
00162 ShortAutoCompletion,
00163 PopupAutoCompletion
00164 };
00165
00166 };
00167
00168 }
00169
00170 #endif
This file is part of the documentation for libkdepim Library Version 3.3.2.