Mercurial > hg > octave-nkf
annotate libgui/src/history-dock-widget.cc @ 17208:2527bc7200ee
Only scroll history window if it is positioned at bottom.
* history-dock-widget.cc
(history_dock_widget::append_history): Scroll to bottom if slide bar value
equals maximum.
author | Daniel J Sebald <daniel.sebald@ieee.org> |
---|---|
date | Thu, 08 Aug 2013 15:52:30 -0400 |
parents | 944ade6e7f66 |
children | 7fb4461997aa |
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 */ |
13495 | 22 |
15155
9e62d5a3a45e
partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents:
14814
diff
changeset
|
23 #ifdef HAVE_CONFIG_H |
9e62d5a3a45e
partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents:
14814
diff
changeset
|
24 #include <config.h> |
9e62d5a3a45e
partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents:
14814
diff
changeset
|
25 #endif |
9e62d5a3a45e
partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents:
14814
diff
changeset
|
26 |
15447
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
27 #include <QApplication> |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
28 #include <QClipboard> |
15155
9e62d5a3a45e
partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents:
14814
diff
changeset
|
29 #include <QVBoxLayout> |
15447
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
30 #include <QMenu> |
17208
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
31 #include <QScrollBar> |
15155
9e62d5a3a45e
partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents:
14814
diff
changeset
|
32 |
15340
9d0cdd49054b
keep history in gui widget at bottom when new items are added
John W. Eaton <jwe@octave.org>
parents:
15318
diff
changeset
|
33 #include "error.h" |
9d0cdd49054b
keep history in gui widget at bottom when new items are added
John W. Eaton <jwe@octave.org>
parents:
15318
diff
changeset
|
34 |
15402
7f423c6111c6
refactor GUI event handling to use new event_queue class
John W. Eaton <jwe@octave.org>
parents:
15388
diff
changeset
|
35 #include "cmd-hist.h" |
7f423c6111c6
refactor GUI event handling to use new event_queue class
John W. Eaton <jwe@octave.org>
parents:
15388
diff
changeset
|
36 |
16460
4d4e7c6f839d
use consistent names for dock-widget files
John W. Eaton <jwe@octave.org>
parents:
16455
diff
changeset
|
37 #include "history-dock-widget.h" |
13495 | 38 |
16447
e3b33a7530bc
improve encapsulation of history window object
John W. Eaton <jwe@octave.org>
parents:
16441
diff
changeset
|
39 history_dock_widget::history_dock_widget (QWidget *p) |
16057
c3057d80cf91
Created common octave_dock_widget class
Richard Crozier <richard.crozier@yahoo.co.uk>
parents:
15900
diff
changeset
|
40 : octave_dock_widget (p) |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
41 { |
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
42 setObjectName ("HistoryDockWidget"); |
16447
e3b33a7530bc
improve encapsulation of history window object
John W. Eaton <jwe@octave.org>
parents:
16441
diff
changeset
|
43 setStatusTip (tr ("Browse and search the command history.")); |
e3b33a7530bc
improve encapsulation of history window object
John W. Eaton <jwe@octave.org>
parents:
16441
diff
changeset
|
44 |
16455
38ed6bdd1f7f
move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents:
16452
diff
changeset
|
45 connect (this, SIGNAL (command_create_script (const QString&)), |
38ed6bdd1f7f
move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents:
16452
diff
changeset
|
46 p, SLOT (new_file (const QString&))); |
38ed6bdd1f7f
move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents:
16452
diff
changeset
|
47 |
38ed6bdd1f7f
move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents:
16452
diff
changeset
|
48 connect (this, SIGNAL (information (const QString&)), |
38ed6bdd1f7f
move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents:
16452
diff
changeset
|
49 p, SLOT (report_status_message (const QString&))); |
16447
e3b33a7530bc
improve encapsulation of history window object
John W. Eaton <jwe@octave.org>
parents:
16441
diff
changeset
|
50 |
e3b33a7530bc
improve encapsulation of history window object
John W. Eaton <jwe@octave.org>
parents:
16441
diff
changeset
|
51 connect (this, SIGNAL (command_double_clicked (const QString&)), |
16570
d5ae5aa80d42
preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents:
16461
diff
changeset
|
52 p, SLOT (execute_command_in_terminal (const QString&))); |
16447
e3b33a7530bc
improve encapsulation of history window object
John W. Eaton <jwe@octave.org>
parents:
16441
diff
changeset
|
53 |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
54 construct (); |
13495 | 55 } |
56 | |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
57 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
|
58 history_dock_widget::construct () |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
59 { |
14720
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
60 _history_model = new QStringListModel (); |
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
61 _sort_filter_proxy_model.setSourceModel (_history_model); |
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
62 _history_list_view = new QListView (this); |
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
63 _history_list_view->setModel (&_sort_filter_proxy_model); |
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
64 _history_list_view->setAlternatingRowColors (true); |
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
65 _history_list_view->setEditTriggers (QAbstractItemView::NoEditTriggers); |
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
66 _history_list_view->setStatusTip (tr ("Doubleclick a command to transfer it to the terminal.")); |
15447
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
67 _history_list_view->setSelectionMode (QAbstractItemView::ExtendedSelection); |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
68 _history_list_view->setContextMenuPolicy(Qt::CustomContextMenu); |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
69 connect(_history_list_view, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(ctxMenu(const QPoint &))); |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
70 |
14720
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
71 _filter_line_edit = new QLineEdit (this); |
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
72 _filter_line_edit->setStatusTip (tr ("Enter text to filter the command history.")); |
15368
36ececf69385
avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents:
15367
diff
changeset
|
73 QVBoxLayout *vbox_layout = new QVBoxLayout (); |
13495 | 74 |
15552
bbbb89cc338f
make a floating widget behave like a normal window (bug #37190)
Torsten <ttl@justmail.de>
parents:
15447
diff
changeset
|
75 setWindowIcon (QIcon(":/actions/icons/logo.png")); |
16798
d749c9b588e5
make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents:
16570
diff
changeset
|
76 set_title (tr ("Command History")); |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
77 setWidget (new QWidget ()); |
13495 | 78 |
15368
36ececf69385
avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents:
15367
diff
changeset
|
79 vbox_layout->addWidget (_history_list_view); |
36ececf69385
avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents:
15367
diff
changeset
|
80 vbox_layout->addWidget (_filter_line_edit); |
36ececf69385
avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents:
15367
diff
changeset
|
81 vbox_layout->setMargin (2); |
13495 | 82 |
15368
36ececf69385
avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents:
15367
diff
changeset
|
83 widget ()->setLayout (vbox_layout); |
13545
ffc2e1d1ad5f
History can be filtered with an input search box while typing.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13536
diff
changeset
|
84 |
16057
c3057d80cf91
Created common octave_dock_widget class
Richard Crozier <richard.crozier@yahoo.co.uk>
parents:
15900
diff
changeset
|
85 connect (_filter_line_edit, SIGNAL (textEdited (QString)), |
c3057d80cf91
Created common octave_dock_widget class
Richard Crozier <richard.crozier@yahoo.co.uk>
parents:
15900
diff
changeset
|
86 &_sort_filter_proxy_model, SLOT (setFilterWildcard (QString))); |
14720
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
87 |
16057
c3057d80cf91
Created common octave_dock_widget class
Richard Crozier <richard.crozier@yahoo.co.uk>
parents:
15900
diff
changeset
|
88 connect (_history_list_view, SIGNAL (doubleClicked (QModelIndex)), |
c3057d80cf91
Created common octave_dock_widget class
Richard Crozier <richard.crozier@yahoo.co.uk>
parents:
15900
diff
changeset
|
89 this, SLOT (handle_double_click (QModelIndex))); |
15552
bbbb89cc338f
make a floating widget behave like a normal window (bug #37190)
Torsten <ttl@justmail.de>
parents:
15447
diff
changeset
|
90 |
14812
9d9eb9bac65e
Improved menu structure of file, edit and window menu. Removed ambiguous shortcuts, improved focus handling for operating the GUI with the keyboard. Added new shortcuts to focus subwindows directly.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14750
diff
changeset
|
91 setFocusProxy (_filter_line_edit); |
13495 | 92 } |
13536
869c62c15e95
Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13518
diff
changeset
|
93 |
15894
9cd14e53e906
eliminate some compiler warnings for GUI code
John W. Eaton <jwe@octave.org>
parents:
15759
diff
changeset
|
94 void history_dock_widget::ctxMenu(const QPoint &xpos) { |
16441
ee652dcc9ecc
history_doc_widget context menu memory leak fix (bug #38675)
John Donoghue <john.donoghue@ieee.org>
parents:
16431
diff
changeset
|
95 QMenu menu(this); |
ee652dcc9ecc
history_doc_widget context menu memory leak fix (bug #38675)
John Donoghue <john.donoghue@ieee.org>
parents:
16431
diff
changeset
|
96 menu.addAction(tr("Copy"), this, SLOT(handle_contextmenu_copy(bool))); |
ee652dcc9ecc
history_doc_widget context menu memory leak fix (bug #38675)
John Donoghue <john.donoghue@ieee.org>
parents:
16431
diff
changeset
|
97 menu.addAction(tr("Evaluate"), this, SLOT(handle_contextmenu_evaluate(bool))); |
16452
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
98 menu.addAction(tr("Create script"), this, SLOT(handle_contextmenu_create_script(bool))); |
16441
ee652dcc9ecc
history_doc_widget context menu memory leak fix (bug #38675)
John Donoghue <john.donoghue@ieee.org>
parents:
16431
diff
changeset
|
99 menu.exec(_history_list_view->mapToGlobal(xpos)); |
15447
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
100 } |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
101 |
15894
9cd14e53e906
eliminate some compiler warnings for GUI code
John W. Eaton <jwe@octave.org>
parents:
15759
diff
changeset
|
102 void history_dock_widget::handle_contextmenu_copy(bool) |
15447
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
103 { |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
104 QString text; |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
105 QItemSelectionModel *selectionModel = _history_list_view->selectionModel(); |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
106 QModelIndexList rows = selectionModel->selectedRows(); |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
107 QModelIndexList::iterator it; |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
108 for (it=rows.begin() ; it != rows.end(); it++) { |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
109 if ((*it).isValid()) { |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
110 text += (*it).data().toString()+"\n"; |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
111 } |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
112 } |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
113 QApplication::clipboard()->setText(text); |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
114 } |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
115 |
15894
9cd14e53e906
eliminate some compiler warnings for GUI code
John W. Eaton <jwe@octave.org>
parents:
15759
diff
changeset
|
116 void history_dock_widget::handle_contextmenu_evaluate(bool) |
15447
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
117 { |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
118 QItemSelectionModel *selectionModel = _history_list_view->selectionModel(); |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
119 QModelIndexList rows = selectionModel->selectedRows(); |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
120 QModelIndexList::iterator it; |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
121 for (it=rows.begin() ; it != rows.end(); it++) { |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
122 if ((*it).isValid()) { |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
123 emit command_double_clicked ((*it).data().toString()+"\n"); |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
124 } |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
125 } |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
126 } |
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
127 |
13536
869c62c15e95
Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13518
diff
changeset
|
128 void |
16452
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
129 history_dock_widget::handle_contextmenu_create_script (bool) |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
130 { |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
131 QString text; |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
132 QItemSelectionModel *selectionModel = _history_list_view->selectionModel (); |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
133 QModelIndexList rows = selectionModel->selectedRows (); |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
134 |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
135 for (QModelIndexList::iterator it = rows.begin (); it != rows.end (); it++) |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
136 { |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
137 if ((*it).isValid ()) |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
138 text += (*it).data().toString() + "\n"; |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
139 } |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
140 |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
141 if (text.length () > 0) |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
142 emit command_create_script (text); |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
143 } |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
144 |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
145 |
744ff2fe11ce
add create script context menu to history window
John Donoghue <john.donoghue@ieee.org>
parents:
16447
diff
changeset
|
146 void |
14712
5cb54cca8a06
Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14709
diff
changeset
|
147 history_dock_widget::handle_double_click (QModelIndex modelIndex) |
13546
5ef33f99a078
Command get inserted by double clicking in the command history again.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13545
diff
changeset
|
148 { |
15447
352349219529
Added multiline copy and execution to command history in IDE (bug #36884)
John Swensen <jpswensen@gmail.com>
parents:
15402
diff
changeset
|
149 emit command_double_clicked (modelIndex.data().toString()+"\n"); |
13546
5ef33f99a078
Command get inserted by double clicking in the command history again.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13545
diff
changeset
|
150 } |
13577
e440b3f32f02
Fixed bug with closing subwindows.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13549
diff
changeset
|
151 |
e440b3f32f02
Fixed bug with closing subwindows.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13549
diff
changeset
|
152 void |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
153 history_dock_widget::set_history (const QStringList& hist) |
14720
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
154 { |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
155 _history_model->setStringList (hist); |
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
156 _history_list_view->scrollToBottom (); |
14720
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
157 } |
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
158 |
cecc7da96e2a
Added update events for the command history model and workspace model.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
159 void |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
160 history_dock_widget::append_history (const QString& hist_entry) |
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
161 { |
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
162 QStringList lst = _history_model->stringList (); |
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
163 lst.append (hist_entry); |
17208
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
164 |
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
165 QScrollBar *scroll_bar = _history_list_view->verticalScrollBar (); |
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
166 |
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
167 bool at_bottom = scroll_bar->maximum () - scroll_bar->value () < 1; |
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
168 |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
169 _history_model->setStringList (lst); |
17208
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
170 |
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
171 // Scroll if slider position at bottom. |
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
172 if (at_bottom) |
2527bc7200ee
Only scroll history window if it is positioned at bottom.
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
16881
diff
changeset
|
173 _history_list_view->scrollToBottom (); |
16431
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
174 } |
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
175 |
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
176 void |
5982d469f79b
use signal for setting, appending to, and clearing history widget
John W. Eaton <jwe@octave.org>
parents:
16351
diff
changeset
|
177 history_dock_widget::clear_history (void) |
14814
61c80e9326a8
Clearing the command history works.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14812
diff
changeset
|
178 { |
61c80e9326a8
Clearing the command history works.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14812
diff
changeset
|
179 _history_model->setStringList (QStringList ()); |
61c80e9326a8
Clearing the command history works.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14812
diff
changeset
|
180 } |
16881
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
181 |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
182 void |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
183 history_dock_widget::copyClipboard () |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
184 { |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
185 if(_history_list_view->hasFocus()) |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
186 handle_contextmenu_copy(true); |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
187 if(_filter_line_edit->hasFocus () && _filter_line_edit->hasSelectedText ()) |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
188 { |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
189 QClipboard *clipboard = QApplication::clipboard (); |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
190 clipboard->setText ( _filter_line_edit->selectedText ()); |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
191 } |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
192 } |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
193 |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
194 void |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
195 history_dock_widget::pasteClipboard () |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
196 { |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
197 if(_filter_line_edit->hasFocus ()) |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
198 { |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
199 QClipboard *clipboard = QApplication::clipboard (); |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
200 QString str = clipboard->text (); |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
201 if (str.length() > 0) |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
202 _filter_line_edit->insert (str); |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
203 } |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
204 } |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16798
diff
changeset
|
205 |