annotate libgui/src/set-path-dialog.cc @ 27412:da1f59fe04b3

try to use consitent ordering for include files in libgui sources Use alphabetical ordering for include files in libgui sources. Group in blocks in teh following order: standard header files Qt header files libgui header files liboctave header files libinterp header files Use forward declarations for Octave classes where possible. Files affected: color-picker.h, dialog.cc, dialog.h, documentation-dock-widget.h, documentation.cc, dw-main-window.cc, dw-main-window.h, external-editor-interface.cc, external-editor-interface.h, files-dock-widget.cc, files-dock-widget.h, find-files-dialog.cc, find-files-dialog.h, find-files-model.h, gui-preferences-mw.h, gui-preferences.h, history-dock-widget.cc, history-dock-widget.h, interpreter-qobject.cc, m-editor/file-editor-interface.h, m-editor/file-editor-tab.cc, m-editor/file-editor-tab.h, m-editor/file-editor.cc, m-editor/file-editor.h, m-editor/marker.h, m-editor/octave-qscintilla.cc, m-editor/octave-qscintilla.h, main-window.cc, main-window.h, octave-dock-widget.cc, octave-dock-widget.h, octave-qobject.cc, qt-application.cc, qt-interpreter-events.cc, qt-interpreter-events.h, resource-manager.cc, resource-manager.h, set-path-dialog.cc, set-path-dialog.h, set-path-model.cc, set-path-model.h, settings-dialog.cc, settings-dialog.h, shortcut-manager.cc, shortcut-manager.h, tab-bar.h, terminal-dock-widget.cc, terminal-dock-widget.h, variable-editor.cc, variable-editor.h, welcome-wizard.cc, welcome-wizard.h, workspace-model.cc, workspace-model.h, workspace-view.cc, and workspace-view.h.
author John W. Eaton <jwe@octave.org>
date Sun, 15 Sep 2019 12:28:23 -0400
parents a329a41cf341
children 3fcc650de22f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
1 /*
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
2
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
3 Copyright (C) 2019 JunWang
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
4
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
5 This file is part of Octave.
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
6
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
7 Octave is free software: you can redistribute it and/or modify it
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
8 under the terms of the GNU General Public License as published by
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
9 the Free Software Foundation, either version 3 of the License, or
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
10 (at your option) any later version.
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
11
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
13 WITHOUT ANY WARRANTY; without even the implied warranty of
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
15 GNU General Public License for more details.
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
16
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, see
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
19 <https://www.gnu.org/licenses/>.
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
20
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
21 */
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
22
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
23 #if defined (HAVE_CONFIG_H)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
24 # include "config.h"
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
25 #endif
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
26
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
27 #include <QCheckBox>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
28 #include <QComboBox>
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
29 #include <QDialogButtonBox>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
30 #include <QDirIterator>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
31 #include <QFileDialog>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
32 #include <QFileDialog>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
33 #include <QFileInfo>
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
34 #include <QGridLayout>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
35 #include <QGroupBox>
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
36 #include <QHBoxLayout>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
37 #include <QHeaderView>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
38 #include <QIcon>
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
39 #include <QLabel>
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
40 #include <QLineEdit>
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
41 #include <QListView>
27308
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
42 #include <QMenu>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
43 #include <QPushButton>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
44 #include <QStatusBar>
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
45 #include <QTextStream>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
46 #include <QTimer>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
47 #include <QVBoxLayout>
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
48
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
49 #include "gui-preferences.h"
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27391
diff changeset
50 #include "resource-manager.h"
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
51 #include "set-path-dialog.h"
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
52 #include "set-path-model.h"
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
53
27391
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
54 #include "ovl.h"
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
55
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
56 namespace octave
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
57 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
58 set_path_dialog::set_path_dialog (QWidget *parent)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
59 : QDialog (parent)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
60 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
61 setWindowTitle (tr ("Set Path"));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
62
27310
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
63 set_path_model *model = new set_path_model (this);
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
64
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
65 m_info_label = new QLabel (tr ("All changes take effect immediately."));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
66
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
67 m_add_folder_button = new QPushButton (tr ("Add Folder..."));
27308
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
68
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
69 QMenu *add_dir_menu = new QMenu ();
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
70 m_add_folder_button->setMenu (add_dir_menu);
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
71 add_dir_menu->addAction (tr ("Single Folder"),
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
72 this, SLOT (add_dir (void)));
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
73 add_dir_menu->addAction (tr ("Folder with Subfolders"),
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
74 this, SLOT (add_dir_subdirs (void)));
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
75
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
76 m_move_to_top_button = new QPushButton (tr ("Move to Top"));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
77 m_move_to_bottom_button = new QPushButton (tr ("Move to Bottom"));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
78 m_move_up_button = new QPushButton (tr ("Move Up"));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
79 m_move_down_button = new QPushButton (tr ("Move Down"));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
80 m_remove_button = new QPushButton (tr ("Remove"));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
81
27305
d20c31be3160 add a reload button to the gui path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27298
diff changeset
82 m_reload_button = new QPushButton (tr ("Reload"));
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
83 m_save_button = new QPushButton (tr ("Save"));
27310
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
84
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
85 m_revert_button = new QPushButton (tr ("Revert"));
27310
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
86
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
87 QMenu *revert_menu = new QMenu ();
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
88 m_revert_button->setMenu (revert_menu);
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
89 revert_menu->addAction (tr ("Revert Last Change"),
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
90 model, SLOT (revert_last (void)));
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
91 revert_menu->addAction (tr ("Revert All Changes"),
3e0269067954 combine all revert actions of load path dialog in one pulldown button
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27308
diff changeset
92 model, SLOT (revert (void)));
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
93
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
94 m_save_button->setFocus ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
95
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
96 connect (m_remove_button, SIGNAL (clicked (void)),
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
97 this, SLOT (rm_dir (void)));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
98
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
99 connect (m_move_to_top_button, SIGNAL (clicked (void)),
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
100 this, SLOT (move_dir_top (void)));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
101
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
102 connect (m_move_to_bottom_button, SIGNAL (clicked (void)),
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
103 this, SLOT (move_dir_bottom (void)));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
104
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
105 connect (m_move_up_button, SIGNAL (clicked (void)),
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
106 this, SLOT (move_dir_up (void)));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
107
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
108 connect (m_move_down_button, SIGNAL (clicked (void)),
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
109 this, SLOT (move_dir_down (void)));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
110
27305
d20c31be3160 add a reload button to the gui path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27298
diff changeset
111 connect (m_reload_button, SIGNAL (clicked (void)),
d20c31be3160 add a reload button to the gui path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27298
diff changeset
112 model, SLOT (path_to_model (void)));
d20c31be3160 add a reload button to the gui path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27298
diff changeset
113
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
114 connect (m_save_button, SIGNAL (clicked (void)),
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
115 model, SLOT (save (void)));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
116
27391
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
117 // Any interpreter_event signal from a set_path_model object is
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
118 // handled the same as for the parent set_path_dialog object.
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
119
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
120 connect (model, SIGNAL (interpreter_event (const fcn_callback&)),
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
121 this, SIGNAL (interpreter_event (const fcn_callback&)));
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
122
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
123 connect (model, SIGNAL (interpreter_event (const meth_callback&)),
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
124 this, SIGNAL (interpreter_event (const meth_callback&)));
a329a41cf341 use interpreter_event signals in set_path_dialog object
John W. Eaton <jwe@octave.org>
parents: 27312
diff changeset
125
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
126 m_path_list = new QListView (this);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
127 m_path_list->setWordWrap (false);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
128 m_path_list->setModel (model);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
129 m_path_list->setSelectionBehavior (QAbstractItemView::SelectRows);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
130 m_path_list->setSelectionMode (QAbstractItemView::ExtendedSelection);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
131 m_path_list->setAlternatingRowColors (true);
27305
d20c31be3160 add a reload button to the gui path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27298
diff changeset
132 m_path_list->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
133
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
134 // layout everything
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
135 QDialogButtonBox *button_box = new QDialogButtonBox (Qt::Horizontal);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
136 button_box->addButton (m_save_button, QDialogButtonBox::ActionRole);
27305
d20c31be3160 add a reload button to the gui path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27298
diff changeset
137 button_box->addButton (m_reload_button, QDialogButtonBox::ActionRole);
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
138
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
139 // add dialog close button
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
140 m_close_button = button_box->addButton (QDialogButtonBox::Close);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
141 connect (button_box, SIGNAL (rejected (void)), this, SLOT (close (void)));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
142
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
143 button_box->addButton (m_revert_button, QDialogButtonBox::ActionRole);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
144
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
145 // path edit options
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
146 QDialogButtonBox *path_edit_layout = new QDialogButtonBox (Qt::Vertical);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
147 path_edit_layout->addButton (m_add_folder_button, QDialogButtonBox::ActionRole);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
148 path_edit_layout->addButton (m_move_to_top_button, QDialogButtonBox::ActionRole);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
149 path_edit_layout->addButton (m_move_up_button, QDialogButtonBox::ActionRole);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
150 path_edit_layout->addButton (m_move_down_button, QDialogButtonBox::ActionRole);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
151 path_edit_layout->addButton (m_move_to_bottom_button, QDialogButtonBox::ActionRole);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
152 path_edit_layout->addButton (m_remove_button, QDialogButtonBox::ActionRole);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
153
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
154 // main layout
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
155 QHBoxLayout *main_hboxlayout = new QHBoxLayout;
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
156 main_hboxlayout->addWidget(path_edit_layout);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
157 main_hboxlayout->addWidget(m_path_list);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
158
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
159 QGridLayout *main_layout = new QGridLayout;
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
160 main_layout->addWidget (m_info_label, 0, 0);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
161 main_layout->addLayout (main_hboxlayout, 1, 0);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
162 main_layout->addWidget (button_box,2, 0);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
163
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
164 setLayout (main_layout);
27312
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
165
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
166 QSettings *settings = resource_manager::get_settings ();
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
167 restoreGeometry (
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
168 settings->value(path_dialog_geometry.key).toByteArray());
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
169 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
170
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
171 set_path_dialog::~set_path_dialog (void)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
172 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
173 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
174
27306
82ace1225a9c update path dialog if path is changed from withtin the file browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27305
diff changeset
175 void set_path_dialog::update_model (void)
82ace1225a9c update path dialog if path is changed from withtin the file browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27305
diff changeset
176 {
82ace1225a9c update path dialog if path is changed from withtin the file browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27305
diff changeset
177 set_path_model *m = static_cast<set_path_model *> (m_path_list->model ());
82ace1225a9c update path dialog if path is changed from withtin the file browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27305
diff changeset
178 m->path_to_model ();
82ace1225a9c update path dialog if path is changed from withtin the file browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27305
diff changeset
179 }
82ace1225a9c update path dialog if path is changed from withtin the file browser
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27305
diff changeset
180
27308
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
181 void set_path_dialog::add_dir_common (bool subdirs)
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
182 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
183 QString dir
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
184 = QFileDialog::getExistingDirectory (this, tr ("Open Directory"),
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
185 "",
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
186 (QFileDialog::ShowDirsOnly
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
187 | QFileDialog::DontResolveSymlinks));
27307
7a7709bfb5af path dlg: do not add empty dir when dir selection dialog is canceled
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27306
diff changeset
188
7a7709bfb5af path dlg: do not add empty dir when dir selection dialog is canceled
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27306
diff changeset
189 if (! dir.isEmpty ())
7a7709bfb5af path dlg: do not add empty dir when dir selection dialog is canceled
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27306
diff changeset
190 {
27308
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
191 if (subdirs)
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
192 {
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
193 // Use existing method mofifying load path and updating dialog
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
194 // instead of adding string and updating load path
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
195 octave_value_list dirlist = ovl ();
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
196 dirlist.append (dir.toStdString ());
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
197 emit modify_path_signal (dirlist, false, true);
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
198 }
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
199 else
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
200 {
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
201 set_path_model *m
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
202 = static_cast<set_path_model *> (m_path_list->model ());
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
203 m->add_dir (dir);
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
204 }
27307
7a7709bfb5af path dlg: do not add empty dir when dir selection dialog is canceled
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27306
diff changeset
205 }
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
206 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
207
27308
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
208 void set_path_dialog::add_dir(void)
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
209 {
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
210 add_dir_common (false);
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
211 }
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
212
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
213 void set_path_dialog::add_dir_subdirs (void)
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
214 {
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
215 add_dir_common (true);
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
216 }
401a7cda7c9e add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27307
diff changeset
217
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
218 void set_path_dialog::rm_dir (void)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
219 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
220 set_path_model *m = static_cast<set_path_model *> (m_path_list->model ());
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
221 QItemSelectionModel *selmodel = m_path_list->selectionModel ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
222 QModelIndexList indexlist = selmodel->selectedIndexes();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
223 m->rm_dir (indexlist);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
224
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
225 selmodel->clearSelection ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
226 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
227
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
228 void set_path_dialog::move_dir_up (void)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
229 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
230 set_path_model *m = static_cast<set_path_model *> (m_path_list->model ());
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
231 QItemSelectionModel *selmodel = m_path_list->selectionModel ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
232 QModelIndexList indexlist = selmodel->selectedIndexes();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
233 m->move_dir_up (indexlist);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
234
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
235 // Update selection and view
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
236 selmodel->clearSelection ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
237 int min_row = m->rowCount () - 1;
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
238 for (int i = 0; i < indexlist.length (); i++)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
239 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
240 int new_row = std::max (indexlist.at (i).row () - 1, 0);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
241 min_row = std::min (min_row, new_row);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
242 selmodel->select (m->index (new_row), QItemSelectionModel::Select);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
243 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
244
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
245 m_path_list->scrollTo (m->index (min_row));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
246 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
247
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
248 void set_path_dialog::move_dir_down (void)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
249 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
250 set_path_model *m = static_cast<set_path_model *> (m_path_list->model ());
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
251 QItemSelectionModel *selmodel = m_path_list->selectionModel ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
252 QModelIndexList indexlist = selmodel->selectedIndexes();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
253 m->move_dir_down (indexlist);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
254
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
255 // Update selection and view
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
256 selmodel->clearSelection ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
257 int max_row = 0;
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
258 for (int i = 0; i < indexlist.length (); i++)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
259 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
260 int new_row = std::min (indexlist.at (i).row () + 1, m->rowCount () - 1);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
261 max_row = std::max (max_row, new_row);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
262 selmodel->select (m->index (new_row), QItemSelectionModel::Select);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
263 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
264
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
265 m_path_list->scrollTo (m->index (max_row));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
266 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
267
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
268 void set_path_dialog::move_dir_top (void)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
269 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
270 set_path_model *m = static_cast<set_path_model *> (m_path_list->model ());
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
271 QItemSelectionModel *selmodel = m_path_list->selectionModel ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
272 QModelIndexList indexlist = selmodel->selectedIndexes();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
273 m->move_dir_top (indexlist);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
274
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
275 // Update selection and view
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
276 selmodel->clearSelection ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
277 for (int i = 0; i < indexlist.length (); i++)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
278 selmodel->select (m->index (i), QItemSelectionModel::Select);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
279
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
280 m_path_list->scrollTo (m->index (0));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
281 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
282
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
283 void set_path_dialog::move_dir_bottom (void)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
284 {
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
285 set_path_model *m = static_cast<set_path_model *> (m_path_list->model ());
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
286 QItemSelectionModel *selmodel = m_path_list->selectionModel ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
287 QModelIndexList indexlist = selmodel->selectedIndexes();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
288 m->move_dir_bottom (indexlist);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
289
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
290 // Update selection and view
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
291 selmodel->clearSelection ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
292 int row_count = m->rowCount ();
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
293 for (int i = 0; i < indexlist.length (); i++)
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
294 selmodel->select (m->index (row_count - 1 - i),
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
295 QItemSelectionModel::Select);
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
296
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
297 m_path_list->scrollTo (m->index (row_count - 1));
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
298 }
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
299
27312
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
300 void set_path_dialog::save_settings ()
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
301 {
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
302 QSettings *settings = resource_manager::get_settings ();
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
303 settings->setValue (path_dialog_geometry.key, saveGeometry ());
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
304 }
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
305
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
306 void set_path_dialog::closeEvent (QCloseEvent *e)
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
307 {
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
308 save_settings ();
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
309
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
310 QWidget::closeEvent (e);
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
311 }
b9a436b0400e save and restore last geometry of load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27310
diff changeset
312
27298
1805f8586179 new gui dialog for modifying octaves load path (bug #43549)
JunWang <jstzwj@aliyun.com>
parents:
diff changeset
313 }