Skip to content

Commit 95f8f7f

Browse files
committed
refactoring, renaming, optimization
1 parent d4b6b81 commit 95f8f7f

File tree

5 files changed

+65
-39
lines changed

5 files changed

+65
-39
lines changed
File renamed without changes.
File renamed without changes.

smct/config.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,31 @@
2222

2323
def _check_for_missing_files():
2424
if not os.path.exists(paths.CONFIG_PATH):
25-
log("creating default config")
2625
_create_default_config_file()
26+
log(f"Creating {paths.CONFIG_FILE_NAME}")
2727

2828
if not os.path.exists(paths.ASSETS_DIR_PATH):
2929
os.mkdir(paths.ASSETS_DIR_PATH)
30-
log(f"Creating {paths.ASSETS_DIR_PATH}")
30+
log(f"Creating {paths.ASSETS_DIR_NAME} folder")
3131

3232
# Check for Icons
3333
if not os.path.exists(paths.ASSETS_ICO_PATH):
34-
log(f"Downloading icon.ico - {paths.ASSETS_BASE_URL}")
35-
download_assets_file(os.path.basename(paths.ASSETS_ICO_PATH))
34+
log(f"Downloading {paths.ASSETS_BASE_URL}{paths.ASSETS_ICO_NAME}")
35+
download_assets_file(paths.ASSETS_ICO_NAME)
3636
# sys.exit(1)
3737
if not os.path.exists(paths.ASSETS_ICON_ENABLED_PATH):
38-
log(f"Downloading iconEnabled.png - {paths.ASSETS_BASE_URL}")
39-
download_assets_file(os.path.basename(paths.ASSETS_ICON_ENABLED_PATH))
38+
log(f"Downloading {paths.ASSETS_BASE_URL}{paths.ASSETS_ICON_ENABLED_NAME}")
39+
download_assets_file(paths.ASSETS_ICON_ENABLED_NAME)
4040
# sys.exit(1)
4141
if not os.path.exists(paths.ASSETS_ICON_DISABLED_PATH):
42-
log(f"Downloading iconDisabled.png - {paths.ASSETS_BASE_URL}")
43-
download_assets_file(os.path.basename(paths.ASSETS_ICON_DISABLED_PATH))
42+
log(f"Downloading {paths.ASSETS_BASE_URL}{paths.ASSETS_ICON_DISABLED_NAME}")
43+
download_assets_file(paths.ASSETS_ICON_DISABLED_NAME)
4444
# sys.exit(1)
4545

4646
# Check for temp folder
4747
if not os.path.exists(paths.MMT_DIR_PATH):
4848
os.makedirs(paths.MMT_DIR_PATH)
49-
log(f"Creating {paths.MMT_DIR_PATH}")
49+
log(f"Creating {paths.MMT_DIR_NAME} folder")
5050

5151

5252
def download_assets_file(image_name):

smct/paths.py

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,38 @@ def get_base_path():
1313

1414

1515
def strip_package_name_from_path(path):
16-
suffix = "\\smct"
16+
suffix = "smct" # Removed the backslash for platform independence
1717
return path[: -len(suffix)] if path.endswith(suffix) else path
1818

1919

20+
# NAMES
21+
EXE_FILE_NAME = f"{ui_strings.APP_NAME}.exe"
22+
CONFIG_FILE_NAME = "config.ini"
23+
LOG_FILE_NAME = "smct.log"
24+
ASSETS_DIR_NAME = "assets"
25+
MMT_DIR_NAME = "mmt"
26+
27+
MMT_CSV_NAME = "MultiMonitorToolOutput.csv"
28+
MMT_CONFIG_NAME = "MultiMonitorToolConfig"
29+
30+
ASSETS_ICON_ENABLED_NAME = "tray_monitor_enabled.png"
31+
ASSETS_ICON_DISABLED_NAME = "tray_monitor_disabled.png"
32+
ASSETS_ICO_NAME = "icon.ico"
33+
2034
# PATHS
21-
BASE_PATH = get_base_path()
22-
EXE_PATH = BASE_PATH + "\\" + ui_strings.APP_NAME + ".exe"
35+
ASSETS_BASE_URL = "https://raw.githubusercontent.com/wrecks-code/SimpleMonitorControlTray/main/assets/"
2336

24-
CONFIG_PATH = BASE_PATH + "\\config.ini"
25-
LOG_PATH = BASE_PATH + "\\smct.log"
26-
ASSETS_DIR_PATH = BASE_PATH + "\\assets"
27-
MMT_DIR_PATH = BASE_PATH + "\\mmt"
37+
BASE_PATH = get_base_path()
38+
EXE_PATH = os.path.join(BASE_PATH, EXE_FILE_NAME)
2839

29-
MMT_CSV_PATH = MMT_DIR_PATH + "\\MultiMonitorToolOutput.csv"
30-
MMT_CONFIG_PATH = MMT_DIR_PATH + "\\MultiMonitorToolConfig"
40+
CONFIG_PATH = os.path.join(BASE_PATH, CONFIG_FILE_NAME)
41+
LOG_PATH = os.path.join(BASE_PATH, LOG_FILE_NAME)
42+
ASSETS_DIR_PATH = os.path.join(BASE_PATH, ASSETS_DIR_NAME)
43+
MMT_DIR_PATH = os.path.join(BASE_PATH, MMT_DIR_NAME)
3144

32-
ASSETS_ICON_ENABLED_PATH = ASSETS_DIR_PATH + "\\iconEnabled.png"
33-
ASSETS_ICON_DISABLED_PATH = ASSETS_DIR_PATH + "\\iconDisabled.png"
34-
ASSETS_ICO_PATH = ASSETS_DIR_PATH + "\\icon.ico"
45+
MMT_CSV_PATH = os.path.join(MMT_DIR_PATH, MMT_CSV_NAME)
46+
MMT_CONFIG_PATH = os.path.join(MMT_DIR_PATH, MMT_CONFIG_NAME)
3547

36-
ASSETS_BASE_URL = "https://raw.githubusercontent.com/wrecks-code/SimpleMonitorControlTray/main/assets/"
48+
ASSETS_ICON_ENABLED_PATH = os.path.join(ASSETS_DIR_PATH, ASSETS_ICON_ENABLED_NAME)
49+
ASSETS_ICON_DISABLED_PATH = os.path.join(ASSETS_DIR_PATH, ASSETS_ICON_DISABLED_NAME)
50+
ASSETS_ICO_PATH = os.path.join(ASSETS_DIR_PATH, ASSETS_ICO_NAME)

smct/registry.py

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,48 @@
66
REGISTRY_KEY = r"Software\Microsoft\Windows\CurrentVersion\Run"
77

88

9+
class RegistryKey:
10+
# Automatically called when an object is created.
11+
def __init__(self, sub_key, access):
12+
self.sub_key = sub_key
13+
self.access = access
14+
self.key = None
15+
16+
# Automatically called when entering a context manager (e.g., using the with statement).
17+
def __enter__(self):
18+
self.key = winreg.OpenKey(
19+
winreg.HKEY_CURRENT_USER, self.sub_key, 0, self.access
20+
)
21+
return self.key
22+
23+
# Automatically called when exiting a context manager.
24+
def __exit__(self, exc_type, exc_val, exc_tb):
25+
winreg.CloseKey(self.key)
26+
27+
928
def is_autostartkey_in_registry():
1029
try:
11-
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, REGISTRY_KEY, 0, winreg.KEY_READ)
12-
value = winreg.QueryValueEx(key, KEY_NAME)
13-
winreg.CloseKey(key)
14-
return value is not None
30+
with RegistryKey(REGISTRY_KEY, winreg.KEY_READ) as key:
31+
value = winreg.QueryValueEx(key, KEY_NAME)
32+
return value is not None
1533
except FileNotFoundError:
1634
return False
1735

1836

1937
def add_to_autostart():
2038
try:
21-
key = winreg.OpenKey(
22-
winreg.HKEY_CURRENT_USER, REGISTRY_KEY, 0, winreg.KEY_WRITE
23-
)
24-
exe_path = paths.EXE_PATH[0].upper() + paths.EXE_PATH[1:]
25-
winreg.SetValueEx(key, KEY_NAME, 0, winreg.REG_SZ, exe_path)
26-
winreg.CloseKey(key)
27-
log(f"Enabled autostart, wrote {KEY_NAME} to {REGISTRY_KEY}")
39+
with RegistryKey(REGISTRY_KEY, winreg.KEY_WRITE) as key:
40+
exe_path = paths.EXE_PATH[0].upper() + paths.EXE_PATH[1:]
41+
winreg.SetValueEx(key, KEY_NAME, 0, winreg.REG_SZ, exe_path)
42+
log(f"Enabled autostart, wrote {KEY_NAME} to {REGISTRY_KEY}")
2843
except PermissionError as e:
2944
log(f"Failed to enable autostart: {e} in {REGISTRY_KEY}")
3045

3146

3247
def remove_from_autostart():
3348
try:
34-
key = winreg.OpenKey(
35-
winreg.HKEY_CURRENT_USER, REGISTRY_KEY, 0, winreg.KEY_ALL_ACCESS
36-
)
37-
winreg.DeleteValue(key, KEY_NAME)
38-
winreg.CloseKey(key)
39-
log(f"Disabled autostart, removed {KEY_NAME} from {REGISTRY_KEY}")
49+
with RegistryKey(REGISTRY_KEY, winreg.KEY_ALL_ACCESS) as key:
50+
winreg.DeleteValue(key, KEY_NAME)
51+
log(f"Disabled autostart, removed {KEY_NAME} from {REGISTRY_KEY}")
4052
except (FileNotFoundError, PermissionError) as e:
4153
log(f"Failed to disable autostart: {e} in {REGISTRY_KEY}")

0 commit comments

Comments
 (0)