annotate libgui/src/workspace-view.cc @ 17530:ef8315ecc0d0

Fully uint32 type support
author LYH <lyh.kernel@gmail.com>
date Fri, 27 Sep 2013 06:50:59 +0800
parents 944ade6e7f66
children
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
16463
8e2a853cdd7d derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents: 16462
diff changeset
3 Copyright (C) 2013 John W. Eaton
15204
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
4 Copyright (C) 2011-2012 Jacob Dawid
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
5
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
6 This file is part of Octave.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
7
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
8 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
9 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
10 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
11 option) any later version.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
12
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
13 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
14 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
15 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
16 for more details.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
17
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
18 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
19 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
20 <http://www.gnu.org/licenses/>.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
21
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
22 */
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
23
15286
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
24 #ifdef HAVE_CONFIG_H
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
25 #include <config.h>
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
26 #endif
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
27
16521
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
28 #include <QInputDialog>
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
29 #include <QApplication>
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
30 #include <QClipboard>
16502
45ae1038ee89 allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents: 16478
diff changeset
31 #include <QMessageBox>
45ae1038ee89 allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents: 16478
diff changeset
32 #include <QLineEdit>
15460
7f36f7dc25b2 save and restore the columns order and width of the workspace-view
Torsten <ttl@justmail.de>
parents: 15389
diff changeset
33 #include <QHeaderView>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
34 #include <QHBoxLayout>
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
35 #include <QVBoxLayout>
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
36 #include <QPushButton>
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
37 #include <QMenu>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
38
16502
45ae1038ee89 allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents: 16478
diff changeset
39 #include "workspace-view.h"
45ae1038ee89 allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents: 16478
diff changeset
40 #include "resource-manager.h"
45ae1038ee89 allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents: 16478
diff changeset
41
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
42 workspace_view::workspace_view (QWidget *p)
16521
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
43 : octave_dock_widget (p), view (new QTableView (this))
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
44 {
13683
25dc40d24a44 Renamed VariablesDockWidget to WorkspaceView and optimized memory footprint for 30%.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13678
diff changeset
45 setObjectName ("WorkspaceView");
16478
079ec7ce60e0 delete useless connection; style fixes
John W. Eaton <jwe@octave.org>
parents: 16477
diff changeset
46 setWindowIcon (QIcon (":/actions/icons/logo.png"));
16798
d749c9b588e5 make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
47 set_title (tr ("Workspace"));
16459
cbc39a3d0c42 improve encapsulation of workspace window object
John W. Eaton <jwe@octave.org>
parents: 16445
diff changeset
48 setStatusTip (tr ("View the variables in the active workspace."));
13523
103b7bebb38f Moved load/save/clear workspace into main menu.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13506
diff changeset
49
16463
8e2a853cdd7d derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents: 16462
diff changeset
50 view->setWordWrap (false);
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
51 view->setContextMenuPolicy (Qt::CustomContextMenu);
16572
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
52 view_previous_row_count = 0;
13523
103b7bebb38f Moved load/save/clear workspace into main menu.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13506
diff changeset
53
14874
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
54 // Set an empty widget, so we can assign a layout to it.
13523
103b7bebb38f Moved load/save/clear workspace into main menu.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13506
diff changeset
55 setWidget (new QWidget (this));
14874
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
56
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
57 // Create a new layout and add widgets to it.
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
58 QVBoxLayout *vbox_layout = new QVBoxLayout ();
16445
3f8d3fc907af store workspace model in main_window, not in workspace view
John W. Eaton <jwe@octave.org>
parents: 16444
diff changeset
59 vbox_layout->addWidget (view);
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
60 vbox_layout->setMargin (2);
14874
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
61
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
62 // Set the empty widget to have our layout.
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
63 widget ()->setLayout (vbox_layout);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
64
14874
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
65 // Initialize collapse/expand state of the workspace subcategories.
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 14997
diff changeset
66
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 14997
diff changeset
67 QSettings *settings = resource_manager::get_settings ();
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 14997
diff changeset
68
15460
7f36f7dc25b2 save and restore the columns order and width of the workspace-view
Torsten <ttl@justmail.de>
parents: 15389
diff changeset
69 // Initialize column order and width of the workspace
7f36f7dc25b2 save and restore the columns order and width of the workspace-view
Torsten <ttl@justmail.de>
parents: 15389
diff changeset
70
16477
64727ed135cb use QTableView instead of QTreeView to display workspace
John Donoghue <john.donoghue@ieee.org>
parents: 16468
diff changeset
71 view->horizontalHeader ()->restoreState (settings->value ("workspaceview/column_state").toByteArray ());
15460
7f36f7dc25b2 save and restore the columns order and width of the workspace-view
Torsten <ttl@justmail.de>
parents: 15389
diff changeset
72
16502
45ae1038ee89 allow renaming of variables in workspace viewer
John W. Eaton <jwe@octave.org>
parents: 16478
diff changeset
73 // Connect signals and slots.
14874
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
74
16478
079ec7ce60e0 delete useless connection; style fixes
John W. Eaton <jwe@octave.org>
parents: 16477
diff changeset
75 connect (view, SIGNAL (customContextMenuRequested (const QPoint&)),
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
76 this, SLOT(contextmenu_requested (const QPoint&)));
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
77
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
78 connect (this, SIGNAL (command_requested (const QString&)),
16570
d5ae5aa80d42 preserve pending command line input when running commands from GUI actions
John W. Eaton <jwe@octave.org>
parents: 16521
diff changeset
79 p, SLOT (execute_command_in_terminal (const QString&)));
16610
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
80
13541
b48ac9ad8de0 Highly improved separation of model and view classes.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13536
diff changeset
81 }
13577
e440b3f32f02 Fixed bug with closing subwindows.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13541
diff changeset
82
16463
8e2a853cdd7d derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents: 16462
diff changeset
83 workspace_view::~workspace_view (void)
14997
2d6766e93f7b The GUI now remembers when categories in the workspace view have been closed. Bug #36885
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14874
diff changeset
84 {
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 14997
diff changeset
85 QSettings *settings = resource_manager::get_settings ();
16463
8e2a853cdd7d derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents: 16462
diff changeset
86
8e2a853cdd7d derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents: 16462
diff changeset
87 settings->setValue("workspaceview/column_state",
16477
64727ed135cb use QTableView instead of QTreeView to display workspace
John Donoghue <john.donoghue@ieee.org>
parents: 16468
diff changeset
88 view->horizontalHeader ()->saveState ());
16463
8e2a853cdd7d derive workspace_view from octave_dock_widget; style fixes
John W. Eaton <jwe@octave.org>
parents: 16462
diff changeset
89
16175
6f83158c714c gui: make sure settings are really written into the settings file
Torsten <ttl@justmail.de>
parents: 15552
diff changeset
90 settings->sync ();
14874
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
91 }
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
92
16610
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
93 void workspace_view::setModel (workspace_model *model)
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
94 {
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
95 view->setModel (model);
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
96 _model = model;
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
97 }
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
98
14874
5d74d8b982a5 Forgot to have a fallback lexer when the file suffix is unknown. Removed unused variable and added comments.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14783
diff changeset
99 void
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
100 workspace_view::closeEvent (QCloseEvent *e)
13577
e440b3f32f02 Fixed bug with closing subwindows.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13541
diff changeset
101 {
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
102 emit active_changed (false);
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
103 QDockWidget::closeEvent (e);
13577
e440b3f32f02 Fixed bug with closing subwindows.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13541
diff changeset
104 }
15552
bbbb89cc338f make a floating widget behave like a normal window (bug #37190)
Torsten <ttl@justmail.de>
parents: 15460
diff changeset
105
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
106 void
16572
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
107 workspace_view::contextmenu_requested (const QPoint& qpos)
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
108 {
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
109 QMenu menu (this);
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
110
16572
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
111 QModelIndex index = view->indexAt (qpos);
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
112 QAbstractItemModel *m = view->model ();
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
113
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
114 // if it isnt Local, Glocal etc, allow the ctx menu
16521
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
115 if (index.isValid() && index.column () == 0)
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
116 {
16478
079ec7ce60e0 delete useless connection; style fixes
John W. Eaton <jwe@octave.org>
parents: 16477
diff changeset
117 index = index.sibling (index.row(), 0);
16477
64727ed135cb use QTableView instead of QTreeView to display workspace
John Donoghue <john.donoghue@ieee.org>
parents: 16468
diff changeset
118
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
119 QMap<int, QVariant> item_data = m->itemData (index);
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
120
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
121 QString var_name = item_data[0].toString ();
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
122
16521
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
123 menu.addAction (tr ("Copy"), this,
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
124 SLOT (handle_contextmenu_copy ()));
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
125
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
126 QAction *rename = menu.addAction (tr ("Rename"), this,
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
127 SLOT (handle_contextmenu_rename ()));
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
128
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
129 const workspace_model *wm = static_cast<const workspace_model *> (m);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
130
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
131 if (! wm->is_top_level ())
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
132 {
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
133 rename->setDisabled (true);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
134 rename->setToolTip (tr ("Only top-level symbols may be renamed."));
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
135 }
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
136
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
137 menu.addSeparator ();
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
138
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
139 menu.addAction ("disp(" + var_name + ")", this,
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
140 SLOT (handle_contextmenu_disp ()));
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
141
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
142 menu.addAction ("plot(" + var_name + ")", this,
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
143 SLOT (handle_contextmenu_plot ()));
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
144
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
145 menu.addAction ("stem(" + var_name + ")", this,
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
146 SLOT (handle_contextmenu_stem ()));
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
147
16572
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
148 menu.exec (view->mapToGlobal (qpos));
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
149 }
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
150 }
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
151
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
152 void
16521
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
153 workspace_view::handle_contextmenu_copy (void)
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
154 {
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
155 QModelIndex index = view->currentIndex ();
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
156
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
157 if (index.isValid ())
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
158 {
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
159 index = index.sibling(index.row(), 0);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
160
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
161 QAbstractItemModel *m = view->model ();
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
162
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
163 QMap<int, QVariant> item_data = m->itemData (index);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
164
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
165 QString var_name = item_data[0].toString ();
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
166
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
167 QClipboard *clipboard = QApplication::clipboard ();
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
168
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
169 clipboard->setText (var_name);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
170 }
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
171 }
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
172
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
173 void
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
174 workspace_view::handle_contextmenu_rename (void)
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
175 {
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
176 QModelIndex index = view->currentIndex ();
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
177
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
178 if (index.isValid ())
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
179 {
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
180 index = index.sibling(index.row(), 0);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
181
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
182 QAbstractItemModel *m = view->model ();
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
183
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
184 QMap<int, QVariant> item_data = m->itemData (index);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
185
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
186 QString var_name = item_data[0].toString ();
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
187
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
188 QInputDialog* inputDialog = new QInputDialog ();
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
189
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
190 inputDialog->setOptions (QInputDialog::NoButtons);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
191
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
192 bool ok = false;
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
193
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
194 QString new_name
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
195 = inputDialog->getText (0, "Rename Variable", "New name:",
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
196 QLineEdit::Normal, var_name, &ok);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
197
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
198 if (ok && ! new_name.isEmpty ())
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
199 m->setData (index, new_name, Qt::EditRole);
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
200 }
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
201 }
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
202
dbc7018be4be use context menu for workspace viewer rename and copy to clipboard operations
John W. Eaton <jwe@octave.org>
parents: 16502
diff changeset
203 void
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
204 workspace_view::handle_contextmenu_disp (void)
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
205 {
16575
1a1f8199b5bb generate single-line commands from workspace view context menu
John W. Eaton <jwe@octave.org>
parents: 16572
diff changeset
206 relay_contextmenu_command ("disp");
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
207 }
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
208
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
209 void
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
210 workspace_view::handle_contextmenu_plot (void)
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
211 {
16575
1a1f8199b5bb generate single-line commands from workspace view context menu
John W. Eaton <jwe@octave.org>
parents: 16572
diff changeset
212 relay_contextmenu_command ("figure (); plot");
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
213 }
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
214
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
215 void
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
216 workspace_view::handle_contextmenu_stem (void)
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
217 {
16575
1a1f8199b5bb generate single-line commands from workspace view context menu
John W. Eaton <jwe@octave.org>
parents: 16572
diff changeset
218 relay_contextmenu_command ("figure (); stem");
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
219 }
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
220
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
221 void
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
222 workspace_view::relay_contextmenu_command (const QString& cmdname)
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
223 {
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
224 QModelIndex index = view->currentIndex ();
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
225
16477
64727ed135cb use QTableView instead of QTreeView to display workspace
John Donoghue <john.donoghue@ieee.org>
parents: 16468
diff changeset
226 if (index.isValid ())
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
227 {
16477
64727ed135cb use QTableView instead of QTreeView to display workspace
John Donoghue <john.donoghue@ieee.org>
parents: 16468
diff changeset
228 index = index.sibling(index.row(), 0);
64727ed135cb use QTableView instead of QTreeView to display workspace
John Donoghue <john.donoghue@ieee.org>
parents: 16468
diff changeset
229
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
230 QAbstractItemModel *m = view->model ();
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
231
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
232 QMap<int, QVariant> item_data = m->itemData (index);
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
233
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
234 QString var_name = item_data[0].toString ();
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
235
16575
1a1f8199b5bb generate single-line commands from workspace view context menu
John W. Eaton <jwe@octave.org>
parents: 16572
diff changeset
236 emit command_requested (cmdname + " (" + var_name + ");");
16462
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
237 }
8c666c7b0e5d Added context menu to workspace variable display
John Donoghue <john.donoghue@ieee.org>
parents: 16459
diff changeset
238 }
16572
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
239
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
240 void
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
241 workspace_view::handle_model_changed (void)
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
242 {
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
243 // Just modify those rows that have been added rather than go through
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
244 // the whole list. For-loop test will handle when number of rows reduced.
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
245 QFontMetrics fm = view->fontMetrics ();
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
246 int row_height = fm.height ();
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
247 int new_row_count = view->model ()->rowCount ();
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
248 for (int i = view_previous_row_count; i < new_row_count; i++)
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
249 view->setRowHeight (i, row_height);
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
250 view_previous_row_count = new_row_count;
17941fedd4ce Change workspace row height to font height.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16570
diff changeset
251 }
16610
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
252
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
253 void
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
254 workspace_view::notice_settings (const QSettings *settings)
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
255 {
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
256 _model->notice_settings (settings); // update colors of model first
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
257
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
258 QString tool_tip;
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
259 tool_tip = QString (tr ("View the variables in the active workspace.<br>"));
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
260 tool_tip += QString (tr ("Colors for the storage class:"));
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
261 for (int i = 0; i < resource_manager::storage_class_chars ().length (); i++)
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
262 {
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
263 tool_tip += QString ("<div style=\"background-color:%1;color:#000000\">%2</div>")
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
264 .arg (_model->storage_class_color (i).name ())
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
265 .arg (resource_manager::storage_class_names ().at (i));
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
266 }
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
267 setToolTip (tool_tip);
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16575
diff changeset
268 }
16881
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16798
diff changeset
269
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16798
diff changeset
270 void
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16798
diff changeset
271 workspace_view::copyClipboard ()
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16798
diff changeset
272 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16798
diff changeset
273 if (view->hasFocus ())
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16798
diff changeset
274 handle_contextmenu_copy ();
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16798
diff changeset
275 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16798
diff changeset
276