From: Greg Hewgill Date: Sat, 10 Jan 2009 00:24:02 +0000 (+1300) Subject: initial cut of gui X-Git-Tag: ljdump-1.3.3~5 X-Git-Url: http://wagner.pp.ru/gitweb/?a=commitdiff_plain;h=d7746237b146252720c1a3dcac1b376816f5e686;p=oss%2Fljdump.git initial cut of gui --- diff --git a/ljdump-gui.py b/ljdump-gui.py new file mode 100644 index 0000000..ec74cae --- /dev/null +++ b/ljdump-gui.py @@ -0,0 +1,91 @@ +#!/usr/bin/python +# +# ljdump-gui.py - gui interface to ljdump +# Greg Hewgill http://hewgill.com +# +# NOTE: This is a work in progress and is probably not suitable for +# general release just yet. +# +# LICENSE +# +# This software is provided 'as-is', without any express or implied +# warranty. In no event will the author be held liable for any damages +# arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, +# including commercial applications, and to alter it and redistribute it +# freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not +# claim that you wrote the original software. If you use this software +# in a product, an acknowledgment in the product documentation would be +# appreciated but is not required. +# 2. Altered source versions must be plainly marked as such, and must not be +# misrepresented as being the original software. +# 3. This notice may not be removed or altered from any source distribution. +# +# Copyright (c) 2005-2009 Greg Hewgill + +import sys +import threading + +from Tkinter import * + +import ljdump + +gWorkerThread = None + +def poll(): + global gWorkerThread + if gWorkerThread.isAlive(): + root.after(100, poll) + else: + gWorkerThread = None + status['text'] = "Completed." + ok['state'] = NORMAL + cancel['state'] = NORMAL + +def do_ok(event = None): + print "ok" + #root.withdraw() + status['text'] = "Running..." + ok['state'] = DISABLED + cancel['state'] = DISABLED + global gWorkerThread + gWorkerThread = threading.Thread(None, ljdump.ljdump, args=("http://livejournal.com", username.get(), password.get())) + gWorkerThread.start() + poll() + +def do_cancel(event = None): + print "cancel", event + root.destroy() + +root = Tk() +root.title("ljdump") + +body = Frame(root) +Label(body, text="Username:").grid(row=0, sticky=W) +Label(body, text="Password:").grid(row=1, sticky=W) +Label(body, text="Status:").grid(row=2, sticky=W) +username = Entry(body) +password = Entry(body, show="*") +status = Label(body, text="Waiting") +username.grid(row=0, column=1) +password.grid(row=1, column=1) +status.grid(row=2, column=1, sticky=W) +body.pack(padx=5, pady=5) + +box = Frame(root) + +ok = Button(box, text="OK", width=10, command=do_ok, default=ACTIVE) +ok.pack(side=LEFT, padx=5, pady=5) +cancel = Button(box, text="Cancel", width=10, command=do_cancel) +cancel.pack(side=LEFT, padx=5, pady=5) + +root.bind("", do_ok) +root.bind("", do_cancel) + +box.pack() + +username.focus_set() +root.mainloop()