summaryrefslogtreecommitdiffstats
path: root/pyLoadGui.py
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2009-06-14 00:07:43 +0200
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2009-06-14 00:07:43 +0200
commit9db8236ef598e4dff7f9be2d7558b80ce1330c97 (patch)
tree208e0f928f042a5db56a949c9e80bbd5e3b879c9 /pyLoadGui.py
parentevery number of to download videos work with youtube channel, fixed #7 (diff)
downloadpyload-9db8236ef598e4dff7f9be2d7558b80ce1330c97.tar.xz
new naming convention, cli structur
Diffstat (limited to 'pyLoadGui.py')
-rwxr-xr-xpyLoadGui.py158
1 files changed, 158 insertions, 0 deletions
diff --git a/pyLoadGui.py b/pyLoadGui.py
new file mode 100755
index 000000000..1342ed8f1
--- /dev/null
+++ b/pyLoadGui.py
@@ -0,0 +1,158 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+#Copyright (C) 2009 KingZero
+#
+#This program is free software; you can redistribute it and/or modify
+#it under the terms of the GNU General Public License as published by
+#the Free Software Foundation; either version 3 of the License,
+#or (at your option) any later version.
+#
+#This program is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#See the GNU General Public License for more details.
+#
+#You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+###
+
+from os import sep
+from os.path import abspath
+from os.path import dirname
+
+import wxversion
+wxversion.select('2.8')
+
+import wx
+import wx.lib.newevent
+import wx.lib.sized_controls as sized_control
+from module.remote.ClientSocket import SocketThread
+
+(DataArrived, EVT_DATA_ARRIVED) = wx.lib.newevent.NewEvent()
+
+class _Download_Dialog(sized_control.SizedDialog):
+ def __init__(self, parent, id):
+ sized_control.SizedDialog.__init__(self, parent, id, "Downloads hinzufügen",
+ style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
+
+ pane = self.GetContentsPane()
+
+ self.links = wx.TextCtrl(pane, -1, style=wx.TE_MULTILINE, size=(500, 200))
+ self.links.SetSizerProps(expand=True, proportion=1)
+
+ self.SetButtonSizer(self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL))
+
+ self.Fit()
+ self.SetMinSize(self.GetSize())
+
+ #Clipboard
+ self.data = wx.TextDataObject()
+ if wx.TheClipboard.Open():
+ wx.TheClipboard.GetData(self.data)
+ for link in self.data.GetText().split('\n'):
+ if link.startswith("http"):
+ self.links.write(link + "\n")
+ wx.TheClipboard.Close()
+
+class _Upper_Panel(wx.Panel):
+ def __init__(self, parent):
+ wx.Panel.__init__(self, parent)
+ sizer = wx.BoxSizer(wx.HORIZONTAL)
+ download_liste = wx.ListCtrl(self, style=wx.LC_REPORT)
+ download_liste.InsertColumn(0, 'Name', width=250)
+ download_liste.InsertColumn(1, 'Status')
+ download_liste.InsertColumn(2, 'Groesse')
+ download_liste.InsertColumn(3, 'Uebertragen', width=100)
+ download_liste.InsertColumn(4, 'Prozent', width=100)
+ download_liste.InsertColumn(5, 'Dauer', width=100)
+ download_liste.InsertColumn(7, 'Geschwindigkeit', width=150)
+
+ sizer.Add(download_liste, 1, wx.EXPAND)
+ self.SetSizer(sizer)
+
+
+class _Lower_Panel(wx.Panel):
+ def __init__(self, parent):
+ wx.Panel.__init__(self, parent)
+ self.SetBackgroundColour(wx.BLACK)
+
+
+class Pyload_Main_Gui(wx.Frame):
+ def __init__(self, parent, id, title="pyLoad"):
+
+ wx.Frame.__init__(self, parent, id, title, size=(910, 500))
+
+ app_path = dirname(abspath(__file__)) + sep
+
+ # socket
+ self.thread = SocketThread("localhost", 7272, "pwhere", self)
+
+
+ # Menubar
+ menubar = wx.MenuBar()
+ menu_file = wx.Menu()
+ submenu_exit = menu_file.Append(-1, 'Schliessen', 'pyLoad beenden')
+ menubar.Append(menu_file, '&Datei')
+ self.SetMenuBar(menubar)
+
+ # Toolbar
+ toolbar = self.CreateToolBar()
+ toolbar.SetToolBitmapSize((32, 32))
+ add = toolbar.AddLabelTool(2, '', wx.Bitmap(app_path + '/icons/add.png'))
+ delete = toolbar.AddLabelTool(3, '', wx.Bitmap(app_path + '/icons/del.png'))
+ start = toolbar.AddLabelTool(4, '', wx.Bitmap(app_path + '/icons/start.png'))
+ pause = toolbar.AddLabelTool(5, '', wx.Bitmap(app_path + '/icons/pause.png'))
+ stop = toolbar.AddLabelTool(6, '', wx.Bitmap(app_path + '/icons/stop.png'))
+ up = toolbar.AddLabelTool(7, '', wx.Bitmap(app_path + '/icons/up.png'))
+ down = toolbar.AddLabelTool(8, '', wx.Bitmap(app_path + '/icons/down.png'))
+ config = toolbar.AddLabelTool(9, '', wx.Bitmap(app_path + '/icons/setup.png'))
+ toolbar.Realize()
+
+ splitter = wx.SplitterWindow(self)
+ panel_up = _Upper_Panel(splitter)
+ panel_down = _Lower_Panel(splitter)
+ splitter.SplitHorizontally(panel_up, panel_down, 300)
+
+ # Binds
+ self.Bind(wx.EVT_MENU, self.exit_button_clicked, submenu_exit)
+ self.Bind(wx.EVT_TOOL, self.add_button_clicked, add)
+ self.Bind(EVT_DATA_ARRIVED, self.onUpdate)
+
+ self.Centre()
+ self.Show(True)
+
+
+ def exit_button_clicked(self, event):
+ self.Close()
+
+ def add_button_clicked(self, event):
+ #test
+ #self.thread.push_exec("get_downloads")
+
+ adddownload = _Download_Dialog(None, -1)
+ result = adddownload.ShowModal()
+ adddownload.Destroy()
+
+ def show_links(self, links):
+ for link in links:
+ wx.MessageDialog(self, str(link), 'info', style=wx.OK).ShowModal()
+
+ def data_arrived(self, rep):
+ evt = DataArrived(obj=rep)
+ wx.PostEvent(self, evt)
+
+ def onUpdate(self, evt):
+
+ if evt.obj.function == "get_downloads":
+ pass
+ #self.show_links(evt.obj.response)
+
+ if evt.obj.command == "update":
+ pass
+ #self.show_links(evt.obj.data)
+
+app = wx.App()
+Pyload_Main_Gui(None, -1)
+app.MainLoop() \ No newline at end of file