diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2009-06-14 00:07:43 +0200 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2009-06-14 00:07:43 +0200 |
commit | 9db8236ef598e4dff7f9be2d7558b80ce1330c97 (patch) | |
tree | 208e0f928f042a5db56a949c9e80bbd5e3b879c9 /pyLoadGui.py | |
parent | every number of to download videos work with youtube channel, fixed #7 (diff) | |
download | pyload-9db8236ef598e4dff7f9be2d7558b80ce1330c97.tar.xz |
new naming convention, cli structur
Diffstat (limited to 'pyLoadGui.py')
-rwxr-xr-x | pyLoadGui.py | 158 |
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 |