feat: links & steam links

This commit is contained in:
Yannik Schmidt
2024-03-29 05:45:43 +01:00
parent 82cdc8261b
commit eef9c35c10
2 changed files with 41 additions and 5 deletions

View File

@@ -109,23 +109,46 @@ def create_details_page(app, software, backswitch_function):
button_frame = customtkinter.CTkFrame(info_frame, fg_color="transparent")
button_frame.grid(column=0, row=6, sticky="w")
elements.append(button_frame)
install_button = customtkinter.CTkButton(button_frame, text="Install",
if software.link_only and "steam" in software.link_only:
install_text = "Open Steam"
remove_text = "Remove from Steam"
elif software.link_only:
install_text = "Open in Browser"
remove_text = "Remove Manually"
else:
install_text = "Install"
remove_text = "Remove"
install_button = customtkinter.CTkButton(button_frame, text=install_text,
command=lambda: software.install())
remove_button = customtkinter.CTkButton(button_frame, text="Remove",
command=lambda: software.remove())
# add remove button #
remove_button = customtkinter.CTkButton(button_frame, text=remove_text,
command=lambda: software.remove())
if remove_text != "Remove":
remove_button.configure(state=tkinter.DISABLED)
remove_button.configure(fg_color="gray")
remove_button.pack(padx=10, pady=15, anchor="sw", side="left")
# run button #
run_button = customtkinter.CTkButton(button_frame, text="Run",
command=lambda: software.run())
run_button.pack(padx=10, pady=15, anchor="sw", side="left")
elements.append(run_button)
# install button #
if not software.run_exe:
run_button.configure(state=tkinter.DISABLED)
run_button.configure(fg_color="gray")
install_button.pack(padx=10, pady=15, anchor="sw", side="left")
remove_button.pack(padx=10, pady=15, anchor="sw", side="left")
# add buttons #
elements.append(install_button)
elements.append(run_button)
elements.append(remove_button)
# add other pictures #

View File

@@ -5,6 +5,7 @@ import zipfile
import shutil
import pathlib
import tqdm
import webbrowser
class Software:
@@ -72,6 +73,11 @@ class Software:
print("Installing:", self.title, self.directory)
# handle link-only software #
if self.link_only:
webbrowser.open(self.link_only)
return
path = os.path.join(self.directory, "main_dir")
try:
@@ -115,5 +121,12 @@ class Software:
def run(self):
'''Run the configured exe for this software'''
print(self.run_exe, self.link_only)
if self.run_exe == "steam" and "steam://" in self.link_only:
print("steam://runid/{}".format(self.link_only.split("/")[-1]))
webbrowser.open("steam://rungameid/{}".format(self.link_only.split("/")[-1]))
return
if self.run_exe:
localaction.run_exe(os.path.join(self.backend.install_dir, self.title, self.run_exe))