MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->actionNew,SIGNAL(triggered()),this,SLOT(actionNew())); connect(ui->actionOpen,SIGNAL(triggered()),this,SLOT(actionOpen())); connect(ui->actionSave,SIGNAL(triggered()),this,SLOT(actionSaveAs())); connect(ui->actionSave_as,SIGNAL(triggered()),this,SLOT(actionSaveAs())); connect(ui->textEdit,SIGNAL(textChanged()),this,SLOT(edit())); connect(ui->textEdit_2,SIGNAL(textChanged()),this,SLOT(edit())); connect(ui->lineEdit,SIGNAL(textChanged(QString)),this,SLOT(edit())); connect(ui->actionExit,SIGNAL(triggered()),this,SLOT(close())); connect(ui->actionSave_2,SIGNAL(triggered()),this,SLOT(saveVertexShader())); connect(ui->actionSave_3,SIGNAL(triggered()),this,SLOT(saveFragmentShader())); connect(ui->actionOpen_2,SIGNAL(triggered()),this,SLOT(openVertexShader())); connect(ui->actionOpen_3,SIGNAL(triggered()),this,SLOT(openFragmentShader())); connect(ui->actionBuild,SIGNAL(triggered()),this,SLOT(tryBuild())); this->setWindowTitle("OpenCraft shaderprogram editor - unnamed[*]"); mChanged = false; }
void MainWindow::actionOpen() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open Circuit"), "", tr("Digital Circuit (*.dic);;All Files (*)")); if (!fileName.isEmpty()) { QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { QMessageBox::information(this, tr("Unable to open file"), file.errorString()); return; } QDataStream in(&file); in.setVersion(QDataStream::Qt_4_7); actionNew(); setWindowTitle(QFileInfo(fileName).baseName() + " - DIC Sim v" + VERSION); in >> *console; }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { /****************** Menu Bar ******************/ /* * File Menu */ QAction *newAction = new QAction("&New File", this); newAction->setShortcut(tr("Ctrl+N")); connect(newAction, SIGNAL(triggered()), this, SLOT(actionNew())); QAction *openAction = new QAction("&Open File", this); openAction->setShortcut(tr("Ctrl+O")); connect(openAction, SIGNAL(triggered()), this, SLOT(actionOpen())); QAction *saveAction = new QAction("&Save File", this); saveAction->setShortcut(tr("Ctrl+S")); connect(saveAction, SIGNAL(triggered()), this, SLOT(actionSave())); QAction *quitAction = new QAction("&Quit", this); quitAction->setShortcut(tr("Ctrl+Q")); connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); QMenu *fileMenu; fileMenu = menuBar()->addMenu("&File"); fileMenu->addAction(newAction); fileMenu->addAction(openAction); fileMenu->addAction(saveAction); fileMenu->addAction(quitAction); /* * Edit Menu */ QAction *chooseWireColorAction = new QAction("Choose Wire &Color", this); chooseWireColorAction->setShortcut(tr("Ctrl+C")); connect(chooseWireColorAction, SIGNAL(triggered()), this, SLOT(actionChooseWireColor())); QMenu *editMenu; editMenu = menuBar()->addMenu("&Edit"); editMenu->addSeparator(); editMenu->addAction(chooseWireColorAction); /* * Insert Menu */ QAction *insertWireAction = new QAction("Insert &Wire", this); insertWireAction->setShortcut(tr("Ctrl+W")); connect(insertWireAction, SIGNAL(triggered()), this, SLOT(actionInsertWire())); QAction *insertLEDAction = new QAction("Insert &LED", this); insertLEDAction->setShortcut(tr("Ctrl+L")); connect(insertLEDAction, SIGNAL(triggered()), this, SLOT(actionInsertLED())); QAction *insertICAction = new QAction("Insert &IC", this); insertICAction->setShortcut(tr("Ctrl+I")); connect(insertICAction, SIGNAL(triggered()), this, SLOT(actionInsertIC())); QAction *insertTagAction = new QAction("Insert &Tag", this); insertTagAction->setShortcut(tr("Ctrl+T")); connect(insertTagAction, SIGNAL(triggered()), this, SLOT(actionInsertTag())); QMenu *insertMenu; insertMenu = menuBar()->addMenu("&Insert"); insertMenu->addAction(insertWireAction); insertMenu->addAction(insertLEDAction); insertMenu->addAction(insertICAction); insertMenu->addSeparator(); insertMenu->addAction(insertTagAction); /* * Circuit Menu */ QAction *runCircuitAction = new QAction("&Run Circuit", this); runCircuitAction->setShortcut(tr("F5")); connect(runCircuitAction, SIGNAL(triggered()), this, SLOT(actionRunCircuit())); QAction *stopCircuitAction = new QAction("&Stop Circuit", this); stopCircuitAction->setShortcut(tr("F12")); connect(stopCircuitAction, SIGNAL(triggered()), this, SLOT(actionStopCircuit())); QAction *truthTableAction = new QAction("Generate &Truth Table", this); truthTableAction->setShortcut(tr("F6")); connect(truthTableAction, SIGNAL(triggered()), this, SLOT(actionTruthTable())); QMenu *circuitMenu; circuitMenu = menuBar()->addMenu("&Circuit"); circuitMenu->addAction(runCircuitAction); circuitMenu->addAction(stopCircuitAction); circuitMenu->addAction(truthTableAction); /* * Help Menu */ QAction *aboutAction = new QAction("&About", this); connect(aboutAction, SIGNAL(triggered()), this, SLOT(actionAbout())); QMenu *helpMenu; helpMenu = menuBar()->addMenu("&Help"); helpMenu->addAction(aboutAction); /* * Invisible Actions */ QShortcut *toggleInput1 = new QShortcut(QKeySequence(tr("Alt+1")), this); QShortcut *toggleInput2 = new QShortcut(QKeySequence(tr("Alt+2")), this); QShortcut *toggleInput3 = new QShortcut(QKeySequence(tr("Alt+3")), this); QShortcut *toggleInput4 = new QShortcut(QKeySequence(tr("Alt+4")), this); QShortcut *toggleInput5 = new QShortcut(QKeySequence(tr("Alt+5")), this); QShortcut *toggleInput6 = new QShortcut(QKeySequence(tr("Alt+6")), this); QShortcut *toggleInput7 = new QShortcut(QKeySequence(tr("Alt+7")), this); QShortcut *toggleInput8 = new QShortcut(QKeySequence(tr("Alt+8")), this); QShortcut *toggleInput9 = new QShortcut(QKeySequence(tr("Alt+9")), this); QShortcut *toggleInput0 = new QShortcut(QKeySequence(tr("Alt+0")), this); connect(toggleInput1, SIGNAL(activated()), this, SLOT(actionToggleInput1())); connect(toggleInput2, SIGNAL(activated()), this, SLOT(actionToggleInput2())); connect(toggleInput3, SIGNAL(activated()), this, SLOT(actionToggleInput3())); connect(toggleInput4, SIGNAL(activated()), this, SLOT(actionToggleInput4())); connect(toggleInput5, SIGNAL(activated()), this, SLOT(actionToggleInput5())); connect(toggleInput6, SIGNAL(activated()), this, SLOT(actionToggleInput6())); connect(toggleInput7, SIGNAL(activated()), this, SLOT(actionToggleInput7())); connect(toggleInput8, SIGNAL(activated()), this, SLOT(actionToggleInput8())); connect(toggleInput9, SIGNAL(activated()), this, SLOT(actionToggleInput9())); connect(toggleInput0, SIGNAL(activated()), this, SLOT(actionToggleInput0())); QShortcut *cheatNO_GND_VCC_sh = new QShortcut( QKeySequence(Qt::Key_N, Qt::Key_G, Qt::Key_V), this); connect(cheatNO_GND_VCC_sh, SIGNAL(activated()), this, SLOT(actionCheatNO_GND_VCC())); /*************** Central Contents ***************/ QWidget *centralWidget = new QWidget; centralWidget->setObjectName(QObject::tr("centralWidget")); console = nullptr; consoleView = new QGraphicsView(); consoleView->setFixedSize(Console::CONSOLE_WIDTH, Console::CONSOLE_HEIGHT); actionNew(); QVBoxLayout *vLayout = new QVBoxLayout; QHBoxLayout *hLayout = new QHBoxLayout; hLayout->addStretch(1); hLayout->addWidget(consoleView); hLayout->addStretch(1); vLayout->addStretch(1); vLayout->addLayout(hLayout); vLayout->addStretch(1); centralWidget->setLayout(vLayout); setCentralWidget(centralWidget); /*************** Containers *****************/ icNameList = new QStringList; icPinsList = new QStringList; icDescList = new QStringList; icLabelList = new QStringList; /*************** Functions ******************/ parseICs(); icdialog = new ICDialog(this, icNameList, icDescList); /*************** Booleans *******************/ circuitState = false; cheatNO_GND_VCC = false; }