Mercurial > octave
annotate libgui/src/files-dock-widget.cc @ 31619:ad014fc78bd6
use individual local gui_settings objects
Previously, we created a single gui_settings object (derived from
QSettings) and accessed it from the resource_manager object. That
design is not necessary and is not the way QSettings was designed to
be used. Instead of managing a single object, we should be using
individual QSettings objects where needed. Each individual QSettings
object manages thread-safe access to a single global collection of
settings. The Qt docs say that operations on QSettings are not thread
safe, but that means that you can't create a QSettings object in one
thread and use it in another without some locking. I'm not sure
whether we were doing that correctly, but with this change it no
longer matters. Each QSettings object does perform locking when
reading or writing the underlying global data.
* resource-manager.h, resource-manager.cc
(resource_manager::m_settings): Delete data member.
(resource_manager::get_settings): Delete.
* annotation-dialog.cc, QTerminal.cc, QTerminal.h, command-widget.cc,
command-widget.h, community-news.cc, dialog.cc,
documentation-bookmarks.cc, documentation-bookmarks.h,
documentation-dock-widget.cc, documentation-dock-widget.h,
documentation.cc, documentation.h, dw-main-window.cc,
dw-main-window.h, external-editor-interface.cc, files-dock-widget.cc,
files-dock-widget.h, find-files-dialog.cc, history-dock-widget.cc,
history-dock-widget.h, file-editor-interface.h, file-editor-tab.cc,
file-editor-tab.h, file-editor.cc, file-editor.h, find-dialog.cc,
octave-qscintilla.cc, main-window.cc, main-window.h, news-reader.cc,
octave-dock-widget.cc, octave-dock-widget.h, qt-interpreter-events.cc,
qt-interpreter-events.h, release-notes.cc, resource-manager.cc,
resource-manager.h, set-path-dialog.cc, settings-dialog.cc,
settings-dialog.h, shortcut-manager.cc, shortcut-manager.h,
terminal-dock-widget.cc, terminal-dock-widget.h, variable-editor.cc,
variable-editor.h, welcome-wizard.cc, workspace-model.cc,
workspace-model.h, workspace-view.cc: Use local gui_settings objects
instead of accessing a pointer to a single gui_settings object owned
by the resource_manager object.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 02 Dec 2022 14:23:53 -0500 |
parents | 4869dc33405a |
children | 0645ea65ca6b |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30398
diff
changeset
|
3 // Copyright (C) 2011-2022 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
13501 | 25 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21662
diff
changeset
|
26 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21203
diff
changeset
|
27 # include "config.h" |
15286
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15204
diff
changeset
|
28 #endif |
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15204
diff
changeset
|
29 |
13501 | 30 #include <QApplication> |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
31 #include <QClipboard> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
32 #include <QCompleter> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
33 #include <QDebug> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
34 #include <QDesktopServices> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
35 #include <QFileDialog> |
13501 | 36 #include <QFileInfo> |
15461
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
37 #include <QHeaderView> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
38 #include <QInputDialog> |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
39 #include <QLineEdit> |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
40 #include <QMenu> |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
41 #include <QMessageBox> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
42 #include <QProcess> |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
43 #include <QSizePolicy> |
30757
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
44 #include <QStyledItemDelegate> |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
45 #include <QTimer> |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
46 #include <QToolButton> |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
47 #include <QUrl> |
13501 | 48 |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
49 #include "files-dock-widget.h" |
27560
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27412
diff
changeset
|
50 #include "gui-preferences-fb.h" |
27671
61883a1a80a1
don't include gui-preferences-global.h in gui-preferences.h
John W. Eaton <jwe@octave.org>
parents:
27629
diff
changeset
|
51 #include "gui-preferences-global.h" |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
52 #include "gui-settings.h" |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
53 #include "octave-qobject.h" |
29560
5b7e721844df
provide QOverload template if it is not in <QtGlobal> (bug #60416)
John W. Eaton <jwe@octave.org>
parents:
29542
diff
changeset
|
54 #include "octave-qtutils.h" |
27302
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
55 #include "qt-interpreter-events.h" |
5f170ea12fa1
use Qt signals to pass interpreter callbacks to octave-qobject
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
56 |
20017
4b7b7ac7af2c
use get_home_directory instead of getenv ("HOME") (bug #44694)
John W. Eaton <jwe@octave.org>
parents:
20000
diff
changeset
|
57 #include "oct-env.h" |
16555
04fb96f4bea1
allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents:
16542
diff
changeset
|
58 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
59 namespace octave |
15461
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
60 { |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
61 class FileTreeViewer : public QTreeView |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
62 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
63 public: |
22177
6e9f5408c0db
Save settings in Qt convention, delete all children in destructors (bug #45366)
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
22022
diff
changeset
|
64 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
65 FileTreeViewer (QWidget *p) : QTreeView (p) { } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
66 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
67 ~FileTreeViewer (void) = default; |
22177
6e9f5408c0db
Save settings in Qt convention, delete all children in destructors (bug #45366)
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
22022
diff
changeset
|
68 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
69 void mousePressEvent (QMouseEvent *e) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
70 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
71 if (e->button () != Qt::RightButton) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
72 QTreeView::mousePressEvent (e); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
73 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
74 }; |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
75 |
30757
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
76 // to have file renamed in the file tree, it has to be renamed in |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
77 // QFileSystemModel::setData. |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
78 // For the editor to behave correctly, some signals must be sent before |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
79 // and after the rename |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
80 class file_system_model : public QFileSystemModel |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
81 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
82 public: |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
83 file_system_model (files_dock_widget *p) : QFileSystemModel (p) {} |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
84 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
85 ~file_system_model () = default; |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
86 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
87 bool setData (const QModelIndex &idx, const QVariant &value, |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
88 int role) override |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
89 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
90 if (!idx.isValid () || idx.column () != 0 || role != Qt::EditRole |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
91 || (flags (idx) & Qt::ItemIsEditable) == 0) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
92 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
93 return false; |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
94 } |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
95 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
96 QString new_name = value.toString (); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
97 QString old_name = idx.data ().toString (); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
98 if (new_name == old_name) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
99 return true; |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
100 if (new_name.isEmpty () |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
101 || QDir::toNativeSeparators (new_name).contains (QDir::separator ())) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
102 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
103 display_rename_failed_message (old_name, new_name); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
104 return false; |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
105 } |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
106 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
107 auto parent_dir = QDir(filePath (parent (idx))); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
108 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
109 files_dock_widget *fdw = static_cast<files_dock_widget*>(parent()); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
110 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
111 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
112 fdw->file_remove_signal(parent_dir.filePath(old_name), parent_dir.filePath(new_name)); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
113 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
114 if (!parent_dir.rename (old_name, new_name)) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
115 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
116 display_rename_failed_message (old_name, new_name); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
117 fdw->file_renamed_signal(false); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
118 return false; |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
119 } |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
120 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
121 fdw->file_renamed_signal(true); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
122 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
123 emit fileRenamed(parent_dir.absolutePath(), old_name, new_name); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
124 revert(); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
125 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
126 return true; |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
127 } |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
128 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
129 private: |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
130 void display_rename_failed_message (const QString &old_name, |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
131 const QString &new_name) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
132 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
133 const QString message = |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
134 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
135 files_dock_widget::tr ("Could not rename file \"%1\" to \"%2\".") |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
136 .arg (old_name) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
137 .arg (new_name); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
138 QMessageBox::information (static_cast<QWidget *> (parent ()), |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
139 QFileSystemModel::tr ("Invalid filename"), |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
140 message, QMessageBox::Ok); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
141 } |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
142 }; |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
143 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
144 // Delegate to improve ergonomy of file renaming by pre-selecting the text |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
145 // before the extension. |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
146 class RenameItemDelegate : public QStyledItemDelegate |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
147 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
148 public: |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
149 RenameItemDelegate (QObject *parent = nullptr) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
150 : QStyledItemDelegate{ parent } |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
151 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
152 } |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
153 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
154 void setEditorData (QWidget *editor, |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
155 const QModelIndex &index) const override |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
156 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
157 QLineEdit *line_edit = qobject_cast<QLineEdit *> (editor); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
158 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
159 if (!line_edit) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
160 { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
161 QStyledItemDelegate::setEditorData (editor, index); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
162 return; |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
163 } |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
164 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
165 QString filename = index.data (Qt::EditRole).toString (); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
166 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
167 int select_len = filename.indexOf (QChar ('.')); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
168 if (select_len == -1) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
169 select_len = filename.size (); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
170 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
171 line_edit->setText (filename); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
172 |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
173 // Qt calls QLineEdit::selectAll after this function is called, so to |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
174 // actually restrict the selection, we have to post the modification at |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
175 // the end of the event loop. |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
176 // QTimer allows this easily with 0 as timeout. |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
177 QTimer::singleShot (0, [=] () { |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
178 line_edit->setSelection (0, select_len); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
179 }); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
180 } |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
181 }; |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
182 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
183 files_dock_widget::files_dock_widget (QWidget *p, base_qobject& oct_qobj) |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
184 : octave_dock_widget ("FilesDockWidget", p, oct_qobj) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
185 { |
25508
3edae6ba1fcd
use a custom title bar widget for the main dock widgets
Torsten <mttl@mailbox.org>
parents:
25408
diff
changeset
|
186 set_title (tr ("File Browser")); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
187 setToolTip (tr ("Browse your files")); |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
188 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
189 m_sig_mapper = nullptr; |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
190 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
191 m_columns_shown = QStringList (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
192 m_columns_shown.append (tr ("File size")); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
193 m_columns_shown.append (tr ("File type")); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
194 m_columns_shown.append (tr ("Date modified")); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
195 m_columns_shown.append (tr ("Show hidden")); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
196 m_columns_shown.append (tr ("Alternating row colors")); |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
197 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
198 m_columns_shown_keys = QStringList (); |
25851
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
199 m_columns_shown_keys.append (fb_show_size.key); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
200 m_columns_shown_keys.append (fb_show_type.key); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
201 m_columns_shown_keys.append (fb_show_date.key); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
202 m_columns_shown_keys.append (fb_show_hidden.key); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
203 m_columns_shown_keys.append (fb_show_altcol.key); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
204 |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
205 m_columns_shown_defs = QList <QVariant> (); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
206 m_columns_shown_defs.append (fb_show_size.def); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
207 m_columns_shown_defs.append (fb_show_type.def); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
208 m_columns_shown_defs.append (fb_show_date.def); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
209 m_columns_shown_defs.append (fb_show_hidden.def); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
210 m_columns_shown_defs.append (fb_show_altcol.def); |
22177
6e9f5408c0db
Save settings in Qt convention, delete all children in destructors (bug #45366)
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
22022
diff
changeset
|
211 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
212 QWidget *container = new QWidget (this); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
213 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
214 setWidget (container); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
215 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
216 // Create a toolbar |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
217 m_navigation_tool_bar = new QToolBar ("", container); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
218 m_navigation_tool_bar->setAllowedAreas (Qt::TopToolBarArea); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
219 m_navigation_tool_bar->setMovable (false); |
13501 | 220 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
221 m_current_directory = new QComboBox (m_navigation_tool_bar); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
222 m_current_directory->setToolTip (tr ("Enter the path or filename")); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
223 m_current_directory->setEditable (true); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
224 m_current_directory->setMaxCount (MaxMRUDirs); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
225 m_current_directory->setInsertPolicy (QComboBox::NoInsert); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
226 m_current_directory->setSizeAdjustPolicy (QComboBox::AdjustToMinimumContentsLengthWithIcon); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
227 QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Preferred); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
228 m_current_directory->setSizePolicy (sizePol); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
229 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
230 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
231 |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
232 QAction *directory_up_action |
30811
0e88072e8265
use go-up icon as fallback for non-standard icon folder-up
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30810
diff
changeset
|
233 = new QAction (rmgr.icon ("folder-up", false, "go-up"), "", m_navigation_tool_bar); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
234 directory_up_action->setToolTip (tr ("One directory up")); |
14803
625be3eb27c5
Current directories now synchronize on top, in the file browser and the cwd in octave.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14728
diff
changeset
|
235 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
236 m_sync_browser_directory_action |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
237 = new QAction (rmgr.icon ("go-first"), tr ("Show Octave directory"), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
238 m_navigation_tool_bar); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
239 m_sync_browser_directory_action->setToolTip (tr ("Go to current Octave directory")); |
26368
7a6f7a81ccd0
files-dock-widget.cc: Fix static analyzer detected V601 issue (bug #55347)
Andreas Weber <octave@josoansi.de>
parents:
26300
diff
changeset
|
240 m_sync_browser_directory_action->setEnabled (false); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
241 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
242 m_sync_octave_directory_action |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
243 = new QAction (rmgr.icon ("go-last"), tr ("Set Octave directory"), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
244 m_navigation_tool_bar); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
245 m_sync_octave_directory_action->setToolTip (tr ("Set Octave directory to current browser directory")); |
26368
7a6f7a81ccd0
files-dock-widget.cc: Fix static analyzer detected V601 issue (bug #55347)
Andreas Weber <octave@josoansi.de>
parents:
26300
diff
changeset
|
246 m_sync_octave_directory_action->setEnabled (false); |
14803
625be3eb27c5
Current directories now synchronize on top, in the file browser and the cwd in octave.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14728
diff
changeset
|
247 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
248 QToolButton *popdown_button = new QToolButton (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
249 popdown_button->setToolTip (tr ("Actions on current directory")); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
250 QMenu *popdown_menu = new QMenu (); |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
251 popdown_menu->addAction (rmgr.icon ("user-home"), |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
252 tr ("Show Home Directory"), this, |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
253 SLOT (popdownmenu_home (bool))); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
254 popdown_menu->addAction (m_sync_browser_directory_action); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
255 popdown_menu->addAction (m_sync_octave_directory_action); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
256 popdown_button->setMenu (popdown_menu); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
257 popdown_button->setPopupMode (QToolButton::InstantPopup); |
30810
b7058556854b
allow to specify a fallback icon for icon selection in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30757
diff
changeset
|
258 popdown_button->setDefaultAction ( |
b7058556854b
allow to specify a fallback icon for icon selection in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30757
diff
changeset
|
259 new QAction (rmgr.icon ("folder-settings", false, "applications-system"), |
b7058556854b
allow to specify a fallback icon for icon selection in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30757
diff
changeset
|
260 "", m_navigation_tool_bar)); |
13501 | 261 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
262 popdown_menu->addSeparator (); |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
263 popdown_menu->addAction (rmgr.icon ("folder"), |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
264 tr ("Set Browser Directory..."), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
265 this, &files_dock_widget::popdownmenu_search_dir); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
266 popdown_menu->addSeparator (); |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
267 popdown_menu->addAction (rmgr.icon ("edit-find"), |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
268 tr ("Find Files..."), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
269 this, &files_dock_widget::popdownmenu_findfiles); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
270 popdown_menu->addSeparator (); |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
271 popdown_menu->addAction (rmgr.icon ("document-new"), |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
272 tr ("New File..."), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
273 this, &files_dock_widget::popdownmenu_newfile); |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
274 popdown_menu->addAction (rmgr.icon ("folder-new"), |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
275 tr ("New Directory..."), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
276 this, &files_dock_widget::popdownmenu_newdir); |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
277 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
278 m_navigation_tool_bar->addWidget (m_current_directory); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
279 m_navigation_tool_bar->addAction (directory_up_action); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
280 m_navigation_tool_bar->addWidget (popdown_button); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
281 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
282 connect (directory_up_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
283 this, &files_dock_widget::change_directory_up); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
284 connect (m_sync_octave_directory_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
285 this, &files_dock_widget::do_sync_octave_directory); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
286 connect (m_sync_browser_directory_action, &QAction::triggered, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
287 this, &files_dock_widget::do_sync_browser_directory); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
288 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
289 gui_settings settings; |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
290 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
291 // Create the QFileSystemModel starting in the desired directory |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
292 QDir startup_dir; // take current dir |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
293 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
294 if (settings.value (fb_restore_last_dir).toBool ()) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
295 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
296 // restore last dir from previous session |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
297 QStringList last_dirs |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
298 = settings.value (fb_mru_list.key).toStringList (); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
299 if (last_dirs.length () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
300 startup_dir = QDir (last_dirs.at (0)); // last dir in previous session |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
301 } |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
302 else if (! settings.value (fb_startup_dir).toString ().isEmpty ()) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
303 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
304 // do not restore but there is a startup dir configured |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
305 startup_dir = QDir (settings.value (fb_startup_dir.key).toString ()); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
306 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
307 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
308 if (! startup_dir.exists ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
309 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
310 // the configured startup dir does not exist, take actual one |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
311 startup_dir = QDir (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
312 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
313 |
30757
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
314 m_file_system_model = new file_system_model (this); |
27960
6a37ebaeeb28
fix handling of broken symlinks in file browser (bug #57588)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27957
diff
changeset
|
315 m_file_system_model->setResolveSymlinks (false); |
6a37ebaeeb28
fix handling of broken symlinks in file browser (bug #57588)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27957
diff
changeset
|
316 m_file_system_model->setFilter ( |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
317 QDir::System | QDir::NoDotAndDotDot | QDir::AllEntries); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
318 QModelIndex rootPathIndex |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
319 = m_file_system_model->setRootPath (startup_dir.absolutePath ()); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
320 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
321 // Attach the model to the QTreeView and set the root index |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
322 m_file_tree_view = new FileTreeViewer (container); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
323 m_file_tree_view->setSelectionMode (QAbstractItemView::ExtendedSelection); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
324 m_file_tree_view->setModel (m_file_system_model); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
325 m_file_tree_view->setRootIndex (rootPathIndex); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
326 m_file_tree_view->setSortingEnabled (true); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
327 m_file_tree_view->setAlternatingRowColors (true); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
328 m_file_tree_view->setAnimated (true); |
26300
ef7f95f89407
updated language files for translation (bug #55279)
Torsten <mttl@mailbox.org>
parents:
26096
diff
changeset
|
329 m_file_tree_view->setToolTip (tr ("Double-click to open file/folder, right click for alternatives")); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
330 |
30757
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
331 // allow renaming directly in the tree view with |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
332 // m_file_tree_view->edit(index) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
333 m_file_system_model->setReadOnly (false); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
334 // delegate to improve rename ergonomy by pre-selecting text up to the |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
335 // extension |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
336 auto *rename_delegate = new RenameItemDelegate (this); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
337 m_file_tree_view->setItemDelegateForColumn (0, rename_delegate); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
338 // prevent the tree view to override Octave's double-click behavior |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
339 m_file_tree_view->setEditTriggers (QAbstractItemView::NoEditTriggers); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
340 // create the rename action (that will be added to context menu) |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
341 // and associate to F2 key shortcut |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
342 m_rename_action = new QAction (tr ("Rename..."), this); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
343 m_rename_action->setShortcut (Qt::Key_F2); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
344 m_rename_action->setShortcutContext(Qt::WidgetWithChildrenShortcut); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
345 connect (m_rename_action, &QAction::triggered, this, |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
346 &files_dock_widget::contextmenu_rename); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
347 addAction(m_rename_action); |
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
348 |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27726
diff
changeset
|
349 // get sort column and order as well as column state (order and width) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
350 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
351 m_file_tree_view->sortByColumn |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
352 (settings.value (fb_sort_column).toInt (), |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
353 static_cast<Qt::SortOrder> (settings.value (fb_sort_order).toUInt ())); |
27726
b2c11742b7ec
add FIXMEs for replacing static casts by Qvariants value<T> after Qt 5.4
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27672
diff
changeset
|
354 // FIXME: use value<Qt::SortOrder> instead of static cast after |
b2c11742b7ec
add FIXMEs for replacing static casts by Qvariants value<T> after Qt 5.4
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27672
diff
changeset
|
355 // dropping support of Qt 5.4 |
25851
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
356 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
357 if (settings.contains (fb_column_state.key)) |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
358 m_file_tree_view->header ()->restoreState |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
359 (settings.value (fb_column_state.key).toByteArray ()); |
25851
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
360 |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
361 // Set header properties for sorting |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
362 m_file_tree_view->header ()->setSectionsClickable (true); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
363 m_file_tree_view->header ()->setSectionsMovable (true); |
507cee1b684e
removed all initial preferences for file browser from pref file (bug #54606)
Torsten <mttl@mailbox.org>
parents:
25508
diff
changeset
|
364 m_file_tree_view->header ()->setSortIndicatorShown (true); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
365 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
366 QStringList mru_dirs = |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
367 settings.value (fb_mru_list.key).toStringList (); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
368 m_current_directory->addItems (mru_dirs); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
369 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
370 m_current_directory->setEditText |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
371 (m_file_system_model->fileInfo (rootPathIndex). absoluteFilePath ()); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
372 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
373 connect (m_file_tree_view, &FileTreeViewer::activated, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
374 this, &files_dock_widget::item_double_clicked); |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
375 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
376 // add context menu to tree_view |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
377 m_file_tree_view->setContextMenuPolicy (Qt::CustomContextMenu); |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
378 connect (m_file_tree_view, &FileTreeViewer::customContextMenuRequested, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
379 this, &files_dock_widget::contextmenu_requested); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
380 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
381 m_file_tree_view->header ()->setContextMenuPolicy (Qt::CustomContextMenu); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
382 connect (m_file_tree_view->header (), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
383 &QHeaderView::customContextMenuRequested, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
384 this, &files_dock_widget::headercontextmenu_requested); |
16555
04fb96f4bea1
allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents:
16542
diff
changeset
|
385 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
386 // Layout the widgets vertically with the toolbar on top |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
387 QVBoxLayout *vbox_layout = new QVBoxLayout (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
388 vbox_layout->setSpacing (0); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
389 vbox_layout->addWidget (m_navigation_tool_bar); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
390 vbox_layout->addWidget (m_file_tree_view); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
391 vbox_layout->setMargin (1); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
392 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
393 container->setLayout (vbox_layout); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
394 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
395 // FIXME: Add right-click contextual menus for copying, pasting, |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
396 // deleting files (and others). |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
397 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
398 connect (m_current_directory->lineEdit (), &QLineEdit::returnPressed, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
399 this, &files_dock_widget::accept_directory_line_edit); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
400 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
401 // FIXME: We could use |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
402 // |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
403 // connect (m_current_directory, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
404 // QOverload<const QString&>::of (&QComboBox::activated), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
405 // this, &files_dock_widget::set_current_directory); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
406 // |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
407 // but referring to QComboBox::activated will generate deprecated |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
408 // function warnings from GCC. We could also use |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
409 // |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
410 // connect (m_current_directory, &QComboBox::textActivated, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
411 // this, &files_dock_widget::set_current_directory); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
412 // |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
413 // but the function textActivated was not introduced until Qt 5.14 |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
414 // so we'll need a feature test. |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
415 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
416 connect (m_current_directory, SIGNAL (activated (const QString&)), |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
417 this, SLOT (set_current_directory (const QString&))); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
418 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
419 QCompleter *completer = new QCompleter (m_file_system_model, this); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
420 m_current_directory->setCompleter (completer); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
421 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
422 setFocusProxy (m_current_directory); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
423 |
27956
2310164737b3
fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
424 m_sync_octave_dir = true; // default, overwritten with notice_settings () |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
425 m_octave_dir = ""; |
29613
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29596
diff
changeset
|
426 |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29596
diff
changeset
|
427 if (! p) |
9367cba2a6d5
allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents:
29596
diff
changeset
|
428 make_window (); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
429 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
430 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
431 void files_dock_widget::save_settings (void) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
432 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
433 gui_settings settings; |
13536
869c62c15e95
Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13535
diff
changeset
|
434 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
435 int sort_column = m_file_tree_view->header ()->sortIndicatorSection (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
436 Qt::SortOrder sort_order = m_file_tree_view->header ()->sortIndicatorOrder (); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
437 settings.setValue (fb_sort_column.key, sort_column); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
438 settings.setValue (fb_sort_order.key, sort_order); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
439 settings.setValue (fb_column_state.key, |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
440 m_file_tree_view->header ()->saveState ()); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
441 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
442 QStringList dirs; |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
443 for (int i=0; i< m_current_directory->count (); i++) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
444 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
445 dirs.append (m_current_directory->itemText (i)); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
446 } |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
447 settings.setValue (fb_mru_list.key, dirs); |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
448 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
449 settings.sync (); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
450 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
451 octave_dock_widget::save_settings (); |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
452 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
453 if (m_sig_mapper) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
454 delete m_sig_mapper; |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
455 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
456 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
457 void files_dock_widget::item_double_clicked (const QModelIndex& index) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
458 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
459 // Retrieve the file info associated with the model index. |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
460 QFileInfo fileInfo = m_file_system_model->fileInfo (index); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
461 set_current_directory (fileInfo.absoluteFilePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
462 } |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
463 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
464 void files_dock_widget::set_current_directory (const QString& dir) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
465 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
466 display_directory (dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
467 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
468 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
469 void files_dock_widget::accept_directory_line_edit (void) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
470 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
471 display_directory (m_current_directory->currentText ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
472 } |
20642
3e449f43e708
revised code for header context menu in file browser
Torsten <ttl@justmail.de>
parents:
20017
diff
changeset
|
473 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
474 void files_dock_widget::change_directory_up (void) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
475 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
476 QDir dir |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
477 = QDir (m_file_system_model->filePath (m_file_tree_view->rootIndex ())); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
478 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
479 dir.cdUp (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
480 display_directory (dir.absolutePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
481 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
482 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
483 void files_dock_widget::do_sync_octave_directory (void) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
484 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
485 QDir dir |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
486 = QDir (m_file_system_model->filePath (m_file_tree_view->rootIndex ())); |
17960
225c7be94c5f
Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents:
17935
diff
changeset
|
487 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
488 emit displayed_directory_changed (dir.absolutePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
489 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
490 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
491 void files_dock_widget::do_sync_browser_directory (void) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
492 { |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
493 display_directory (m_octave_dir, false); // false: no sync of octave dir |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
494 } |
17960
225c7be94c5f
Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents:
17935
diff
changeset
|
495 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
496 void files_dock_widget::update_octave_directory (const QString& dir) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
497 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
498 m_octave_dir = dir; |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
499 if (m_sync_octave_dir) |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
500 display_directory (m_octave_dir, false); // false: no sync of octave dir |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
501 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
502 |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
503 void files_dock_widget::display_directory (const QString& dir, |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
504 bool set_octave_dir) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
505 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
506 QFileInfo fileInfo (dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
507 if (fileInfo.exists ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
508 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
509 if (fileInfo.isDir ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
510 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
511 m_file_tree_view->setRootIndex (m_file_system_model-> |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
512 index (fileInfo.absoluteFilePath ())); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
513 m_file_system_model->setRootPath (fileInfo.absoluteFilePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
514 if (m_sync_octave_dir && set_octave_dir) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
515 process_set_current_dir (fileInfo.absoluteFilePath ()); |
17960
225c7be94c5f
Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents:
17935
diff
changeset
|
516 |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27726
diff
changeset
|
517 // see if it's in the list, and if it is, |
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27726
diff
changeset
|
518 // remove it and then put at top of the list |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
519 int index |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
520 = m_current_directory->findText (fileInfo.absoluteFilePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
521 if (index != -1) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
522 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
523 m_current_directory->removeItem (index); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
524 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
525 m_current_directory->insertItem (0, fileInfo.absoluteFilePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
526 m_current_directory->setCurrentIndex (0); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
527 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
528 else |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
529 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
530 QString abs_fname = fileInfo.absoluteFilePath (); |
20642
3e449f43e708
revised code for header context menu in file browser
Torsten <ttl@justmail.de>
parents:
20017
diff
changeset
|
531 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
532 QString suffix = fileInfo.suffix ().toLower (); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
533 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
534 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
535 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
536 QString ext = settings.value (fb_txt_file_ext).toString (); |
29049
461bd8b9ce91
use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents:
27971
diff
changeset
|
537 #if defined (HAVE_QT_SPLITBEHAVIOR_ENUM) |
461bd8b9ce91
use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents:
27971
diff
changeset
|
538 QStringList extensions = ext.split (";", Qt::SkipEmptyParts); |
461bd8b9ce91
use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents:
27971
diff
changeset
|
539 #else |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
540 QStringList extensions = ext.split (";", QString::SkipEmptyParts); |
29049
461bd8b9ce91
use Qt::SplitBehavior enum and values if available
John W. Eaton <jwe@octave.org>
parents:
27971
diff
changeset
|
541 #endif |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
542 if (QFile::exists (abs_fname)) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
543 { |
25408
ce725103ebf1
Fallback to open.m for opening files in the gui file browser (bug #50543)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25355
diff
changeset
|
544 if (extensions.contains (suffix)) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
545 emit open_file (fileInfo.absoluteFilePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
546 else |
25408
ce725103ebf1
Fallback to open.m for opening files in the gui file browser (bug #50543)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25355
diff
changeset
|
547 emit open_any_signal (abs_fname); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
548 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
549 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
550 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
551 } |
17960
225c7be94c5f
Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents:
17935
diff
changeset
|
552 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
553 void files_dock_widget::open_item_in_app (const QModelIndex& index) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
554 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
555 // Retrieve the file info associated with the model index. |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
556 QFileInfo fileInfo = m_file_system_model->fileInfo (index); |
17960
225c7be94c5f
Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents:
17935
diff
changeset
|
557 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
558 QString file = fileInfo.absoluteFilePath (); |
17960
225c7be94c5f
Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents:
17935
diff
changeset
|
559 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
560 QDesktopServices::openUrl (QUrl::fromLocalFile (file)); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
561 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
562 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
563 void files_dock_widget::toggle_header (int col) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
564 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
565 gui_settings settings; |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
566 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
567 QString key = m_columns_shown_keys.at (col); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
568 bool shown = settings.value (key, false).toBool (); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
569 settings.setValue (key, ! shown); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
570 settings.sync (); |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
571 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
572 switch (col) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
573 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
574 case 0: |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
575 case 1: |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
576 case 2: |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
577 // toggle column visibility |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
578 m_file_tree_view->setColumnHidden (col + 1, shown); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
579 break; |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
580 case 3: |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
581 case 4: |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
582 // other actions depending on new settings |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
583 notice_settings (); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
584 break; |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
585 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
586 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
587 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
588 void files_dock_widget::headercontextmenu_requested (const QPoint& mpos) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
589 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
590 QMenu menu (this); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
591 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
592 if (m_sig_mapper) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
593 delete m_sig_mapper; |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
594 m_sig_mapper = new QSignalMapper (this); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
595 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
596 gui_settings settings; |
18387
f1312db94896
apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents:
18261
diff
changeset
|
597 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
598 for (int i = 0; i < m_columns_shown.size (); i++) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
599 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
600 QAction *action = menu.addAction (m_columns_shown.at (i), |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
601 m_sig_mapper, SLOT (map ())); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
602 m_sig_mapper->setMapping (action, i); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
603 action->setCheckable (true); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
604 action->setChecked |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
605 (settings.value (m_columns_shown_keys.at (i), |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
606 m_columns_shown_defs.at (i)).toBool ()); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
607 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
608 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
609 // FIXME: We could use |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
610 // |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
611 // connect (&m_sig_mapper, QOverload<int>::of (&QSignalMapper::mapped), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
612 // this, &workspace_view::toggle_header); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
613 // |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
614 // but referring to QSignalMapper::mapped will generate deprecated |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
615 // function warnings from GCC. We could also use |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
616 // |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
617 // connect (&m_sig_mapper, &QSignalMapper::mappedInt, |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
618 // this, &workspace_view::toggle_header); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
619 // |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
620 // but the function mappedInt was not introduced until Qt 5.15 so |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
621 // we'll need a feature test. |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
622 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
623 connect (m_sig_mapper, SIGNAL (mapped (int)), |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
624 this, SLOT (toggle_header (int))); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
625 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
626 menu.exec (m_file_tree_view->mapToGlobal (mpos)); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
627 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
628 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
629 void files_dock_widget::contextmenu_requested (const QPoint& mpos) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
630 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
631 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
632 QMenu menu (this); |
18387
f1312db94896
apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents:
18261
diff
changeset
|
633 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
634 QModelIndex index = m_file_tree_view->indexAt (mpos); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
635 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
636 if (index.isValid ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
637 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
638 QFileInfo info = m_file_system_model->fileInfo (index); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
639 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
640 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
641 QModelIndexList sel = m->selectedRows (); |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
642 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
643 // check if item at mouse position is seleccted |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
644 if (! sel.contains (index)) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
645 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
646 // is not selected -> clear actual selection and select this item |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
647 m->setCurrentIndex (index, |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
648 QItemSelectionModel::Clear |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
649 | QItemSelectionModel::Select |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
650 | QItemSelectionModel::Rows); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
651 } |
20706
fec7cc73507b
Make the file browser open files more consistently (bug #45844)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20646
diff
changeset
|
652 |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
653 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); |
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
654 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
655 // construct the context menu depending on item |
27629
8b6e928e0705
in GUI objects, store reference to base_qobject instead of resource_manager
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
656 menu.addAction (rmgr.icon ("document-open"), tr ("Open"), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
657 this, &files_dock_widget::contextmenu_open); |
20706
fec7cc73507b
Make the file browser open files more consistently (bug #45844)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20646
diff
changeset
|
658 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
659 if (info.isDir ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
660 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
661 menu.addAction (tr ("Open in System File Explorer"), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
662 this, &files_dock_widget::contextmenu_open_in_app); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
663 } |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
664 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
665 if (info.isFile ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
666 menu.addAction (tr ("Open in Text Editor"), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
667 this, &files_dock_widget::contextmenu_open_in_editor); |
16507
8cb12cf9ca32
gui: add icons to the context menu of the the file browser
Torsten <ttl@justmail.de>
parents:
16506
diff
changeset
|
668 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
669 menu.addAction (tr ("Copy Selection to Clipboard"), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
670 this, &files_dock_widget::contextmenu_copy_selection); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
671 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
672 if (info.isFile () && info.suffix () == "m") |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
673 menu.addAction (rmgr.icon ("media-playback-start"), tr ("Run"), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
674 this, &files_dock_widget::contextmenu_run); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
675 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
676 if (info.isFile ()) |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
677 menu.addAction (tr ("Load Data"), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
678 this, &files_dock_widget::contextmenu_load); |
16509
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
679 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
680 if (info.isDir ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
681 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
682 menu.addSeparator (); |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
683 menu.addAction (rmgr.icon ("go-first"), tr ("Set Current Directory"), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
684 this, &files_dock_widget::contextmenu_setcurrentdir); |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
685 |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
686 QMenu *add_path_menu = menu.addMenu (tr ("Add to Path")); |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
687 |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
688 add_path_menu->addAction (tr ("Selected Directories"), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
689 this, [=] (bool checked) { contextmenu_add_to_path (checked); }); |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
690 add_path_menu->addAction (tr ("Selected Directories and Subdirectories"), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
691 this, &files_dock_widget::contextmenu_add_to_path_subdirs); |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
692 |
27273
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
693 QMenu *rm_path_menu = menu.addMenu (tr ("Remove from Path")); |
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
694 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
695 rm_path_menu->addAction (tr ("Selected Directories"), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
696 this, &files_dock_widget::contextmenu_rm_from_path); |
27273
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
697 rm_path_menu->addAction (tr ("Selected Directories and Subdirectories"), |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
698 this, &files_dock_widget::contextmenu_rm_from_path_subdirs); |
27273
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
699 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
700 menu.addSeparator (); |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
701 |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
702 menu.addAction (rmgr.icon ("edit-find"), tr ("Find Files..."), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
703 this, &files_dock_widget::contextmenu_findfiles); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
704 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
705 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
706 menu.addSeparator (); |
30757
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
707 menu.addAction (m_rename_action); |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
708 menu.addAction (rmgr.icon ("edit-delete"), tr ("Delete..."), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
709 this, &files_dock_widget::contextmenu_delete); |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
710 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
711 if (info.isDir ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
712 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
713 menu.addSeparator (); |
29542
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
714 menu.addAction (rmgr.icon ("document-new"), tr ("New File..."), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
715 this, &files_dock_widget::contextmenu_newfile); |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
716 menu.addAction (rmgr.icon ("folder-new"), tr ("New Directory..."), |
3d34b70b5a49
connect many Qt signals and slots without SIGNAL and SLOT macros
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
717 this, &files_dock_widget::contextmenu_newdir); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
718 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
719 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
720 // show the menu |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
721 menu.exec (m_file_tree_view->mapToGlobal (mpos)); |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
722 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
723 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
724 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
725 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
726 void files_dock_widget::contextmenu_open (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
727 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
728 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
729 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
730 QModelIndexList rows = m->selectedRows (); |
20706
fec7cc73507b
Make the file browser open files more consistently (bug #45844)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20646
diff
changeset
|
731 |
25337
3ff9192b676e
use auto keyword to declare iterator variables where possible
John W. Eaton <jwe@octave.org>
parents:
25336
diff
changeset
|
732 for (auto it = rows.begin (); it != rows.end (); it++) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
733 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
734 QFileInfo file = m_file_system_model->fileInfo (*it); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
735 if (file.exists ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
736 display_directory (file.absoluteFilePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
737 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
738 } |
20706
fec7cc73507b
Make the file browser open files more consistently (bug #45844)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20646
diff
changeset
|
739 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
740 void files_dock_widget::contextmenu_open_in_editor (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
741 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
742 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
743 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
744 QModelIndexList rows = m->selectedRows (); |
20706
fec7cc73507b
Make the file browser open files more consistently (bug #45844)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20646
diff
changeset
|
745 |
25337
3ff9192b676e
use auto keyword to declare iterator variables where possible
John W. Eaton <jwe@octave.org>
parents:
25336
diff
changeset
|
746 for (auto it = rows.begin (); it != rows.end (); it++) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
747 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
748 QFileInfo file = m_file_system_model->fileInfo (*it); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
749 if (file.exists ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
750 emit open_file (file.absoluteFilePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
751 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
752 } |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
753 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
754 void files_dock_widget::contextmenu_open_in_app (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
755 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
756 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
757 QModelIndexList rows = m->selectedRows (); |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
758 |
25337
3ff9192b676e
use auto keyword to declare iterator variables where possible
John W. Eaton <jwe@octave.org>
parents:
25336
diff
changeset
|
759 for (auto it = rows.begin (); it != rows.end (); it++) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
760 open_item_in_app (*it); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
761 } |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
762 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
763 void files_dock_widget::contextmenu_copy_selection (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
764 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
765 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
766 QModelIndexList rows = m->selectedRows (); |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
767 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
768 QStringList selection; |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
769 |
25337
3ff9192b676e
use auto keyword to declare iterator variables where possible
John W. Eaton <jwe@octave.org>
parents:
25336
diff
changeset
|
770 for (auto it = rows.begin (); it != rows.end (); it++) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
771 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
772 QFileInfo info = m_file_system_model->fileInfo (*it); |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
773 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
774 selection << info.fileName (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
775 } |
16504
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
776 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
777 QClipboard *clipboard = QApplication::clipboard (); |
16504
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
778 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
779 clipboard->setText (selection.join ("\n")); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
780 } |
16504
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
781 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
782 void files_dock_widget::contextmenu_load (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
783 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
784 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
785 QModelIndexList rows = m->selectedRows (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
786 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
787 if (rows.size () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
788 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
789 QModelIndex index = rows[0]; |
16504
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
790 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
791 QFileInfo info = m_file_system_model->fileInfo (index); |
16506
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
792 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
793 emit load_file_signal (info.fileName ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
794 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
795 } |
16506
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
796 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
797 void files_dock_widget::contextmenu_run (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
798 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
799 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
800 QModelIndexList rows = m->selectedRows (); |
16506
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
801 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
802 if (rows.size () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
803 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
804 QModelIndex index = rows[0]; |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
805 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
806 QFileInfo info = m_file_system_model->fileInfo (index); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
807 emit run_file_signal (info); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
808 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
809 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
810 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
811 void files_dock_widget::contextmenu_rename (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
812 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
813 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
814 QModelIndexList rows = m->selectedRows (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
815 if (rows.size () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
816 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
817 QModelIndex index = rows[0]; |
30757
00ff0dfb4d27
renaming files and directories using inline editing
Remi Thebault <remi.thebault@gmail.com>
parents:
30745
diff
changeset
|
818 m_file_tree_view->edit(index); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
819 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
820 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
821 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
822 void files_dock_widget::contextmenu_delete (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
823 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
824 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
825 QModelIndexList rows = m->selectedRows (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
826 |
28130
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
827 int file_cnt = rows.size (); |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
828 bool multiple_files = (file_cnt > 1); |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
829 |
25337
3ff9192b676e
use auto keyword to declare iterator variables where possible
John W. Eaton <jwe@octave.org>
parents:
25336
diff
changeset
|
830 for (auto it = rows.begin (); it != rows.end (); it++) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
831 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
832 QModelIndex index = *it; |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
833 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
834 QFileInfo info = m_file_system_model->fileInfo (index); |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
835 |
28130
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
836 QMessageBox::StandardButton dlg_answer; |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
837 if (multiple_files) |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
838 if (it == rows.begin ()) |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
839 { |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
840 dlg_answer = QMessageBox::question (this, |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
841 tr ("Delete file/directory"), |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
842 tr ("Are you sure you want to delete all %1 selected files?\n").arg (file_cnt), |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
843 QMessageBox::Yes | QMessageBox::No); |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
844 if (dlg_answer != QMessageBox::Yes) |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
845 return; |
28130
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
846 } |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
847 else |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
848 dlg_answer = QMessageBox::Yes; |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
849 else |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
850 { |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
851 dlg_answer = QMessageBox::question (this, |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
852 tr ("Delete file/directory"), |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
853 tr ("Are you sure you want to delete\n") |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
854 + info.filePath (), |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
855 QMessageBox::Yes | QMessageBox::No); |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
856 } |
712cd23aaa4f
Delete multiple files in GUI without multiple dialog boxes (bug #57874).
Rik <rik@octave.org>
parents:
27971
diff
changeset
|
857 |
31296
42a558ac8c12
Respect confirmation when deleting files in file browser widget (bug #63198).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30564
diff
changeset
|
858 if (dlg_answer == QMessageBox::Yes) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
859 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
860 if (info.isDir ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
861 { |
27956
2310164737b3
fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
862 // see if directory is empty |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
863 QDir path (info.absoluteFilePath ()); |
27960
6a37ebaeeb28
fix handling of broken symlinks in file browser (bug #57588)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27957
diff
changeset
|
864 QList<QFileInfo> fileLst = path.entryInfoList ( |
6a37ebaeeb28
fix handling of broken symlinks in file browser (bug #57588)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27957
diff
changeset
|
865 QDir::Hidden | QDir::AllEntries | |
6a37ebaeeb28
fix handling of broken symlinks in file browser (bug #57588)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27957
diff
changeset
|
866 QDir::NoDotAndDotDot | QDir::System); |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
867 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
868 if (fileLst.count () != 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
869 QMessageBox::warning (this, tr ("Delete file/directory"), |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
870 tr ("Can not delete a directory that is not empty")); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
871 else |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
872 m_file_system_model->rmdir (index); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
873 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
874 else |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
875 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
876 // Close the file in the editor if open |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
877 emit file_remove_signal (info.filePath (), QString ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
878 // Remove the file. |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
879 bool st = m_file_system_model->remove (index); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
880 if (! st) |
30210
351dbe4da930
GUI: Display dialog if deleting or renaming a file fails (bug #61225).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29782
diff
changeset
|
881 { |
351dbe4da930
GUI: Display dialog if deleting or renaming a file fails (bug #61225).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29782
diff
changeset
|
882 QMessageBox::warning (this, tr ("Deletion error"), |
351dbe4da930
GUI: Display dialog if deleting or renaming a file fails (bug #61225).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29782
diff
changeset
|
883 tr ("Could not delete file \"%1\"."). |
351dbe4da930
GUI: Display dialog if deleting or renaming a file fails (bug #61225).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29782
diff
changeset
|
884 arg (info.filePath ())); |
351dbe4da930
GUI: Display dialog if deleting or renaming a file fails (bug #61225).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29782
diff
changeset
|
885 // Reload the old file |
351dbe4da930
GUI: Display dialog if deleting or renaming a file fails (bug #61225).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29782
diff
changeset
|
886 } |
30745
2f6904439d3c
fix updating the name of renamed editor files
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30732
diff
changeset
|
887 emit file_renamed_signal (st); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
888 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
889 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
890 m_file_system_model->revert (); |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
891 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
892 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
893 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
894 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
895 |
27971
ec769a7ab9fb
fix more spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
27960
diff
changeset
|
896 // Get the currently selected files/dirs and return their file info |
ec769a7ab9fb
fix more spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
27960
diff
changeset
|
897 // in a list. |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
898 QList<QFileInfo> files_dock_widget::get_selected_items_info (bool dir) |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
899 { |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
900 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
901 QModelIndexList rows = m->selectedRows (); |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
902 |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
903 QList<QFileInfo> infos; |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
904 |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
905 for (auto it = rows.begin (); it != rows.end (); it++) |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
906 { |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
907 QModelIndex index = *it; |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
908 |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
909 QFileInfo info = m_file_system_model->fileInfo (index); |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
910 |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
911 if (info.exists () && |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
912 ((dir & info.isDir ()) || (! dir && info.isFile ()))) |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
913 infos.append (info); |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
914 } |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
915 |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
916 return infos; |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
917 } |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
918 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
919 void files_dock_widget::contextmenu_newfile (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
920 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
921 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
922 QModelIndexList rows = m->selectedRows (); |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
923 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
924 if (rows.size () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
925 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
926 QModelIndex index = rows[0]; |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
927 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
928 QFileInfo info = m_file_system_model->fileInfo (index); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
929 QString parent_dir = info.filePath (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
930 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
931 process_new_file (parent_dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
932 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
933 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
934 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
935 void files_dock_widget::contextmenu_newdir (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
936 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
937 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
938 QModelIndexList rows = m->selectedRows (); |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
939 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
940 if (rows.size () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
941 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
942 QModelIndex index = rows[0]; |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
943 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
944 QFileInfo info = m_file_system_model->fileInfo (index); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
945 QString parent_dir = info.filePath (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
946 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
947 process_new_dir (parent_dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
948 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
949 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
950 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
951 void files_dock_widget::contextmenu_setcurrentdir (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
952 { |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
953 QList<QFileInfo> infos = get_selected_items_info (true); |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
954 |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
955 if (infos.length () > 0 && infos.first ().isDir ()) |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
956 process_set_current_dir (infos.first ().absoluteFilePath ()); |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
957 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
958 |
27273
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
959 void files_dock_widget::contextmenu_add_to_path (bool, bool rm, bool subdirs) |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
960 { |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
961 QList<QFileInfo> infos = get_selected_items_info (true); |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
962 |
29782
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
963 QStringList dir_list; |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
964 |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
965 for (int i = 0; i < infos.length (); i++) |
29782
02461b0ccc00
reduce dependence of files_dock_widget on Octave interpreter
John W. Eaton <jwe@octave.org>
parents:
29613
diff
changeset
|
966 dir_list.append (infos.at (i).absoluteFilePath ()); |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
967 |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
968 if (infos.length () > 0) |
27308
401a7cda7c9e
add possibility for adding dir with subdirectories to load path dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27306
diff
changeset
|
969 emit modify_path_signal (dir_list, rm, subdirs); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
970 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
971 |
27269
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
972 void files_dock_widget::contextmenu_add_to_path_subdirs (bool) |
6a6b5ae3d58d
add file browser context menu for adding dirs to the path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27116
diff
changeset
|
973 { |
27273
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
974 contextmenu_add_to_path (true, false, true); |
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
975 } |
16509
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
976 |
27273
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
977 void files_dock_widget::contextmenu_rm_from_path (bool) |
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
978 { |
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
979 contextmenu_add_to_path (true, true, false); |
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
980 } |
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
981 |
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
982 void files_dock_widget::contextmenu_rm_from_path_subdirs (bool) |
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
983 { |
aaf788e496a3
add file browser context menu for removing dirs from path (bug #55623)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27269
diff
changeset
|
984 contextmenu_add_to_path (true, true, true); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
985 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
986 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
987 void files_dock_widget::contextmenu_findfiles (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
988 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
989 QItemSelectionModel *m = m_file_tree_view->selectionModel (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
990 QModelIndexList rows = m->selectedRows (); |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
991 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
992 if (rows.size () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
993 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
994 QModelIndex index = rows[0]; |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
995 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
996 QFileInfo info = m_file_system_model->fileInfo (index); |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
997 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
998 if (info.isDir ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
999 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1000 process_find_files (info.absoluteFilePath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1001 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1002 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1003 } |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
1004 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1005 void files_dock_widget::notice_settings (void) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1006 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1007 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1008 |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27726
diff
changeset
|
1009 // QSettings pointer is checked before emitting. |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
14812
diff
changeset
|
1010 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1011 int size_idx = settings.value (global_icon_size).toInt (); |
26058
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25906
diff
changeset
|
1012 size_idx = (size_idx > 0) - (size_idx < 0) + 1; // Make valid index from 0 to 2 |
19847
597fc0fd8e54
make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents:
19846
diff
changeset
|
1013 |
26058
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25906
diff
changeset
|
1014 QStyle *st = style (); |
ecd86b8b8979
use constants for icon size preferences instead of hard coded numbers
Torsten <mttl@mailbox.org>
parents:
25906
diff
changeset
|
1015 int icon_size = st->pixelMetric (global_icon_sizes[size_idx]); |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
1016 m_navigation_tool_bar->setIconSize (QSize (icon_size, icon_size)); |
16525
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
1017 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1018 // filenames are always shown, other columns can be hidden by settings |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1019 for (int i = 0; i < 3; i++) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1020 m_file_tree_view->setColumnHidden (i + 1, |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1021 ! settings.value (m_columns_shown_keys.at (i),false).toBool ()); |
20642
3e449f43e708
revised code for header context menu in file browser
Torsten <ttl@justmail.de>
parents:
20017
diff
changeset
|
1022 |
27960
6a37ebaeeb28
fix handling of broken symlinks in file browser (bug #57588)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27957
diff
changeset
|
1023 QDir::Filters current_filter = m_file_system_model->filter (); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1024 if (settings.value (m_columns_shown_keys.at (3), false).toBool ()) |
27960
6a37ebaeeb28
fix handling of broken symlinks in file browser (bug #57588)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27957
diff
changeset
|
1025 m_file_system_model->setFilter (current_filter | QDir::Hidden); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1026 else |
27960
6a37ebaeeb28
fix handling of broken symlinks in file browser (bug #57588)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27957
diff
changeset
|
1027 m_file_system_model->setFilter (current_filter & (~QDir::Hidden)); |
20642
3e449f43e708
revised code for header context menu in file browser
Torsten <ttl@justmail.de>
parents:
20017
diff
changeset
|
1028 |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27273
diff
changeset
|
1029 m_file_tree_view->setAlternatingRowColors |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1030 (settings.value (m_columns_shown_keys.at (4),true).toBool ()); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1031 m_file_tree_view->setModel (m_file_system_model); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
1032 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1033 // enable the buttons to sync octave/browser dir |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1034 // only if this is not done by default |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1035 m_sync_octave_dir |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1036 = settings.value (fb_sync_octdir).toBool (); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1037 m_sync_octave_directory_action->setEnabled (! m_sync_octave_dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1038 m_sync_browser_directory_action->setEnabled (! m_sync_octave_dir); |
25906
e980aef0e1db
do sync file browser when settings change (bug #54718)
John W. Eaton <jwe@octave.org>
parents:
25898
diff
changeset
|
1039 |
e980aef0e1db
do sync file browser when settings change (bug #54718)
John W. Eaton <jwe@octave.org>
parents:
25898
diff
changeset
|
1040 // If m_sync_octave_dir is enabled, then we want the file browser to |
e980aef0e1db
do sync file browser when settings change (bug #54718)
John W. Eaton <jwe@octave.org>
parents:
25898
diff
changeset
|
1041 // update to match the current working directory of the |
e980aef0e1db
do sync file browser when settings change (bug #54718)
John W. Eaton <jwe@octave.org>
parents:
25898
diff
changeset
|
1042 // interpreter. We don't want to queue any signal to change the |
e980aef0e1db
do sync file browser when settings change (bug #54718)
John W. Eaton <jwe@octave.org>
parents:
25898
diff
changeset
|
1043 // interpreter's current working directory. In this case, we just |
e980aef0e1db
do sync file browser when settings change (bug #54718)
John W. Eaton <jwe@octave.org>
parents:
25898
diff
changeset
|
1044 // want the GUI to match the state of the interpreter. |
e980aef0e1db
do sync file browser when settings change (bug #54718)
John W. Eaton <jwe@octave.org>
parents:
25898
diff
changeset
|
1045 |
e980aef0e1db
do sync file browser when settings change (bug #54718)
John W. Eaton <jwe@octave.org>
parents:
25898
diff
changeset
|
1046 if (m_sync_octave_dir) |
e980aef0e1db
do sync file browser when settings change (bug #54718)
John W. Eaton <jwe@octave.org>
parents:
25898
diff
changeset
|
1047 do_sync_browser_directory (); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1048 } |
20017
4b7b7ac7af2c
use get_home_directory instead of getenv ("HOME") (bug #44694)
John W. Eaton <jwe@octave.org>
parents:
20000
diff
changeset
|
1049 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1050 void files_dock_widget::popdownmenu_home (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1051 { |
25336
389757b7b6af
eliminate redundant octave:: namespace tags
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
1052 QString dir = QString::fromStdString (sys::env::get_home_directory ()); |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1053 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1054 if (dir.isEmpty ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1055 dir = QDir::homePath (); |
16762
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
1056 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1057 set_current_directory (dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1058 } |
16613
99a57611d58a
add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents:
16611
diff
changeset
|
1059 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1060 void files_dock_widget::popdownmenu_search_dir (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1061 { |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26058
diff
changeset
|
1062 // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26058
diff
changeset
|
1063 int opts = QFileDialog::ShowDirsOnly; |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1064 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1065 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1066 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31297
diff
changeset
|
1067 if (! settings.value (global_use_native_dialogs).toBool ()) |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26058
diff
changeset
|
1068 opts |= QFileDialog::DontUseNativeDialog; |
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26058
diff
changeset
|
1069 |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1070 QString dir = QFileDialog::getExistingDirectory (this, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1071 tr ("Set directory of file browser"), |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1072 m_file_system_model->rootPath (), |
26096
1002b49ce7b3
Make use of native file dialogs configurable (bug #54607).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
26058
diff
changeset
|
1073 QFileDialog::Option (opts)); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1074 set_current_directory (dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1075 } |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
1076 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1077 void files_dock_widget::popdownmenu_findfiles (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1078 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1079 process_find_files (m_file_system_model->rootPath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1080 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1081 |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1082 void files_dock_widget::popdownmenu_newdir (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1083 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1084 process_new_dir (m_file_system_model->rootPath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1085 } |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
1086 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1087 void files_dock_widget::popdownmenu_newfile (bool) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1088 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1089 process_new_file (m_file_system_model->rootPath ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1090 } |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
1091 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1092 void files_dock_widget::process_new_file (const QString& parent_dir) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1093 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1094 bool ok; |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
1095 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1096 QString name = QInputDialog::getText (this, tr ("Create File"), |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
1097 tr ("Create file in\n", "String ends with \\n!") + parent_dir, |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1098 QLineEdit::Normal, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1099 tr ("New File.txt"), &ok); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1100 if (ok && name.length () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1101 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1102 name = parent_dir + '/' + name; |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
1103 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1104 QFile file (name); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1105 file.open (QIODevice::WriteOnly); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1106 m_file_system_model->revert (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1107 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1108 } |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
1109 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1110 void files_dock_widget::process_new_dir (const QString& parent_dir) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1111 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1112 bool ok; |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
1113 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1114 QString name = QInputDialog::getText (this, tr ("Create Directory"), |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
1115 tr ("Create folder in\n", "String ends with \\n!") + parent_dir, |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1116 QLineEdit::Normal, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1117 tr ("New Directory"), &ok); |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1118 if (ok && name.length () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1119 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1120 QDir dir (parent_dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1121 dir.mkdir (name); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1122 m_file_system_model->revert (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1123 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1124 } |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
1125 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
1126 void files_dock_widget::process_set_current_dir (const QString& dir) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1127 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1128 emit displayed_directory_changed (dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1129 } |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
1130 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30210
diff
changeset
|
1131 void files_dock_widget::process_find_files (const QString& dir) |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1132 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1133 emit find_files_signal (dir); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1134 } |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
1135 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1136 void files_dock_widget::copyClipboard () |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1137 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1138 if (m_file_tree_view->hasFocus ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1139 contextmenu_copy_selection (true); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1140 if (m_current_directory->hasFocus ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1141 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1142 QClipboard *clipboard = QApplication::clipboard (); |
16881
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
1143 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1144 QLineEdit *edit = m_current_directory->lineEdit (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1145 if (edit && edit->hasSelectedText ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1146 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1147 clipboard->setText (edit->selectedText ()); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1148 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1149 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1150 } |
16881
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
1151 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1152 void files_dock_widget::pasteClipboard () |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1153 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1154 if (m_current_directory->hasFocus ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1155 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1156 QClipboard *clipboard = QApplication::clipboard (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1157 QString str = clipboard->text (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1158 QLineEdit *edit = m_current_directory->lineEdit (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1159 if (edit && str.length () > 0) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1160 edit->insert (str); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1161 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1162 } |
16881
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
1163 |
24733
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1164 void files_dock_widget::selectAll () |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1165 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1166 if (m_file_tree_view->hasFocus ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1167 m_file_tree_view->selectAll (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1168 if (m_current_directory->hasFocus ()) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1169 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1170 QLineEdit *edit = m_current_directory->lineEdit (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1171 if (edit) |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1172 { |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1173 edit->selectAll (); |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1174 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1175 } |
e15d53d2de1e
move more GUI classse inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
1176 } |
18555
2d5d0d86432e
gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents:
18408
diff
changeset
|
1177 } |