#include "StyleManager.h" #include static const QString DARK_THEME = R"( QWidget#MenuPanel { background-color: #2b2b2b; border-bottom: 1px solid #111; } QLabel#LogoLabel { font-weight: bold; color: #0078d7; font-size: 14px; letter-spacing: 1px; } QPushButton#MenuButton { background: transparent; color: #ccc; border: none; padding: 5px 10px; } QPushButton#MenuButton:hover { background: #3c3c3c; color: white; border-radius: 4px; } QWidget#PaneTitleBar { background-color: #333; color: white; border-bottom: 2px solid #222; } QLabel#TitleLabel { font-weight: bold; margin-left: 2px; } QToolButton#PaneCloseButton { border: none; font-weight: bold; background: transparent; color: #ccc; } QToolButton#PaneCloseButton:hover { color: white; background: #c42b1c; } /* Global & Panel Backgrounds */ QMainWindow, QWidget#MainPanel { background-color: #1e1e1e; } QWidget#DisplayPropertiesPanel, QWidget#PropertiesPanel, QWidget#ContextPanel { background-color: #252526; border-left: 1px solid #3e3e42; } QPushButton#DisplayToggleBtn { background-color: #333337; border: 1px solid #3e3e42; border-radius: 2px; color: #f1f1f1; font-size: 11px; } QPushButton#DisplayToggleBtn:checked { background-color: #0078d7; color: white; border-color: #005a9e; font-weight: bold; } QPushButton#DisplayToggleBtn:hover { border-color: #0078d7; } QScrollArea { border: none; background: transparent; } QScrollArea > QWidget > QWidget { background: transparent; } /* Property Widgets Styling */ QLabel { color: #cccccc; } QDoubleSpinBox, QSpinBox, QLineEdit { background: #3c3c3c; color: #f1f1f1; border: 1px solid #3e3e42; padding: 2px 4px; border-radius: 2px; selection-background-color: #0078d7; } QDoubleSpinBox:focus, QSpinBox:focus, QLineEdit:focus { border-color: #0078d7; } QCheckBox { color: #cccccc; spacing: 5px; } QCheckBox::indicator { width: 14px; height: 14px; border: 1px solid #3e3e42; background: #333337; border-radius: 2px; } QCheckBox::indicator:checked { background: #0078d7; border-color: #005a9e; } QCheckBox::indicator:hover { border-color: #0078d7; } QMenu { background-color: #2b2b2b; color: white; border: 1px solid #111; } QMenu::item:selected { background-color: #3c3c3c; } QTreeView#ContextTree { background-color: #1e1e1e; color: #ccc; border: none; } QTreeView#ContextTree::item:hover { background-color: #2a2d2e; } QTreeView#ContextTree::item:selected { background-color: #094771; color: white; } QHeaderView::section { background-color: #252526; color: #ccc; border: 1px solid #323233; padding: 4px; } /* ScrollBars */ QScrollBar:vertical { background: #1e1e1e; width: 12px; margin: 0px; } QScrollBar::handle:vertical { background: #3e3e42; min-height: 20px; border-radius: 6px; margin: 2px; } QScrollBar::handle:vertical:hover { background: #505050; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; } )"; static const QString BRIGHT_THEME = R"( QWidget#MenuPanel { background-color: #f3f3f3; border-bottom: 1px solid #ccc; } QLabel#LogoLabel { font-weight: bold; color: #005a9e; font-size: 14px; letter-spacing: 1px; } QPushButton#MenuButton { background: transparent; color: #333; border: none; padding: 5px 10px; } QPushButton#MenuButton:hover { background: #e5e5e5; color: black; border-radius: 4px; } QWidget#PaneTitleBar { background-color: #eeeeee; color: black; border-bottom: 2px solid #ddd; } QLabel#TitleLabel { font-weight: bold; margin-left: 2px; } QToolButton#PaneCloseButton { border: none; font-weight: bold; background: transparent; color: #666; } QToolButton#PaneCloseButton:hover { color: white; background: #e81123; } /* Global & Panel Backgrounds */ QMainWindow, QWidget#MainPanel { background-color: #f3f3f3; } QWidget#DisplayPropertiesPanel, QWidget#PropertiesPanel, QWidget#ContextPanel { background-color: #ffffff; border-left: 1px solid #cccccc; } QPushButton#DisplayToggleBtn { background-color: #ffffff; border: 1px solid #cccccc; border-radius: 2px; color: #333; font-size: 11px; } QPushButton#DisplayToggleBtn:checked { background-color: #0078d7; color: white; border-color: #005a9e; font-weight: bold; } QPushButton#DisplayToggleBtn:hover { border-color: #0078d7; } QScrollArea { border: none; background: transparent; } QScrollArea > QWidget > QWidget { background: transparent; } /* Property Widgets Styling */ QLabel { color: #333333; } QDoubleSpinBox, QSpinBox, QLineEdit { background: #ffffff; color: #333333; border: 1px solid #cccccc; padding: 2px 4px; border-radius: 2px; selection-background-color: #0078d7; } QDoubleSpinBox:focus, QSpinBox:focus, QLineEdit:focus { border-color: #0078d7; } QCheckBox { color: #333333; spacing: 5px; } QCheckBox::indicator { width: 14px; height: 14px; border: 1px solid #cccccc; background: #ffffff; border-radius: 2px; } QCheckBox::indicator:checked { background: #0078d7; border-color: #005a9e; } QCheckBox::indicator:hover { border-color: #0078d7; } QMenu { background-color: #f3f3f3; color: black; border: 1px solid #ccc; } QMenu::item:selected { background-color: #d0d0d0; } QTreeView#ContextTree { background-color: #ffffff; color: #333; border: none; } QTreeView#ContextTree::item:hover { background-color: #f2f2f2; } QTreeView#ContextTree::item:selected { background-color: #0078d7; color: white; } QHeaderView::section { background-color: #f3f3f3; color: #333; border: 1px solid #ccc; padding: 4px; } /* ScrollBars */ QScrollBar:vertical { background: #ffffff; width: 12px; margin: 0px; } QScrollBar::handle:vertical { background: #cccccc; min-height: 20px; border-radius: 6px; margin: 2px; } QScrollBar::handle:vertical:hover { background: #aaaaaa; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; } )"; void StyleManager::applyStyle(QApplication* app, const QString& themeName) { if (!app) return; if (themeName == "bright") { app->setStyleSheet(BRIGHT_THEME); } else { app->setStyleSheet(DARK_THEME); // default } }