1 #ifndef _OPTW_IDENTITY_H_ 2 #define _OPTW_IDENTITY_H_ 3 //============================================================================= 4 // 5 // File : OptionsWidget_identity.h 6 // Creation date : Tue Nov 14 2000 23:06:12 CEST by Szymon Stefanek 7 // 8 // This file is part of the KVIrc IRC client distribution 9 // Copyright (C) 2000-2010 Szymon Stefanek (pragma at kvirc dot net) 10 // Copyright (C) 2008 Elvio Basello (hellvis69 at netsons dot org) 11 // 12 // This program is FREE software. You can redistribute it and/or 13 // modify it under the terms of the GNU General Public License 14 // as published by the Free Software Foundation; either version 2 15 // of the License, or (at your option) any later version. 16 // 17 // This program is distributed in the HOPE that it will be USEFUL, 18 // but WITHOUT ANY WARRANTY; without even the implied warranty of 19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20 // See the GNU General Public License for more details. 21 // 22 // You should have received a copy of the GNU General Public License 23 // along with this program. If not, write to the Free Software Foundation, 24 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 25 // 26 //============================================================================= 27 28 #include "KviOptionsWidget.h" 29 #include "kvi_settings.h" 30 #include "KviSelectors.h" 31 #include "KviPixmap.h" 32 33 #include <QDialog> 34 35 class QCheckBox; 36 class QLineEdit; 37 class QPushButton; 38 class QComboBox; 39 class KviHttpRequest; 40 class QTreeWidget; 41 class KviIdentityProfile; 42 43 class NickAlternativesDialog : public QDialog 44 { 45 friend class KviIdentityGeneralOptionsWidget; 46 Q_OBJECT 47 protected: 48 NickAlternativesDialog(QWidget * par, const QString & n1, const QString & n2, const QString & n3); 49 ~NickAlternativesDialog(); 50 51 protected: 52 QLineEdit * m_pNickEdit1; 53 QLineEdit * m_pNickEdit2; 54 QLineEdit * m_pNickEdit3; 55 56 protected: 57 void fill(QString & n1, QString & n2, QString & n3); 58 }; 59 60 class AvatarSelectionDialog : public QDialog 61 { 62 friend class OptionsWidget_identityAvatar; 63 Q_OBJECT 64 public: 65 AvatarSelectionDialog(QWidget * par, const QString & szInitialPath); 66 ~AvatarSelectionDialog(); 67 68 protected: 69 QLineEdit * m_pLineEdit; 70 QString m_szAvatarName; 71 72 protected: 73 void closeEvent(QCloseEvent * e) override; avatarName()74 const QString & avatarName() { return m_szAvatarName; }; 75 protected slots: 76 void okClicked(); 77 void cancelClicked(); 78 void chooseFileClicked(); 79 }; 80 81 class AvatarDownloadDialog : public QDialog 82 { 83 friend class OptionsWidget_identityAvatar; 84 Q_OBJECT 85 public: 86 AvatarDownloadDialog(QWidget * par, const QString & szUrl); 87 ~AvatarDownloadDialog(); 88 89 protected: 90 KviHttpRequest * m_pRequest; 91 QLabel * m_pOutput; 92 QString m_szErrorMessage; 93 QString m_szLocalFileName; 94 QString m_szUrl; 95 96 protected: 97 void closeEvent(QCloseEvent * e) override; localFileName()98 const QString & localFileName() { return m_szLocalFileName; }; errorMessage()99 const QString & errorMessage() { return m_szErrorMessage; }; 100 protected slots: 101 void startDownload(); 102 void cancelClicked(); 103 void downloadTerminated(bool bSuccess); 104 void downloadMessage(const QString & szMsg); 105 }; 106 107 class IdentityProfileEditor : public QDialog 108 { 109 friend class OptionsWidget_identityProfile; 110 Q_OBJECT 111 public: 112 IdentityProfileEditor(QWidget * pParent); 113 ~IdentityProfileEditor(); 114 115 protected: 116 QLineEdit * m_pNameEdit; 117 QLineEdit * m_pNetworkEdit; 118 QLineEdit * m_pNickEdit; 119 QLineEdit * m_pAltNickEdit; 120 QLineEdit * m_pUserNameEdit; 121 QLineEdit * m_pRealNameEdit; 122 QPushButton * m_pBtnOk; 123 124 public: 125 bool editProfile(KviIdentityProfile * pProfile); 126 protected slots: 127 void toggleButton(); 128 }; 129 130 #define KVI_OPTIONS_WIDGET_ICON_OptionsWidget_identity KviIconManager::Ident 131 #define KVI_OPTIONS_WIDGET_NAME_OptionsWidget_identity __tr2qs_no_lookup("Identity") 132 #define KVI_OPTIONS_WIDGET_PRIORITY_OptionsWidget_identity 99998 133 #define KVI_OPTIONS_WIDGET_CONTAINER_OptionsWidget_identity true 134 135 class OptionsWidget_identity : public KviOptionsWidget 136 { 137 Q_OBJECT 138 public: 139 OptionsWidget_identity(QWidget * parent); 140 ~OptionsWidget_identity(); 141 }; 142 143 #define KVI_OPTIONS_WIDGET_ICON_KviIdentityGeneralOptionsWidget KviIconManager::Ident 144 #define KVI_OPTIONS_WIDGET_NAME_KviIdentityGeneralOptionsWidget __tr2qs_no_lookup("General") 145 #define KVI_OPTIONS_WIDGET_PRIORITY_KviIdentityGeneralOptionsWidget 90000 146 #define KVI_OPTIONS_WIDGET_PARENT_KviIdentityGeneralOptionsWidget OptionsWidget_identity 147 148 class KviIdentityGeneralOptionsWidget : public KviOptionsWidget 149 { 150 Q_OBJECT 151 public: 152 KviIdentityGeneralOptionsWidget(QWidget * pParent); 153 ~KviIdentityGeneralOptionsWidget(); 154 155 protected: 156 QString m_szAltNicknames[3]; 157 158 QComboBox * m_pAgeCombo; 159 QComboBox * m_pGenderCombo; 160 protected slots: 161 void setNickAlternatives(); 162 163 protected: 164 void commit() override; 165 }; 166 167 #define KVI_OPTIONS_WIDGET_ICON_OptionsWidget_identityAvatar KviIconManager::Avatar 168 #define KVI_OPTIONS_WIDGET_NAME_OptionsWidget_identityAvatar __tr2qs_no_lookup("Avatar") 169 #define KVI_OPTIONS_WIDGET_PRIORITY_OptionsWidget_identityAvatar 80000 170 #define KVI_OPTIONS_WIDGET_PARENT_OptionsWidget_identityAvatar OptionsWidget_identity 171 172 class OptionsWidget_identityAvatar : public KviOptionsWidget 173 { 174 Q_OBJECT 175 public: 176 OptionsWidget_identityAvatar(QWidget * pParent); 177 ~OptionsWidget_identityAvatar(); 178 179 protected: 180 QCheckBox * m_pUseAvatarCheck; 181 QLineEdit * m_pAvatarNameEdit; 182 QPushButton * m_pChooseAvatarButton; 183 KviPixmap * m_pLocalAvatar; 184 KviPixmapPreview * m_pAvatarPreview; 185 protected slots: 186 void chooseAvatar(); 187 188 protected: 189 void commit() override; 190 }; 191 192 #define KVI_OPTIONS_WIDGET_ICON_OptionsWidget_identityAdvanced KviIconManager::Gui 193 #define KVI_OPTIONS_WIDGET_NAME_OptionsWidget_identityAdvanced __tr2qs_no_lookup("Advanced") 194 #define KVI_OPTIONS_WIDGET_PRIORITY_OptionsWidget_identityAdvanced 70000 195 #define KVI_OPTIONS_WIDGET_PARENT_OptionsWidget_identityAdvanced OptionsWidget_identity 196 197 class OptionsWidget_identityAdvanced : public KviOptionsWidget 198 { 199 Q_OBJECT 200 public: 201 OptionsWidget_identityAdvanced(QWidget * pParent); 202 ~OptionsWidget_identityAdvanced(); 203 204 protected: 205 bool m_bI; 206 bool m_bW; 207 bool m_bS; 208 KviCString m_sModeStr; 209 KviBoolSelector * m_pISelector; 210 KviBoolSelector * m_pWSelector; 211 KviBoolSelector * m_pSSelector; 212 213 protected: 214 virtual void commit(); 215 }; 216 217 #define KVI_OPTIONS_WIDGET_ICON_OptionsWidget_identityProfile KviIconManager::UserWindow 218 #define KVI_OPTIONS_WIDGET_NAME_OptionsWidget_identityProfile __tr2qs_no_lookup("Profiles") 219 #define KVI_OPTIONS_WIDGET_PRIORITY_OptionsWidget_identityProfile 60000 220 #define KVI_OPTIONS_WIDGET_PARENT_OptionsWidget_identityProfile OptionsWidget_identity 221 222 class OptionsWidget_identityProfile : public KviOptionsWidget 223 { 224 Q_OBJECT 225 public: 226 OptionsWidget_identityProfile(QWidget * pParent); 227 ~OptionsWidget_identityProfile(); 228 229 protected: 230 QTreeWidget * m_pTreeWidget; 231 QCheckBox * m_pProfilesCheck; 232 QPushButton * m_pBtnAddProfile; 233 QPushButton * m_pBtnEditProfile; 234 QPushButton * m_pBtnDelProfile; 235 IdentityProfileEditor * m_pEditor; 236 int m_iCurrentEditedProfile; 237 238 public: 239 virtual void commit(); 240 protected slots: 241 void toggleControls(); 242 void addProfileEntry(); 243 void editProfileEntry(); 244 void delProfileEntry(); 245 void editProfileOkPressed(); 246 }; 247 248 #endif //_OPTW_IDENTITY_H_ 249