56 lines
1.6 KiB
Python
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 해제
|