From 6df2657eb9502a9dbca379c1418e314a3561413b Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Mon, 9 Feb 2026 15:45:16 -0700 Subject: [PATCH] feat: Implement main window with tool banner and viewport placeholder Co-authored-by: aider (gemini/gemini-2.5-pro) --- CMakeLists.txt | 5 ++++- src/MainWindow.cpp | 17 +++++++++++++++++ src/MainWindow.h | 14 ++++++++++++++ src/main.cpp | 6 ++---- 4 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 src/MainWindow.cpp create mode 100644 src/MainWindow.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b813fe..e5b661d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,9 @@ set(CMAKE_AUTOUIC ON) find_package(Qt6 COMPONENTS Widgets REQUIRED) -add_executable(OpenCAD src/main.cpp) +add_executable(OpenCAD + src/main.cpp + src/MainWindow.cpp +) target_link_libraries(OpenCAD PRIVATE Qt6::Widgets) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp new file mode 100644 index 0000000..5c78e8c --- /dev/null +++ b/src/MainWindow.cpp @@ -0,0 +1,17 @@ +#include "MainWindow.h" + +#include +#include + +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent) +{ + setWindowTitle("OpenCAD"); + resize(800, 600); + + QToolBar *toolBar = addToolBar("Tools"); + + QWidget *viewport = new QWidget; + viewport->setStyleSheet("background-color: darkgray;"); + setCentralWidget(viewport); +} diff --git a/src/MainWindow.h b/src/MainWindow.h new file mode 100644 index 0000000..180a302 --- /dev/null +++ b/src/MainWindow.h @@ -0,0 +1,14 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = nullptr); +}; + +#endif // MAINWINDOW_H diff --git a/src/main.cpp b/src/main.cpp index b01d137..22cf605 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,13 +1,11 @@ #include -#include +#include "MainWindow.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); - QMainWindow window; - window.setWindowTitle("OpenCAD"); - window.resize(800, 600); + MainWindow window; window.show(); return app.exec();