-
Notifications
You must be signed in to change notification settings - Fork 0
/
inputWnd.py
87 lines (71 loc) · 2.29 KB
/
inputWnd.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import sys
import pygtk
import gtk
import globeCtrl
from random import randint
from db import dbCtrl
def pwgen():
pwd=""
for i in xrange(16):
t=0
while(not ( (t>=48 and t<=57) or (t>=65 and t<=90) or (t>=97 and t<=122) ) ):
t=randint(48,122)
pwd+=chr(t)
return pwd
class inputWnd:
def __init__(self,str_name=None):
self.gladeFile=sys.path[0]+"/src_Wnd.glade"
self.gladeMain = gtk.Builder()
self.gladeMain.add_from_file(self.gladeFile)
self.gladeMain.connect_signals(self)
self.mainWindow = self.gladeMain.get_object("inputWnd")
self.mainWindow.set_position(gtk.WIN_POS_CENTER_ALWAYS)
self.mainWindow.set_default_size(400,300)
self.mainWindow.show()
self.entryName=str_name
self.entryPwd=None
self.newEntry=True
if(str_name!=None):
self.newEntry=False
self.gladeMain.get_object('inputEntryName').set_editable(False)
db=dbCtrl()
self.entryPwd=db.dbGetPwd(str_name)
if(self.entryPwd==None):
print("GetPwd returns a None")
self.refresh(self.entryName,self.entryPwd)
self.regenPwd()
def refresh(self,str_name,str_pwd):
str_name = "" if str_name==None else str_name
str_pwd = "" if str_pwd==None else str_pwd
self.gladeMain.get_object('inputEntryName').set_text(str_name)
self.gladeMain.get_object('inputEntryPwd').set_text(str_pwd)
def regenPwd(self):
str_genPwd=pwgen()
self.gladeMain.get_object('inputEntryPwd').set_text(str_genPwd)
def main(self,str_name=None):
gtk.main()
def gtk_main_quit(self, widget, data=None):
gtk.main_quit()
def on_inputQuit_clicked(self,*args):
gtk.Widget.destroy(self.mainWindow)
def on_inputGen_clicked(self,*args):
self.regenPwd()
def on_inputOK_clicked(self,*args):
str_name=self.gladeMain.get_object('inputEntryName').get_text()
str_pwd=self.gladeMain.get_object('inputEntryPwd').get_text()
if(str_name==''):
errorMsgBox=gtk.MessageDialog(None,gtk.DIALOG_MODAL,
gtk.MESSAGE_ERROR,gtk.BUTTONS_OK,
u'错误')
errorMsgBox.format_secondary_text(u'条目不能为空')
errorMsgBox.run()
errorMsgBox.destroy()
return None
db=dbCtrl()
if(self.newEntry==True):
db.dbInsertIntoMainTable(str_name,str_pwd)
else:
db.dpUpdatePwd(str_name,str_pwd)
gtk.Widget.destroy(self.mainWindow)