JJim/main.py

56 lines
1.6 KiB
Python

import sys
import logging
from PySide6.QtWidgets import QApplication
from PySide6.QtGui import QIcon
from src.main_window import MainWindow
from src.logger_module import Logger
from login.login_dialog import LoginDialog
from src.databaseManager import DatabaseManager
import ctypes
# COM 초기화 (멀티스레드 모드)
def initialize_com():
COINIT_MULTITHREADED = 0x0
ctypes.windll.ole32.CoInitializeEx(None, COINIT_MULTITHREADED)
COINIT_APARTMENTTHREADED = 0x2
ctypes.windll.ole32.CoInitializeEx(None, COINIT_APARTMENTTHREADED)
# COM 해제
def uninitialize_com():
ctypes.windll.ole32.CoUninitialize()
if __name__ == "__main__":
initialize_com() # COM 초기화
logger = Logger(log_file="jjim2.log", logger_name="jjim_Logger", level=logging.DEBUG)
app = QApplication(sys.argv)
app.setWindowIcon(QIcon("jjim.ico"))
# 로그인 다이얼로그 실행 (모달)
login_dialog = LoginDialog(logger)
if login_dialog.exec() == LoginDialog.Accepted:
user_info = login_dialog.get_user_info()
supabase_manager = login_dialog.get_supabase_manager()
else:
sys.exit("로그인 실패 또는 취소되었습니다.")
# 로그인 성공 후, 멤버십 유효성 검사
valid = supabase_manager.check_membership_validity(user_info)
if valid:
db_manager = DatabaseManager(logger)
# 전체 프로그램 GUI 실행
window = MainWindow(logger, db_manager, user_info)
window.show()
sys.exit(app.exec()) # 메인 UI 실행
else: # 로그인 실패 시
sys.exit(0) # 프로그램 종료
uninitialize_com() # COM 해제