1 #ifndef PSICHATDLG_H 2 #define PSICHATDLG_H 3 4 #include "minicmd.h" 5 #include "mcmdsimplesite.h" 6 #include "mcmdmanager.h" 7 #include "chatdlg.h" 8 #include "mcmdcompletion.h" 9 #include "applicationinfo.h" 10 11 #include "ui_chatdlg.h" 12 #include "typeaheadfind.h" 13 #include "widgets/actionlineedit.h" 14 #include "actionlist.h" 15 16 class IconAction; 17 class PsiContact; 18 19 class PsiChatDlg : public ChatDlg 20 { 21 Q_OBJECT 22 public: 23 PsiChatDlg(const Jid& jid, PsiAccount* account, TabManager* tabManager); 24 ~PsiChatDlg(); 25 26 protected: 27 // reimplemented 28 void contextMenuEvent(QContextMenuEvent *); 29 void doSend(); 30 bool eventFilter(QObject *obj, QEvent *event); 31 32 private: 33 void setContactToolTip(QString text); 34 35 private slots: 36 void toggleSmallChat(); 37 void doClearButton(); 38 void doMiniCmd(); 39 void addContact(); 40 void buildMenu(); 41 void updateCounter(); 42 void updateIdentityVisibility(); 43 void updateCountVisibility(); 44 void updateContactAdding(PsiContact* c = 0); 45 void updateContactAdding(const Jid &j); 46 void contactChanged(); 47 QString makeContactName(const QString &name, const Jid &jid) const; 48 void updateToolbuttons(); 49 void doSwitchJidMode(); 50 void copyUserJid(); 51 void actActiveContacts(); 52 void actPgpToggled(bool); 53 54 // reimplemented 55 void chatEditCreated(); 56 57 private: 58 void initToolBar(); 59 void initToolButtons(); 60 61 // reimplemented 62 void initUi(); 63 void capsChanged(); 64 bool isEncryptionEnabled() const; 65 void updateJidWidget(const QList<UserListItem*> &ul, int status, bool fromPresence); 66 void contactUpdated(UserListItem* u, int status, const QString& statusString); 67 void updateAvatar(); 68 void optionsUpdate(); 69 void updatePGP(); 70 void checkPGPAutostart(); 71 void setPGPEnabled(bool enabled); 72 void activated(); 73 void setLooks(); 74 void setShortcuts(); 75 void appendSysMsg(const QString &); 76 ChatView* chatView() const; 77 ChatEdit* chatEdit() const; 78 void updateAutojidIcon(); 79 void setJidComboItem(int pos, const QString &text, const Jid &jid, const QString &icon_str); 80 81 private: 82 Ui::ChatDlg ui_; 83 84 QMenu* pm_settings_; 85 86 ActionList* actions_; 87 QAction *act_mini_cmd_; 88 TypeAheadFindBar *typeahead_; 89 90 ActionLineEdit *le_autojid; 91 IconAction *act_autojid; 92 IconAction *act_active_contacts; 93 94 MCmdManager mCmdManager_; 95 MCmdSimpleSite mCmdSite_; 96 97 MCmdTabCompletion tabCompletion; 98 99 bool autoPGP_; 100 bool smallChat_; 101 class ChatDlgMCmdProvider; 102 103 static PsiIcon *throbber_icon; 104 }; 105 106 #endif 107