diff options
Diffstat (limited to 'module/gui/AccountEdit.py')
-rw-r--r-- | module/gui/AccountEdit.py | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/module/gui/AccountEdit.py b/module/gui/AccountEdit.py new file mode 100644 index 000000000..820d994d6 --- /dev/null +++ b/module/gui/AccountEdit.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +""" + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, + or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see <http://www.gnu.org/licenses/>. + + @author: mkaay +""" + +from PyQt4.QtCore import * +from PyQt4.QtGui import * + +from os.path import join + +class AccountEdit(QWidget): + def __init__(self): + QMainWindow.__init__(self) + + self.setWindowTitle(_("Edit account")) + self.setWindowIcon(QIcon(join(pypath, "icons","logo.png"))) + + self.setLayout(QGridLayout()) + l = self.layout() + + typeLabel = QLabel(_("Type")) + loginLabel = QLabel(_("Login")) + passwordLabel = QLabel(_("New password")) + changePw = QCheckBox() + changePw.setChecked(False) + self.changePw = changePw + password = QLineEdit() + password.setEnabled(False) + password.setEchoMode(QLineEdit.Password) + self.password = password + login = QLineEdit() + self.login = login + acctype = QComboBox() + self.acctype = acctype + + save = QPushButton(_("Save")) + + self.connect(changePw, SIGNAL("toggled(bool)"), password, SLOT("setEnabled(bool)")) + + l.addWidget(typeLabel, 0, 0) + l.addWidget(loginLabel, 1, 0) + l.addWidget(passwordLabel, 2, 0) + l.addWidget(changePw, 2, 1) + l.addWidget(password, 2, 2) + l.addWidget(login, 1, 1, 1, 2) + l.addWidget(acctype, 0, 1, 1, 2) + l.addWidget(save, 3, 0, 1, 3) + + self.connect(save, SIGNAL("clicked()"), self.slotSave) + + def slotSave(self): + data = {"login": str(self.login.text()), "acctype": str(self.acctype.currentText()), "password": False} + if self.changePw.isChecked(): + data["password"] = str(self.password.text()) + self.emit(SIGNAL("done"), data) + + @staticmethod + def newAccount(types): + w = AccountEdit() + w.setWindowTitle(_("Create account")) + + w.changePw.setChecked(True) + w.password.setEnabled(True) + + w.acctype.addItems(types) + + return w + + @staticmethod + def editAccount(types, base): + w = AccountEdit() + + w.acctype.addItems(types) + w.acctype.setCurrentIndex(types.index(base["type"])) + + w.login.setText(base["login"]) + + return w |