comparison libgui/src/terminal-dock-widget.cc @ 16648:b04413e5a811

improve handling of interrupts, copy and paste shortcuts * QTerminal.h (QTerminal::report_status_message): New signal. (QTerminal::QTerminal): Set shortcuts for copy and paste actions. Add copy and paste actions to QTerminal widget. Connect settings_changed, report_status_message, copyClipboard_signal, and pasteClipboard_signal. * QWinTerminalImpl.cpp (QWinTerminalImpl::copyClipboard): If selection is set, copy it and report status message. Otherwise, interrupt. * TerminalView.cpp (TerminalView::copyClipboard): Likewise. * main-window.cc (main_menu::construct_file_menu): Don't set shortcut for open action. (main_window::construct_edit_menu): Delete unimplemented cut, select all, and delete actions. Connect copy and paste actions to signals. (main_window::copyClipboard_signal, main_window::pasteClipboard_signal): New signals. (main_window::copyClipboard, main_window::pasteClipboard): New slots. (main_window::_cut_action): Delete member variable. * octave-qt-link.cc (octave_qt_link::do_pre_input_event): Disable input processing by the windows console. (octave_qt_link::do_post_input_event): Enable input processing by the windows console. * terminal-dock-widget.h, terminal-dock-widget.cc: Delete notice_settings, copyClipboard, and pasteClipboard signals, slots, and connections. (terminal_dock_widget::terminal_dock_widget): Don't connect visibilityChanged signal.
author John W. Eaton <jwe@octave.org>
date Mon, 13 May 2013 07:26:37 -0400
parents ba808cd9d86c
children d749c9b588e5
comparison
equal deleted inserted replaced
16647:d446e99f89f7 16648:b04413e5a811
34 terminal->setFocusPolicy (Qt::StrongFocus); 34 terminal->setFocusPolicy (Qt::StrongFocus);
35 35
36 setObjectName ("TerminalDockWidget"); 36 setObjectName ("TerminalDockWidget");
37 setWindowIcon (QIcon(":/actions/icons/logo.png")); 37 setWindowIcon (QIcon(":/actions/icons/logo.png"));
38 setWindowTitle (tr ("Command Window")); 38 setWindowTitle (tr ("Command Window"));
39
39 setWidget (terminal); 40 setWidget (terminal);
40
41 connect (this, SIGNAL (visibilityChanged (bool)),
42 this, SLOT (handle_visibility (bool)));
43
44 // Forward signals to QTerminal widget.
45
46 connect (this, SIGNAL (notice_settings_signal (const QSettings *)),
47 terminal, SLOT (notice_settings (const QSettings *)));
48
49 connect (this, SIGNAL (copyClipboard_signal (void)),
50 terminal, SLOT (copyClipboard (void)));
51
52 connect (this, SIGNAL (pasteClipboard_signal (void)),
53 terminal, SLOT (pasteClipboard (void)));
54 } 41 }
55 42
56 bool 43 bool
57 terminal_dock_widget::has_focus (void) const 44 terminal_dock_widget::has_focus (void) const
58 { 45 {
59 QWidget *w = widget (); 46 QWidget *w = widget ();
60 47
61 return w->hasFocus (); 48 return w->hasFocus ();
62 }
63
64 void
65 terminal_dock_widget::notice_settings (const QSettings *settings)
66 {
67 emit notice_settings_signal (settings);
68 }
69
70 void
71 terminal_dock_widget::copyClipboard (void)
72 {
73 emit copyClipboard_signal ();
74 }
75
76 void
77 terminal_dock_widget::pasteClipboard (void)
78 {
79 emit pasteClipboard_signal ();
80 } 49 }
81 50
82 void 51 void
83 terminal_dock_widget::focus (void) 52 terminal_dock_widget::focus (void)
84 { 53 {