GNU Octave
7.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
files-dock-widget.h
Go to the documentation of this file.
1
////////////////////////////////////////////////////////////////////////
2
//
3
// Copyright (C) 2011-2022 The Octave Project Developers
4
//
5
// See the file COPYRIGHT.md in the top-level directory of this
6
// distribution or <https://octave.org/copyright/>.
7
//
8
// This file is part of Octave.
9
//
10
// Octave is free software: you can redistribute it and/or modify it
11
// under the terms of the GNU General Public License as published by
12
// the Free Software Foundation, either version 3 of the License, or
13
// (at your option) any later version.
14
//
15
// Octave is distributed in the hope that it will be useful, but
16
// WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
// GNU General Public License for more details.
19
//
20
// You should have received a copy of the GNU General Public License
21
// along with Octave; see the file COPYING. If not, see
22
// <https://www.gnu.org/licenses/>.
23
//
24
////////////////////////////////////////////////////////////////////////
25
26
#if ! defined (octave_files_dock_widget_h)
27
#define octave_files_dock_widget_h 1
28
29
#include <QAction>
30
#include <QComboBox>
31
#include <QDate>
32
#include <QFileSystemModel>
33
#include <QList>
34
#include <QListView>
35
#include <QListWidget>
36
#include <QMouseEvent>
37
#include <QObject>
38
#include <QSignalMapper>
39
#include <QToolBar>
40
#include <QToolButton>
41
#include <QTreeView>
42
#include <QVBoxLayout>
43
#include <QWidget>
44
45
#include "
octave-dock-widget.h
"
46
47
namespace
octave
48
{
49
class
base_qobject;
50
51
//! Dock widget to display files in the current directory.
52
53
class
files_dock_widget
:
public
octave_dock_widget
54
{
55
Q_OBJECT
56
57
public
:
58
59
files_dock_widget
(
QWidget
*parent,
base_qobject
& oct_qobj);
60
61
~files_dock_widget
(
void
) =
default
;
62
63
signals:
64
65
//! Emitted, whenever the user requested to open a file.
66
67
void
open_file
(
const
QString& fileName);
68
69
//! Emitted, whenever the currently displayed directory changed.
70
71
void
displayed_directory_changed
(
const
QString& dir);
72
73
//! Emitted, whenever the user requested to load a file in the text editor.
74
75
void
load_file_signal
(
const
QString& fileName);
76
77
//! Emitted, whenever the user requested to open an unknown type file.
78
79
void
open_any_signal
(
const
QString& fileName);
80
81
//! Emitted, whenever the user requested to run a file.
82
83
void
run_file_signal
(
const
QFileInfo& info);
84
85
//! Emitted, whenever wants to search for a file .
86
87
void
find_files_signal
(
const
QString& startdir);
88
89
//! Emitted, whenever the user removes or renames a file.
90
91
void
file_remove_signal
(
const
QString& old_name,
const
QString& new_name);
92
93
//! Emitted, when a file or directory is renamed.
94
95
void
file_renamed_signal
(
bool
);
96
97
//! Emitted, when the path has to be modified
98
99
void
modify_path_signal
(
const
QStringList& dir_list,
bool
rm,
100
bool
subdirs);
101
102
public
slots:
103
104
//! Slot for handling a change in directory via double click.
105
106
void
item_double_clicked
(
const
QModelIndex& index);
107
108
//! Slot for handling the up-directory button in the toolbar.
109
110
void
change_directory_up
(
void
);
111
112
//! Slot for handling the sync octave directory button in the toolbar.
113
114
void
do_sync_octave_directory
(
void
);
115
116
//! Slot for handling the sync browser directory button in the toolbar.
117
118
void
do_sync_browser_directory
(
void
);
119
120
//! Sets the current directory being displayed.
121
122
void
set_current_directory
(
const
QString& dir);
123
124
//! Accepts user input a the line edit for the current directory.
125
126
void
accept_directory_line_edit
(
void
);
127
128
//! Set the internal variable that holds the actual octave variable.
129
130
void
update_octave_directory
(
const
QString& dir);
131
132
//! Tells the widget to react on changed settings.
133
134
void
notice_settings
(
const
gui_settings
*
settings
);
135
136
void
save_settings
(
void
);
137
138
private
slots:
139
140
void
headercontextmenu_requested
(
const
QPoint& pos);
141
void
toggle_header
(
int
col);
142
143
//! Context menu wanted.
144
145
void
contextmenu_requested
(
const
QPoint& pos);
146
147
//! Context menu actions.
148
//!@{
149
void
contextmenu_open
(
bool
);
150
void
contextmenu_open_in_editor
(
bool
);
151
void
contextmenu_open_in_app
(
bool
);
152
void
contextmenu_copy_selection
(
bool
);
153
void
contextmenu_run
(
bool
);
154
void
contextmenu_load
(
bool
);
155
void
contextmenu_rename
(
bool
);
156
void
contextmenu_delete
(
bool
);
157
void
contextmenu_newfile
(
bool
);
158
void
contextmenu_newdir
(
bool
);
159
void
contextmenu_setcurrentdir
(
bool
);
160
void
contextmenu_add_to_path
(
bool
,
bool
rm=
false
,
bool
subdirs=
false
);
161
void
contextmenu_add_to_path_subdirs
(
bool
);
162
void
contextmenu_rm_from_path
(
bool
);
163
void
contextmenu_rm_from_path_subdirs
(
bool
);
164
void
contextmenu_findfiles
(
bool
);
165
//!@}
166
167
//! Popdown menu options.
168
//!@{
169
void
popdownmenu_newfile
(
bool
);
170
void
popdownmenu_newdir
(
bool
);
171
void
popdownmenu_search_dir
(
bool
);
172
void
popdownmenu_findfiles
(
bool
);
173
void
popdownmenu_home
(
bool
);
174
//!@}
175
176
//! Inherited from octave_doc_widget.
177
//!@{
178
void
copyClipboard
();
179
void
pasteClipboard
();
180
void
selectAll
();
181
//!@}
182
183
private
:
184
185
//! Get currently selected QFileInfo object.
186
187
QList<QFileInfo>
get_selected_items_info
(
bool
);
188
189
//! Process new file/directory actions
190
191
void
process_new_file
(
const
QString& parent_name);
192
void
process_new_dir
(
const
QString& parent_name);
193
194
//! Process setting current dir or find in files
195
196
void
process_set_current_dir
(
const
QString& parent_name);
197
void
process_find_files
(
const
QString& dir_name);
198
199
//! set a new directory or open a file
200
201
void
display_directory
(
const
QString& dir,
bool
set_octave_dir =
true
);
202
203
void
open_item_in_app
(
const
QModelIndex& index);
204
205
//! Variables for the actions
206
207
QToolBar *
m_navigation_tool_bar
;
208
QAction *
m_sync_octave_directory_action
;
209
QAction *
m_sync_browser_directory_action
;
210
211
//! The file system model.
212
213
QFileSystemModel *
m_file_system_model
;
214
215
//! The file system view.
216
//!@{
217
QTreeView
*
m_file_tree_view
;
218
QComboBox *
m_current_directory
;
219
//!@}
220
221
//! Flag if syncing with Octave.
222
223
bool
m_sync_octave_dir
;
224
225
//! The actual Octave directory.
226
227
QString
m_octave_dir
;
228
229
enum
{
MaxMRUDirs
= 10 };
230
231
QStringList
m_columns_shown
;
232
QStringList
m_columns_shown_keys
;
233
QList <QVariant>
m_columns_shown_defs
;
234
QSignalMapper *
m_sig_mapper
;
235
};
236
}
237
238
#endif
QList
QTreeView
QWidget
octave::base_qobject
Base class for Octave interfaces that use Qt.
Definition:
octave-qobject.h:99
octave::files_dock_widget
Dock widget to display files in the current directory.
Definition:
files-dock-widget.h:54
octave::files_dock_widget::contextmenu_copy_selection
void contextmenu_copy_selection(bool)
Context menu actions.
Definition:
files-dock-widget.cc:642
octave::files_dock_widget::contextmenu_rm_from_path_subdirs
void contextmenu_rm_from_path_subdirs(bool)
Context menu actions.
Definition:
files-dock-widget.cc:890
octave::files_dock_widget::m_octave_dir
QString m_octave_dir
The actual Octave directory.
Definition:
files-dock-widget.h:227
octave::files_dock_widget::m_sync_octave_directory_action
QAction * m_sync_octave_directory_action
Definition:
files-dock-widget.h:208
octave::files_dock_widget::contextmenu_add_to_path_subdirs
void contextmenu_add_to_path_subdirs(bool)
Context menu actions.
Definition:
files-dock-widget.cc:880
octave::files_dock_widget::contextmenu_add_to_path
void contextmenu_add_to_path(bool, bool rm=false, bool subdirs=false)
Context menu actions.
Definition:
files-dock-widget.cc:867
octave::files_dock_widget::process_new_dir
void process_new_dir(const QString &parent_name)
Definition:
files-dock-widget.cc:1015
octave::files_dock_widget::do_sync_browser_directory
void do_sync_browser_directory(void)
Slot for handling the sync browser directory button in the toolbar.
Definition:
files-dock-widget.cc:368
octave::files_dock_widget::~files_dock_widget
~files_dock_widget(void)=default
octave::files_dock_widget::open_item_in_app
void open_item_in_app(const QModelIndex &index)
Definition:
files-dock-widget.cc:429
octave::files_dock_widget::process_new_file
void process_new_file(const QString &parent_name)
Process new file/directory actions.
Definition:
files-dock-widget.cc:997
octave::files_dock_widget::m_sync_browser_directory_action
QAction * m_sync_browser_directory_action
Definition:
files-dock-widget.h:209
octave::files_dock_widget::headercontextmenu_requested
void headercontextmenu_requested(const QPoint &pos)
Definition:
files-dock-widget.cc:465
octave::files_dock_widget::contextmenu_run
void contextmenu_run(bool)
Context menu actions.
Definition:
files-dock-widget.cc:676
octave::files_dock_widget::open_file
void open_file(const QString &fileName)
Emitted, whenever the user requested to open a file.
octave::files_dock_widget::open_any_signal
void open_any_signal(const QString &fileName)
Emitted, whenever the user requested to open an unknown type file.
octave::files_dock_widget::update_octave_directory
void update_octave_directory(const QString &dir)
Set the internal variable that holds the actual octave variable.
Definition:
files-dock-widget.cc:373
octave::files_dock_widget::contextmenu_rm_from_path
void contextmenu_rm_from_path(bool)
Context menu actions.
Definition:
files-dock-widget.cc:885
octave::files_dock_widget::m_sig_mapper
QSignalMapper * m_sig_mapper
Definition:
files-dock-widget.h:234
octave::files_dock_widget::process_set_current_dir
void process_set_current_dir(const QString &parent_name)
Process setting current dir or find in files.
Definition:
files-dock-widget.cc:1031
octave::files_dock_widget::get_selected_items_info
QList< QFileInfo > get_selected_items_info(bool)
Get currently selected QFileInfo object.
Definition:
files-dock-widget.cc:806
octave::files_dock_widget::m_file_tree_view
QTreeView * m_file_tree_view
The file system view.
Definition:
files-dock-widget.h:217
octave::files_dock_widget::modify_path_signal
void modify_path_signal(const QStringList &dir_list, bool rm, bool subdirs)
Emitted, when the path has to be modified.
octave::files_dock_widget::notice_settings
void notice_settings(const gui_settings *settings)
Tells the widget to react on changed settings.
Definition:
files-dock-widget.cc:913
octave::files_dock_widget::contextmenu_load
void contextmenu_load(bool)
Context menu actions.
Definition:
files-dock-widget.cc:661
octave::files_dock_widget::copyClipboard
void copyClipboard()
Inherited from octave_doc_widget.
Definition:
files-dock-widget.cc:1041
octave::files_dock_widget::selectAll
void selectAll()
Inherited from octave_doc_widget.
Definition:
files-dock-widget.cc:1069
octave::files_dock_widget::m_navigation_tool_bar
QToolBar * m_navigation_tool_bar
Variables for the actions.
Definition:
files-dock-widget.h:207
octave::files_dock_widget::change_directory_up
void change_directory_up(void)
Slot for handling the up-directory button in the toolbar.
Definition:
files-dock-widget.cc:351
octave::files_dock_widget::run_file_signal
void run_file_signal(const QFileInfo &info)
Emitted, whenever the user requested to run a file.
octave::files_dock_widget::accept_directory_line_edit
void accept_directory_line_edit(void)
Accepts user input a the line edit for the current directory.
Definition:
files-dock-widget.cc:346
octave::files_dock_widget::popdownmenu_newdir
void popdownmenu_newdir(bool)
Popdown menu options.
Definition:
files-dock-widget.cc:987
octave::files_dock_widget::contextmenu_newdir
void contextmenu_newdir(bool)
Context menu actions.
Definition:
files-dock-widget.cc:843
octave::files_dock_widget::display_directory
void display_directory(const QString &dir, bool set_octave_dir=true)
set a new directory or open a file
Definition:
files-dock-widget.cc:380
octave::files_dock_widget::popdownmenu_search_dir
void popdownmenu_search_dir(bool)
Popdown menu options.
Definition:
files-dock-widget.cc:966
octave::files_dock_widget::popdownmenu_home
void popdownmenu_home(bool)
Popdown menu options.
Definition:
files-dock-widget.cc:956
octave::files_dock_widget::contextmenu_open
void contextmenu_open(bool)
Context menu actions.
Definition:
files-dock-widget.cc:605
octave::files_dock_widget::files_dock_widget
files_dock_widget(QWidget *parent, base_qobject &oct_qobj)
Definition:
files-dock-widget.cc:73
octave::files_dock_widget::m_columns_shown
QStringList m_columns_shown
Definition:
files-dock-widget.h:231
octave::files_dock_widget::m_columns_shown_keys
QStringList m_columns_shown_keys
Definition:
files-dock-widget.h:232
octave::files_dock_widget::contextmenu_open_in_editor
void contextmenu_open_in_editor(bool)
Context menu actions.
Definition:
files-dock-widget.cc:619
octave::files_dock_widget::item_double_clicked
void item_double_clicked(const QModelIndex &index)
Slot for handling a change in directory via double click.
Definition:
files-dock-widget.cc:334
octave::files_dock_widget::m_sync_octave_dir
bool m_sync_octave_dir
Flag if syncing with Octave.
Definition:
files-dock-widget.h:223
octave::files_dock_widget::pasteClipboard
void pasteClipboard()
Inherited from octave_doc_widget.
Definition:
files-dock-widget.cc:1057
octave::files_dock_widget::contextmenu_newfile
void contextmenu_newfile(bool)
Context menu actions.
Definition:
files-dock-widget.cc:827
octave::files_dock_widget::m_file_system_model
QFileSystemModel * m_file_system_model
The file system model.
Definition:
files-dock-widget.h:213
octave::files_dock_widget::MaxMRUDirs
@ MaxMRUDirs
Definition:
files-dock-widget.h:229
octave::files_dock_widget::contextmenu_requested
void contextmenu_requested(const QPoint &pos)
Context menu wanted.
Definition:
files-dock-widget.cc:507
octave::files_dock_widget::do_sync_octave_directory
void do_sync_octave_directory(void)
Slot for handling the sync octave directory button in the toolbar.
Definition:
files-dock-widget.cc:360
octave::files_dock_widget::file_remove_signal
void file_remove_signal(const QString &old_name, const QString &new_name)
Emitted, whenever the user removes or renames a file.
octave::files_dock_widget::popdownmenu_findfiles
void popdownmenu_findfiles(bool)
Popdown menu options.
Definition:
files-dock-widget.cc:982
octave::files_dock_widget::m_current_directory
QComboBox * m_current_directory
The file system view.
Definition:
files-dock-widget.h:218
octave::files_dock_widget::process_find_files
void process_find_files(const QString &dir_name)
Definition:
files-dock-widget.cc:1036
octave::files_dock_widget::save_settings
void save_settings(void)
Definition:
files-dock-widget.cc:304
octave::files_dock_widget::toggle_header
void toggle_header(int col)
Definition:
files-dock-widget.cc:439
octave::files_dock_widget::contextmenu_rename
void contextmenu_rename(bool)
Context menu actions.
Definition:
files-dock-widget.cc:690
octave::files_dock_widget::m_columns_shown_defs
QList< QVariant > m_columns_shown_defs
Definition:
files-dock-widget.h:233
octave::files_dock_widget::find_files_signal
void find_files_signal(const QString &startdir)
Emitted, whenever wants to search for a file .
octave::files_dock_widget::contextmenu_setcurrentdir
void contextmenu_setcurrentdir(bool)
Context menu actions.
Definition:
files-dock-widget.cc:859
octave::files_dock_widget::contextmenu_delete
void contextmenu_delete(bool)
Context menu actions.
Definition:
files-dock-widget.cc:730
octave::files_dock_widget::load_file_signal
void load_file_signal(const QString &fileName)
Emitted, whenever the user requested to load a file in the text editor.
octave::files_dock_widget::popdownmenu_newfile
void popdownmenu_newfile(bool)
Popdown menu options.
Definition:
files-dock-widget.cc:992
octave::files_dock_widget::set_current_directory
void set_current_directory(const QString &dir)
Sets the current directory being displayed.
Definition:
files-dock-widget.cc:341
octave::files_dock_widget::file_renamed_signal
void file_renamed_signal(bool)
Emitted, when a file or directory is renamed.
octave::files_dock_widget::contextmenu_findfiles
void contextmenu_findfiles(bool)
Context menu actions.
Definition:
files-dock-widget.cc:895
octave::files_dock_widget::contextmenu_open_in_app
void contextmenu_open_in_app(bool)
Context menu actions.
Definition:
files-dock-widget.cc:633
octave::files_dock_widget::displayed_directory_changed
void displayed_directory_changed(const QString &dir)
Emitted, whenever the currently displayed directory changed.
octave::gui_settings
Definition:
gui-settings.h:36
octave::octave_dock_widget
Definition:
octave-dock-widget.h:87
settings
Definition:
settings.h:45
octave
Definition:
idx-vector.cc:46
octave-dock-widget.h
libgui
src
files-dock-widget.h
Generated on Sun Jun 26 2022 01:27:27 for GNU Octave by
1.9.4