]> www.wagner.pp.ru Git - oss/ljdump.git/commitdiff
initial cut of gui
authorGreg Hewgill <greg@hewgill.com>
Sat, 10 Jan 2009 00:24:02 +0000 (13:24 +1300)
committerGreg Hewgill <greg@hewgill.com>
Sat, 10 Jan 2009 01:12:22 +0000 (14:12 +1300)
ljdump-gui.py [new file with mode: 0644]

diff --git a/ljdump-gui.py b/ljdump-gui.py
new file mode 100644 (file)
index 0000000..ec74cae
--- /dev/null
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+#
+# ljdump-gui.py - gui interface to ljdump
+# Greg Hewgill <greg@hewgill.com> 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("<Return>", do_ok)
+root.bind("<Escape>", do_cancel)
+
+box.pack()
+
+username.focus_set()
+root.mainloop()