annotate libgui/src/files-dock-widget.cc @ 18568:2d5d0d86432e gui-release

gui: Add select all menu (Bug #41797) * libgui//qterminal/libqterminal/QTerminal.h: Add selectAll popup menu and virtual function. * libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp,h: Add selectAll function. * libgui/qterminal/libqterminal/unix/TerminalView.cpp,h: add selectAll function. * libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp,h: Add selectAll function. * libgui/src/documentation-dock-widget.cc,h: Add selectAll function. * libgui/src/files-dock-widget.cc,h: Add selectAll function. * libgui/src/history-dock-widget.cc,h: Add selectAll function. * libgui/src/m-editor/file-editor-tab.cc,h: Add select_all function and signal. * libgui/src/m-editor/file-editor.cc,h: Add request_selectall and selectAll function, add Edit->select all menu. * libgui/src/main-window.cc: add selectAll function, selectAll menu. * libgui/src/octave-dock-widget.cc,h: Add virtual selectAll function and connect to mainwindow selectall signal. * libgui/src/qtinfo/webinfo.cc,h: Add selectAll function. * libgui/src/workspace-view.cc,h: Add selectAll function.
author John Donoghue <john.donoghue@ieee.org>
date Tue, 11 Mar 2014 19:27:23 -0400
parents a9cec5517d92
children 6113e0c6920b b314efd58072
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15204
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
1 /*
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
2
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
3 Copyright (C) 2013 John P. Swensen
17744
d63878346099 maint: Update copyright notices for release.
John W. Eaton <jwe@octave.org>
parents: 17008
diff changeset
4 Copyright (C) 2011-2013 Jacob Dawid
15204
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
5
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
6 This file is part of Octave.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
7
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
9 under the terms of the GNU General Public License as published by the
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
10 Free Software Foundation; either version 3 of the License, or (at your
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
11 option) any later version.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
12
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
16 for more details.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
17
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
18 You should have received a copy of the GNU General Public License
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
19 along with Octave; see the file COPYING. If not, see
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
20 <http://www.gnu.org/licenses/>.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
21
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
22 */
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
23
15286
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
24 #ifdef HAVE_CONFIG_H
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
25 #include <config.h>
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
26 #endif
ae9079bbc627 Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents: 15204
diff changeset
27
14707
674740c44c09 Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14703
diff changeset
28 #include "resource-manager.h"
16460
4d4e7c6f839d use consistent names for dock-widget files
John W. Eaton <jwe@octave.org>
parents: 16455
diff changeset
29 #include "files-dock-widget.h"
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
30
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
31 #include <QApplication>
16622
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
32 #include <QClipboard>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
33 #include <QFileInfo>
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
34 #include <QCompleter>
13531
bb3676025b36 User can set a custom file editor instead of the built-in one.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13522
diff changeset
35 #include <QProcess>
13539
a4b5cad8f7c6 Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13537
diff changeset
36 #include <QDebug>
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>
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
38 #include <QLineEdit>
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
39 #include <QSizePolicy>
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 <QInputDialog>
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
42 #include <QMessageBox>
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
43 #include <QToolButton>
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
44 #include <QUrl>
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
45 #include <QDesktopServices>
16613
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
46 #include <QFileDialog>
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
47
16555
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
48 #include "load-save.h"
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
49
16622
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
50 class FileTreeViewer : public QTreeView
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
51 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
52 public:
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
53
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
54 FileTreeViewer (QWidget *p) : QTreeView (p) { }
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
55
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
56 void mousePressEvent (QMouseEvent *e)
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
57 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
58 if (e->button () != Qt::RightButton)
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
59 QTreeView::mousePressEvent (e);
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
60 }
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
61 };
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
62
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
63 files_dock_widget::files_dock_widget (QWidget *p)
16057
c3057d80cf91 Created common octave_dock_widget class
Richard Crozier <richard.crozier@yahoo.co.uk>
parents: 15552
diff changeset
64 : octave_dock_widget (p)
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
65 {
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
66 setObjectName ("FilesDockWidget");
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
67 setWindowIcon (QIcon (":/actions/icons/logo.png"));
16798
d749c9b588e5 make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents: 16762
diff changeset
68 set_title (tr ("File Browser"));
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
69 setToolTip (tr ("Browse your files."));
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
70
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
71 QWidget *container = new QWidget (this);
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
72
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
73 setWidget (container);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
74
16455
38ed6bdd1f7f move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents: 16450
diff changeset
75 connect (this, SIGNAL (open_file (const QString&)),
16798
d749c9b588e5 make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents: 16762
diff changeset
76 main_win (), SLOT (open_file (const QString&)));
16455
38ed6bdd1f7f move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents: 16450
diff changeset
77
38ed6bdd1f7f move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents: 16450
diff changeset
78 connect (this, SIGNAL (displayed_directory_changed (const QString&)),
16798
d749c9b588e5 make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents: 16762
diff changeset
79 main_win (), SLOT (set_current_working_directory (const QString&)));
16455
38ed6bdd1f7f move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents: 16450
diff changeset
80
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
81 // Create a toolbar
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
82 _navigation_tool_bar = new QToolBar ("", container);
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
83 _navigation_tool_bar->setAllowedAreas (Qt::TopToolBarArea);
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
84 _navigation_tool_bar->setMovable (false);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
85
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
86 _current_directory = new QComboBox (_navigation_tool_bar);
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
87 _current_directory->setToolTip (tr ("Enter the path or filename"));
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
88 _current_directory->setEditable (true);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
89 _current_directory->setMaxCount (MaxMRUDirs);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
90 _current_directory->setInsertPolicy (QComboBox::NoInsert);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
91 _current_directory->setSizeAdjustPolicy (
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
92 QComboBox::AdjustToMinimumContentsLengthWithIcon);
17985
79e7c468d392 * files-dock-widget.cc (ctor): smaller height of the directory combo box
Torsten <ttl@justmail.de>
parents: 17970
diff changeset
93 QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Maximum);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
94 _current_directory->setSizePolicy (sizePol);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
95
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
96 QAction *directory_up_action = new QAction (QIcon (":/actions/icons/up.png"),
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
97 "", _navigation_tool_bar);
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
98 directory_up_action->setToolTip (tr ("Move up one directory"));
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
99
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
100 _sync_browser_directory_action
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
101 = new QAction (QIcon (":/actions/icons/reload.png"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
102 tr ("Show Octave directory"), _navigation_tool_bar);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
103 _sync_browser_directory_action->setToolTip (
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
104 tr ("Go to current Octave directory"));
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
105 _sync_browser_directory_action->setEnabled ("false");
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
106
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
107 _sync_octave_directory_action
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
108 = new QAction (QIcon (":/actions/icons/ok.png"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
109 tr ("Set Octave directory"), _navigation_tool_bar);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
110 _sync_octave_directory_action->setToolTip (
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
111 tr ("Set Octave directroy to current browser directory"));
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
112 _sync_octave_directory_action->setEnabled ("false");
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
113
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
114 QToolButton * popdown_button = new QToolButton ();
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
115 popdown_button->setToolTip (tr ("Actions on current directory"));
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
116 QMenu * popdown_menu = new QMenu ();
16762
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
117 popdown_menu->addAction (QIcon (":/actions/icons/home.png"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
118 tr ("Show Home Directory"),
16762
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
119 this, SLOT (popdownmenu_home (bool)));
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
120 popdown_menu->addAction (_sync_browser_directory_action);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
121 popdown_menu->addAction (_sync_octave_directory_action);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
122 popdown_button->setMenu (popdown_menu);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
123 popdown_button->setPopupMode (QToolButton::InstantPopup);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
124 popdown_button->setDefaultAction (new QAction (
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
125 QIcon (":/actions/icons/gear.png"), "",
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
126 _navigation_tool_bar));
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
127
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
128 popdown_menu->addSeparator ();
18261
09ef57c61b3b update some icnons of the gui
Torsten <ttl@justmail.de>
parents: 18257
diff changeset
129 popdown_menu->addAction (QIcon (":/actions/icons/folder.png"),
18345
dfc6ef6ac455 some text improvements in the gui (#bug 41201)
Torsten <ttl@justmail.de>
parents: 18310
diff changeset
130 tr ("Set Browser Directory..."),
16613
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
131 this, SLOT (popdownmenu_search_dir (bool)));
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
132 popdown_menu->addSeparator ();
18261
09ef57c61b3b update some icnons of the gui
Torsten <ttl@justmail.de>
parents: 18257
diff changeset
133 popdown_menu->addAction (QIcon (":/actions/icons/findf.png"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
134 tr ("Find Files..."),
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
135 this, SLOT (popdownmenu_findfiles (bool)));
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
136 popdown_menu->addSeparator ();
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
137 popdown_menu->addAction (QIcon (":/actions/icons/filenew.png"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
138 tr ("New File..."),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
139 this, SLOT (popdownmenu_newfile (bool)));
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
140 popdown_menu->addAction (QIcon (":/actions/icons/folder_new.png"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
141 tr ("New Directory..."),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
142 this, SLOT (popdownmenu_newdir (bool)));
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
143
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
144 _navigation_tool_bar->addWidget (_current_directory);
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
145 _navigation_tool_bar->addAction (directory_up_action);
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
146 _navigation_tool_bar->addWidget (popdown_button);
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
147
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
148 connect (directory_up_action, SIGNAL (triggered ()), this,
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
149 SLOT (change_directory_up ()));
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
150 connect (_sync_octave_directory_action, SIGNAL (triggered ()), this,
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
151 SLOT (do_sync_octave_directory ()));
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
152 connect (_sync_browser_directory_action, SIGNAL (triggered ()), this,
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
153 SLOT (do_sync_browser_directory ()));
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
154
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
155 QSettings *settings = resource_manager::get_settings ();
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
156 // FIXME: what should happen if settings is 0?
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
157
18310
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
158 // Create the QFileSystemModel starting in the desired directory
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
159 QDir startup_dir; // take current dir
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
160
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
161 if (settings->value ("filesdockwidget/restore_last_dir",false).toBool ())
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
162 {
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
163 // restore last dir from previous session
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
164 QStringList last_dirs
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
165 = settings->value ("filesdockwidget/mru_dir_list").toStringList ();
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
166 if (last_dirs.length () > 0)
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
167 startup_dir = QDir (last_dirs.at (0)); // last dir in previous session
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
168 }
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
169 else if (! settings->value ("filesdockwidget/startup_dir").toString ().isEmpty ())
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
170 {
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
171 // do not restore but there is a startup dir configured
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
172 startup_dir = QDir (settings->value ("filesdockwidget/startup_dir").toString ());
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
173 }
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
174
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
175 if (! startup_dir.exists ())
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
176 {
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
177 // the configured startup dir does not exist, take actual one
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
178 startup_dir = QDir ();
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
179 }
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
180
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
181 _file_system_model = new QFileSystemModel (this);
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
182 if (settings->value ("filesdockwidget/showHiddenFiles",false).toBool ())
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
183 {
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
184 _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
185 | QDir::Hidden);
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
186 }
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
187 else
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
188 {
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
189 _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries);
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
190 }
16510
e22604d4bf85 * files-dock-widget.cc(constructor): initial dir is where octave was started
Torsten <ttl@justmail.de>
parents: 16509
diff changeset
191 QModelIndex rootPathIndex = _file_system_model->setRootPath (
18310
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
192 startup_dir.absolutePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
193
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
194 // Attach the model to the QTreeView and set the root index
16622
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
195 _file_tree_view = new FileTreeViewer (container);
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
196 _file_tree_view->setSelectionMode (QAbstractItemView::ExtendedSelection);
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
197 _file_tree_view->setModel (_file_system_model);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
198 _file_tree_view->setRootIndex (rootPathIndex);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
199 _file_tree_view->setSortingEnabled (true);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
200 _file_tree_view->setAlternatingRowColors (true);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
201 _file_tree_view->setAnimated (true);
17935
752f6b358754 Tweak GUI strings for conformity.
Rik <rik@octave.org>
parents: 17790
diff changeset
202 _file_tree_view->setToolTip (tr ("Double-click a file to open it"));
13549
807e5e9b7591 Added lots of status tips.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13539
diff changeset
203
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
204 // get sort column and order as well as cloumn state (order and width)
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
205
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
206 _file_tree_view->sortByColumn (
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
207 settings->value ("filesdockwidget/sort_files_by_column",0).toInt (),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
208 static_cast<Qt::SortOrder>
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
209 (settings->value ("filesdockwidget/sort_files_by_order",
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
210 Qt::AscendingOrder).toUInt ())
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
211 );
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
212 _file_tree_view->header ()->restoreState (
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
213 settings->value ("filesdockwidget/column_state").toByteArray ());
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
214
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
215 QStringList mru_dirs =
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
216 settings->value ("filesdockwidget/mru_dir_list").toStringList ();
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
217 _current_directory->addItems (mru_dirs);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
218
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
219 _current_directory->setEditText (
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
220 _file_system_model->fileInfo (rootPathIndex). absoluteFilePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
221
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
222 connect (_file_tree_view, SIGNAL (doubleClicked (const QModelIndex &)),
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
223 this, SLOT (item_double_clicked (const QModelIndex &)));
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
224
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
225 // add context menu to tree_view
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
226 _file_tree_view->setContextMenuPolicy (Qt::CustomContextMenu);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
227 connect (_file_tree_view,
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
228 SIGNAL (customContextMenuRequested (const QPoint &)),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
229 this, SLOT (contextmenu_requested (const QPoint &)));
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
230
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
231 _file_tree_view->header()->setContextMenuPolicy (Qt::CustomContextMenu);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
232 connect (_file_tree_view->header(),
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
233 SIGNAL (customContextMenuRequested (const QPoint &)),
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
234 this, SLOT (headercontextmenu_requested (const QPoint &)));
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
235
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
236 // Layout the widgets vertically with the toolbar on top
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
237 QVBoxLayout *vbox_layout = new QVBoxLayout ();
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
238 vbox_layout->setSpacing (0);
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
239 vbox_layout->addWidget (_navigation_tool_bar);
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
240 vbox_layout->addWidget (_file_tree_view);
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
241 vbox_layout->setMargin (1);
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
242
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
243 container->setLayout (vbox_layout);
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
244
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
245 // TODO: Add right-click contextual menus for copying, pasting,
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
246 // deleting files (and others).
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
247
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
248 connect (_current_directory->lineEdit (), SIGNAL (returnPressed ()),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
249 this, SLOT (accept_directory_line_edit ()));
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
250
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
251 connect (_current_directory, SIGNAL (activated (const QString &)),
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
252 this, SLOT (set_current_directory (const QString &)));
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
253
16635
25e418d23a4b fix running files from file browser's context menu
Torsten <ttl@justmail.de>
parents: 16622
diff changeset
254 connect (this, SIGNAL (run_file_signal (const QFileInfo&)),
16798
d749c9b588e5 make stand-alone windows from dock widgets when floating (bug #38785)
Torsten <ttl@justmail.de>
parents: 16762
diff changeset
255 main_win (), SLOT (run_file_in_terminal (const QFileInfo&)));
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
256
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
257 QCompleter *completer = new QCompleter (_file_system_model, this);
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
258 _current_directory->setCompleter (completer);
13577
e440b3f32f02 Fixed bug with closing subwindows.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13549
diff changeset
259
14812
9d9eb9bac65e Improved menu structure of file, edit and window menu. Removed ambiguous shortcuts, improved focus handling for operating the GUI with the keyboard. Added new shortcuts to focus subwindows directly.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14803
diff changeset
260 setFocusProxy (_current_directory);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
261
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
262 _sync_octave_dir = true; // default, overwirtten with notice_settings ()
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
263 _octave_dir = "";
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
264 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
265
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
266 files_dock_widget::~files_dock_widget ()
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
267 {
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
268 QSettings *settings = resource_manager::get_settings ();
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
269 int sort_column = _file_tree_view->header ()->sortIndicatorSection ();
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
270 Qt::SortOrder sort_order = _file_tree_view->header ()->sortIndicatorOrder ();
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
271 settings->setValue ("filesdockwidget/sort_files_by_column", sort_column);
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
272 settings->setValue ("filesdockwidget/sort_files_by_order", sort_order);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
273 settings->setValue ("filesdockwidget/column_state",
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
274 _file_tree_view->header ()->saveState ());
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
275
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
276 QStringList dirs;
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
277 for (int i=0; i< _current_directory->count (); i++)
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
278 {
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
279 dirs.append (_current_directory->itemText (i));
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
280 }
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
281 settings->setValue ("filesdockwidget/mru_dir_list", dirs);
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
282
16175
6f83158c714c gui: make sure settings are really written into the settings file
Torsten <ttl@justmail.de>
parents: 16057
diff changeset
283 settings->sync ();
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
284 }
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
285
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
286 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
287 files_dock_widget::item_double_clicked (const QModelIndex& index)
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
288 {
13531
bb3676025b36 User can set a custom file editor instead of the built-in one.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13522
diff changeset
289 // Retrieve the file info associated with the model index.
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
290 QFileInfo fileInfo = _file_system_model->fileInfo (index);
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
291 set_current_directory (fileInfo.absoluteFilePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
292 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
293
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
294 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
295 files_dock_widget::set_current_directory (const QString& dir)
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
296 {
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
297 display_directory (dir);
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
298 }
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
299
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
300 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
301 files_dock_widget::accept_directory_line_edit (void)
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
302 {
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
303 display_directory (_current_directory->currentText ());
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
304 }
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
305
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
306 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
307 files_dock_widget::change_directory_up (void)
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
308 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
309 QDir dir
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
310 = QDir (_file_system_model->filePath (_file_tree_view->rootIndex ()));
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
311
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
312 dir.cdUp ();
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
313 display_directory (dir.absolutePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
314 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
315
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
316 void
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
317 files_dock_widget::do_sync_octave_directory (void)
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
318 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
319 QDir dir
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
320 = QDir (_file_system_model->filePath (_file_tree_view->rootIndex ()));
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
321
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
322 emit displayed_directory_changed (dir.absolutePath ());
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
323 }
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
324
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
325 void
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
326 files_dock_widget::do_sync_browser_directory (void)
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
327 {
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
328 display_directory (_octave_dir,false); // false: no sync of octave dir
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
329 }
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
330
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
331 void
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
332 files_dock_widget::update_octave_directory (const QString& dir)
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
333 {
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
334 _octave_dir = dir;
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
335 if (_sync_octave_dir)
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
336 display_directory (_octave_dir,false); // false: no sync of octave dir
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
337 }
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
338
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
339 void
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
340 files_dock_widget::display_directory (const QString& dir, bool set_octave_dir)
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
341 {
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
342 QFileInfo fileInfo (dir);
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
343 if (fileInfo.exists ())
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
344 {
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
345 if (fileInfo.isDir ())
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
346 {
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
347 _file_tree_view->setRootIndex (_file_system_model->
15367
501a9cc2c68f maint: whitespace cleanup in GUI code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 15300
diff changeset
348 index (fileInfo.absoluteFilePath ()));
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
349 _file_system_model->setRootPath (fileInfo.absoluteFilePath ());
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
350 _file_system_model->sort (0, Qt::AscendingOrder);
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
351 if (_sync_octave_dir && set_octave_dir)
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
352 process_set_current_dir (fileInfo.absoluteFilePath ());
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
353
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
354 // see if its in the list, and if it is,
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
355 // remove it and then, put at top of the list
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
356 int index
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
357 = _current_directory->findText (fileInfo.absoluteFilePath ());
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
358 if (index != -1)
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
359 {
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
360 _current_directory->removeItem (index);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
361 }
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
362 _current_directory->insertItem (0, fileInfo.absoluteFilePath ());
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
363 _current_directory->setCurrentIndex (0);
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
364 }
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
365 else
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
366 {
16555
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
367 QString abs_fname = fileInfo.absoluteFilePath ();
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
368
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
369 if (QFile::exists (abs_fname))
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
370 {
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
371 if (is_octave_data_file (abs_fname.toStdString ()))
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
372 emit load_file_signal (abs_fname);
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
373 else
16562
fb8fe0ed4bbb * files-doc-widget.cc: Undo unintended changes from changeset 5fc1ce2947bd.
John W. Eaton <jwe@octave.org>
parents: 16558
diff changeset
374 emit open_file (fileInfo.absoluteFilePath ());
16555
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
375 }
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
376 }
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
377 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
378 }
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
379
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
380 void
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
381 files_dock_widget::open_item_in_app (const QModelIndex& index)
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
382 {
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
383 // Retrieve the file info associated with the model index.
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
384 QFileInfo fileInfo = _file_system_model->fileInfo (index);
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
385
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
386 QString file = fileInfo.absoluteFilePath ();
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
387
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
388 QDesktopServices::openUrl (QUrl::fromLocalFile (file));
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
389 }
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
390
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
391 void files_dock_widget::toggle_headercontextitem_filesize ()
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
392 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
393 QSettings *settings = resource_manager::get_settings ();
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
394 settings->setValue
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
395 ("filesdockwidget/showFileSize",
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
396 ! settings->value ("filesdockwidget/showFileSize",false).toBool ());
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
397 settings->sync ();
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
398 this->notice_settings (settings);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
399 }
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
400
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
401 void files_dock_widget::toggle_headercontextitem_filetype ()
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
402 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
403 QSettings *settings = resource_manager::get_settings ();
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
404 settings->setValue
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
405 ("filesdockwidget/showFileType",
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
406 ! settings->value ("filesdockwidget/showFileType",false).toBool ());
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
407 settings->sync ();
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
408 this->notice_settings (settings);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
409 }
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
410
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
411 void files_dock_widget::toggle_headercontextitem_datemodified ()
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
412 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
413 QSettings *settings = resource_manager::get_settings ();
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
414 settings->setValue
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
415 ("filesdockwidget/showLastModified",
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
416 ! settings->value ("filesdockwidget/showLastModified",false).toBool ());
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
417 settings->sync ();
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
418 this->notice_settings (settings);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
419 }
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
420
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
421 void files_dock_widget::toggle_headercontextitem_showhidden ()
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
422 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
423 QSettings *settings = resource_manager::get_settings ();
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
424 settings->setValue
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
425 ("filesdockwidget/showHiddenFiles",
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
426 ! settings->value ("filesdockwidget/showHiddenFiles",false).toBool ());
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
427 settings->sync ();
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
428 this->notice_settings (settings);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
429 }
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
430
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
431 void
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
432 files_dock_widget::headercontextmenu_requested (const QPoint& mpos)
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
433 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
434 QMenu menu (this);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
435
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
436 QSettings *settings = resource_manager::get_settings ();
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
437
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
438 QAction fileSizeAction (tr ("File size"), &menu);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
439 fileSizeAction.setCheckable (true);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
440 fileSizeAction.setChecked (
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
441 settings->value ("filesdockwidget/showFileSize",false).toBool ());
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
442 connect (&fileSizeAction, SIGNAL(triggered ()),
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
443 this, SLOT (toggle_headercontextitem_filesize ()));
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
444 menu.addAction (&fileSizeAction);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
445
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
446 QAction fileTypeAction (tr ("File type"), &menu);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
447 fileTypeAction.setCheckable (true);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
448 fileTypeAction.setChecked (
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
449 settings->value ("filesdockwidget/showFileType",false).toBool ());
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
450 connect (&fileTypeAction, SIGNAL(triggered ()),
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
451 this, SLOT (toggle_headercontextitem_filetype ()));
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
452 menu.addAction (&fileTypeAction);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
453
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
454 QAction dateModifiedAction (tr ("Date modified"), &menu);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
455 dateModifiedAction.setCheckable (true);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
456 dateModifiedAction.setChecked(
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
457 settings->value ("filesdockwidget/showLastModified",false).toBool ());
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
458 connect (&dateModifiedAction, SIGNAL(triggered ()),
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
459 this, SLOT (toggle_headercontextitem_datemodified ()));
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
460 menu.addAction (&dateModifiedAction);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
461
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
462 QAction showHiddenAction (tr ("Show hidden"), &menu);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
463 showHiddenAction.setCheckable (true);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
464 showHiddenAction.setChecked (
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
465 settings->value ("filesdockwidget/showHiddenFiles",false).toBool ());
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
466 connect (&showHiddenAction, SIGNAL (triggered ()),
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
467 this, SLOT (toggle_headercontextitem_showhidden ()));
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
468 menu.addAction (&showHiddenAction);
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
469
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
470 menu.exec (_file_tree_view->mapToGlobal (mpos));
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
471 }
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
472
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
473 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
474 files_dock_widget::contextmenu_requested (const QPoint& mpos)
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
475 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
476
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
477 QMenu menu (this);
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
478
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
479 QModelIndex index = _file_tree_view->indexAt (mpos);
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
480
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
481 if (index.isValid ())
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
482 {
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
483 QFileInfo info = _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
484
18387
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
485 QItemSelectionModel *m = _file_tree_view->selectionModel ();
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
486 QModelIndexList sel = m->selectedRows ();
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
487
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
488 // check if item at mouse position is seleccted
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
489 if (! sel.contains (index))
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
490 { // is not selected -> clear actual selection and select this item
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
491 m->setCurrentIndex(index,
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
492 QItemSelectionModel::Clear | QItemSelectionModel::Select |
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
493 QItemSelectionModel::Rows);
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
494 }
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
495
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
496 // construct the context menu depending on item
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
497 menu.addAction (QIcon (":/actions/icons/fileopen.png"), tr ("Open"),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
498 this, SLOT (contextmenu_open (bool)));
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
499
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
500 menu.addAction (tr ("Open in Default Application"),
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
501 this, SLOT (contextmenu_open_in_app (bool)));
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
502
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
503 menu.addAction (tr ("Copy Selection to Clipboard"),
16622
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
504 this, SLOT (contextmenu_copy_selection (bool)));
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
505
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
506 if (info.isFile () && info.suffix () == "m")
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
507 menu.addAction (QIcon (":/actions/icons/artsbuilderexecute.png"),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
508 tr ("Run"), this, SLOT (contextmenu_run (bool)));
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
509
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
510 if (info.isFile ())
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
511 menu.addAction (tr ("Load Data"), this, SLOT (contextmenu_load (bool)));
16507
8cb12cf9ca32 gui: add icons to the context menu of the the file browser
Torsten <ttl@justmail.de>
parents: 16506
diff changeset
512
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
513 if (info.isDir ())
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
514 {
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
515 menu.addSeparator ();
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
516 menu.addAction (QIcon (":/actions/icons/ok.png"),
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
517 tr ("Set Current Directory"),
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
518 this, SLOT (contextmenu_setcurrentdir (bool)));
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
519 menu.addSeparator ();
18389
d2aa3948cec8 * files-dock-widget.cc (contextmenu_requested): add icon for find files action
Torsten <ttl@justmail.de>
parents: 18388
diff changeset
520 menu.addAction (QIcon (":/actions/icons/findf.png"),
18407
61d9ef05b06b consistently use '...' without preceding space in GUI messaages
John W. Eaton <jwe@octave.org>
parents: 18389
diff changeset
521 tr ("Find Files..."), this,
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
522 SLOT (contextmenu_findfiles (bool)));
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
523 }
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
524
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
525 menu.addSeparator ();
18381
5936afdc75e1 Add ellipses to file dock context menu items which open windows.
Rik <rik@octave.org>
parents: 18345
diff changeset
526 menu.addAction (tr ("Rename..."), this, SLOT (contextmenu_rename (bool)));
5936afdc75e1 Add ellipses to file dock context menu items which open windows.
Rik <rik@octave.org>
parents: 18345
diff changeset
527 menu.addAction (QIcon (":/actions/icons/editdelete.png"),
5936afdc75e1 Add ellipses to file dock context menu items which open windows.
Rik <rik@octave.org>
parents: 18345
diff changeset
528 tr ("Delete..."), this, SLOT (contextmenu_delete (bool)));
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
529
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
530 if (info.isDir ())
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
531 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
532 menu.addSeparator ();
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
533 menu.addAction (QIcon (":/actions/icons/filenew.png"),
18381
5936afdc75e1 Add ellipses to file dock context menu items which open windows.
Rik <rik@octave.org>
parents: 18345
diff changeset
534 tr ("New File..."),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
535 this, SLOT (contextmenu_newfile (bool)));
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
536 menu.addAction (QIcon (":/actions/icons/folder_new.png"),
18381
5936afdc75e1 Add ellipses to file dock context menu items which open windows.
Rik <rik@octave.org>
parents: 18345
diff changeset
537 tr ("New Directory..."),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
538 this, SLOT (contextmenu_newdir (bool)));
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
539 }
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
540
18387
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
541 // show the menu
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
542 menu.exec (_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
543
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
544 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
545 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
546
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
547 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
548 files_dock_widget::contextmenu_open (bool)
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
549 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
550
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
551 QItemSelectionModel *m = _file_tree_view->selectionModel ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
552 QModelIndexList rows = m->selectedRows ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
553
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
554 for ( QModelIndexList::iterator it = rows.begin (); it != rows.end (); it++)
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
555 {
18388
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
556 QFileInfo file = _file_system_model->fileInfo (*it);
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
557 if (file.exists ())
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
558 {
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
559 if (file.isFile ())
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
560 emit open_file (file.absoluteFilePath ());
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
561 else
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
562 set_current_directory (file.absoluteFilePath ());
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
563 }
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
564 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
565 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
566
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
567 void
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
568 files_dock_widget::contextmenu_open_in_app (bool)
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
569 {
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
570 QItemSelectionModel *m = _file_tree_view->selectionModel ();
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
571 QModelIndexList rows = m->selectedRows ();
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
572
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
573 for (QModelIndexList::iterator it = rows.begin (); it != rows.end (); it++)
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
574 open_item_in_app (*it);
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
575 }
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
576
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
577 void
16622
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
578 files_dock_widget::contextmenu_copy_selection (bool)
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
579 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
580 QItemSelectionModel *m = _file_tree_view->selectionModel ();
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
581 QModelIndexList rows = m->selectedRows ();
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
582
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
583 QStringList selection;
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
584
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
585 for (QModelIndexList::iterator it = rows.begin (); it != rows.end (); it++)
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
586 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
587 QFileInfo info = _file_system_model->fileInfo (*it);
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
588
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
589 selection << info.fileName ();
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
590 }
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
591
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
592 QClipboard *clipboard = QApplication::clipboard ();
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
593
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
594 clipboard->setText (selection.join ("\n"));
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
595 }
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
596
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
597 void
16504
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
598 files_dock_widget::contextmenu_load (bool)
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
599 {
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
600 QItemSelectionModel *m = _file_tree_view->selectionModel ();
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
601 QModelIndexList rows = m->selectedRows ();
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
602
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
603 if (rows.size () > 0)
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
604 {
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
605 QModelIndex index = rows[0];
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
606
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
607 QFileInfo info = _file_system_model->fileInfo (index);
16504
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
608
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
609 emit load_file_signal (info.fileName ());
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
610 }
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
611 }
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
612
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
613 void
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
614 files_dock_widget::contextmenu_run (bool)
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
615 {
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
616 QItemSelectionModel *m = _file_tree_view->selectionModel ();
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
617 QModelIndexList rows = m->selectedRows ();
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
618
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
619 if (rows.size () > 0)
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
620 {
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
621 QModelIndex index = rows[0];
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
622
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
623 QFileInfo info = _file_system_model->fileInfo (index);
16635
25e418d23a4b fix running files from file browser's context menu
Torsten <ttl@justmail.de>
parents: 16622
diff changeset
624 emit run_file_signal (info);
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
625 }
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
626 }
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
627
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
628 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
629 files_dock_widget::contextmenu_rename (bool)
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
630 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
631 QItemSelectionModel *m = _file_tree_view->selectionModel ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
632 QModelIndexList rows = m->selectedRows ();
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
633 if (rows.size () > 0)
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
634 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
635 QModelIndex index = rows[0];
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
636
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
637 QFileInfo info = _file_system_model->fileInfo (index);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
638 QDir path = info.absoluteDir ();
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
639 QString old_name = info.fileName ();
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
640 bool ok;
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
641
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
642 QString new_name
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
643 = QInputDialog::getText (this, tr ("Rename file/directory"),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
644 tr ("Rename file/directory:\n")
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
645 + old_name + tr ("\n to: "),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
646 QLineEdit::Normal, old_name, &ok);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
647 if (ok && new_name.length () > 0)
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
648 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
649 new_name = path.absolutePath () + "/" + new_name;
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
650 old_name = path.absolutePath () + "/" + old_name;
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
651 path.rename (old_name, new_name);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
652 _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
653 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
654 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
655
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
656 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
657
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
658 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
659 files_dock_widget::contextmenu_delete (bool)
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
660 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
661 QItemSelectionModel *m = _file_tree_view->selectionModel ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
662 QModelIndexList rows = m->selectedRows ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
663
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
664 for ( QModelIndexList::iterator it = rows.begin (); it != rows.end (); it++)
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
665 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
666 QModelIndex index = *it;
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
667
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
668 QFileInfo info = _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
669
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
670 if (QMessageBox::question (this, tr ("Delete file/directory"),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
671 tr ("Are you sure you want to delete\n")
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
672 + info.filePath (),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
673 QMessageBox::Yes|QMessageBox::No)
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
674 == QMessageBox::Yes)
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
675 {
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
676 if (info.isDir ())
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
677 {
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
678 // see if direcory is empty
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
679 QDir path (info.absoluteFilePath ());
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
680 QList<QFileInfo> fileLst = path.entryInfoList (QDir::AllEntries |
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
681 QDir::NoDotAndDotDot);
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
682
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
683 if (fileLst.count () != 0)
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
684 QMessageBox::warning (this, tr ("Delete file/directory"),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
685 tr ("Can not delete a directory that is not empty"));
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
686 else
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
687 _file_system_model->rmdir (index);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
688 }
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
689 else
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
690 {
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
691 _file_system_model->remove (index);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
692 }
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
693
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
694 _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
695
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
696 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
697 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
698 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
699
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
700 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
701 files_dock_widget::contextmenu_newfile (bool)
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
702 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
703 QItemSelectionModel *m = _file_tree_view->selectionModel ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
704 QModelIndexList rows = m->selectedRows ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
705
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
706 if (rows.size () > 0)
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
707 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
708 QModelIndex index = rows[0];
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
709
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
710 QFileInfo info = _file_system_model->fileInfo (index);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
711 QString parent_dir = info.filePath ();
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
712
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
713 process_new_file (parent_dir);
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
714 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
715 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
716
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
717 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
718 files_dock_widget::contextmenu_newdir (bool)
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
719 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
720 QItemSelectionModel *m = _file_tree_view->selectionModel ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
721 QModelIndexList rows = m->selectedRows ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
722
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
723 if (rows.size () > 0)
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
724 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
725 QModelIndex index = rows[0];
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
726
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
727 QFileInfo info = _file_system_model->fileInfo (index);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
728 QString parent_dir = info.filePath ();
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
729
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
730 process_new_dir (parent_dir);
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
731 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
732 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
733
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
734 void
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
735 files_dock_widget::contextmenu_setcurrentdir (bool)
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
736 {
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
737 QItemSelectionModel *m = _file_tree_view->selectionModel ();
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
738 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
739
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
740 if (rows.size () > 0)
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
741 {
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
742 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
743
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
744 QFileInfo info = _file_system_model->fileInfo (index);
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
745
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
746 if (info.isDir ())
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
747 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
748 process_set_current_dir (info.absoluteFilePath ());
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
749 }
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
750 }
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
751 }
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
752
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
753 void
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
754 files_dock_widget::contextmenu_findfiles (bool)
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
755 {
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
756 QItemSelectionModel *m = _file_tree_view->selectionModel ();
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
757 QModelIndexList rows = m->selectedRows ();
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
758
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
759 if (rows.size () > 0)
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
760 {
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
761 QModelIndex index = rows[0];
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
762
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
763 QFileInfo info = _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
764
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
765 if (info.isDir ())
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
766 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
767 process_find_files (info.absoluteFilePath ());
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
768 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
769 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
770 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
771
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
772 void
16413
28136851099a remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16410
diff changeset
773 files_dock_widget::notice_settings (const QSettings *settings)
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
774 {
16413
28136851099a remove _terminal pointer from main_window, it is contained by other Qt object
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 16410
diff changeset
775 // 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
776
17988
d62570cfbab9 reduce default icon size to 16 pixel for larger working areas in the widgets
Torsten <ttl@justmail.de>
parents: 17985
diff changeset
777 int icon_size = settings->value ("toolbar_icon_size",16).toInt ();
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
778 if (icon_size > 16)
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
779 icon_size = icon_size - 4;
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
780 _navigation_tool_bar->setIconSize (QSize (icon_size,icon_size));
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
781
16410
f62163bed4dc gui: always show file names in file dock widget
Torsten <ttl@justmail.de>
parents: 16379
diff changeset
782 // file names are always shown, other columns can be hidden by settings
f62163bed4dc gui: always show file names in file dock widget
Torsten <ttl@justmail.de>
parents: 16379
diff changeset
783 _file_tree_view->setColumnHidden (0, false);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
784 _file_tree_view->setColumnHidden (1,
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
785 ! settings->value ("filesdockwidget/showFileSize",false).toBool ());
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
786 _file_tree_view->setColumnHidden (2,
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
787 ! settings->value ("filesdockwidget/showFileType",false).toBool ());
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
788 _file_tree_view->setColumnHidden (3,
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
789 ! settings->value ("filesdockwidget/showLastModified",false).toBool ());
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
790 _file_tree_view->setAlternatingRowColors (
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
791 settings->value ("filesdockwidget/useAlternatingRowColors",true).toBool ());
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
792 if (settings->value ("filesdockwidget/showHiddenFiles",false).toBool ())
16379
4bb1b82076e5 gui: provide defaults for all values read from the settings file
Torsten <ttl@justmail.de>
parents: 16175
diff changeset
793 {
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
794 _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
795 | QDir::Hidden);
16379
4bb1b82076e5 gui: provide defaults for all values read from the settings file
Torsten <ttl@justmail.de>
parents: 16175
diff changeset
796 }
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
797 else
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
798 {
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
799 _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries);
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
800 }
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
801 _file_tree_view->setModel (_file_system_model);
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
802
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
803 // enable the buttons to sync octave/browser dir
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
804 // only if this is not done by default
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
805 _sync_octave_dir
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
806 = settings->value ("filesdockwidget/sync_octave_directory",false).toBool ();
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
807 _sync_octave_directory_action->setEnabled (!_sync_octave_dir);
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
808 _sync_browser_directory_action->setEnabled (!_sync_octave_dir);
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
809
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
810 if (_sync_octave_dir)
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
811 display_directory (_octave_dir); // sync browser to octave dir
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
812
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
813 }
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
814
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
815 void
16762
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
816 files_dock_widget::popdownmenu_home (bool)
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
817 {
17008
21ed3e2c3be6 Use HOME environment var for show home folder in files_dock-widget when available
John Donoghue <john.donoghue@ieee.org>
parents: 16912
diff changeset
818 QString dir = qgetenv ("HOME");
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
819 if (dir.isEmpty ())
17008
21ed3e2c3be6 Use HOME environment var for show home folder in files_dock-widget when available
John Donoghue <john.donoghue@ieee.org>
parents: 16912
diff changeset
820 dir = QDir::homePath ();
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
821
16762
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
822 set_current_directory (dir);
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
823 }
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
824
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
825 void
16613
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
826 files_dock_widget::popdownmenu_search_dir (bool)
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
827 {
16709
1070f2ca1367 fix searching new directory for file browser
Torsten <ttl@justmail.de>
parents: 16699
diff changeset
828 QString dir = QFileDialog::getExistingDirectory
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
829 (this, tr ("Set directory of file browser"),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
830 _file_system_model->rootPath (),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
831 QFileDialog::DontUseNativeDialog);
16709
1070f2ca1367 fix searching new directory for file browser
Torsten <ttl@justmail.de>
parents: 16699
diff changeset
832 set_current_directory (dir);
16613
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
833 }
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
834
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
835 void
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
836 files_dock_widget::popdownmenu_findfiles (bool)
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
837 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
838 process_find_files (_file_system_model->rootPath ());
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
839 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
840
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
841 void
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
842 files_dock_widget::popdownmenu_newdir (bool)
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
843 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
844 process_new_dir (_file_system_model->rootPath ());
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
845 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
846
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
847 void
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
848 files_dock_widget::popdownmenu_newfile (bool)
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
849 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
850 process_new_file (_file_system_model->rootPath ());
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
851 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
852
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
853 void
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
854 files_dock_widget::process_new_file (const QString &parent_dir)
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
855 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
856 bool ok;
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
857
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
858 QString name = QInputDialog::getText (this, tr ("Create File"),
18251
0b5f669f5b03 fix some translation issues (bug #41159)
Torsten <ttl@justmail.de>
parents: 17988
diff changeset
859 tr ("Create file in\n","String ends with \\n!") + parent_dir,
18283
12291fb903de fix missing translations (bug #41200)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
860 QLineEdit::Normal, tr ("New File.txt"), &ok);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
861 if (ok && name.length () > 0)
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
862 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
863 name = parent_dir + "/" + name;
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
864
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
865 QFile file (name);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
866 file.open (QIODevice::WriteOnly);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
867 _file_system_model->revert ();
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
868 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
869 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
870
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
871 void
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
872 files_dock_widget::process_new_dir (const QString &parent_dir)
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
873 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
874 bool ok;
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
875
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
876 QString name = QInputDialog::getText (this, tr ("Create Directory"),
18251
0b5f669f5b03 fix some translation issues (bug #41159)
Torsten <ttl@justmail.de>
parents: 17988
diff changeset
877 tr ("Create folder in\n","String ends with \\n!") + parent_dir,
18283
12291fb903de fix missing translations (bug #41200)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
878 QLineEdit::Normal, tr ("New Directory"), &ok);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
879 if (ok && name.length () > 0)
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
880 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
881 QDir dir (parent_dir);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
882 dir.mkdir (name);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
883 _file_system_model->revert ();
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
884 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
885 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
886
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
887 void files_dock_widget::process_set_current_dir (const QString & dir)
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
888 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
889 emit displayed_directory_changed (dir);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
890 }
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
891
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
892 void files_dock_widget::process_find_files (const QString & dir)
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
893 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
894 emit find_files_signal (dir);
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
895 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
896
16881
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
897 void
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
898 files_dock_widget::copyClipboard ()
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
899 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
900 if (_file_tree_view->hasFocus ())
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
901 contextmenu_copy_selection (true);
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
902 if (_current_directory->hasFocus ())
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
903 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
904 QClipboard *clipboard = QApplication::clipboard ();
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
905
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
906 QLineEdit * edit = _current_directory->lineEdit ();
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
907 if (edit && edit->hasSelectedText ())
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
908 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
909 clipboard->setText (edit->selectedText ());
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
910 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
911 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
912 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
913
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
914 void
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
915 files_dock_widget::pasteClipboard ()
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
916 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
917 if (_current_directory->hasFocus ())
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
918 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
919 QClipboard *clipboard = QApplication::clipboard ();
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
920 QString str = clipboard->text ();
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
921 QLineEdit * edit = _current_directory->lineEdit ();
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
922 if (edit && str.length () > 0)
16881
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
923 edit->insert (str);
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
924 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
925 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
926
18568
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
927 void
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
928 files_dock_widget::selectAll ()
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
929 {
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
930 if (_file_tree_view->hasFocus ())
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
931 _file_tree_view->selectAll ();
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
932 if (_current_directory->hasFocus ())
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
933 {
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
934 QLineEdit * edit = _current_directory->lineEdit ();
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
935 if (edit)
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
936 {
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
937 edit->selectAll ();
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
938 }
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
939 }
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
940 }
16881
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
941
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
942
18568
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
943