add context panel
This commit is contained in:
@@ -1,10 +1,15 @@
|
||||
#include "MainPanel.h"
|
||||
#include "ViewportPane.h"
|
||||
#include "ContextPanel.h"
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QSplitter>
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include <QApplication>
|
||||
#include "StyleManager.h"
|
||||
|
||||
MainPanel::MainPanel(QWidget* parent) : QWidget(parent) {
|
||||
auto* mainLayout = new QVBoxLayout(this);
|
||||
@@ -13,37 +18,72 @@ MainPanel::MainPanel(QWidget* parent) : QWidget(parent) {
|
||||
|
||||
// 1. Top Menu Panel
|
||||
auto* menuPanel = new QWidget(this);
|
||||
menuPanel->setObjectName("MenuPanel");
|
||||
menuPanel->setFixedHeight(36);
|
||||
menuPanel->setStyleSheet("background-color: #2b2b2b; border-bottom: 1px solid #111;");
|
||||
|
||||
auto* menuLayout = new QHBoxLayout(menuPanel);
|
||||
menuLayout->setContentsMargins(10, 0, 10, 0);
|
||||
menuLayout->setSpacing(15);
|
||||
|
||||
auto* logo = new QLabel("G-COMPOSE", menuPanel);
|
||||
logo->setStyleSheet("font-weight: bold; color: #0078d7; font-size: 14px; letter-spacing: 1px;");
|
||||
logo->setObjectName("LogoLabel");
|
||||
|
||||
auto* btnOpen = new QPushButton("Open", menuPanel);
|
||||
auto* btnSave = new QPushButton("Save", menuPanel);
|
||||
|
||||
QString btnStyle = "QPushButton { background: transparent; color: #ccc; border: none; padding: 5px 10px; }"
|
||||
"QPushButton:hover { background: #3c3c3c; color: white; border-radius: 4px; }";
|
||||
btnOpen->setStyleSheet(btnStyle);
|
||||
btnSave->setStyleSheet(btnStyle);
|
||||
// File Menu Button
|
||||
auto* btnFile = new QPushButton("File", menuPanel);
|
||||
btnFile->setObjectName("MenuButton");
|
||||
auto* fileMenu = new QMenu(btnFile);
|
||||
fileMenu->addAction("Open", this, &MainPanel::onOpen);
|
||||
fileMenu->addAction("Save", this, &MainPanel::onSave);
|
||||
btnFile->setMenu(fileMenu);
|
||||
|
||||
// Theme Menu Button
|
||||
auto* btnTheme = new QPushButton("Theme", menuPanel);
|
||||
btnTheme->setObjectName("MenuButton");
|
||||
auto* themeMenu = new QMenu(btnTheme);
|
||||
themeMenu->addAction("Dark", this, &MainPanel::onDarkTheme);
|
||||
themeMenu->addAction("Bright", this, &MainPanel::onBrightTheme);
|
||||
btnTheme->setMenu(themeMenu);
|
||||
|
||||
menuLayout->addWidget(logo);
|
||||
menuLayout->addWidget(btnOpen);
|
||||
menuLayout->addWidget(btnSave);
|
||||
menuLayout->addWidget(btnFile);
|
||||
menuLayout->addWidget(btnTheme);
|
||||
menuLayout->addStretch();
|
||||
|
||||
mainLayout->addWidget(menuPanel);
|
||||
|
||||
// 2. Central Splitter Area
|
||||
m_rootSplitter = new QSplitter(Qt::Horizontal, this);
|
||||
m_contextPanel = new ContextPanel(m_rootSplitter);
|
||||
m_rootSplitter->addWidget(m_contextPanel);
|
||||
m_firstPane = new ViewportPane(m_rootSplitter);
|
||||
m_rootSplitter->addWidget(m_firstPane);
|
||||
|
||||
// Set initial sizes
|
||||
QList<int> sizes;
|
||||
sizes << 200 << 1000;
|
||||
m_rootSplitter->setSizes(sizes);
|
||||
|
||||
mainLayout->addWidget(m_rootSplitter, 1);
|
||||
}
|
||||
|
||||
void MainPanel::setContext(uLib::ObjectsContext* context) {
|
||||
m_contextPanel->setContext(context);
|
||||
}
|
||||
|
||||
void MainPanel::onOpen() {
|
||||
// Placeholder for open logic
|
||||
}
|
||||
|
||||
void MainPanel::onSave() {
|
||||
// Placeholder for save logic
|
||||
}
|
||||
|
||||
void MainPanel::onDarkTheme() {
|
||||
StyleManager::applyStyle(qApp, "dark");
|
||||
}
|
||||
|
||||
void MainPanel::onBrightTheme() {
|
||||
StyleManager::applyStyle(qApp, "bright");
|
||||
}
|
||||
|
||||
MainPanel::~MainPanel() {}
|
||||
|
||||
Reference in New Issue
Block a user