Mercurial > hg > octave-lyh
view gui/src/octave-gui.cc @ 15137:16a6b0a6855d gui
GUI: support for octave arguments and integrate with run-octave.
* src/octave.h (octave_initialize_interpreter, octave_execute_interpreter):
New functions.
(octave_cmdline_argc, octave_cmdline_argv, octave_embedded): New variables.
* src/octave.cc (octave_cmdline_argc, octave_cmdline_argv, octave_embedded):
New variables.
(octave_initialize_interpreter, octave_execute_interpreter): New functions.
(octave_main): Rewrite using them.
* run-octave.in (octave_executable): New variable.
(-gui): New option flag.
* gui/src/octave-adapter/octave-main-thread.cc (octave_main_thread::run):
Use octave_execute_interpreter.
* gui/src/octave-gui.cc (dissociate_terminal): New function.
(main): Use it. Also use octave_initialize_interpreter.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sun, 05 Aug 2012 16:15:58 -0400 |
parents | d02b229ce693 |
children | bfc220d1de67 |
line wrap: on
line source
/* OctaveGUI - A graphical user interface for Octave * Copyright (C) 2011 Jacob Dawid (jacob.dawid@googlemail.com) * * This program 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 3 of the * License, or (at your option) any later version. * * This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */ #include <QtGui/QApplication> #include <QTranslator> #include <QSettings> #include "welcome-wizard.h" #include "resource-manager.h" #include "main-window.h" // Dissociate from the controlling terminal, if any. static void dissociate_terminal (void) { #if ! defined (Q_OS_WIN32) || defined (Q_OS_CYGWIN) pid_t pid = fork (); if (pid < 0) { std::cerr << "fork failed!" << std::endl;; exit (1); } else if (pid == 0) { // Child. if (setsid () < 0) { std::cerr << "setsid error" << std::endl; exit (1); } } else exit (0); #endif } int main (int argc, char *argv[]) { octave_initialize_interpreter (argc, argv, 0); dissociate_terminal (); QApplication application (argc, argv); while (true) { if (resource_manager::instance ()->is_first_run ()) { welcome_wizard welcomeWizard; welcomeWizard.exec (); resource_manager::instance ()->reload_settings (); } else { QSettings *settings = resource_manager::instance ()->get_settings (); QString language = settings->value ("language").toString (); QString translatorFile = resource_manager::instance ()->find_translator_file (language); QTranslator translator; translator.load (translatorFile); application.installTranslator (&translator); resource_manager::instance ()->update_network_settings (); main_window w; w.show (); return application.exec (); } } }