Добавлена обработка сигнала выхода из программы
This commit is contained in:
@@ -2,8 +2,11 @@
|
|||||||
"""
|
"""
|
||||||
Главное меню программы.
|
Главное меню программы.
|
||||||
Загружает проект при старте и предоставляет доступ ко всем подменю.
|
Загружает проект при старте и предоставляет доступ ко всем подменю.
|
||||||
|
Обрабатывает прерывание Ctrl+C для корректного выхода.
|
||||||
"""
|
"""
|
||||||
from core.fs import load_project
|
|
||||||
|
import sys
|
||||||
|
from core.fs import load_project, save_project_partial
|
||||||
from editor import editor_menu
|
from editor import editor_menu
|
||||||
from plan import plan_menu
|
from plan import plan_menu
|
||||||
from response import response_menu
|
from response import response_menu
|
||||||
@@ -15,6 +18,7 @@ PROJECT_FILE = "project.json"
|
|||||||
def main():
|
def main():
|
||||||
mixture, design, responses = load_project(PROJECT_FILE)
|
mixture, design, responses = load_project(PROJECT_FILE)
|
||||||
|
|
||||||
|
try:
|
||||||
while True:
|
while True:
|
||||||
print("\n" + "=" * 50)
|
print("\n" + "=" * 50)
|
||||||
print("ГЛАВНОЕ МЕНЮ")
|
print("ГЛАВНОЕ МЕНЮ")
|
||||||
@@ -42,6 +46,17 @@ def main():
|
|||||||
ascent_menu(mixture, design, responses)
|
ascent_menu(mixture, design, responses)
|
||||||
else:
|
else:
|
||||||
print("Неверный пункт.")
|
print("Неверный пункт.")
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print("\n\nОбнаружено прерывание (Ctrl+C).")
|
||||||
|
# Спрашиваем, хочет ли пользователь сохранить текущий проект
|
||||||
|
save_choice = input("Сохранить текущий проект перед выходом? (y/n, Enter = нет): ").strip().lower()
|
||||||
|
if save_choice == 'y':
|
||||||
|
save_project_partial(PROJECT_FILE, mixture, design, responses)
|
||||||
|
print("Проект сохранён.")
|
||||||
|
else:
|
||||||
|
print("Выход без сохранения.")
|
||||||
|
print("До свидания!")
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user