diff --git a/modules/console_window.py b/modules/console_window.py index 50dd06a..759c05d 100644 --- a/modules/console_window.py +++ b/modules/console_window.py @@ -17,36 +17,42 @@ class ConsoleWindow(QDialog): def setup_ui(self): self.setStyleSheet(""" QDialog { - background-color: #2b2b2b; - min-width: 600px; - min-height: 400px; + background-color: #1e1e1e; + min-width: 700px; + min-height: 500px; } QTextEdit { - background-color: #1e1e1e; - color: #ffffff; - border: 1px solid #3b3b3b; - border-radius: 4px; - font-family: 'Consolas', 'Courier New', monospace; - font-size: 12px; - padding: 8px; + background-color: #252526; + color: #d4d4d4; + border: none; + border-radius: 8px; + font-family: 'JetBrains Mono', 'Consolas', 'Courier New', monospace; + font-size: 13px; + padding: 12px; + selection-background-color: #264f78; } QPushButton { - background-color: #0d6efd; - color: white; - border: none; - border-radius: 4px; + background-color: #2d2d2d; + color: #d4d4d4; + border: 1px solid #3e3e3e; + border-radius: 6px; padding: 8px 16px; - font-weight: bold; + font-weight: 500; + min-width: 100px; + margin: 4px; } QPushButton:hover { - background-color: #0b5ed7; + background-color: #3e3e3e; + border-color: #565656; } QPushButton:pressed { - background-color: #0a58ca; + background-color: #565656; } """) layout = QVBoxLayout(self) + layout.setContentsMargins(16, 16, 16, 16) + layout.setSpacing(12) # Область для логов self.console_output = QTextEdit() @@ -55,11 +61,12 @@ class ConsoleWindow(QDialog): # Кнопки управления buttons_layout = QHBoxLayout() + buttons_layout.setSpacing(8) - copy_button = QPushButton("Копировать всё") + copy_button = QPushButton("📋 Копировать") copy_button.clicked.connect(self.copy_all) - clear_button = QPushButton("Очистить") + clear_button = QPushButton("🗑️ Очистить") clear_button.clicked.connect(self.clear_console) buttons_layout.addWidget(copy_button) diff --git a/modules/model_manager.py b/modules/model_manager.py index c313c01..a8551e9 100644 --- a/modules/model_manager.py +++ b/modules/model_manager.py @@ -13,8 +13,65 @@ class ModelManager(QWidget): self.load_models() def setup_ui(self): + self.setStyleSheet(""" + QWidget { + background-color: transparent; + } + QLabel { + color: #d4d4d4; + font-size: 13px; + font-weight: 500; + margin-right: 8px; + } + QComboBox { + background-color: #252526; + color: #d4d4d4; + border: 1px solid #3e3e3e; + border-radius: 6px; + padding: 6px 12px; + min-width: 200px; + font-size: 13px; + } + QComboBox:hover { + border-color: #565656; + } + QComboBox:focus { + border-color: #007acc; + } + QComboBox::drop-down { + border: none; + width: 20px; + } + QComboBox::down-arrow { + image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTggMTFMNCBTTDEyIDUiIHN0cm9rZT0iI2Q0ZDRkNCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+); + } + QComboBox QAbstractItemView { + background-color: #252526; + color: #d4d4d4; + border: 1px solid #3e3e3e; + selection-background-color: #094771; + outline: none; + } + QPushButton { + background-color: #2d2d2d; + color: #d4d4d4; + border: 1px solid #3e3e3e; + border-radius: 6px; + padding: 6px 12px; + font-size: 13px; + } + QPushButton:hover { + background-color: #3e3e3e; + border-color: #565656; + } + QPushButton:pressed { + background-color: #565656; + } + """) + layout = QHBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) + layout.setSpacing(8) # Метка label = QLabel("Модель:") @@ -22,11 +79,13 @@ class ModelManager(QWidget): # Выпадающий список моделей self.model_combo = QComboBox() + self.model_combo.setFixedHeight(32) self.model_combo.currentTextChanged.connect(self.on_model_changed) layout.addWidget(self.model_combo) # Кнопка обновления refresh_button = QPushButton("🔄") + refresh_button.setFixedSize(32, 32) refresh_button.setToolTip("Обновить список моделей") refresh_button.clicked.connect(self.load_models) layout.addWidget(refresh_button) diff --git a/modules/prompt_window.py b/modules/prompt_window.py index 02ac453..c2fb17d 100644 --- a/modules/prompt_window.py +++ b/modules/prompt_window.py @@ -18,87 +18,105 @@ class PromptWindow(QDialog): def setup_ui(self): self.setStyleSheet(""" QDialog { - background-color: #2b2b2b; - min-width: 1500px; - min-height: 700px; + background-color: #1e1e1e; + min-width: 1200px; + min-height: 800px; } QScrollArea { - background-color: #1e1e1e; - border: 1px solid #3b3b3b; - border-radius: 4px; - padding: 8px; + background-color: #252526; + border: none; + border-radius: 8px; } QScrollArea > QWidget > QWidget { - background-color: #1e1e1e; + background-color: #252526; } QLabel { - color: #ffffff; + color: #d4d4d4; font-size: 14px; - font-weight: bold; - padding: 8px; - background-color: #3b3b3b; - border-radius: 4px; + font-weight: 600; + padding: 12px; + background-color: #2d2d2d; + border-radius: 6px; + margin-bottom: 8px; } QCheckBox { - color: #ffffff; - font-size: 14px; - padding: 4px; + color: #d4d4d4; + font-size: 13px; + padding: 6px; spacing: 8px; } + QCheckBox:hover { + background-color: #2d2d2d; + border-radius: 4px; + } QCheckBox::indicator { width: 18px; height: 18px; + border-radius: 4px; } QCheckBox::indicator:unchecked { - border: 2px solid #555555; - background-color: #3b3b3b; - border-radius: 3px; + border: 2px solid #565656; + background-color: #252526; } QCheckBox::indicator:checked { - border: 2px solid #0d6efd; - background-color: #0d6efd; - border-radius: 3px; + border: 2px solid #007acc; + background-color: #007acc; } QCheckBox::indicator:hover { - border-color: #0b5ed7; + border-color: #007acc; } QPushButton { - background-color: #0d6efd; - color: white; - border: none; - border-radius: 4px; + background-color: #2d2d2d; + color: #d4d4d4; + border: 1px solid #3e3e3e; + border-radius: 6px; padding: 8px 16px; - font-weight: bold; + font-weight: 500; min-width: 120px; + font-size: 13px; } QPushButton:hover { - background-color: #0b5ed7; + background-color: #3e3e3e; + border-color: #565656; } QPushButton:pressed { - background-color: #0a58ca; + background-color: #565656; } QLineEdit { - background-color: #3b3b3b; - color: white; - border: 1px solid #555555; - border-radius: 4px; - padding: 8px; - font-size: 14px; - min-height: 24px; + background-color: #252526; + color: #d4d4d4; + border: 1px solid #3e3e3e; + border-radius: 6px; + padding: 8px 12px; + font-size: 13px; + min-height: 32px; + } + QLineEdit:focus { + border-color: #007acc; } QFrame { - background-color: #1e1e1e; - border: 1px solid #3b3b3b; - border-radius: 4px; + background-color: #252526; + border: 1px solid #3e3e3e; + border-radius: 8px; + padding: 12px; + margin: 4px; + } + QFrame:hover { + border-color: #565656; } """) layout = QVBoxLayout(self) + layout.setContentsMargins(16, 16, 16, 16) + layout.setSpacing(12) # Поиск search_layout = QHBoxLayout() - search_label = QLabel("Поиск:") + search_layout.setSpacing(8) + search_label = QLabel("🔍 Поиск:") + search_label.setStyleSheet("background: transparent; padding: 0;") self.search_input = QLineEdit() + self.search_input.setPlaceholderText("Введите текст для поиска...") self.search_input.textChanged.connect(self.filter_prompts) search_layout.addWidget(search_label) search_layout.addWidget(self.search_input) @@ -109,22 +127,26 @@ class PromptWindow(QDialog): categories_scroll.setWidgetResizable(True) categories_scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn) categories_scroll.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + categories_scroll.setMinimumHeight(600) categories_widget = QWidget() self.categories_layout = QHBoxLayout(categories_widget) - self.categories_layout.setSpacing(10) + self.categories_layout.setSpacing(12) + self.categories_layout.setContentsMargins(12, 12, 12, 12) categories_scroll.setWidget(categories_widget) layout.addWidget(categories_scroll) # Кнопки buttons_layout = QHBoxLayout() - add_button = QPushButton("Добавить выбранные") + buttons_layout.setSpacing(8) + add_button = QPushButton("✨ Добавить выбранные") add_button.clicked.connect(self.add_selected) - close_button = QPushButton("Закрыть") + close_button = QPushButton("❌ Закрыть") close_button.clicked.connect(self.close) buttons_layout.addWidget(add_button) buttons_layout.addWidget(close_button) + buttons_layout.addStretch() layout.addLayout(buttons_layout) def load_categories(self): diff --git a/modules/sampler_manager.py b/modules/sampler_manager.py index 19da4b4..78d1ce3 100644 --- a/modules/sampler_manager.py +++ b/modules/sampler_manager.py @@ -13,8 +13,50 @@ class SamplerManager(QWidget): self.load_samplers() def setup_ui(self): + self.setStyleSheet(""" + QWidget { + background-color: transparent; + } + QLabel { + color: #d4d4d4; + font-size: 13px; + font-weight: 500; + margin-right: 8px; + } + QComboBox { + background-color: #252526; + color: #d4d4d4; + border: 1px solid #3e3e3e; + border-radius: 6px; + padding: 6px 12px; + min-width: 180px; + font-size: 13px; + } + QComboBox:hover { + border-color: #565656; + } + QComboBox:focus { + border-color: #007acc; + } + QComboBox::drop-down { + border: none; + width: 20px; + } + QComboBox::down-arrow { + image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTggMTFMNCBTTDEyIDUiIHN0cm9rZT0iI2Q0ZDRkNCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+); + } + QComboBox QAbstractItemView { + background-color: #252526; + color: #d4d4d4; + border: 1px solid #3e3e3e; + selection-background-color: #094771; + outline: none; + } + """) + layout = QHBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) + layout.setSpacing(8) # Метка label = QLabel("Сэмплер:") @@ -22,6 +64,7 @@ class SamplerManager(QWidget): # Выпадающий список сэмплеров self.sampler_combo = QComboBox() + self.sampler_combo.setFixedHeight(32) self.sampler_combo.currentTextChanged.connect(self.on_sampler_changed) layout.addWidget(self.sampler_combo)