WIP: Welcome dialog added
This commit is contained in:
@@ -46,6 +46,26 @@ class FrameErrorConnection(ThemedFrame):
|
||||
self.button_settings.grid(column=1, row=0, padx=9, pady=9)
|
||||
|
||||
|
||||
class FrameErrorFirstStart(ThemedFrame):
|
||||
|
||||
def __init__(self, master: ThemedTk, **kwargs) -> None:
|
||||
|
||||
super().__init__(master, **kwargs)
|
||||
|
||||
self.grid_columnconfigure(0, weight=1)
|
||||
|
||||
self.grid_rowconfigure(0, weight=2)
|
||||
self.grid_rowconfigure(1, weight=2)
|
||||
|
||||
master.columnconfigure(1, weight=1)
|
||||
|
||||
self.label = ttk.Label(self, text="Setup completed")
|
||||
self.label.grid(column=0, row=0, padx=9, pady=9, sticky=S)
|
||||
|
||||
self.button_settings = ttk.Button(self, text="Refresh", style="Accent.TButton", width=10, command=lambda:try_connecting(master))
|
||||
self.button_settings.grid(column=0, row=1, sticky=N)
|
||||
|
||||
|
||||
class FrameErrorSavesFolder(ThemedFrame):
|
||||
|
||||
def __init__(self, master: ThemedTk, **kwargs) -> None:
|
||||
|
@@ -27,33 +27,33 @@ class FrameSettings(ThemedFrame):
|
||||
master.columnconfigure(1, weight=1)
|
||||
|
||||
# Name
|
||||
self.name_label = ttk.Label(self, text="Name:")
|
||||
self.name_label.grid(column=0, row=0, sticky=W, padx=9, pady=9)
|
||||
# self.name_label = ttk.Label(self, text="Name:")
|
||||
# self.name_label.grid(column=0, row=0, sticky=W, padx=9, pady=9)
|
||||
|
||||
self.name_entry = ttk.Entry(self)
|
||||
self.name_entry.grid(column=1, row=0, sticky=N+S+E+W, padx=9, pady=9)
|
||||
if configGet("name") is not None:
|
||||
self.name_entry.insert(0, configGet("name"))
|
||||
else:
|
||||
self.name_entry.insert(0, str(platform.node()))
|
||||
# self.name_entry = ttk.Entry(self)
|
||||
# self.name_entry.grid(column=1, row=0, sticky=N+S+E+W, padx=9, pady=9)
|
||||
# if configGet("name") is not None:
|
||||
# self.name_entry.insert(0, configGet("name"))
|
||||
# else:
|
||||
# self.name_entry.insert(0, str(platform.node()))
|
||||
# ====
|
||||
|
||||
# Address
|
||||
self.address_label = ttk.Label(self, text="Address:")
|
||||
self.address_label.grid(column=0, row=1, sticky=W, padx=9, pady=9)
|
||||
self.address_label.grid(column=0, row=0, sticky=W, padx=9, pady=9)
|
||||
|
||||
self.address_entry = ttk.Entry(self)
|
||||
self.address_entry.grid(column=1, row=1, sticky=N+S+E+W, padx=9, pady=9)
|
||||
self.address_entry.grid(column=1, row=0, sticky=N+S+E+W, padx=9, pady=9)
|
||||
if configGet("address") is not None:
|
||||
self.address_entry.insert(0, configGet("address"))
|
||||
# =======
|
||||
|
||||
# API Key
|
||||
self.apikey_label = ttk.Label(self, text="API key:")
|
||||
self.apikey_label.grid(column=0, row=2, sticky=W, padx=9, pady=9)
|
||||
self.apikey_label.grid(column=0, row=1, sticky=W, padx=9, pady=9)
|
||||
|
||||
self.apikey_entry = ttk.Entry(self)
|
||||
self.apikey_entry.grid(column=1, row=2, sticky=N+S+E+W, padx=9, pady=9)
|
||||
self.apikey_entry.grid(column=1, row=1, sticky=N+S+E+W, padx=9, pady=9)
|
||||
if configGet("apikey") is not None:
|
||||
self.apikey_entry.insert(0, configGet("apikey"))
|
||||
# =======
|
||||
@@ -64,15 +64,15 @@ class FrameSettings(ThemedFrame):
|
||||
else:
|
||||
self.self_signed_check_bool = IntVar()
|
||||
self.self_signed_check = ttk.Checkbutton(self, text="Allow self-signed certificates", variable=self.self_signed_check_bool)
|
||||
self.self_signed_check.grid(column=1, row=3, sticky=W, padx=9, pady=9)
|
||||
self.self_signed_check.grid(column=1, row=2, sticky=W, padx=9, pady=9)
|
||||
# ===========
|
||||
|
||||
# Saves location
|
||||
self.saves_location_label = ttk.Label(self, text="Saves location:")
|
||||
self.saves_location_label.grid(column=0, row=4, sticky=W, padx=9, pady=9)
|
||||
self.saves_location_label.grid(column=0, row=3, sticky=W, padx=9, pady=9)
|
||||
|
||||
self.saves_frame = ThemedFrame(self)
|
||||
self.saves_frame.grid(column=1, row=4, sticky=N+S+E+W, padx=9, pady=9)
|
||||
self.saves_frame.grid(column=1, row=3, sticky=N+S+E+W, padx=9, pady=9)
|
||||
self.saves_frame.grid_columnconfigure(0, weight=1)
|
||||
self.saves_frame.grid_columnconfigure(1, weight=3)
|
||||
|
||||
@@ -85,9 +85,9 @@ class FrameSettings(ThemedFrame):
|
||||
self.saves_location_button.grid(column=1, row=0, sticky=E)
|
||||
# ==============
|
||||
|
||||
# Saves location
|
||||
# Software theme
|
||||
self.saves_location_label = ttk.Label(self, text="Color theme:")
|
||||
self.saves_location_label.grid(column=0, row=5, sticky=W, padx=9, pady=9)
|
||||
self.saves_location_label.grid(column=0, row=4, sticky=W, padx=9, pady=9)
|
||||
|
||||
if configGet("dark_mode_auto") is True:
|
||||
self.default_theme = "Auto "
|
||||
@@ -97,11 +97,11 @@ class FrameSettings(ThemedFrame):
|
||||
self.chosen_theme = StringVar()
|
||||
self.themes = ("Auto ", "Light ", "Dark ")
|
||||
self.saves_location_button = ttk.OptionMenu(self, self.chosen_theme, self.default_theme, *self.themes, direction="below", command=self.change_theme)
|
||||
self.saves_location_button.grid(column=1, row=5, sticky=W, padx=9, pady=9)
|
||||
self.saves_location_button.grid(column=1, row=4, sticky=W, padx=9, pady=9)
|
||||
# ==============
|
||||
|
||||
self.buttons_frame = ThemedFrame(self)
|
||||
self.buttons_frame.grid(column=0, columnspan=2, row=6, sticky=NSEW, padx=9, pady=9)
|
||||
self.buttons_frame.grid(column=0, columnspan=2, row=5, sticky=NSEW, padx=9, pady=9)
|
||||
self.buttons_frame.grid_columnconfigure(0, weight=1)
|
||||
|
||||
self.validate_button = ttk.Button(self.buttons_frame, text="Validate", width=11, command=self.validate_configuration)
|
||||
@@ -143,24 +143,24 @@ class FrameSettings(ThemedFrame):
|
||||
else:
|
||||
self.address_text = None
|
||||
|
||||
# =========================
|
||||
if self.name_entry.get().strip() == configGet("name"):
|
||||
existing_device = requests.get(f'{self.address_entry.get()}/devices/{quote(configGet("name").encode("utf-8"))}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
if existing_device.status_code != 200:
|
||||
requests.post(f'{self.address_entry.get()}/devices?{urlencode({"name": quote(configGet("name").encode("utf-8")), "os": platform.system()+" "+platform.release(), "client": f"SyncTk {self.master.__version__}"})}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
else:
|
||||
if configGet("name") is not None:
|
||||
existing_device_before = requests.get(f'{self.address_entry.get()}/devices/{quote(configGet("name").encode("utf-8"))}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
if existing_device_before.status_code == 200:
|
||||
requests.patch(f'{self.address_entry.get()}/devices/{quote(configGet("name").encode("utf-8"))}?{urlencode({"new_name": quote(self.name_entry.get().strip().encode("utf-8")), "os": platform.system()+" "+platform.release(), "client": f"SyncTk {self.master.__version__}"})}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
else:
|
||||
device_created = requests.post(f'{self.address_entry.get()}/devices?{urlencode({"name": quote(self.name_entry.get().strip().encode("utf-8")), "os": platform.system()+" "+platform.release(), "client": f"SyncTk {self.master.__version__}"})}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
if device_created.status_code != 204:
|
||||
messagebox.showerror(title="Name error", message=f"Could not register device in database using name '{self.name_entry.get().strip()}' with error:\n\n{device_created.json()}")
|
||||
return
|
||||
# =========================
|
||||
# # =========================
|
||||
# if self.name_entry.get().strip() == configGet("name"):
|
||||
# existing_device = requests.get(f'{self.address_entry.get()}/devices/{quote(configGet("name").encode("utf-8"))}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
# if existing_device.status_code != 200:
|
||||
# requests.post(f'{self.address_entry.get()}/devices?{urlencode({"name": quote(configGet("name").encode("utf-8")), "os": platform.system()+" "+platform.release(), "client": f"SyncTk {self.master.__version__}"})}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
# else:
|
||||
# if configGet("name") is not None:
|
||||
# existing_device_before = requests.get(f'{self.address_entry.get()}/devices/{quote(configGet("name").encode("utf-8"))}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
# if existing_device_before.status_code == 200:
|
||||
# requests.patch(f'{self.address_entry.get()}/devices/{quote(configGet("name").encode("utf-8"))}?{urlencode({"new_name": quote(self.name_entry.get().strip().encode("utf-8")), "os": platform.system()+" "+platform.release(), "client": f"SyncTk {self.master.__version__}"})}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
# else:
|
||||
# device_created = requests.post(f'{self.address_entry.get()}/devices?{urlencode({"name": quote(self.name_entry.get().strip().encode("utf-8")), "os": platform.system()+" "+platform.release(), "client": f"SyncTk {self.master.__version__}"})}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
# if device_created.status_code != 204:
|
||||
# messagebox.showerror(title="Name error", message=f"Could not register device in database using name '{self.name_entry.get().strip()}' with error:\n\n{device_created.json()}")
|
||||
# return
|
||||
# # =========================
|
||||
|
||||
configSet(["name"], self.name_entry.get().strip())
|
||||
# configSet(["name"], self.name_entry.get().strip())
|
||||
configSet(["address"], self.address_entry.get())
|
||||
configSet(["apikey"], self.apikey_entry.get())
|
||||
configSet(["allow_self_signed"], bool(self.self_signed_check_bool.get()))
|
||||
@@ -184,10 +184,10 @@ class FrameSettings(ThemedFrame):
|
||||
|
||||
def validate_configuration(self):
|
||||
|
||||
if self.name_entry.get().strip() == "":
|
||||
logger.error(f"Name {self.name_entry.get().strip()} is not a valid name")
|
||||
messagebox.showerror(title="Name error", message="Provided device name is not valid. Please provide a valid one.")
|
||||
return
|
||||
# if self.name_entry.get().strip() == "":
|
||||
# logger.error(f"Name {self.name_entry.get().strip()} is not a valid name")
|
||||
# messagebox.showerror(title="Name error", message="Provided device name is not valid. Please provide a valid one.")
|
||||
# return
|
||||
|
||||
if len(self.address_entry.get()) > 0:
|
||||
if self.address_entry.get().endswith("/"):
|
||||
@@ -222,14 +222,14 @@ class FrameSettings(ThemedFrame):
|
||||
messagebox.showerror(title="Location error", message="Saves folder seems to be invalid. Please provide a valid directory path where Stardew Valley's save files (and folders) are stored.")
|
||||
return
|
||||
|
||||
# =========================
|
||||
if self.name_entry.get().strip() != configGet("name"):
|
||||
existing_device_after = requests.get(f'{self.address_entry.get()}/devices/{self.name_entry.get().strip()}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
if existing_device_after == 200:
|
||||
logger.error(f"Device with name {self.name_entry.get().strip()} already exists")
|
||||
messagebox.showerror(title="Name error", message=f"Device with name '{self.name_entry.get().strip()}' already exists on the server. Please choose another name or rename that device first.")
|
||||
return
|
||||
# =========================
|
||||
# # =========================
|
||||
# if self.name_entry.get().strip() != configGet("name"):
|
||||
# existing_device_after = requests.get(f'{self.address_entry.get()}/devices/{self.name_entry.get().strip()}', headers={"apikey": self.apikey_entry.get()}, verify=not bool(self.self_signed_check_bool.get()))
|
||||
# if existing_device_after == 200:
|
||||
# logger.error(f"Device with name {self.name_entry.get().strip()} already exists")
|
||||
# messagebox.showerror(title="Name error", message=f"Device with name '{self.name_entry.get().strip()}' already exists on the server. Please choose another name or rename that device first.")
|
||||
# return
|
||||
# # =========================
|
||||
|
||||
self.save_button.state(["!disabled"])
|
||||
|
||||
|
Reference in New Issue
Block a user