216 lines
8.0 KiB
Python
216 lines
8.0 KiB
Python
from PySide6.QtWidgets import (QDialog, QVBoxLayout, QGroupBox, QGridLayout,
|
|
QPushButton, QHBoxLayout, QTabWidget)
|
|
from PySide6.QtCore import Qt
|
|
import logging
|
|
|
|
class SettingsDialog(QDialog):
|
|
def __init__(self, main_ui):
|
|
super().__init__(main_ui)
|
|
self.main_ui = main_ui
|
|
self.logger = main_ui.logger
|
|
|
|
self.setWindowTitle("편집 설정")
|
|
self.setFixedSize(800, 600)
|
|
self.setWindowFlags(Qt.WindowStaysOnTopHint)
|
|
|
|
self.init_ui()
|
|
|
|
def init_ui(self):
|
|
self.logger.log("설정 대화상자 초기화 중...", level=logging.DEBUG)
|
|
|
|
# 메인 레이아웃
|
|
main_layout = QVBoxLayout(self)
|
|
|
|
# 탭 위젯 생성
|
|
tab_widget = QTabWidget(self)
|
|
tab_widget.setStyleSheet("""
|
|
QTabWidget::pane {
|
|
border: 1px solid #C4C4C3;
|
|
background-color: #F5F5F5;
|
|
border-radius: 5px;
|
|
}
|
|
QTabBar::tab {
|
|
background-color: #E1E1E1;
|
|
color: #555555;
|
|
min-width: 80px;
|
|
padding: 8px 12px;
|
|
border: 1px solid #C4C4C3;
|
|
border-bottom: none;
|
|
border-top-left-radius: 4px;
|
|
border-top-right-radius: 4px;
|
|
margin-right: 2px;
|
|
}
|
|
QTabBar::tab:selected {
|
|
background-color: #F5F5F5;
|
|
color: #000000;
|
|
}
|
|
""")
|
|
|
|
# 각 탭에 해당하는 위젯 생성
|
|
self.create_general_tab(tab_widget)
|
|
self.create_option_tab(tab_widget)
|
|
self.create_tag_tab(tab_widget)
|
|
self.create_price_tab(tab_widget)
|
|
self.create_thumbnail_tab(tab_widget)
|
|
self.create_detail_tab(tab_widget)
|
|
self.create_watermark_tab(tab_widget)
|
|
|
|
main_layout.addWidget(tab_widget)
|
|
|
|
# 닫기 버튼
|
|
button_layout = QHBoxLayout()
|
|
close_button = QPushButton("닫기")
|
|
close_button.clicked.connect(self.accept)
|
|
close_button.setFixedSize(120, 40)
|
|
close_button.setStyleSheet("""
|
|
QPushButton {
|
|
background-color: #3498db;
|
|
color: white;
|
|
border-radius: 5px;
|
|
font-weight: bold;
|
|
}
|
|
QPushButton:hover {
|
|
background-color: #2980b9;
|
|
}
|
|
""")
|
|
button_layout.addStretch()
|
|
button_layout.addWidget(close_button)
|
|
|
|
main_layout.addLayout(button_layout)
|
|
|
|
def create_general_tab(self, tab_widget):
|
|
general_widget = QGroupBox("일반 설정")
|
|
layout = QGridLayout(general_widget)
|
|
|
|
# 기존 토글 스위치들을 여기로 이동
|
|
row = 0
|
|
layout.addWidget(self.main_ui.debug_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.debug_toggle, row, 1)
|
|
layout.addWidget(self.main_ui.cat_rec_toggle_label, row, 2)
|
|
layout.addWidget(self.main_ui.cat_rec_toggle, row, 3)
|
|
|
|
row += 1
|
|
layout.addWidget(self.main_ui.keyword_fix_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.keyword_fix_toggle, row, 1)
|
|
layout.addWidget(self.main_ui.keyword_fix_count_label, row, 2)
|
|
layout.addWidget(self.main_ui.keyword_fix_count_input, row, 3)
|
|
|
|
row += 1
|
|
layout.addWidget(self.main_ui.discord_notify_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.discord_notify_toggle, row, 1)
|
|
layout.addWidget(self.main_ui.webhook_input, row, 2, 1, 3)
|
|
|
|
row += 1
|
|
layout.addWidget(self.main_ui.max_option_count_label, row, 0)
|
|
layout.addWidget(self.main_ui.max_option_count_input, row, 1)
|
|
layout.addWidget(self.main_ui.ocr_toggle_label, row, 2)
|
|
layout.addWidget(self.main_ui.ocr_toggle, row, 3)
|
|
|
|
# 스트레치를 추가하여 위젯들이 상단에 위치하도록 함
|
|
layout.setRowStretch(row + 1, 1)
|
|
|
|
tab_widget.addTab(general_widget, "일반")
|
|
|
|
def create_option_tab(self, tab_widget):
|
|
option_widget = QGroupBox("옵션 설정")
|
|
layout = QGridLayout(option_widget)
|
|
|
|
row = 0
|
|
layout.addWidget(self.main_ui.optionTrnas_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.optionTrnas_toggle, row, 1)
|
|
layout.addWidget(self.main_ui.optionIMGTrans_toggle_label, row, 2)
|
|
layout.addWidget(self.main_ui.optionIMGTrans_toggle, row, 3)
|
|
|
|
row += 1
|
|
layout.addWidget(self.main_ui.optionAutoSelect_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.optionAutoSelect_toggle, row, 1)
|
|
|
|
# 스트레치 추가
|
|
layout.setRowStretch(row + 1, 1)
|
|
|
|
tab_widget.addTab(option_widget, "옵션")
|
|
|
|
def create_tag_tab(self, tab_widget):
|
|
tag_widget = QGroupBox("태그 설정")
|
|
layout = QGridLayout(tag_widget)
|
|
|
|
row = 0
|
|
layout.addWidget(self.main_ui.tag_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.tag_toggle, row, 1)
|
|
|
|
# 스트레치 추가
|
|
layout.setRowStretch(row + 1, 1)
|
|
|
|
tab_widget.addTab(tag_widget, "태그")
|
|
|
|
def create_price_tab(self, tab_widget):
|
|
price_widget = QGroupBox("가격 설정")
|
|
layout = QGridLayout(price_widget)
|
|
|
|
row = 0
|
|
layout.addWidget(self.main_ui.price_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.price_toggle, row, 1)
|
|
layout.addWidget(self.main_ui.remove_overprice_toggle_label, row, 2)
|
|
layout.addWidget(self.main_ui.remove_overprice_toggle, row, 3)
|
|
|
|
# 스트레치 추가
|
|
layout.setRowStretch(row + 1, 1)
|
|
|
|
tab_widget.addTab(price_widget, "가격")
|
|
|
|
def create_thumbnail_tab(self, tab_widget):
|
|
thumb_widget = QGroupBox("썸네일 설정")
|
|
layout = QGridLayout(thumb_widget)
|
|
|
|
row = 0
|
|
layout.addWidget(self.main_ui.thumb_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.thumb_toggle, row, 1)
|
|
layout.addWidget(self.main_ui.thumb_trans_type_toggle_label, row, 2)
|
|
layout.addWidget(self.main_ui.thumb_trans_type_toggle, row, 3)
|
|
|
|
row += 1
|
|
layout.addWidget(self.main_ui.thumb_nukki_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.thumb_nukki_toggle, row, 1)
|
|
layout.addWidget(self.main_ui.thumb_rmb_count_label, row, 2)
|
|
layout.addWidget(self.main_ui.thumb_rmb_count_input, row, 3)
|
|
|
|
# 스트레치 추가
|
|
layout.setRowStretch(row + 1, 1)
|
|
|
|
tab_widget.addTab(thumb_widget, "썸네일")
|
|
|
|
def create_detail_tab(self, tab_widget):
|
|
detail_widget = QGroupBox("상세설명 설정")
|
|
layout = QGridLayout(detail_widget)
|
|
|
|
row = 0
|
|
layout.addWidget(self.main_ui.detail_Option_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.detail_Option_toggle, row, 1)
|
|
layout.addWidget(self.main_ui.detail_IMGTrans_toggle_label, row, 2)
|
|
layout.addWidget(self.main_ui.detail_IMGTrans_toggle, row, 3)
|
|
|
|
# 스트레치 추가
|
|
layout.setRowStretch(row + 1, 1)
|
|
|
|
tab_widget.addTab(detail_widget, "상세설명")
|
|
|
|
def create_watermark_tab(self, tab_widget):
|
|
watermark_widget = QGroupBox("워터마크 설정")
|
|
layout = QGridLayout(watermark_widget)
|
|
|
|
row = 0
|
|
layout.addWidget(self.main_ui.watermark_toggle_label, row, 0)
|
|
layout.addWidget(self.main_ui.watermark_toggle, row, 1)
|
|
|
|
row += 1
|
|
layout.addWidget(self.main_ui.watermark_text_label, row, 0)
|
|
layout.addWidget(self.main_ui.watermark_text_input, row, 1, 1, 3)
|
|
|
|
row += 1
|
|
layout.addWidget(self.main_ui.opacity_percent_label, row, 0)
|
|
layout.addWidget(self.main_ui.opacity_percent_input, row, 1)
|
|
|
|
# 스트레치 추가
|
|
layout.setRowStretch(row + 1, 1)
|
|
|
|
tab_widget.addTab(watermark_widget, "워터마크") |