|
1 | 1 | import configparser
|
2 | 2 | import os
|
3 | 3 |
|
4 |
| -from smct_pkg import multimonitortool, notification, paths, registry, ui_strings |
| 4 | +from smct_pkg import ( |
| 5 | + multimonitortool, |
| 6 | + notification, |
| 7 | + paths, |
| 8 | + registry, |
| 9 | + setup_gui, |
| 10 | + ui_strings, |
| 11 | +) |
5 | 12 |
|
6 | 13 | ENCODING = "utf-8"
|
7 | 14 |
|
8 | 15 | # keys
|
9 | 16 | SETTINGS_SECTION = "Settings"
|
10 | 17 | MONITOR_NAME_KEY = "monitor_name"
|
11 |
| -MULTIMONITORTOOL_EXECUTABLE_KEY = "multimonitortool_executable" |
| 18 | +MONITOR_SERIAL_KEY = "monitor_serial" |
| 19 | +MMT_PATH_KEY = "multimonitortool_executable" |
12 | 20 | START_WITH_WINDOWS_KEY = "start_with_windows"
|
13 | 21 | FIRT_START_KEY = "first_start"
|
14 | 22 |
|
15 | 23 | # values
|
16 | 24 | MMT_PATH_VALUE = ""
|
17 | 25 | MONITOR_NAME_VALUE = ""
|
18 |
| -AUTOSTART_VALUE = False |
| 26 | +MONITOR_SERIAL_VALUE = "" |
| 27 | +START_WITH_WINDOWS_VALUE = False |
19 | 28 | FIRST_START_VALUE = True
|
20 | 29 |
|
21 | 30 | _configparser = configparser.ConfigParser()
|
22 |
| -_configparser.read(paths.CONFIG_PATH, encoding=ENCODING) |
23 | 31 |
|
24 | 32 |
|
25 | 33 | def check_for_missing_files():
|
@@ -52,35 +60,46 @@ def check_for_missing_files():
|
52 | 60 | def read_config():
|
53 | 61 | # Check if config.ini file is present
|
54 | 62 | if not os.path.exists(paths.CONFIG_PATH):
|
55 |
| - notification.send_error(paths.CONFIG_PATH + ui_strings.FILE_NOT_FOUND) |
| 63 | + _create_default_config_file() |
| 64 | + |
| 65 | + _configparser.read(paths.CONFIG_PATH, encoding=ENCODING) |
56 | 66 |
|
57 | 67 | # * pylint: disable=global-statement
|
58 |
| - global AUTOSTART_VALUE, MMT_PATH_VALUE, MONITOR_NAME_VALUE, FIRST_START_VALUE |
| 68 | + global START_WITH_WINDOWS_VALUE, MMT_PATH_VALUE, MONITOR_NAME_VALUE, MONITOR_SERIAL_VALUE, FIRST_START_VALUE |
59 | 69 |
|
60 |
| - MMT_PATH_VALUE = _configparser.get( |
61 |
| - SETTINGS_SECTION, MULTIMONITORTOOL_EXECUTABLE_KEY |
62 |
| - ) |
| 70 | + MMT_PATH_VALUE = _configparser.get(SETTINGS_SECTION, MMT_PATH_KEY) |
63 | 71 | MONITOR_NAME_VALUE = _configparser.get(SETTINGS_SECTION, MONITOR_NAME_KEY)
|
64 |
| - AUTOSTART_VALUE = _configparser.getboolean(SETTINGS_SECTION, START_WITH_WINDOWS_KEY) |
| 72 | + MONITOR_SERIAL_VALUE = _configparser.get(SETTINGS_SECTION, MONITOR_SERIAL_KEY) |
| 73 | + START_WITH_WINDOWS_VALUE = _configparser.getboolean( |
| 74 | + SETTINGS_SECTION, START_WITH_WINDOWS_KEY |
| 75 | + ) |
65 | 76 | FIRST_START_VALUE = _configparser.getboolean(SETTINGS_SECTION, FIRT_START_KEY)
|
66 | 77 |
|
67 |
| - if AUTOSTART_VALUE: |
| 78 | + if START_WITH_WINDOWS_VALUE: |
68 | 79 | registry.add_to_autostart()
|
69 | 80 | else:
|
70 | 81 | registry.remove_from_autostart()
|
71 | 82 |
|
72 | 83 | if FIRST_START_VALUE:
|
73 |
| - # TODO: Do something else here |
74 |
| - notification.send_notification( |
75 |
| - "placeholder", |
76 |
| - 30, |
77 |
| - ) |
| 84 | + setup_gui.init_mmt_selection_frame() |
78 | 85 | FIRST_START_VALUE = False
|
79 | 86 | set_config_value(SETTINGS_SECTION, FIRT_START_KEY, FIRST_START_VALUE)
|
80 | 87 |
|
81 | 88 | check_for_missing_files()
|
82 | 89 |
|
83 | 90 |
|
| 91 | +def _create_default_config_file(): |
| 92 | + _configparser["Settings"] = { |
| 93 | + MONITOR_NAME_KEY: "Example Monitor", |
| 94 | + MONITOR_SERIAL_KEY: "12345", |
| 95 | + MMT_PATH_KEY: "C:/MultiMonitorTool.exe", |
| 96 | + START_WITH_WINDOWS_KEY: "no", |
| 97 | + FIRT_START_KEY: "yes", |
| 98 | + } |
| 99 | + with open(paths.CONFIG_PATH, "w", encoding=ENCODING) as _file_object: |
| 100 | + _configparser.write(_file_object) |
| 101 | + |
| 102 | + |
84 | 103 | def set_config_value(section, key, value):
|
85 | 104 | if isinstance(value, bool):
|
86 | 105 | value_str = "yes" if value else "no"
|
|
0 commit comments