From kde-commits Mon Jul 31 22:11:22 2006 From: Yuriy Kozlov Date: Mon, 31 Jul 2006 22:11:22 +0000 To: kde-commits Subject: playground/base/guidance/wineconfig Message-Id: <1154383882.338798.25399.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=115438389911698 SVN commit 568364 by ykozlov: Libraries tab is functional. M +26 -6 wineconfig.py M +1 -1 wineread.py M +42 -3 winewrite.py --- trunk/playground/base/guidance/wineconfig/wineconfig.py #568363:568364 @@ -1700,6 +1700,14 @@ dlls = [""] overriddendlls = {} + orderoptions = ("builtin","native","builtin,native","native,builtin","") + orderoptionstr = [ + str(i18n("Built-in (Wine)")), + str(i18n("Native (Windows)")), + str(i18n("Built-in then Native")), + str(i18n("Native then Built-in")), + str(i18n("Disable"))] + def __init__(self,parent = None,name = None,modal = 0,fl = 0): QWidget.__init__(self,parent) @@ -1763,6 +1771,7 @@ self.editbutton = KPushButton(i18n("Edit"),vbox3) self.connect(self.editbutton,SIGNAL("clicked()"),self.slotEditClicked) + self.editbutton.setEnabled(False) self.removebutton = KPushButton(i18n("Remove"),vbox3) self.connect(self.removebutton,SIGNAL("clicked()"),self.slotRemoveClicked) @@ -1792,11 +1801,10 @@ self.originaloverriddendlls = self.overriddendlls.copy() self.selecteddll = None self.updateDllOverridesList() - def applyChanges(self): """ Applies the changes to wine's configuration """ - winewrite.SetApps(self.applications) + winewrite.SetDllOverrides(self.overriddendlls,application) self.reset() def slotListClicked(self,item): @@ -1811,6 +1819,7 @@ if dll: self.overriddendlls[str(dll)]="native,builtin" self.updateDllOverridesList() + self.__selectOverriddenDll(dll) self.emit(PYSIGNAL("changedSignal()"), ()) def slotRemoveClicked(self): @@ -1823,7 +1832,17 @@ """ Gives a choice for the load order for the library """ - return + if self.selecteddll: + order = KInputDialog.getItem(i18n("Edit Library Override"),\ + str(i18n("Load order for ")) + str(self.selecteddll) +":",\ + QStringList.fromStrList(self.orderoptionstr),\ + False,0,self,"editdll") + + if order[1]: + self.overriddendlls[str(self.selecteddll)] = \ + self.orderoptions[self.orderoptionstr.index(str(order[0]))] + self.updateDllOverridesList() + self.emit(PYSIGNAL("changedSignal()"), ()) def slotDllComboActivated(self,dllid): return @@ -1846,10 +1865,8 @@ if self.selecteddll and self.selecteddll==dll: firstselecteddll = dll lastdll = dll - - if firstselecteddll==None: - firstselecteddll = lastdll + self.dllslist.setSortColumn(0) self.selecteddll = firstselecteddll self.__selectOverriddenDll(self.selecteddll) self.dllslist.ensureItemVisible(self.dllslist.currentItem()) @@ -1857,6 +1874,9 @@ def __selectOverriddenDll(self,dll): """ Select a dll from the overridden list """ self.selecteddll = dll + if dll: + self.dllslist.setSelected(self.dllsToListItems[str(dll)],True) + self.editbutton.setEnabled(True) def setMargin(self,margin): self.top_layout.setMargin(margin) --- trunk/playground/base/guidance/wineconfig/wineread.py #568363:568364 @@ -369,7 +369,7 @@ dlls.sort() return dlls -def GetDllOverrides(app): +def GetDllOverrides(app = None): """ Returns a dictionary of overridden dlls """ if not app: return GetKeyValues("HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides") --- trunk/playground/base/guidance/wineconfig/winewrite.py #568363:568364 @@ -177,7 +177,7 @@ SetKeyValues("HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\" +\ app + "\\DirectSound", settings) -def SetWindowSettings(settings, app): +def SetWindowSettings(settings, app = None): """ Sets the window settings in the registry """ windowsfile=open('.registrywindows.reg','w') if not app: @@ -200,7 +200,7 @@ os.system("wine regedit .registrywindows.reg") os.remove(".registrywindows.reg") -def SetD3DSettings(settings, app): +def SetD3DSettings(settings, app = None): """ Sets the settings for Direct3D in the registry """ d3dfile=open('.registryd3d.reg','w') d3dfile.write("REGEDIT4\n\n[]\n") @@ -306,6 +306,28 @@ os.system("wine regedit .registryapps.reg") os.remove(".registryapps.reg") +def SetDllOverrides(overrides, app = None): + """ Sets the dll override settings in the registry """ + dllfile=open('.registrydll.reg','w') + if not app: + dllfile.write("REGEDIT4\n\n[HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides]\n") + else: + dllfile.write("REGEDIT4\n\n[HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\" +\ + app + "\\DllOverrides]\n") + + origoverrides = wineread.GetDllOverrides(app) + + for dll in overrides.keys(): + dllfile.write('"'+str(dll)+'"="'+str(overrides[dll])+'"\n') + + for dll in origoverrides.keys(): + if dll not in overrides: + dllfile.write('"'+str(dll)+'"=-\n') + + dllfile.close() + os.system("wine regedit .registrydll.reg") + os.remove(".registrydll.reg") + def CreateWineDrive(path = None): """ Creates a fake windows installation in path @@ -313,4 +335,21 @@ if not path: path = wineread.default_winepath - os.system("WINEPREFIX=" + path + " wineprefixcreate --wait") \ No newline at end of file + os.system("WINEPREFIX=" + path + " wineprefixcreate --wait") + + +ports_translation = {"lp":"lpt","ttyS":"com"} + +def CreatePorts(ports = None): + """ + Creates links to ports in dosdevices + """ + if not ports: + # Find ports in /dev + ports = ["lp0"] + + for port in ports: + winport = ports_translation[port.rstrip("012345678")] +\ + str(int(port.lstrip("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")) + 1) + os.symlink("/dev/" + port, wineread.winepath + "/dosdevices/" + winport) + \ No newline at end of file