Changeset 6225 for trunk/qt4-gui/src/dialogs
- Timestamp:
- 05/28/08 13:49:40 (6 months ago)
- Location:
- trunk/qt4-gui/src/dialogs
- Files:
-
- 2 modified
-
ownereditdlg.cpp (modified) (7 diffs)
-
ownereditdlg.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/qt4-gui/src/dialogs/ownereditdlg.cpp
r6054 r6225 33 33 #include <licq_user.h> 34 34 35 #include "config/iconmanager.h"36 37 35 #include "core/messagebox.h" 38 36 39 37 #include "helpers/support.h" 38 39 #include "widgets/protocombobox.h" 40 40 41 41 using namespace LicqQtGui; … … 43 43 44 44 OwnerEditDlg::OwnerEditDlg(unsigned long ppid, QWidget* parent) 45 : QDialog(parent) 45 : QDialog(parent), 46 myPpid(ppid) 46 47 { 47 48 Support::setWidgetProps(this, "OwnerEdit"); … … 49 50 setWindowTitle(tr("Edit Account")); 50 51 51 IconManager* iconman = IconManager::instance();52 53 52 QGridLayout* lay = new QGridLayout(this); 54 53 lay->setColumnStretch(2, 2); 55 54 lay->setColumnMinimumWidth(1, 8); 56 55 57 // Protocol 58 lay->addWidget(new QLabel(tr("Protocol:")), 0, 0); 59 cmbProtocol = new QComboBox(); 60 lay->addWidget(cmbProtocol, 0, 2); 56 cmbProtocol = new ProtoComboBox(ppid == 0, this); 61 57 62 // User ID63 lay->addWidget(new QLabel(tr("User ID:")), 1, 0);64 58 edtId = new QLineEdit(); 65 edtId->setMinimumWidth(edtId->sizeHint().width()*2); 66 lay->addWidget(edtId, 1, 2); 59 connect(edtId, SIGNAL(returnPressed()), SLOT(slot_ok())); 67 60 68 // Password69 lay->addWidget(new QLabel(tr("Password:")), 2, 0);70 61 edtPassword = new QLineEdit(); 71 62 edtPassword->setEchoMode(QLineEdit::Password); 72 lay->addWidget(edtPassword, 2, 2);63 connect(edtPassword, SIGNAL(returnPressed()), SLOT(slot_ok())); 73 64 74 // Save Password 75 chkSave = new QCheckBox(tr("Save Password")); 76 lay->addWidget(chkSave, 3, 0, 1, 3); 65 unsigned short i = 0; 66 QLabel* lbl; 77 67 78 QString id; 79 // Fill the combo list now 80 FOR_EACH_PROTO_PLUGIN_START(gLicqDaemon) 81 unsigned long curPpid = (*_ppit)->PPID(); 82 if (ppid != 0) // Modifying a user 83 { 84 ICQOwner* o = gUserManager.FetchOwner(curPpid, LOCK_R); 85 if (o == NULL) 86 id = QString::null; 87 else 88 { 89 id = o->IdString(); 90 gUserManager.DropOwner(curPpid); 91 } 68 #define ADDWIDGET(name, widget) \ 69 lbl = new QLabel(name); \ 70 lbl->setBuddy(widget); \ 71 lay->addWidget(lbl, i, 0); \ 72 lay->addWidget(widget, i++, 2) 92 73 93 cmbProtocol->addItem(94 iconman->iconForStatus(ICQ_STATUS_ONLINE, id.toLatin1(), curPpid),95 (*_ppit)->Name(), QString::number(curPpid));74 ADDWIDGET(tr("Pro&tocol:"), cmbProtocol); 75 ADDWIDGET(tr("&User ID:"), edtId); 76 ADDWIDGET(tr("&Password:"), edtPassword); 96 77 97 // Check if this is the current protocol 98 if (ppid == curPpid) 99 cmbProtocol->setCurrentIndex(cmbProtocol->count() - 1); 100 } 101 else // Adding a user 102 { 103 ICQOwner* o = gUserManager.FetchOwner(curPpid, LOCK_R); 104 if (o == NULL) 105 cmbProtocol->addItem( 106 iconman->iconForStatus(ICQ_STATUS_ONLINE, "0", curPpid), 107 (*_ppit)->Name(), QString::number(curPpid)); 108 else 109 gUserManager.DropOwner(curPpid); 110 } 111 FOR_EACH_PROTO_PLUGIN_END 78 #undef ADDWIDGET 79 80 chkSave = new QCheckBox(tr("&Save Password")); 81 lay->addWidget(chkSave, i++, 0, 1, 3); 82 83 QDialogButtonBox* buttons = new QDialogButtonBox(); 84 buttons->addButton(QDialogButtonBox::Ok); 85 buttons->addButton(QDialogButtonBox::Cancel); 86 connect(buttons, SIGNAL(accepted()), SLOT(slot_ok())); 87 connect(buttons, SIGNAL(rejected()), SLOT(close())); 88 lay->addWidget(buttons, i++, 0, 1, 3); 112 89 113 90 // Set the fields … … 115 92 { 116 93 ICQOwner* o = gUserManager.FetchOwner(ppid, LOCK_R); 117 if (o )94 if (o != NULL) 118 95 { 119 96 edtId->setText(o->IdString()); 97 edtId->setEnabled(false); 120 98 edtPassword->setText(o->Password()); 121 99 chkSave->setChecked(o->SavePassword()); … … 123 101 } 124 102 103 cmbProtocol->setCurrentPpid(ppid); 125 104 cmbProtocol->setEnabled(false); 126 105 } … … 135 114 } 136 115 137 lay->setRowStretch(4, 1);138 139 QDialogButtonBox* buttons = new QDialogButtonBox();140 lay->addWidget(buttons, 5, 0, 1, 3);141 142 btnOk = new QPushButton(tr("&Ok"));143 buttons->addButton(btnOk, QDialogButtonBox::AcceptRole);144 145 btnCancel = new QPushButton(tr("&Cancel"));146 buttons->addButton(btnCancel, QDialogButtonBox::RejectRole);147 148 connect(btnOk, SIGNAL(clicked()), SLOT(slot_ok()));149 connect(edtId, SIGNAL(returnPressed()), SLOT(slot_ok()));150 connect(edtPassword, SIGNAL(returnPressed()), SLOT(slot_ok()));151 connect(btnCancel, SIGNAL(clicked()), SLOT(close()));152 153 // Set Tab Order154 setTabOrder(edtId, edtPassword);155 setTabOrder(edtPassword, cmbProtocol);156 setTabOrder(cmbProtocol, btnOk);157 setTabOrder(btnOk, btnCancel);158 159 116 show(); 160 117 } … … 162 119 void OwnerEditDlg::slot_ok() 163 120 { 164 QString szUser = edtId->text(); 165 QString szPassword; 166 if (!edtPassword->text().isEmpty()) 167 szPassword = edtPassword->text(); 168 unsigned long nPPID = cmbProtocol->itemData(cmbProtocol->currentIndex()).toString().toULong(); 121 QString id = edtId->text(); 122 QString pwd = edtPassword->text(); 123 unsigned long ppid = myPpid == 0 ? cmbProtocol->currentPpid() : myPpid; 169 124 170 ICQOwner* o = gUserManager.FetchOwner(nPPID, LOCK_W); 171 if (o != NULL) 125 if (id.isEmpty()) 172 126 { 173 o->SetId(szUser.toLatin1()); 127 InformUser(this, tr("User ID field cannot be empty.")); 128 return; 174 129 } 175 else176 {177 gUserManager.AddOwner(szUser.toLatin1(), nPPID);178 o = gUserManager.FetchOwner(nPPID, LOCK_W);179 }180 if (!szPassword.isNull())181 o->SetPassword(szPassword.toLatin1());182 130 131 if (myPpid == 0) 132 gUserManager.AddOwner(id.toLocal8Bit(), ppid); 133 134 ICQOwner* o = gUserManager.FetchOwner(ppid, LOCK_W); 135 if (o == NULL) 136 return; 137 138 o->SetPassword(pwd.toLocal8Bit()); 183 139 o->SetSavePassword(chkSave->isChecked()); 184 140 185 gUserManager.DropOwner( nPPID);141 gUserManager.DropOwner(ppid); 186 142 gLicqDaemon->SaveConf(); 187 143 188 144 close(); 189 145 } 190 -
trunk/qt4-gui/src/dialogs/ownereditdlg.h
r6054 r6225 23 23 #include <QDialog> 24 24 25 class QComboBox;26 25 class QCheckBox; 27 26 class QLineEdit; 28 class QPushButton;29 27 30 28 namespace LicqQtGui 31 29 { 30 class ProtoComboBox; 31 32 32 class OwnerEditDlg : public QDialog 33 33 { 34 34 Q_OBJECT 35 35 36 public: 36 37 OwnerEditDlg(unsigned long ppid = 0, QWidget* parent = NULL); … … 40 41 41 42 private: 42 QPushButton* btnOk;43 QPushButton* btnCancel;44 43 QLineEdit* edtId; 45 44 QLineEdit* edtPassword; 46 QComboBox* cmbProtocol;45 ProtoComboBox* cmbProtocol; 47 46 QCheckBox* chkSave; 47 unsigned long myPpid; 48 48 }; 49 49
