From: <ror...@us...> - 2007-07-28 15:37:04
|
Revision: 144 http://roreditor.svn.sourceforge.net/roreditor/?rev=144&view=rev Author: rorthomas Date: 2007-07-28 08:37:02 -0700 (Sat, 28 Jul 2007) Log Message: ----------- * added Mod Uninstaller Modified Paths: -------------- trunk/lib/ror/starter.py Added Paths: ----------- trunk/lib/ror/modgui.py trunk/tools/modgui.py Added: trunk/lib/ror/modgui.py =================================================================== --- trunk/lib/ror/modgui.py (rev 0) +++ trunk/lib/ror/modgui.py 2007-07-28 15:37:02 UTC (rev 144) @@ -0,0 +1,95 @@ +#Thomas Fischer 31/05/2007, th...@th... + +import sys, os, os.path, base64 + +sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")) + +from logger import log +from settingsManager import getSettingsManager +import modtool + +import wx, wx.html + +class ModGUI(wx.Frame): + def __init__(self, *args, **kwds): + kwds["style"] = wx.DEFAULT_FRAME_STYLE + wx.Frame.__init__(self, *args, **kwds) + + + self.mainPanel = wx.Panel(self, wx.ID_ANY) + + self.listbox = wx.ListBox(self.mainPanel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, [], wx.LB_MULTIPLE) + self.chkDryRun = wx.CheckBox(self.mainPanel, wx.ID_ANY, "Dry run (only print out what would be done)") + self.btnNext = wx.Button(self.mainPanel, wx.ID_ANY, "Uninstall selected") + self.btnCancel = wx.Button(self.mainPanel, wx.ID_ANY, "Exit") + + self.Bind(wx.EVT_BUTTON, self.onUninstall , self.btnNext) + self.Bind(wx.EVT_BUTTON, self.onCancel , self.btnCancel) + + self.updateData() + + if len(self.data) == 0: + dlg = wx.MessageDialog(self, "No Mods found to uninstall!\n Uninstaller will now exit.", "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + self.Close() + return + + + self.__set_properties() + self.__do_layout() + + def updateData(self): + self.data = modtool.ModTool().getRoRMods(False) + self.listbox.Set(self.data) + + + def onCancel(self, event=None): + self.Close() + + def onUninstall(self, event=None): + if len(self.listbox.GetSelections()) == 0: + dlg = wx.MessageDialog(self, "Please select a Mod to uninstall!", "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + return + counter = 0 + dryrun = self.chkDryRun.GetValue() + log().info("starting uninstallation using the GUI") + for number in self.listbox.GetSelections(): + targetname = self.data[number] + log().info("trying to uninstall mod %s ..." % targetname) + modtool.ModTool().work("uninstall", targetname, False, dryrun) + counter += 1 + if not dryrun: + dlg = wx.MessageDialog(self, "%d Mods uninstalled!" % counter, "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + log().info("finished uninstallation using the GUI.") + self.updateData() + + def __set_properties(self): + self.SetTitle("Mod Uninstaller") + self.SetSize((400, 400)) + + def __do_layout(self): + sizer_panel = wx.BoxSizer(wx.VERTICAL) + sizer_panel.Add(self.listbox, 1, wx.EXPAND, 0) + + sizer_panel.Add(self.chkDryRun, 0, wx.EXPAND, 0) + + sizer_buttons = wx.BoxSizer(wx.HORIZONTAL) + sizer_buttons.Add(self.btnNext, 1, wx.EXPAND, 0) + sizer_buttons.Add(self.btnCancel, 1, wx.EXPAND, 0) + + sizer_panel.Add(sizer_buttons, 0, wx.EXPAND, 0) + + self.mainPanel.SetSizer(sizer_panel) + + sizer_main = wx.BoxSizer(wx.VERTICAL) + sizer_main.Add(self.mainPanel, 1, wx.EXPAND, 0) + + self.SetAutoLayout(True) + self.SetSizer(sizer_main) + sizer_main.Fit(self) + sizer_main.SetSizeHints(self) Modified: trunk/lib/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-07-28 11:29:50 UTC (rev 143) +++ trunk/lib/ror/starter.py 2007-07-28 15:37:02 UTC (rev 144) @@ -64,6 +64,9 @@ self.btnDepGraph = wx.Button(self.panel, wx.ID_ANY, "Create dependency Graph") self.Bind(wx.EVT_BUTTON, self.OnDepGraph, self.btnDepGraph) + self.btnModUninstaller = wx.Button(self.panel, wx.ID_ANY, "Mod Uninstaller") + self.Bind(wx.EVT_BUTTON, self.OnModUninstaller, self.btnModUninstaller) + self.btnRepClient = wx.Button(self.panel, wx.ID_ANY, "Open Repository Client") self.Bind(wx.EVT_BUTTON, self.OnRepClient, self.btnRepClient) @@ -140,7 +143,12 @@ dlg.ShowModal() dlg.Destroy() - + def OnModUninstaller(self, event=None): + import modgui + gui = modgui.ModGUI(None, -1, "") + gui.Show() + del gui + def OnUpdate(self, event=None): import svngui gui = svngui.svnUpdate() @@ -253,6 +261,7 @@ sizer_panel.Add(self.btnUpdate, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnDepGraph, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnRepClient, 0, wx.EXPAND, 0) + sizer_panel.Add(self.btnModUninstaller, 0, wx.EXPAND, 0) sizer_panel.Add(self.btnExit, 0, wx.EXPAND, 0) self.panel.SetSizer(sizer_panel) Added: trunk/tools/modgui.py =================================================================== --- trunk/tools/modgui.py (rev 0) +++ trunk/tools/modgui.py 2007-07-28 15:37:02 UTC (rev 144) @@ -0,0 +1,21 @@ +#Thomas Fischer 31/05/2007, th...@th... +import sys, os, os.path, shutil + +sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "lib")) + +from ror.logger import log +from ror.settingsManager import getSettingsManager +import ror.modgui +import wx + +def main(): + app = wx.PySimpleApp(0) + wx.InitAllImageHandlers() + frame_1 = ror.modgui.ModGUI(None, -1, "") + app.SetTopWindow(frame_1) + frame_1.Show() + app.MainLoop() + + +if __name__=="__main__": + main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |