-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmainwindow.cpp
67 lines (49 loc) · 1.68 KB
/
mainwindow.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <stdio.h>
#include <QMenuBar>
#include <QStatusBar>
#include <QHBoxLayout>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// Images
QPixmap newpix("new.png");
QPixmap openpix("open.png");
QPixmap quitpix("quit.png");
// Toolbar
QToolBar *toolbar = addToolBar("main toolbar");
QAction *newProject = toolbar->addAction(QIcon(newpix), "New Project");
toolbar->addAction(QIcon(openpix), "Open Shader");
connect(newProject, SIGNAL(triggered(bool)), this, SLOT(newProject()));
toolbar->addSeparator();
QAction *quit = toolbar->addAction(QIcon(quitpix), "Quit");
connect(quit, &QAction::triggered, qApp, &QApplication::quit);
// Status bar
statusBar()->showMessage("Ready");
// GL Widget
glWidget = new GLWidget;
ui -> mainContainer -> addWidget(glWidget);
// Update text edit with shader source
ui -> textEditFragment -> setPlainText(glWidget -> getFragShaderSource());
ui -> textEditVertex -> setPlainText(glWidget -> getVertexShaderSource());
// Recompile on button press or text change
connect(ui -> textEditFragment, SIGNAL (textChanged()),this, SLOT (handleCompile()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::handleCompile() {
QString source = ui -> textEditFragment -> toPlainText();
bool success = glWidget -> setFragmentShaderSource(source);
if(success) {
statusBar()->showMessage("Compiled!");
} else {
statusBar()->showMessage("Failed to compile!");
}
}
void MainWindow::newProject() {
qDebug() << "NEW PROJECT!";
}