Subversion Repositories pub

Compare Revisions

No changes between revisions

Ignore whitespace Rev 199 → Rev 254

/relevation/trunk/gui.py
7,11 → 7,13
 
Simplistic Graphical User Interface.
This GUI is mainly intended to be used in systems where command-lines
are less common, like Widows.
are less common, like Windows.
 
$Id$
"""
# Relevation Password Printer
#
# Copyright (c) 2011, Toni Corvera
# Copyright (c) 2011, 2013, Toni Corvera
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
38,22 → 40,32
import sys
import re
import Tkinter as tk
from Tkinter import Frame, Button, Entry, Listbox, Scrollbar, Label
from Tkinter import Frame, Button, Entry, Listbox, Scrollbar, Label, Radiobutton, StringVar
 
import relevation
 
__author__ = 'Toni Corvera'
__date__ = '$Date$'
__revision__ = '$Rev$'
__version_info__ = ( 1, 2, 1 )
__version__ = '.'.join(map(str, __version_info__))
 
old_fn = relevation.dump_result
 
def append_result(s):
def append_result(typeName, name, descr, notes, fields):
global gui
fields = s.split('\n')
name = fields[2]
name = re.sub('^Name: ', '', name)
gui.lst.insert(tk.END, name)
s = '\n'
s += 'Type: %s\n' % typeName
s += 'Name: %s\n' % name
s += 'Description: %s\n' % descr
s += 'Notes: %s\n' % notes
for field in fields:
s += '%s %s\n' % field
gui.items.append(s)
 
def dump_result_override(res, query_desc):
return old_fn(res,query_desc, append_result)
return old_fn(res, query_desc, append_result)
 
relevation.dump_result = dump_result_override
 
79,7 → 91,23
global rootw
search = self.search_text.get()
self.lst.delete(0, tk.END)
relevation.main(sys.argv[1:] + ['-s', search])
self.items = []
mode = '-O'
args = sys.argv[1:] + [ '-s', ]
if self.mode.get() == relevation.MODE_AND:
mode = '-A'
search = search.split(' ')
args += search
args += [ mode, ]
else:
args += [ search, mode ]
print args
try:
relevation.main(args)
except SystemExit:
# No matches -> Exit with 80
gui.lst.insert(tk.END, '<No matches>')
self.items.append('<No passwords matched search>')
 
def display(self):
global rootw
95,7 → 123,7
def __init__(self, master=None):
self.master = master
frame = Frame(master)
frame.pack()
frame.pack(expand=1, fill=tk.BOTH)
self.items = []
self.frame = frame
#top = master
109,15 → 137,15
def ignoreme(s):
pass
relevation.printe = ignoreme
relevation.printen = ignoreme
FILL = tk.N+tk.S+tk.E+tk.W
BTNROW = 2
BTNROW = 3
MODEROW = 2
RESROW = 1
# Populate
self.search_text = Entry(self.frame)
#self.search_text.pack({'expand': 1, 'side': 'top'})
self.search_text.grid(row=0, column=0, columnspan=4, padx=5, sticky=FILL)
self.search_text.grid(row=0, column=0, columnspan=4, padx=5, sticky=tk.N+tk.E+tk.W)
self.search_text.bind('<Return>', lambda event: self.do_find())
self.quit = Button(self.frame, text='Quit', fg='red', command=frame.quit)
127,6 → 155,16
self.search = Button(self.frame, text='Search', command=self.do_find)
#self.search.pack(side=tk.RIGHT)
self.search.grid(row=BTNROW, column=2, padx=5)
 
self.mode = StringVar()
 
mode = relevation.load_config()[2]
self.mode.set(mode)
 
rbO = Radiobutton(self.frame, text="OR/Literal", variable=self.mode, value=relevation.MODE_OR)
rbA = Radiobutton(self.frame, text="AND", variable=self.mode, value=relevation.MODE_AND)
rbO.grid(row=MODEROW, column=0)
rbA.grid(row=MODEROW, column=1)
self.view = Button(self.frame, text='View', command=self.display)
#self.view.pack(side=tk.RIGHT)
148,9 → 186,9
 
if __name__ == '__main__':
rootw = tk.Tk()
rootw.title('Relevation search')
rootw.title('Relevation search v' + __version__)
gui = GUI(master=rootw)
rootw.mainloop()
rootw.destroy()
#rootw.destroy()
 
# vim:set ts=4 et ai fileencoding=utf-8: #
Property changes:
Added: svn:keywords
+Rev Id Date
\ No newline at end of property