[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/base/guidance/wineconfig
From:       Yuriy Kozlov <yuriy.kozlov () gmail ! com>
Date:       2006-07-31 22:11:22
Message-ID: 1154383882.338798.25399.nullmailer () svn ! kde ! org
[Download RAW message or body]

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
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic