Mercurial > octave-nkf
view README @ 19748:21015ca26566
Restructure shutdown flow and behavior for improved robustness
* file-editor-interface.h (file_editor_interface::check_closing): Remove
closing_state argument from input.
* file-editor-tab.cc (file_editor_tab::_cancelled): New static variable for
managing chain of file closes.
(file_editor_tab::file_editor_tab): Discard _app_closing and _modal_dialog
initializations.
(file_editor_tab::closeEvent): Upon accepting the close event, als request
tab removal.
(file_editor_tab::check_modified_file): New simple routine checking for
modified file if there hasn't been cancellation yet.
(file_editor_tab::run_file): Remove use of _modal_dialog.
(file_editor_tab::show_dialog): Add modal input setting. Remove use of
_app_closing and _modal_dialog.
(file_editor_tab::check_file_modified): Remove situational message for just
one. If modified, call show_dialog with modal true, return QMessageBox::Cancel
if anything cancelled, otherwise the user decision.
(file_editor_tab::handle_file_modified_answer): Do not remove file editor tab
in any case. If user cancelled, set _cancelled true.
(file_editor_tab::save_file): Add "false" (non-modal) to show_dialog() call.
(file_editor_tab::save_file_as): Add "false" (non-modal) to show_dialog() call.
(file_editor_tab::conditional_close): Remove input argument and use of variable
_app_closing.
* file-editor-tab.h (file_editor_tab::conditional_close): Remove input
argument.
(file_editor_tab::reset_cancel): New member function declaration for managing
cancellation of tab chain saves.
(file_editor_tab::was_cancel): New member function for indicating any
cancellation when saving modified files.
(file_editor_tab::check_modified_file): New slot declaration for checking and
saving file modifications.
(file_editor_tab::show_dialog): Add modal option input argument.
(file_editor_tab::_app_closing, file_editor_tab::_modal_dialog): Remove.
(file_editor_tab::_cancelled): Add.
* file-editor.cc (file_editor::file_editor): Remove _check_closing_done
initialization.
(file_editor::~file_editor): Remove use of _check_closing_done and
check_closing().
(file_editor::check_closing): Clear cancellation history and check all files
for modifications, without closing. Close all tabs and delete associated
widgets if no cancellation. Remove use of _check_closing_done.
(file_editor::request_close_file): Remove argument from conditional_close()
function call.
(file_editor::request_close_all_files): Ditto.
(file_editor::request_close_other_files): Ditto.
(file_editor::handle_tab_close_request): Ditto.
(file_editor::handle_tab_remove_request): Add comment about deleting sender.
(file_editor::add_file_editor_tab): Connect fetab_check_modified_file signal to
check_modified_file slot.
* file-editor.h (file_editor::fetab_check_modified_file): New signal.
(file_editor::check_closing): Remove input argument.
(file_editor::_check_closing_done): Remove.
* main-window.cc (main_window::confirm_shutdown_octave): Rename of member
function main_window::confirm_exit_octave(). Change return type to void. Set
octave/qt link confirmation result then awake worker process.
(main_window::exit_app): Rename of member function main_window::exit().
(main_window::closeEvent): Rather than post callback event, queue "exit" in
the command buffer.
(main_window::construct_octave_qt_link): Connect confirm_shutdown_signal to
confirm_shutdown_octave slot. Connect exit_app_signal to exit_app slot.
(main_window::exit_callback): Remove.
(main_window::confirm_exit_octave): Renamed as confirm_shutdown_octave().
* main-window.h (main_window::confirm_shutdown_octave): Rename of slot
confirm_exit_octave().
(main_window::exit): Renamed exit_app().
(main_window::exit_callback): Removed declaration.
(main_window::confirm_exit_octave): Renamed confirm_shutdown_octave().
* octave-qt-link.cc (octave_qt_link::do_confirm_shutdown): New virtual function
definition for initiating GUI shutdown and confirm exit. Worker process goes
into sleep mode after issuing cross-thread signal. Return confirmation result.
(octave_qt_link::do_exit): Change exit_signal to exit_app_signal.
octave-qt-link.h (octave_qt_link::do_confirm_shutdown): New virtual function
declaration for qt GUI.
(octave_qt_link::mutex): Added. A QMutex for communicating with Qt GUI.
(octave_qt_link::waitcondition): Added. For process wait.
(octave_qt_link::shutdown_confirmation): Added. Store confirmation result.
(octave_qt_link::_shutdown_confirm_result): Added. Confirmation result.
(octave_qt_link::exit_signal): Signal renamed exit_app_signal.
(octave_qt_link::confirm_shutdown_signal): Added.
(octave_qt_link::exit_app_signal): Renamed of exit_signal.
octave-link.h (octave_link::confirm_shutdown): Added. Access virtual function
do_confirm_shutdown.
(octave_link::do_confirm_shutdown): Added. Virtual function for GUI link.
toplev.cc (clean_up_and_exit): Change 'retval' to 'status', as header file uses
argument name 'status'.
(quit): First initiate GUI shutdown via octave_link::confirm_shutdown() and if
not confirmed, immediately return thereby avoiding exit sequence.
author | Daniel J Sebald <daniel.sebald@ieee.org> |
---|---|
date | Sat, 14 Feb 2015 11:27:10 -0600 |
parents | 4197fc428c7d |
children |
line wrap: on
line source
GNU Octave -- a high-level language for numerical computations. Copyright (C) 1996-2015 John W. Eaton Overview -------- GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically. GNU Octave 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. GNU Octave 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 file COPYING for more details. Availability ------------ The latest released version of Octave is always available via anonymous ftp from ftp.gnu.org and its many mirror sites around the world. You may also find links to binary distributions at http://www.octave.org/download.html. The current development sources may be found on Savannah (http://savannah.gnu.org/projects/octave) under the Source Code tab. Installation ------------ Octave requires approximately 1.4 GB of disk storage to unpack and compile from source (significantly less, 400 MB, if you don't compile with debugging symbols). Once installed, Octave requires approximately 350MB of disk space (again, considerably less, 70 MB, if you don't build shared libraries or the binaries and libraries do not include debugging symbols). To compile Octave, you will need a recent version of GNU Make. You will also need a recent version of g++ or another ANSI C++ compiler. You will also need a Fortran 77 compiler or f2c. If you use f2c, you will need a script like fort77 that works like a normal Fortran compiler by combining f2c with your C compiler in a single script. YOU MUST HAVE GNU MAKE TO COMPILE OCTAVE. Octave's Makefiles use features of GNU Make that are not present in other versions of make. GNU Make is very portable and easy to install. See the notes in the files INSTALL.OCTAVE and the system-specific README files in the etc directory of the Octave source distribution for more specific installation instructions. Bugs and Patches ---------------- The file BUGS explains the recommended procedure for reporting bugs or contributing patches. Documentation ------------- Octave's manual has been revised for version 3.4, but it is lagging a bit behind the development of the software. In particular, there is currently no complete documentation of the C++ class libraries. If you notice omissions or inconsistencies, please report them on the bug tracker at http://bugs.octave.org. Specific suggestions for ways to improve Octave and its documentation are always welcome. Reports with patches are even more welcome. Additional Information ---------------------- Up to date information about Octave is available on the WWW at the URL http://www.octave.org, including archives of the help, bug, and maintainers mailing lists. Last updated: Fri, 10 Jun 2011 14:02:32 EDT