Beispiel #1
0
 def checkVersionUse(self, arch): # Check the wine version use by wineprefix
     used_versions = set([])
     prefixes = os.listdir(Variables.playonlinux_rep+"/wineprefix/") # List of wineprefix
     prefixes.remove('default') # Remove 'default' (no wine version use by it)
     for prefix in prefixes:
         if playonlinux.GetSettings("ARCH", prefix) == arch:
             wine_version = playonlinux.GetSettings("VERSION", prefix)
             used_versions.add(wine_version)
     return(used_versions)
Beispiel #2
0
 def UpdateVersions(self, arch):
     elements = playonlinux.Get_versions(arch)
     self.general_elements["wineversion"].Clear()
     if(arch == playonlinux.GetSettings("WINE_SYSTEM_ARCH") or (arch == "x86" and playonlinux.GetSettings("WINE_SYSTEM_ARCH") != "amd64")):
         self.general_elements["wineversion"].Append("System")
     self.general_elements["wineversion"].AppendItems(elements)
     version = playonlinux.GetSettings('VERSION',self.s_prefix)
     if(version == ''):
         self.general_elements["wineversion"].SetValue('System')
     else:
         self.general_elements["wineversion"].SetValue(version)
Beispiel #3
0
 def UpdateVersions(self, arch):
     elements = playonlinux.Get_versions(arch)
     self.general_elements["wineversion"].Clear()
     if (arch == 'x86'):
         self.general_elements["wineversion"].Append("System")
     self.general_elements["wineversion"].AppendItems(elements)
     version = playonlinux.GetSettings('VERSION', self.s_prefix)
     if (version == ''):
         self.general_elements["wineversion"].SetValue('System')
     else:
         self.general_elements["wineversion"].SetValue(version)
Beispiel #4
0
    def installapp(self, event):
        if (self.live == 1):
            InstallApplication = "ExecLiveInstall"
        else:
            InstallApplication = self.list_apps.GetItemText(
                self.list_apps.GetSelection())

        if (InstallApplication == "about:creator"):
            self.EasterEgg = sp.egg(None, -1, "PlayOnLinux Conceptor")
            self.EasterEgg.Show()
            self.EasterEgg.Center(wx.BOTH)
        else:
            if (playonlinux.GetSettings("FIRST_INSTALL_DONE") == ""):
                wx.MessageBox(
                    _("When {0} installs a Windows program: \n\n - Leave the default location\n - Do not tick the checkbox 'Run the program' if asked."
                      ).format(os.environ["APPLICATION_TITLE"]),
                    _("Please read this"))
                playonlinux.SetSettings("FIRST_INSTALL_DONE", "TRUE")

            if (os.path.exists(Variables.playonlinux_rep +
                               "/configurations/listes/search")):
                content = codecs.open(
                    Variables.playonlinux_rep +
                    "/configurations/listes/search", "r",
                    "utf-8").read().split("\n")
                found = False
                for line in content:
                    split = line.split("~")
                    if (split[0] == InstallApplication):
                        found = True
                        break
                if (found == True):
                    if (len(split) <= 1):
                        self.UpdatePol(self)
                    else:
                        if (split[1] == "1"):
                            wx.MessageBox(
                                _("This program is currently in testing.\n\nIt might not work as expected. Your feedback, positive or negative, is specially important to improve this installer."
                                  ), _("Please read this"))
                        if (split[2] == "1"):
                            wx.MessageBox(
                                _("This program contains a protection against copy (DRM) incompatible with emulation.\nThe only workaround is to use a \"no-cd\" patch, but since those can also be used for piracy purposes we won't give any support on this matter."
                                  ), _("Please read this"))

            os.system("bash \"" + Variables.playonlinux_env +
                      "/bash/install\" \"" +
                      InstallApplication.encode("utf-8", "replace") + "\"&")

        self.Destroy()
        return
Beispiel #5
0
    def Internet(self, nom):
        self.panelInternet = wx.Panel(self, -1)

        if(os.path.exists(Variables.playonlinux_rep+"/configurations/options/offline")):
            if(open(Variables.playonlinux_rep+"/configurations/options/offline",'r').read() == '1'):
                self.OffLineCheck.SetValue(1)

        self.ProxySettings = wx.StaticText(self.panelInternet, -1, _("Proxy configuration"), (0,0), wx.DefaultSize)
        self.ProxySettings.SetFont(self.fontTitle)

        proxy_settings = {}

        proxy_settings['PROXY_ENABLED'] = playonlinux.GetSettings("PROXY_ENABLED")
        if(proxy_settings['PROXY_ENABLED'] == ""):
            proxy_settings['PROXY_ENABLED'] = "0"
        proxy_settings['PROXY_ADRESS'] = playonlinux.GetSettings("PROXY_URL")
        proxy_settings["PROXY_PORT"] = playonlinux.GetSettings("PROXY_PORT")
        proxy_settings["PROXY_LOGIN"] = playonlinux.GetSettings("PROXY_LOGIN")
        proxy_settings["PROXY_PASS"] = playonlinux.GetSettings("PROXY_PASSWORD")

        self.ProxyCheck = wx.CheckBox(self.panelInternet, 120, _("Set a proxy"),pos=(10,30))
        self.ProxyCheck.SetValue(int(proxy_settings['PROXY_ENABLED']))

        self.ProxyTxtAdresse = wx.StaticText(self.panelInternet, -1, _("Proxy address"), (10,60), wx.DefaultSize)
        self.ProxyAdresse = wx.TextCtrl(self.panelInternet, -1, proxy_settings["PROXY_ADRESS"], pos=(20,80),size=(300,27))

        self.ProxyTxtPort = wx.StaticText(self.panelInternet, -1, _("Proxy port"), (10,120), wx.DefaultSize)
        self.ProxyPort = wx.TextCtrl(self.panelInternet, -1, proxy_settings["PROXY_PORT"], pos=(20,140),size=(80,27))

        self.ProxyTxtLogin = wx.StaticText(self.panelInternet, -1, _("Proxy login"), (10,180), wx.DefaultSize)
        self.ProxyLogin = wx.TextCtrl(self.panelInternet, -1, proxy_settings["PROXY_LOGIN"], pos=(20,200),size=(300,27))

        self.ProxyTxtPass = wx.StaticText(self.panelInternet, -1, _("Proxy password"), (10,240), wx.DefaultSize)
        self.ProxyPass = wx.TextCtrl(self.panelInternet, -1, proxy_settings["PROXY_PASS"], pos=(20,260),size=(300,27), style=wx.TE_PASSWORD)
        self.AddPage(self.panelInternet, nom, imageId=2)
        self.Bind(wx.EVT_CHECKBOX, self.proxy_enable, id=120)
        self.proxy_enable(self)
Beispiel #6
0
 def assign(self, event):
     old_version = playonlinux.GetSettings('VERSION',self.s_prefix)
     if old_version == '':
         old_version = 'System'
     version = self.general_elements["wineversion"].GetValue()
     if version != old_version:
         if (wx.YES == wx.MessageBox(_("Warning:\n\nAny program still running in this virtual drive will be terminated before Wine version is changed.\nAre you sure you want to continue?"), os.environ["APPLICATION_TITLE"], style = wx.YES_NO | wx.ICON_QUESTION)):
             self.evt_killall(event)
             if version != 'System':
                 playonlinux.SetSettings('VERSION',version,self.s_prefix)
             else:
                 playonlinux.DeleteSettings('VERSION',self.s_prefix)
         else:
             version = old_version
             self.general_elements["wineversion"].SetValue(old_version)
Beispiel #7
0
    def list_software(self):
        self.prefixes = os.listdir(Variables.playonlinux_rep + "wineprefix/")
        self.prefixes.sort()

        self.logs = os.listdir(Variables.playonlinux_rep + "logs/")
        self.logs.sort()

        try:
            self.prefixes.remove(".DS_Store")
        except:
            pass

        self.list_game.DeleteAllItems()
        self.images.RemoveAll()

        root = self.list_game.AddRoot("")
        self.scripts_entry = self.list_game.AppendItem(root,
                                                       _("Install scripts"), 1)
        self.prefixes_entry = self.list_game.AppendItem(
            root, _("Virtual drives"), 0)

        self.file_icone = Variables.playonlinux_env + "/resources/images/icones/generic.png"
        self.bitmap = wx.Image(self.file_icone)
        self.bitmap.Rescale(16, 16, wx.IMAGE_QUALITY_HIGH)
        self.bitmap = self.bitmap.ConvertToBitmap()
        self.images.Add(self.bitmap)
        self.images.Add(self.bitmap)

        self.i = 2
        for prefix in self.prefixes:
            if (os.path.isdir(Variables.playonlinux_rep + "wineprefix/" +
                              prefix)):

                if (os.path.exists(Variables.playonlinux_rep + "/wineprefix/" +
                                   prefix + "/icon")):
                    self.file_icone = Variables.playonlinux_rep + "/wineprefix/" + prefix + "/icon"
                else:
                    try:
                        archdd = playonlinux.GetSettings('ARCH', prefix)
                        if (archdd == "amd64"):
                            archdd = "64"
                        else:
                            archdd = "32"
                    except:
                        archdd = "32"
                    self.file_icone = Variables.playonlinux_env + "/resources/images/menu/virtual_drive_" + archdd + ".png"

                try:
                    self.bitmap = wx.Image(self.file_icone)
                    self.bitmap.Rescale(16, 16, wx.IMAGE_QUALITY_HIGH)
                    self.bitmap = self.bitmap.ConvertToBitmap()
                    self.images.Add(self.bitmap)
                except:
                    pass

                self.prefixes_item[prefix] = self.list_game.AppendItem(
                    self.prefixes_entry, prefix, self.i)
                self.i += 1

        for log in self.logs:
            if (not "_" in log and
                    os.path.isdir(Variables.playonlinux_rep + "logs/" + log)):
                self.file_icone = Variables.playonlinux_env + "/resources/images/menu/manual.png"

                try:
                    self.bitmap = wx.Image(self.file_icone)
                    self.bitmap.Rescale(16, 16, wx.IMAGE_QUALITY_HIGH)
                    self.bitmap = self.bitmap.ConvertToBitmap()
                    self.images.Add(self.bitmap)
                except:
                    pass

                self.logs_item[log] = self.list_game.AppendItem(
                    self.scripts_entry, log, self.i)
                self.i += 1

        self.list_game.Collapse(self.scripts_entry)
        self.list_game.Collapse(self.prefixes_entry)
        self.list_game.ExpandAll()
Beispiel #8
0
os.environ["LD_PATH_ORIGIN"] = os.environ["LD_LIBRARY_PATH"]
try:
    os.environ["LD_32_PATH_ORIGIN"] = os.environ["LD_32_LIBRARY_PATH"]
except KeyError:
    os.environ["LD_32_PATH_ORIGIN"] = ""

os.environ["DYLDPATH_ORIGIN"] = os.environ["DYLD_LIBRARY_PATH"]

playonlinux_env = os.environ["PLAYONLINUX"]
playonlinux_rep = os.environ["POL_USER_ROOT"]
version = os.environ["VERSION"]
current_user = os.environ["USER"]

os.environ["WGETRC"] = os.environ["POL_USER_ROOT"] + "/configurations/wgetrc"

## Proxy settings
if playonlinux.GetSettings("PROXY_ENABLED") == "1":
    if playonlinux.GetSettings("PROXY_URL") != "":
        if playonlinux.GetSettings("PROXY_LOGIN") == "":
            http_proxy = "http://" + playonlinux.GetSettings(
                "PROXY_URL") + ":" + playonlinux.GetSettings("PROXY_PORT")
        else:
            http_proxy = "http://" + playonlinux.GetSettings(
                "PROXY_LOGIN") + ":" + playonlinux.GetSettings(
                    "PROXY_PASSWORD") + "@" + playonlinux.GetSettings(
                        "PROXY_URL") + ":" + playonlinux.GetSettings(
                            "PROXY_PORT")
        os.environ["http_proxy"] = http_proxy

userAgent = "PlayOnLinux/" + os.environ["VERSION"]
    def UpdateValues(self, selection):
        # print "Test"
        if (self.s_isPrefix == False):
            self.ChangeTitle(selection)
            # self.general_elements["wineversion"].SetValue(wine_versions.GetWineVersion(selection))
            # self.general_elements["wineversion"].Show()
            self.general_elements["wineprefix"].Show()
            self.general_elements["arguments"].Show()
            self.general_elements["arguments_text"].Show()

            # self.general_elements["name"].Show()
            # self.general_elements["wineversion_text"].Show()
            self.general_elements["wineprefix_text"].Show()
            self.general_elements["name"].SetEditable(True)

            # self.general_elements["name_text"].Show()
            self.general_elements["wineprefix"].SetValue(
                playonlinux.getPrefix(self.s_title))
            self.general_elements["arguments"].SetValue(
                playonlinux.getArgs(self.s_title))

            self.display_elements["folder_button"].SetLabel(
                _("Open program's directory"))
            if not playonlinux.GetSettings("OPEN_IN", self.s_prefix):
                self.display_elements["open_in"].SetValue("xdg-open")
            else:
                self.display_elements["open_in"].SetValue(
                    playonlinux.GetSettings("OPEN_IN", self.s_prefix))

            if (os.path.exists(Variables.playonlinux_rep +
                               "configurations/configurators/" +
                               self.s_title)):
                self.configurator_title.Show()
                self.configurator_button.Show()
            else:
                self.configurator_title.Hide()
                self.configurator_button.Hide()
            self.configurator_title.SetLabel(
                "{0} specific configuration".format(self.s_title))
            self.display_elements["pre_run_panel"].Show()
            self.display_elements["pre_run_text"].Show()
        else:
            self.s_prefix = selection
            self.s_title = selection
            # self.general_elements["wineversion"].Hide()
            self.general_elements["wineprefix"].Hide()
            # self.general_elements["name"].Hide()
            self.general_elements["name"].SetEditable(False)
            self.general_elements["name"].SetValue(self.s_prefix)
            self.general_elements["arguments"].Hide()
            self.general_elements["arguments_text"].Hide()
            # self.general_elements["wineversion_text"].Hide()
            self.general_elements["wineprefix_text"].Hide()
            # self.general_elements["name_text"].Hide()
            self.display_elements["folder_button"].SetLabel(
                _("Open virtual drive's directory"))
            self.configurator_title.Hide()
            self.configurator_button.Hide()
            self.display_elements["pre_run_panel"].Hide()
            self.display_elements["pre_run_text"].Hide()

        self.Refresh()
        self.elements = [
            "UseGLSL", "DirectDrawRenderer", "VideoMemorySize",
            "OffscreenRenderingMode", "RenderTargetModeLock", "Multisampling",
            "StrictDrawOrdering", "MouseWarpOverride"
        ]
        self.settings = wine.LoadRegValues(self.s_prefix, self.elements)
        # print self.settings
        self.get_current_settings("UseGLSL")
        self.get_current_settings("DirectDrawRenderer")
        self.get_current_settings("VideoMemorySize")
        self.get_current_settings("OffscreenRenderingMode")
        self.get_current_settings("RenderTargetModeLock")
        self.get_current_settings("Multisampling")
        self.get_current_settings("StrictDrawOrdering")
        self.get_current_settings("MouseWarpOverride")

        self.arch = playonlinux.GetSettings('ARCH', self.s_prefix)
        if (self.arch == ""):
            self.arch = "x86"

        self.UpdateVersions(self.arch)
        self.general_elements["winedebug"].SetValue(
            playonlinux.GetSettings("WINEDEBUG", self.s_prefix))
        try:
            self.display_elements["pre_run"].SetValue(
                open(
                    os.environ["POL_USER_ROOT"] +
                    "/configurations/pre_shortcut/" + self.s_title,
                    'r').read())
        except:
            self.display_elements["pre_run"].SetValue("")
Beispiel #10
0
    def list_software(self):
        self.games = os.listdir(Variables.playonlinux_rep+"shortcuts/")
        self.games.sort()

        self.prefixes = os.listdir(Variables.playonlinux_rep+"wineprefix/")
        self.prefixes.sort()

        self.games_item = {}
        self.prefixes_item = {}

        try:
            self.games.remove(".DS_Store")
        except:
            pass

        try:
            self.prefixes.remove(".DS_Store")
        except:
            pass

        self.list_game.DeleteAllItems()
        self.images.RemoveAll()
        root = self.list_game.AddRoot("#ROOT#")

        self.i = 0
        for prefix in self.prefixes:
            if(os.path.isdir(Variables.playonlinux_rep+"wineprefix/"+prefix)):
                self.prefixes_item[prefix] = self.list_game.AppendItem(root, prefix, self.i)

                if(os.path.exists(Variables.playonlinux_rep+"/wineprefix/"+prefix+"/icon")):
                    self.file_icone = Variables.playonlinux_rep+"/wineprefix/"+prefix+"/icon"
                else:
                    try:
                        archdd = playonlinux.GetSettings('ARCH',prefix)
                        if(archdd == "amd64"):
                            archdd = "64"
                        else:
                            archdd = "32"
                    except:
                        archdd = "32"
                    self.file_icone = Variables.playonlinux_env+"/resources/images/menu/virtual_drive_"+archdd+".png"

                try:
                    self.bitmap = wx.Image(self.file_icone)
                    self.bitmap.Rescale(16,16,wx.IMAGE_QUALITY_HIGH)
                    self.bitmap = self.bitmap.ConvertToBitmap()
                    self.images.Add(self.bitmap)
                except:
                    pass

                self.list_game.SetItemBold(self.prefixes_item[prefix], True)

                for game in self.games: #METTRE EN 32x32
                    if(playonlinux.getPrefix(game).lower() == prefix.lower()):
                        if(os.path.exists(Variables.playonlinux_rep+"/icones/32/"+game)):
                            self.file_icone = Variables.playonlinux_rep+"/icones/32/"+game
                        else:
                            self.file_icone = Variables.playonlinux_env+"/etc/playonlinux32.png"

                        try:
                            self.bitmap = wx.Image(self.file_icone)
                            self.bitmap.Rescale(16,16,wx.IMAGE_QUALITY_HIGH)
                            self.bitmap = self.bitmap.ConvertToBitmap()
                            self.images.Add(self.bitmap)
                        except:
                            pass
                        self.i += 1
                        self.games_item[game] = self.list_game.AppendItem(self.prefixes_item[prefix], game, self.i)

                self.i += 1

        self.list_game.ExpandAll()
        try:
            if(self.onglets.s_isPrefix == True):
                self.list_game.SelectItem(self.prefixes_item[self.onglets.s_prefix.encode("utf-8","replace")])
            else:
                self.list_game.SelectItem(self.games_item[self.onglets.s_title.encode("utf-8","replace")])
        except:
            self.onglets.s_isPrefix = True
            self.change_program("default",True)
            self.list_game.SelectItem(self.prefixes_item["default"])
Beispiel #11
0
    def UpdateValues(self, selection):
        #print "Test"
        if (self.s_isPrefix == False):
            self.ChangeTitle(selection)
            #self.general_elements["wineversion"].SetValue(wine_versions.GetWineVersion(selection))
            #self.general_elements["wineversion"].Show()
            self.general_elements["wineprefix"].Show()
            self.general_elements["arguments"].Show()
            self.general_elements["arguments_text"].Show()

            #self.general_elements["name"].Show()
            #self.general_elements["wineversion_text"].Show()
            self.general_elements["wineprefix_text"].Show()
            self.general_elements["debug_text"].Show()
            self.general_elements["debug_check"].Show()
            self.general_elements["name"].SetEditable(True)

            #self.general_elements["name_text"].Show()
            self.general_elements["wineprefix"].SetValue(
                playonlinux.getPrefix(self.s_title))
            self.general_elements["arguments"].SetValue(
                playonlinux.getArgs(self.s_title))

            self.display_elements["folder_button"].SetLabel(
                _("Open program's directory"))
            self.general_elements["debug_check"].SetValue(
                playonlinux.GetDebugState(self.s_title))
            if (os.path.exists(Variables.playonlinux_rep +
                               "configurations/configurators/" +
                               self.s_title)):
                self.configurator_title.Show()
                self.configurator_button.Show()
            else:
                self.configurator_title.Hide()
                self.configurator_button.Hide()
            self.configurator_title.SetLabel(self.s_title +
                                             " specific configuration")

        else:
            self.s_prefix = selection
            self.s_title = selection
            #self.general_elements["wineversion"].Hide()
            self.general_elements["wineprefix"].Hide()
            #self.general_elements["name"].Hide()
            self.general_elements["name"].SetEditable(False)
            self.general_elements["name"].SetValue(self.s_prefix)
            self.general_elements["arguments"].Hide()
            self.general_elements["arguments_text"].Hide()
            #self.general_elements["wineversion_text"].Hide()
            self.general_elements["wineprefix_text"].Hide()
            self.general_elements["debug_text"].Hide()
            self.general_elements["debug_check"].Hide()
            #self.general_elements["name_text"].Hide()
            self.display_elements["folder_button"].SetLabel(
                _("Open virtual drive's directory"))
            self.configurator_title.Hide()
            self.configurator_button.Hide()

        self.Refresh()
        self.elements = [
            "UseGLSL", "DirectDrawRenderer", "VideoMemorySize",
            "OffscreenRenderingMode", "RenderTargetModeLock", "Multisampling",
            "StrictDrawOrdering", "MouseWarpOverride"
        ]
        self.settings = wine.LoadRegValues(self.s_prefix, self.elements)
        #print self.settings
        self.get_current_settings("UseGLSL")
        self.get_current_settings("DirectDrawRenderer")
        self.get_current_settings("VideoMemorySize")
        self.get_current_settings("OffscreenRenderingMode")
        self.get_current_settings("RenderTargetModeLock")
        self.get_current_settings("Multisampling")
        self.get_current_settings("StrictDrawOrdering")
        self.get_current_settings("MouseWarpOverride")

        self.arch = playonlinux.GetSettings('ARCH', self.s_prefix)
        if (self.arch == ""):
            self.arch = "x86"

        self.UpdateVersions(self.arch)