|
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