annotate libgui/src/files-dock-widget.cc @ 20017:4b7b7ac7af2c

use get_home_directory instead of getenv ("HOME") (bug #44694) * files-dock-widget.cc (files_dock_widget::popdownmenu_home): Use get_home_directory instead of getenv ("HOME") for the benefit of Windows systems which may not have HOME set in the environment. * kpse.cc (kpse_tilde_expand): Likewise. * prefdir.m: Likewise. * system.tst: Likewise. * edit.m: Use get_home_directory instead of default_home. (default_home): Delete subfunction.
author John W. Eaton <jwe@octave.org>
date Thu, 02 Apr 2015 13:19:30 -0400
parents e251b75fab55
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15204
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
1 /*
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
2
19697
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 19691
diff changeset
3 Copyright (C) 2013-2015 John P. Swensen
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 19691
diff changeset
4 Copyright (C) 2011-2015 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"
20017
4b7b7ac7af2c use get_home_directory instead of getenv ("HOME") (bug #44694)
John W. Eaton <jwe@octave.org>
parents: 20000
diff changeset
49 #include "oct-env.h"
16555
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
50
16622
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
51 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
52 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
53 public:
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
54
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
55 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
56
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
57 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
58 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
59 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
60 QTreeView::mousePressEvent (e);
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 };
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
63
15368
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
64 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
65 : octave_dock_widget (p)
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
66 {
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
67 setObjectName ("FilesDockWidget");
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
68 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
69 set_title (tr ("File Browser"));
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
70 setToolTip (tr ("Browse your files."));
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
71
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
72 QWidget *container = new QWidget (this);
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
73
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
74 setWidget (container);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
75
16455
38ed6bdd1f7f move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents: 16450
diff changeset
76 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
77 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
78
38ed6bdd1f7f move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents: 16450
diff changeset
79 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
80 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
81
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
82 // Create a toolbar
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
83 _navigation_tool_bar = new QToolBar ("", container);
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
84 _navigation_tool_bar->setAllowedAreas (Qt::TopToolBarArea);
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
85 _navigation_tool_bar->setMovable (false);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
86
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
87 _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
88 _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
89 _current_directory->setEditable (true);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
90 _current_directory->setMaxCount (MaxMRUDirs);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
91 _current_directory->setInsertPolicy (QComboBox::NoInsert);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
92 _current_directory->setSizeAdjustPolicy (
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
93 QComboBox::AdjustToMinimumContentsLengthWithIcon);
19846
72fe9df87fe8 improve scalability of gui objects (as discussed in bug #41938)
Torsten <ttl@justmail.de>
parents: 19697
diff changeset
94 QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Preferred);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
95 _current_directory->setSizePolicy (sizePol);
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
96
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
97 QAction *directory_up_action = new QAction (resource_manager::icon ("go-up"),
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
98 "", _navigation_tool_bar);
19902
0019ad8590f3 use unique tool-tip for both directory up actions
Torsten <ttl@justmail.de>
parents: 19899
diff changeset
99 directory_up_action->setToolTip (tr ("One directory up"));
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
100
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
101 _sync_browser_directory_action
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
102 = new QAction (resource_manager::icon ("go-first"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
103 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
104 _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
105 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
106 _sync_browser_directory_action->setEnabled ("false");
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
107
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
108 _sync_octave_directory_action
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
109 = new QAction (resource_manager::icon ("go-last"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
110 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
111 _sync_octave_directory_action->setToolTip (
20000
e251b75fab55 Fix two typos in GUI strings (bug #44681).
Rik <rik@octave.org>
parents: 19902
diff changeset
112 tr ("Set Octave directory to current browser directory"));
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
113 _sync_octave_directory_action->setEnabled ("false");
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
114
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
115 QToolButton * popdown_button = new QToolButton ();
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
116 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
117 QMenu * popdown_menu = new QMenu ();
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
118 popdown_menu->addAction (resource_manager::icon ("user-home"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
119 tr ("Show Home Directory"),
16762
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
120 this, SLOT (popdownmenu_home (bool)));
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
121 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
122 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
123 popdown_button->setMenu (popdown_menu);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
124 popdown_button->setPopupMode (QToolButton::InstantPopup);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
125 popdown_button->setDefaultAction (new QAction (
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
126 resource_manager::icon ("applications-system"), "",
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
127 _navigation_tool_bar));
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
128
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
129 popdown_menu->addSeparator ();
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
130 popdown_menu->addAction (resource_manager::icon ("folder"),
18345
dfc6ef6ac455 some text improvements in the gui (#bug 41201)
Torsten <ttl@justmail.de>
parents: 18310
diff changeset
131 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
132 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
133 popdown_menu->addSeparator ();
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
134 popdown_menu->addAction (resource_manager::icon ("edit-find"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
135 tr ("Find Files..."),
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
136 this, SLOT (popdownmenu_findfiles (bool)));
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
137 popdown_menu->addSeparator ();
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
138 popdown_menu->addAction (resource_manager::icon ("document-new"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
139 tr ("New File..."),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
140 this, SLOT (popdownmenu_newfile (bool)));
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
141 popdown_menu->addAction (resource_manager::icon ("folder-new"),
18257
cae24b7cfaf4 minor fix of text strings and related translations (part of bug #41201)
Torsten <ttl@justmail.de>
parents: 18251
diff changeset
142 tr ("New Directory..."),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
143 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
144
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
145 _navigation_tool_bar->addWidget (_current_directory);
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
146 _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
147 _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
148
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
149 connect (directory_up_action, SIGNAL (triggered ()), this,
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
150 SLOT (change_directory_up ()));
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
151 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
152 SLOT (do_sync_octave_directory ()));
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
153 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
154 SLOT (do_sync_browser_directory ()));
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
155
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
156 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
157 // 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
158
18310
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
159 // 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
160 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
161
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
162 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
163 {
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
164 // 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
165 QStringList last_dirs
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
166 = 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
167 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
168 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
169 }
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
170 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
171 {
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
172 // 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
173 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
174 }
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
175
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
176 if (! startup_dir.exists ())
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
177 {
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
178 // 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
179 startup_dir = QDir ();
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
180 }
03a8428adef7 gui: provide prefernces for the file browser's directory at startup
Torsten <ttl@justmail.de>
parents: 18283
diff changeset
181
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
182 _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
183 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
184 {
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
185 _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
186 | 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
187 }
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
188 else
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
189 {
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
190 _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
191 }
16510
e22604d4bf85 * files-dock-widget.cc(constructor): initial dir is where octave was started
Torsten <ttl@justmail.de>
parents: 16509
diff changeset
192 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
193 startup_dir.absolutePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
194
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
195 // 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
196 _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
197 _file_tree_view->setSelectionMode (QAbstractItemView::ExtendedSelection);
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
198 _file_tree_view->setModel (_file_system_model);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
199 _file_tree_view->setRootIndex (rootPathIndex);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
200 _file_tree_view->setSortingEnabled (true);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
201 _file_tree_view->setAlternatingRowColors (true);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
202 _file_tree_view->setAnimated (true);
19861
19755f4fc851 maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19847
diff changeset
203 _file_tree_view->setToolTip (
19755f4fc851 maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19847
diff changeset
204 tr ("Activate to open in editor, right click for alternatives"));
13549
807e5e9b7591 Added lots of status tips.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13539
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 // 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
207
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
208 _file_tree_view->sortByColumn (
17790
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_column",0).toInt (),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
210 static_cast<Qt::SortOrder>
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
211 (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
212 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
213 );
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
214 _file_tree_view->header ()->restoreState (
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
215 settings->value ("filesdockwidget/column_state").toByteArray ());
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
216
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
217 QStringList mru_dirs =
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
218 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
219 _current_directory->addItems (mru_dirs);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
220
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
221 _current_directory->setEditText (
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
222 _file_system_model->fileInfo (rootPathIndex). absoluteFilePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
223
19691
480f0fc56bbf Allow return/double-click to activate dock file-browser open (bug #44216)
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 18850
diff changeset
224 connect (_file_tree_view, SIGNAL (activated (const QModelIndex &)),
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
225 this, SLOT (item_double_clicked (const QModelIndex &)));
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
226
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
227 // 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
228 _file_tree_view->setContextMenuPolicy (Qt::CustomContextMenu);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
229 connect (_file_tree_view,
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
230 SIGNAL (customContextMenuRequested (const QPoint &)),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
231 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
232
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
233 _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
234 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
235 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
236 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
237
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
238 // 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
239 QVBoxLayout *vbox_layout = new QVBoxLayout ();
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
240 vbox_layout->setSpacing (0);
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
241 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
242 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
243 vbox_layout->setMargin (1);
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
244
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
245 container->setLayout (vbox_layout);
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
246
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
247 // 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
248 // deleting files (and others).
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
249
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
250 connect (_current_directory->lineEdit (), SIGNAL (returnPressed ()),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
251 this, SLOT (accept_directory_line_edit ()));
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
252
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
253 connect (_current_directory, SIGNAL (activated (const QString &)),
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
254 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
255
16635
25e418d23a4b fix running files from file browser's context menu
Torsten <ttl@justmail.de>
parents: 16622
diff changeset
256 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
257 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
258
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
259 QCompleter *completer = new QCompleter (_file_system_model, this);
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
260 _current_directory->setCompleter (completer);
13577
e440b3f32f02 Fixed bug with closing subwindows.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13549
diff changeset
261
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
262 setFocusProxy (_current_directory);
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
263
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
264 _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
265 _octave_dir = "";
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
266 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
267
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
268 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
269 {
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
270 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
271 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
272 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
273 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
274 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
275 settings->setValue ("filesdockwidget/column_state",
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
276 _file_tree_view->header ()->saveState ());
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
277
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
278 QStringList dirs;
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
279 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
280 {
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
281 dirs.append (_current_directory->itemText (i));
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
282 }
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
283 settings->setValue ("filesdockwidget/mru_dir_list", dirs);
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
284
16175
6f83158c714c gui: make sure settings are really written into the settings file
Torsten <ttl@justmail.de>
parents: 16057
diff changeset
285 settings->sync ();
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
286 }
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
287
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
288 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
289 files_dock_widget::item_double_clicked (const QModelIndex& index)
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
290 {
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
291 // 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
292 QFileInfo fileInfo = _file_system_model->fileInfo (index);
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
293 set_current_directory (fileInfo.absoluteFilePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
294 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
295
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
296 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
297 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
298 {
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
299 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
300 }
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
301
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 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
303 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
304 {
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
305 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
306 }
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
307
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 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
309 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
310 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
311 QDir dir
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
312 = 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
313
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
314 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
315 display_directory (dir.absolutePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
316 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
317
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
318 void
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
319 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
320 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
321 QDir dir
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
322 = 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
323
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
324 emit displayed_directory_changed (dir.absolutePath ());
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
325 }
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
326
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
327 void
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
328 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
329 {
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
330 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
331 }
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
332
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
333 void
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
334 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
335 {
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
336 _octave_dir = dir;
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
337 if (_sync_octave_dir)
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
338 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
339 }
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
340
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
341 void
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
342 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
343 {
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
344 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
345 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
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 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
348 {
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_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
350 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
351 _file_system_model->setRootPath (fileInfo.absoluteFilePath ());
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
352 _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
353 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
354 process_set_current_dir (fileInfo.absoluteFilePath ());
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
355
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
356 // 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
357 // 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
358 int index
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
359 = _current_directory->findText (fileInfo.absoluteFilePath ());
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
360 if (index != -1)
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->removeItem (index);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
363 }
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
364 _current_directory->insertItem (0, fileInfo.absoluteFilePath ());
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
365 _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
366 }
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
367 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
368 {
16555
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
369 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
370
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
371 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
372 {
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
373 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
374 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
375 else
16562
fb8fe0ed4bbb * files-doc-widget.cc: Undo unintended changes from changeset 5fc1ce2947bd.
John W. Eaton <jwe@octave.org>
parents: 16558
diff changeset
376 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
377 }
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
378 }
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
379 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
380 }
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
381
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
382 void
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
383 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
384 {
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
385 // 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
386 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
387
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
388 QString file = fileInfo.absoluteFilePath ();
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 QDesktopServices::openUrl (QUrl::fromLocalFile (file));
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
391 }
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
392
17960
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
393 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
394 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
395 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
396 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
397 ("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
398 ! 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
399 settings->sync ();
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
400 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
401 }
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 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
404 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
405 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
406 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
407 ("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
408 ! 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
409 settings->sync ();
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
410 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
411 }
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 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
414 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
415 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
416 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
417 ("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
418 ! 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
419 settings->sync ();
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
420 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
421 }
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 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
424 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
425 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
426 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
427 ("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
428 ! 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
429 settings->sync ();
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
430 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
431 }
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
432
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
433 void
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
434 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
435 {
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
436 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
437
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
438 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
439
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
440 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
441 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
442 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
443 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
444 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
445 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
446 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
447
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
448 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
449 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
450 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
451 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
452 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
453 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
454 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
455
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
456 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
457 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
458 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
459 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
460 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
461 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
462 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
463
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
464 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
465 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
466 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
467 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
468 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
469 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
470 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
471
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
472 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
473 }
225c7be94c5f Added a context menu changing the visible columns in the file browser
John Swensen <jpswensen@gmail.com>
parents: 17935
diff changeset
474
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
475 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
476 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
477 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
478
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
479 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
480
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
481 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
482
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
483 if (index.isValid ())
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
484 {
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
485 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
486
18387
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
487 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
488 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
489
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
490 // 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
491 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
492 { // 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
493 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
494 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
495 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
496 }
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
497
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
498 // construct the context menu depending on item
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
499 menu.addAction (resource_manager::icon ("document-open"), tr ("Open"),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
500 this, SLOT (contextmenu_open (bool)));
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
501
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
502 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
503 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
504
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
505 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
506 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
507
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
508 if (info.isFile () && info.suffix () == "m")
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
509 menu.addAction (resource_manager::icon ("media-playback-start"),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
510 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
511
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
512 if (info.isFile ())
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
513 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
514
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
515 if (info.isDir ())
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
516 {
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
517 menu.addSeparator ();
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
518 menu.addAction (resource_manager::icon ("go-first"),
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
519 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
520 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
521 menu.addSeparator ();
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
522 menu.addAction (resource_manager::icon ("edit-find"),
18407
61d9ef05b06b consistently use '...' without preceding space in GUI messaages
John W. Eaton <jwe@octave.org>
parents: 18389
diff changeset
523 tr ("Find Files..."), this,
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
524 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
525 }
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
526
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
527 menu.addSeparator ();
18381
5936afdc75e1 Add ellipses to file dock context menu items which open windows.
Rik <rik@octave.org>
parents: 18345
diff changeset
528 menu.addAction (tr ("Rename..."), this, SLOT (contextmenu_rename (bool)));
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
529 menu.addAction (resource_manager::icon ("edit-delete"),
18381
5936afdc75e1 Add ellipses to file dock context menu items which open windows.
Rik <rik@octave.org>
parents: 18345
diff changeset
530 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
531
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
532 if (info.isDir ())
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
533 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
534 menu.addSeparator ();
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
535 menu.addAction (resource_manager::icon ("document-new"),
18381
5936afdc75e1 Add ellipses to file dock context menu items which open windows.
Rik <rik@octave.org>
parents: 18345
diff changeset
536 tr ("New File..."),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
537 this, SLOT (contextmenu_newfile (bool)));
19899
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
538 menu.addAction (resource_manager::icon ("folder-new"),
18381
5936afdc75e1 Add ellipses to file dock context menu items which open windows.
Rik <rik@octave.org>
parents: 18345
diff changeset
539 tr ("New Directory..."),
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
540 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
541 }
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
542
18387
f1312db94896 apply the context menu of the file browser to the correct item (bug #41430)
Torsten <ttl@justmail.de>
parents: 18261
diff changeset
543 // show the menu
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
544 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
545
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
546 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
547 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
548
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
549 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
550 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
551 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
552
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
553 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
554 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
555
18678
6113e0c6920b maint: Clean up extra spaces before/after parentheses.
Rik <rik@octave.org>
parents: 18555
diff changeset
556 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
557 {
18388
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
558 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
559 if (file.exists ())
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
560 {
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
561 if (file.isFile ())
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
562 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
563 else
226285bce729 context menu open in the file browser really opens the file
Torsten <ttl@justmail.de>
parents: 18387
diff changeset
564 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
565 }
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
566 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
567 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
568
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
569 void
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
570 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
571 {
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
572 QItemSelectionModel *m = _file_tree_view->selectionModel ();
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
573 QModelIndexList rows = m->selectedRows ();
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
574
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
575 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
576 open_item_in_app (*it);
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
577 }
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
578
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
579 void
16622
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
580 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
581 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
582 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
583 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
584
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
585 QStringList selection;
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 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
588 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
589 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
590
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
591 selection << info.fileName ();
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
592 }
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 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
595
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
596 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
597 }
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
598
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
599 void
16504
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
600 files_dock_widget::contextmenu_load (bool)
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
601 {
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
602 QItemSelectionModel *m = _file_tree_view->selectionModel ();
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
603 QModelIndexList rows = m->selectedRows ();
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 if (rows.size () > 0)
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
606 {
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
607 QModelIndex index = rows[0];
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
608
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
609 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
610
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
611 emit load_file_signal (info.fileName ());
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
612 }
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
613 }
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
614
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
615 void
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
616 files_dock_widget::contextmenu_run (bool)
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
617 {
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
618 QItemSelectionModel *m = _file_tree_view->selectionModel ();
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
619 QModelIndexList rows = m->selectedRows ();
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 if (rows.size () > 0)
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
622 {
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
623 QModelIndex index = rows[0];
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
624
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
625 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
626 emit run_file_signal (info);
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
627 }
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
628 }
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
629
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
630 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
631 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
632 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
633 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
634 QModelIndexList rows = m->selectedRows ();
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
635 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
636 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
637 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
638
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
639 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
640 QDir path = info.absoluteDir ();
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
641 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
642 bool ok;
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
643
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
644 QString new_name
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
645 = 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
646 tr ("Rename file/directory:\n")
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
647 + old_name + tr ("\n to: "),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
648 QLineEdit::Normal, old_name, &ok);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
649 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
650 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
651 new_name = path.absolutePath () + "/" + new_name;
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
652 old_name = path.absolutePath () + "/" + old_name;
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
653 path.rename (old_name, new_name);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
654 _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
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
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
658 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
659
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
660 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
661 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
662 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
663 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
664 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
665
18678
6113e0c6920b maint: Clean up extra spaces before/after parentheses.
Rik <rik@octave.org>
parents: 18555
diff changeset
666 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
667 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
668 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
669
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
670 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
671
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
672 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
673 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
674 + info.filePath (),
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
675 QMessageBox::Yes|QMessageBox::No)
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
676 == QMessageBox::Yes)
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 if (info.isDir ())
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
679 {
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
680 // see if direcory is empty
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
681 QDir path (info.absoluteFilePath ());
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
682 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
683 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
684
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
685 if (fileLst.count () != 0)
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
686 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
687 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
688 else
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
689 _file_system_model->rmdir (index);
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 else
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 _file_system_model->remove (index);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
694 }
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
695
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
696 _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
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 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
700 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
701
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
702 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
703 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
704 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
705 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
706 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
707
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
708 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
709 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
710 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
711
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
712 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
713 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
714
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
715 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
716 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
717 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
718
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
719 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
720 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
721 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
722 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
723 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
724
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
725 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
726 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
727 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
728
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
729 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
730 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
731
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
732 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
733 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
734 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
735
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
736 void
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
737 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
738 {
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
739 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
740 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
741
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
742 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
743 {
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
744 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
745
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
746 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
747
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
748 if (info.isDir ())
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
749 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
750 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
751 }
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
752 }
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
753 }
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
754
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
755 void
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
756 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
757 {
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
758 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
759 QModelIndexList rows = m->selectedRows ();
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
760
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
761 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
762 {
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
763 QModelIndex index = rows[0];
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 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
766
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
767 if (info.isDir ())
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
768 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
769 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
770 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
771 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
772 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
773
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
774 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
775 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
776 {
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
777 // 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
778
19847
597fc0fd8e54 make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents: 19846
diff changeset
779 int icon_size_settings = settings->value ("toolbar_icon_size",0).toInt ();
597fc0fd8e54 make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents: 19846
diff changeset
780 QStyle *st = style ();
597fc0fd8e54 make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents: 19846
diff changeset
781 int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize);
597fc0fd8e54 make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents: 19846
diff changeset
782
597fc0fd8e54 make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents: 19846
diff changeset
783 if (icon_size_settings == 1)
597fc0fd8e54 make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents: 19846
diff changeset
784 icon_size = st->pixelMetric (QStyle::PM_LargeIconSize);
597fc0fd8e54 make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents: 19846
diff changeset
785 else if (icon_size_settings == -1)
597fc0fd8e54 make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents: 19846
diff changeset
786 icon_size = st->pixelMetric (QStyle::PM_SmallIconSize);
597fc0fd8e54 make size of toolbar icons depending on scaling of display
Torsten <ttl@justmail.de>
parents: 19846
diff changeset
787
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
788 _navigation_tool_bar->setIconSize (QSize (icon_size,icon_size));
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
789
16410
f62163bed4dc gui: always show file names in file dock widget
Torsten <ttl@justmail.de>
parents: 16379
diff changeset
790 // 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
791 _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
792 _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
793 ! 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
794 _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
795 ! 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
796 _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
797 ! 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
798 _file_tree_view->setAlternatingRowColors (
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
799 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
800 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
801 {
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
802 _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
803 | QDir::Hidden);
16379
4bb1b82076e5 gui: provide defaults for all values read from the settings file
Torsten <ttl@justmail.de>
parents: 16175
diff changeset
804 }
17970
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
805 else
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
806 {
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
807 _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
808 }
f6e1be4ad923 Add functionality for showing/hiding hidden files in the file browser (bug #40636).
John Swensen <jpswensen@gmail.com>
parents: 17960
diff changeset
809 _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
810
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
811 // 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
812 // 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
813 _sync_octave_dir
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
814 = 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
815 _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
816 _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
817
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
818 if (_sync_octave_dir)
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
819 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
820
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
821 }
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
822
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
823 void
16762
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
824 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
825 {
20017
4b7b7ac7af2c use get_home_directory instead of getenv ("HOME") (bug #44694)
John W. Eaton <jwe@octave.org>
parents: 20000
diff changeset
826 QString dir = QString::fromStdString (octave_env::get_home_directory ());
4b7b7ac7af2c use get_home_directory instead of getenv ("HOME") (bug #44694)
John W. Eaton <jwe@octave.org>
parents: 20000
diff changeset
827
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
828 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
829 dir = QDir::homePath ();
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
830
16762
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
831 set_current_directory (dir);
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
832 }
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
833
42555422e326 Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents: 16709
diff changeset
834 void
16613
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
835 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
836 {
16709
1070f2ca1367 fix searching new directory for file browser
Torsten <ttl@justmail.de>
parents: 16699
diff changeset
837 QString dir = QFileDialog::getExistingDirectory
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
838 (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
839 _file_system_model->rootPath (),
18820
85b4ba1fe6de only show directories in search directory dialog activated from files browser
Torsten <ttl@justmail.de>
parents: 18407
diff changeset
840 QFileDialog::ShowDirsOnly | QFileDialog::DontUseNativeDialog);
16709
1070f2ca1367 fix searching new directory for file browser
Torsten <ttl@justmail.de>
parents: 16699
diff changeset
841 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
842 }
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
843
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
844 void
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
845 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
846 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
847 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
848 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
849
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
850 void
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
851 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
852 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
853 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
854 }
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 void
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
857 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
858 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
859 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
860 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
861
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
862 void
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
863 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
864 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
865 bool ok;
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
866
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
867 QString name = QInputDialog::getText (this, tr ("Create File"),
18251
0b5f669f5b03 fix some translation issues (bug #41159)
Torsten <ttl@justmail.de>
parents: 17988
diff changeset
868 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
869 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
870 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
871 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
872 name = parent_dir + "/" + name;
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
873
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
874 QFile file (name);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
875 file.open (QIODevice::WriteOnly);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
876 _file_system_model->revert ();
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
877 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
878 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
879
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
880 void
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
881 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
882 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
883 bool ok;
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
884
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
885 QString name = QInputDialog::getText (this, tr ("Create Directory"),
18251
0b5f669f5b03 fix some translation issues (bug #41159)
Torsten <ttl@justmail.de>
parents: 17988
diff changeset
886 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
887 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
888 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
889 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
890 QDir dir (parent_dir);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
891 dir.mkdir (name);
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
892 _file_system_model->revert ();
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
893 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
894 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
895
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
896 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
897 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
898 emit displayed_directory_changed (dir);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
899 }
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
900
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
901 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
902 {
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
903 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
904 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
905
16881
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
906 void
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
907 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
908 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
909 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
910 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
911 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
912 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
913 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
914
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
915 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
916 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
917 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
918 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
919 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
920 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
921 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
922
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
923 void
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
924 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
925 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
926 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
927 {
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
928 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
929 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
930 QLineEdit * edit = _current_directory->lineEdit ();
17790
86c6ae5f969e Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents: 17744
diff changeset
931 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
932 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
933 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
934 }
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
935
18555
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
936 void
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
937 files_dock_widget::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 if (_file_tree_view->hasFocus ())
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
940 _file_tree_view->selectAll ();
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
941 if (_current_directory->hasFocus ())
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
942 {
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
943 QLineEdit * edit = _current_directory->lineEdit ();
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
944 if (edit)
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
945 {
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
946 edit->selectAll ();
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
947 }
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
948 }
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
949 }
16881
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
950
944ade6e7f66 Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents: 16865
diff changeset
951
18555
2d5d0d86432e gui: Add select all menu (Bug #41797)
John Donoghue <john.donoghue@ieee.org>
parents: 18408
diff changeset
952