/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set et sw=2 ts=2: */ /*************************************************************************** * mainwindow.cc * * Sat Aug 4 13:37:18 CEST 2012 * Copyright 2012 Bent Bisballe Nyeng * deva@aasimon.org ****************************************************************************/ /* * This file is part of Kaiman. * * Kaiman is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Kaiman is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Kaiman; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include "mainwindow.h" #include "outputwindow.h" #include #include #include #include #include MainWindow::MainWindow(QString p) { program = p; /* // Watch file on disk? connect(&watcher, SIGNAL(fileChanged(const QString &)), this, SLOT(reset())); watcher.addPath(program); */ QSplitter *splitter = new QSplitter(); setCentralWidget(splitter); editor = new CodeEditor(); splitter->addWidget(editor); QFile file(program); file.open(QIODevice::ReadOnly); editor->setPlainText(file.readAll()); file.close(); out = new OutputWindow(); splitter->addWidget(out); l = new LUAScript(out, program); connect(l, SIGNAL(lineChanged(int)), editor, SLOT(runningLine(int))); QToolBar *toolbar = new QToolBar(); addToolBar(Qt::TopToolBarArea, toolbar); QAction *act_run = toolbar->addAction("Run"); connect(act_run, SIGNAL(triggered()), this, SLOT(reset())); QAction *act_stop = toolbar->addAction("Stop"); connect(act_stop, SIGNAL(triggered()), l, SLOT(stopScript())); reset(); } void MainWindow::reset() { printf("Resetting...\n"); QFile file(program); file.open(QIODevice::WriteOnly); QString code = editor->toPlainText(); file.write(code.toStdString().c_str(), code.length()); file.close(); out->stopScript(); l->stopScript(); out->reset(); l->start(); printf("Reset done\n"); }