annotate libgui/src/octave-main-thread.cc @ 16431:5982d469f79b

use signal for setting, appending to, and clearing history widget * history-dockwidget.h, history-dockwidget.cc (history_dock_widget::request_history_model_update, history_dock_widget::reset_model, history_dock_widget::update_history_callback): Delete. (history_dock_widget::set_history, history_dock_widget::append_history, history_dock_widget::clear_history): New functions. * main-window.h, main-window.cc (main_window::update_history): Delete. (main_window::construct): Delete connection from _octave_qt_event_listener::update_history_signal to main_window::update_history. Connect _octave_qt_link::set_history_signal to _history_dock_widget::set_history. Connect _octave_qt_link::append_history_signal to _history_dock_widget::append_history. Connect _octave_qt_link::clear_history_signal to _history_dock_widget::clear_history. (main_window::clear_history_callback): Call Fhistory instead of command_history::clear and _history_dock_widget->reset_model. * octave-main-thread.cc (octave_main_thread::run): Don't call octave_link::update_history. * octave-qt-event-listener.h, octave-qt-event-listener.cc (octave_qt_event_listener::update_history): Delete. (octave_qt_event_listener::update_history_signal): Delete. * octave-qt-link.h, octave-qt-link.cc (octave_qt_link::do_update_history): Delete. (octave_qt_link::do_set_history,octave_qt_link::do_append_history, octave_qt_link::do_clear_history): New functions. (octave_qt_link::do_post_input_event): Don't call do_update_history. (set_history_signal, append_history_signal, clear_history_signal): New signals. * octave-event-listener.h (octave_event_listener::update_history): Delete. * input.cc (octave_base_reader::octave_gets): Call command_history::add. * oct-hist.cc (do_history): New option, -c. Call octave_link history functions as needed. (initialize_history): Call octave_link::set_history. (octave_history_write_timestamp): Call octave_link::append_history. (Fedit_history): Document -c. * octave-link.h (octave_link::update_history, octave_link::do_update_history): Delete. (octave_link::set_history, octave_link::append_history, octave_link::clear_history, octave_link::do_set_history, octave_link::do_append_history, octave_link::do_clear_history, octave_link::do_pre_input_event, octave_link::do_post_input_event): New functions.
author John W. Eaton <jwe@octave.org>
date Thu, 04 Apr 2013 13:20:43 -0400
parents 81ec95768520
children fe4cd846c3e7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15204
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
1 /*
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
2
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
3 Copyright (C) 2011-2012 Jacob Dawid
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
4
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
5 This file is part of Octave.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
6
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
8 under the terms of the GNU General Public License as published by the
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
9 Free Software Foundation; either version 3 of the License, or (at your
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
10 option) any later version.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
11
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
15 for more details.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
16
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
17 You should have received a copy of the GNU General Public License
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
18 along with Octave; see the file COPYING. If not, see
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
19 <http://www.gnu.org/licenses/>.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
20
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
21 */
13543
8d529f8103dc Separated backend files to folder.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13541
diff changeset
22
15155
9e62d5a3a45e partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents: 15137
diff changeset
23 #ifdef HAVE_CONFIG_H
9e62d5a3a45e partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents: 15137
diff changeset
24 #include <config.h>
9e62d5a3a45e partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents: 15137
diff changeset
25 #endif
9e62d5a3a45e partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents: 15137
diff changeset
26
15976
bbce6de5c0a5 * octave-main-thread.cc: Include <clocale> for setlocale.
Mike Miller <mtmiller@ieee.org>
parents: 15922
diff changeset
27 #include <clocale>
15155
9e62d5a3a45e partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents: 15137
diff changeset
28 #include <string>
9e62d5a3a45e partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents: 15137
diff changeset
29
16350
d4b6ad43bc87 use direct callbacks instead to handle history and workspace list updates
John W. Eaton <jwe@octave.org>
parents: 16232
diff changeset
30 #include "builtin-defun-decls.h"
15155
9e62d5a3a45e partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents: 15137
diff changeset
31 #include "octave.h"
16350
d4b6ad43bc87 use direct callbacks instead to handle history and workspace list updates
John W. Eaton <jwe@octave.org>
parents: 16232
diff changeset
32 #include "ov-builtin.h"
d4b6ad43bc87 use direct callbacks instead to handle history and workspace list updates
John W. Eaton <jwe@octave.org>
parents: 16232
diff changeset
33 #include "ov-fcn-handle.h"
15155
9e62d5a3a45e partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents: 15137
diff changeset
34
14707
674740c44c09 Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14703
diff changeset
35 #include "octave-main-thread.h"
674740c44c09 Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14703
diff changeset
36 #include "octave-link.h"
13540
0dbf8681cd08 Seperated classes into own files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
37
14719
89c64340e9ab Extended event based communication model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
38 octave_main_thread::octave_main_thread () : QThread ()
13540
0dbf8681cd08 Seperated classes into own files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
39 {
0dbf8681cd08 Seperated classes into own files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
40 }
0dbf8681cd08 Seperated classes into own files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
41
0dbf8681cd08 Seperated classes into own files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
42 void
14709
f50591409306 Started to rename class names and methods from camel case to underscore-
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14707
diff changeset
43 octave_main_thread::run ()
13540
0dbf8681cd08 Seperated classes into own files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
44 {
16168
8650eec57e9f Set LC_NUMERIC to "C" locale regardless of user value. (Matlab compatibility and bug #38372)
Rik <rik@octave.org>
parents: 15976
diff changeset
45 // Matlab uses "C" locale for LC_NUMERIC class regardless of local setting
8650eec57e9f Set LC_NUMERIC to "C" locale regardless of user value. (Matlab compatibility and bug #38372)
Rik <rik@octave.org>
parents: 15976
diff changeset
46 setlocale (LC_NUMERIC, "C");
15224
a44e4a08fc55 perform fewer actions before starting GUI
John W. Eaton <jwe@octave.org>
parents: 15204
diff changeset
47
15045
1ffaad442161 Source code formatting (80-column lines, mostly whitespace changes)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 14879
diff changeset
48 emit ready ();
15224
a44e4a08fc55 perform fewer actions before starting GUI
John W. Eaton <jwe@octave.org>
parents: 15204
diff changeset
49
a44e4a08fc55 perform fewer actions before starting GUI
John W. Eaton <jwe@octave.org>
parents: 15204
diff changeset
50 octave_initialize_interpreter (octave_cmdline_argc, octave_cmdline_argv,
a44e4a08fc55 perform fewer actions before starting GUI
John W. Eaton <jwe@octave.org>
parents: 15204
diff changeset
51 octave_embedded);
a44e4a08fc55 perform fewer actions before starting GUI
John W. Eaton <jwe@octave.org>
parents: 15204
diff changeset
52
15137
16a6b0a6855d GUI: support for octave arguments and integrate with run-octave.
John W. Eaton <jwe@octave.org>
parents: 15045
diff changeset
53 octave_execute_interpreter ();
13540
0dbf8681cd08 Seperated classes into own files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
54 }