profile renaming

This commit is contained in:
Damien Elmes 2012-01-17 11:18:48 +09:00
parent 0a65d7abe0
commit 65072ad43c
3 changed files with 43 additions and 0 deletions

View file

@ -104,6 +104,7 @@ class AnkiQt(QMainWindow):
d.connect(f.login, SIGNAL("clicked()"), self.onOpenProfile)
d.connect(f.quit, SIGNAL("clicked()"), lambda: sys.exit(0))
d.connect(f.add, SIGNAL("clicked()"), self.onAddProfile)
d.connect(f.rename, SIGNAL("clicked()"), self.onRenameProfile)
d.connect(f.delete_2, SIGNAL("clicked()"), self.onRemProfile)
d.connect(d, SIGNAL("rejected()"), lambda: d.close())
d.connect(f.profiles, SIGNAL("currentRowChanged(int)"),
@ -155,6 +156,22 @@ class AnkiQt(QMainWindow):
self.pm.create(name)
self.refreshProfilesList()
def onRenameProfile(self):
name = getOnlyText("New name:", default=self.pm.name)
if not self.openProfile():
return showWarning(_("Invalid password."))
if not name:
return
if name == self.pm.name:
return
if name in self.pm.profiles():
return showWarning("Name exists.")
if not re.match("^[A-Za-z0-9 ]+$", name):
return showWarning(
"Only numbers, letters and spaces can be used.")
self.pm.rename(name)
self.refreshProfilesList()
def onRemProfile(self):
profs = self.pm.profiles()
if len(profs) < 2:

View file

@ -152,6 +152,16 @@ computer.""")
self.db.execute("delete from profiles where name = ?", name)
self.db.commit()
def rename(self, name):
oldFolder = self.profileFolder()
# update name
self.db.execute("update profiles set name = ? where name = ?",
name, self.name)
# rename folder
self.name = name
os.rename(oldFolder, self.profileFolder())
self.db.commit()
# Folder handling
######################################################################

View file

@ -60,6 +60,13 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="rename">
<property name="text">
<string>Rename</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="delete_2">
<property name="text">
@ -93,6 +100,15 @@
</item>
</layout>
</widget>
<tabstops>
<tabstop>profiles</tabstop>
<tabstop>passEdit</tabstop>
<tabstop>login</tabstop>
<tabstop>add</tabstop>
<tabstop>rename</tabstop>
<tabstop>delete_2</tabstop>
<tabstop>quit</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>